Wikibooks
enwikibooks
https://en.wikibooks.org/wiki/Main_Page
MediaWiki 1.47.0-wmf.23
first-letter
Media
Special
Talk
User
User talk
Wikibooks
Wikibooks talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Cookbook
Cookbook talk
Transwiki
Transwiki talk
Wikijunior
Wikijunior talk
Subject
Subject talk
TimedText
TimedText talk
Module
Module talk
Event
Event talk
Talk:C programming
1
759
4674854
4674434
2026-10-07T10:42:45Z
Alexey Vazhnov
120729
/* The book is in "Stuff that should be avoided" list */ Reply
4674854
wikitext
text/x-wiki
{{User:MiszaBot/config
|archive = Talk:C Programming/Archive %(counter)d
|algo = old(360d)
|counter = 1
|maxarchivesize = 150K
|archiveheader = {{Archive}}
|minthreadstoarchive = 1
|minthreadsleft = 3
}}
{{talk header}}
<div style="float:right;">
* {{todolink|C Programming|Pages needing work}}
* [[/Q&A Archive/]]
</div>
== Undefined Behavior ==
Should we include a section that touches up on undefined behavior? [[Special:Contributions/50.205.11.19|50.205.11.19]] ([[User talk:50.205.11.19|discuss]]) 12:55, 10 April 2025 (UTC)
== Style consistency ==
Hello folks, I have been working on improving the styling of this book by adding more syntax highlighting, converting some preformatted text blocks to tables, making the navigation consistently use {{Template link|Nav}}, etc. While editing the book, I discovered there are several code formatting styles in use:
* Braces on new line, 2-space indentation: [[C Programming/Coroutines]]
* Braces on new line, 3-space indentation: [[C Programming/Networking in UNIX]]
* Braces on new line, 4-space indentation: [[C Programming/Intro exercise]]
* Braces on new line, 8-space indentation: [[C Programming/Procedures and functions]]
* Braces on same line, 2-space indentation: [[C Programming/Program flow control]]
* Braces on same line, 4-space indentation: [[C Programming/Structure and style]]
There are also inconsistencies in whether there is whitespace before parentheses, after parentheses, after function names, between list items, etc. I am thinking of standardizing everything to braces on same line, 4-space indentation, and am curious if another style would work better before I start reformatting the book. [[User:Huntertur|huntertur]] ([[User talk:Huntertur|discuss]] • [[Special:Contributions/Huntertur|contribs]]) 01:12, 7 November 2025 (UTC)
== The book title capitalization ==
Is there some special rule in Wikibooks like [[en:w:Wikipedia:Naming conventions (capitalization)]]?
I see that chapter titles are mostly following the capitalization convention.
I would love to rename the book title from "C Programming" into "C programming". Any objection? [[User:Alexey Vazhnov|Alexey Vazhnov]] ([[User talk:Alexey Vazhnov|discuss]] • [[Special:Contributions/Alexey Vazhnov|contribs]]) 20:25, 9 January 2026 (UTC)
:Renamed. [[User:Alexey Vazhnov|Alexey Vazhnov]] ([[User talk:Alexey Vazhnov|discuss]] • [[Special:Contributions/Alexey Vazhnov|contribs]]) 22:41, 6 July 2026 (UTC)
::Hmm, it doesn't work with just renaming the "root" page — I had to move/rename also all the 100 subpages.
::Now I'm going to check/fix internal links in the pages, then rename categories. [[User:Alexey Vazhnov|Alexey Vazhnov]] ([[User talk:Alexey Vazhnov|discuss]] • [[Special:Contributions/Alexey Vazhnov|contribs]]) 12:41, 7 July 2026 (UTC)
:::There was a lot of subpages under subpages, which I also had to rename. I think I've finished. [[User:Alexey Vazhnov|Alexey Vazhnov]] ([[User talk:Alexey Vazhnov|discuss]] • [[Special:Contributions/Alexey Vazhnov|contribs]]) 16:15, 7 July 2026 (UTC)
== The book is in "Stuff that should be avoided" list ==
Just FYI: in [https://stackoverflow.com/a/562377 the definitive C book guide and list] I found a link to [https://iso-9899.info/wiki/Main_Page#Stuff_that_should_be_avoided Stuff that should be avoided] which mentions the [[C programming]] book with a comment <q>Many errors, lack of understanding of simple concepts</q>.
This doesn't mean anything, but maybe a signal to improve the book if needed. [[User:Alexey Vazhnov|Alexey Vazhnov]] ([[User talk:Alexey Vazhnov|discuss]] • [[Special:Contributions/Alexey Vazhnov|contribs]]) 09:53, 5 October 2026 (UTC)
:The [[C programming]] book [https://iso-9899.info/wiki?diff=9000 was added to the list at November 2014]. Maybe it became even better since then. [[User:Alexey Vazhnov|Alexey Vazhnov]] ([[User talk:Alexey Vazhnov|discuss]] • [[Special:Contributions/Alexey Vazhnov|contribs]]) 10:42, 7 October 2026 (UTC)
fpx0ja5ob6q9h26ja7ylyq6mws503ed
Koine Greek
0
16226
4674787
4674605
2026-10-07T00:12:43Z
It-is-Truly-Meet
3624460
The imperfect tense can be covered in one lesson.
4674787
wikitext
text/x-wiki
{{print version}}
{{Category 4 Language}}
<br clear="all">
[[File:Alexander and Bucephalus - Battle of Issus mosaic - Museo Archeologico Nazionale - Naples BW.jpg|center|300px|Naples, National Archaeological Museum, Alexander Mosaic, Battle of Isus]]
{{Book title|{{BOOKNAME}}|An introduction to the Koine Greek language.}}
This text serves as an introduction to '''Koine Greek''', also known as '''Biblical Greek''', appropriate for a two year course. A fluent knowledge of English is presumed.
:''For other Greek languages, click [[Subject:Greek language|here]].''
==Preface==
:[[/A Historical Setting for Koine Greek/]]
==Pronunciation==
:[[/Alphabet, Pronunciation, and Punctuation/]]
:[[/Additional Information: Accents/]]
:[[/Exercise in Pronunciation: John 1:1-5/]]
==Nouns, Adjectives, and Pronouns==
:[[/Introduction to Nouns/]]
:[[/Declining 1st and 2nd Declension Nouns/]]
:[[/Prepositions and εἰμί/]]
:[[/Adjectives/]]
:[[/Pronouns/]]
:[[/Declining 3rd Declension Nouns/]]
==Finite Indicative Verb Forms==
:[[/Accents and Morae/]]
:[[/Introduction to Finite Indicative Verbs/]]
:[[/Contract Verbs/]]
===The Future Tense===
:[[/Future Active Indicative/]]
:[[/Future Middle Indicative/]]
:[[/Future Passive Indicative/]]
===The Imperfect Tense===
:[[/Imperfect Active/Mediopassive Indicative/]]
===The Aorist Tense===
:[[/2nd Aorist Active Indicative/]]
:[[/2nd Aorist Middle Indicative/]]
:[[/1st Aorist Active Indicative/]]
:[[/1st Aorist Middle Indicative/]]
:[[/Aorist Passive Indicative/]]
===The Perfect Tense===
:[[/Perfect Active Indicative/]]
:[[/Perfect Middle/Passive Indicative/]]
==Finite Non-Indicative Verb Forms==
===The Subjunctive===
:[[/Introduction to the Subjunctive Mood/]]
:[[/Present Active Subjunctive/]]
:[[/Present Middle/Passive Subjunctive/]]
:[[/1st Aorist Active Subjunctive/]]
:[[/1st Aorist Middle Subjunctive/]]
:[[/1st Aorist Passive Subjunctive/]]
:[[/2nd Aorist Active Subjunctive/]]
:[[/2nd Aorist Middle Subjunctive/]]
:[[/2nd Aorist Passive Subjunctive/]]
:[[/Perfect Active Subjunctive/]]
:[[/Perfect Middle Subjunctive/]]
:[[/Perfect Passive Subjunctive/]]
===The Imperative===
:[[/Introduction to the Imperative Mood/]]
:[[/Present Active Imperative (ω conjugation)/]]
:[[/Present Middle/Passive Imperative (ω conjugation)/]]
:[[/1st Aorist Active Imperative (ω conjugation)/]]
:[[/1st Aorist Middle Imperative (ω conjugation)/]]
:[[/2nd Aorist Active Imperative (ω conjugation)/]]
:[[/2nd Aorist Middle Imperative (ω conjugation)/]]
:[[/2nd Aorist Passive Imperative (ω conjugation)/]]
:[[/Perfect Active Imperative (ω conjugation)/]]
:[[/Perfect Middle Imperative (ω conjugation)/]]
:[[/Perfect Passive Imperative (ω conjugation)/]]
:[[/Ἡ Κυριακὴ Προσευχή/]]
===The Optative===
:[[/Introduction to the Optative Mood/]]
:[[/Present Active Optative (ω conjugation)/]]
:[[/Present Middle/Passive Optative (ω conjugation)/]]
:[[/1st Aorist Active Optative (ω conjugation)/]]
:[[/1st Middle Optative (ω conjugation)/]]
:[[/2nd Aorist Active Optative (ω conjugation)/]]
:[[/2nd Aorist Middle Optative (ω conjugation)/]]
:[[/2nd Aorist Passive Optative (ω conjugation)/]]
:[[/Future Active Optative (ω conjugation)/]]
:[[/Future Middle Optative (ω conjugation)/]]
:[[/Future Passive Optative (ω conjugation)/]]
:[[/Perfect Active Optative (ω conjugation)/]]
:[[/Perfect Middle Optative (ω conjugation)/]]
:[[/Perfect Passive Optative (ω conjugation)/]]
:[[/Πράξεις ΙΖ/]]
==The -μι Conjugation==
:[[/Present Active Imperative (μι conjugation)/]]
:[[/Present Middle/Passive Imperative (μι conjugation)/]]
:[[/1st Aorist Active Imperative (μι conjugation)/]]
:[[/1st Aorist Middle Imperative (μι conjugation)/]]
:[[/2nd Aorist Active Imperative(μι conjugation)/]]
:[[/2nd Aorist Passive Imperative (μι conjugation)/]]
:[[/Present Active Optative (μι conjugation)/]]
:[[/Present Middle/Passive Optative (μι conjugation)/]]
:[[/1st Aorist Active Optative (μι conjugation)/]]
:[[/1st Aorist Middle Optative (μι conjugation)/]]
:[[/2nd Aorist Active Optative (μι conjugation)/]]
:[[/2nd Aorist Passive Optative (μι conjugation)/]]
==Non-finite Verbal Forms==
===The Participle===
:[[/Introduction to Participles/]]
:[[/Present Participle/]]
:[[/Aorist Participle/]]
:[[/Perfect Participle/]]
:[[/Future Participle/]]
===The Infinitive===
:[[/Introduction to Infinitives/]]
:[[/Present Infinitive/]]
:[[/Aorist Infinitive/]]
:[[/Perfect Infinitive/]]
==Advanced Syntax==
===Adverbs===
:[[/Overview of Adverbs/]]
===Particles===
:[[/Overview of Particles/]]
===Conjunctions===
:[[/Coordinating (Paratactic) Conjunctions/]]
:[[/Subordinating (Hypotactic) Conjunctions/]]
:[[/Conditional Clauses/]]
===The Genitive Absolute===
:[[/The Genitive Absolute/]]
== About this Book ==
:[[Koine Greek/Authors|Authors]]
== External Links ==
{{Wikipedia}}
{{Wiktionary|Category:Ancient Greek language}}
* For more free language-learning information on Koine Greek (used in the New Testament and by the army of Alexander the Great), go to Textkit's website at http://www.textkit.com.
* Another great source is http://ntgateway.com/
* [http://www.wikichristian.org/Koine_Greek Koine Greek] plus [http://www.wikichristian.org/Koine_Greek:_Dictionary Dictionary] at [http://www.wikichristian.org/Main_Page WikiChristian]
{{Shelves|Greek language}}
{{alphabetical|K}}
{{status|25%}}
__NOTOC__ __NOEDITSECTION__
8mdb4pt8sxebp7oaupbjndcxotp9cxj
Cookbook:Crispy Gingerbread Cookies
102
22472
4674781
4599152
2026-10-06T20:32:22Z
~2026-53787-84
3627766
4674781
wikitext
text/x-wiki
{{recipesummary|category=Cookie recipes|yield=5.5 dozen [[Cookbook:Inch|4.5-inch]] cookies|time=Prep: 15 minutes<br/>Baking: 15 minutes|servings=2|image=[[Image:CrispyGingerbreadCookies.jpg|300px]]
}}
{{recipe}} | [[Cookbook:Dessert|Desserts]]
This recipe makes '''crispy gingerbread cookies''' that are used for gingerbread people. To keep the cookies crisp, store them in an air-tight container. They can be decorated with [[Cookbook:Royal Icing|royal icing]].
==Ingredients==
*⅔ [[Cookbook:Cup|cup]] (~160 [[Cookbook:Gram|g]]) packed light [[Cookbook:Brown Sugar|brown sugar]]
*⅔ cup (~160 g) [[Cookbook:Molasses|molasses]]
*1 [[Cookbook:Teaspoon|teaspoon]] [[Cookbook:Ginger|ginger]]
*1 teaspoon [[Cookbook:Cinnamon|cinnamon]]
*½ teaspoon [[Cookbook:Salt|salt]]
*1 ½ teaspoon (½ [[Cookbook:Tablespoon|tablespoon]]) [[Cookbook:Baking Soda|baking soda]]
*⅔ cup (~160 g) [[Cookbook:Butter|butter]]
*1 [[Cookbook:Egg|egg]]
*4 cups (1 [[Cookbook:Quart|quart]]/ 500g) [[Cookbook:Flour|flour]]
==Procedure==
#Pour sugar, molasses, spices, and salt into large [[Cookbook:Saucepan|saucepan]].
#Bring to [[Cookbook:Boil|boil]] and remove from heat.
#Add the baking soda and butter and stir until butter melts.
#Quickly stir in egg, and then add flour. Mix well.
#Chill for several hours until firm enough to roll.
#Preheat oven to [[Cookbook:Oven Temperatures|325 °F]] (170 °C).
#[[Cookbook:Dough#Rolling|Roll out]] until thin on lightly-floured surface.
#Cut with [[Cookbook:Cookie Cutter|cookie cutters]] and place on [[Cookbook:Cookie Sheet|cookie sheet]] sprayed with non-stick [[Cookbook:Cooking Spray|cooking spray]].
#[[Cookbook:Baking|Bake]] for about 15 minutes at [[Cookbook:Oven Temperatures|325 °F]] (170 °C) and cool on racks.
[[Category:Recipes for dessert]]
[[Category:Recipes for cookies]]
[[Category:Recipes using ground ginger]]
[[Category:Baking recipes]]
[[Category:Featured recipes]]
[[Category:Recipes with metric units]]
[[Category:Recipes using butter]]
[[Category:Recipes using baking soda]]
[[Category:Recipes using light brown sugar]]
[[Category:Recipes using ground cinnamon]]
[[Category:Recipes using cooking spray]]
[[Category:Recipes using egg]]
[[Category:Recipes using wheat flour]]
[[Category:Recipes using molasses]]
r5pdfc23vd82jtb2jugko42tla2rn1h
Radiation Oncology/Palliation/Bone metastases
0
30474
4674841
4584027
2026-10-07T09:33:24Z
Jcb
90773
4674841
wikitext
text/x-wiki
{{Radiation Oncology:TOC}}
<big>'''Palliation of Spine and Bone Metastases'''</big>
*''For spinal cord compression, please see: [[Radiation_Oncology/Palliation/Spinal_Cord_Compression|spinal cord compression]]''
*''For specific tumor types, see also: [[Radiation Oncology/Kidney#Bone mets|Renal cell]]''
*''For spinal cord tolerance, please see [[Radiation_Oncology/Toxicity/Spine|Spine NTCP]]''
==Guidelines==
*'''ASTRO; 2011''' {{PMID|21277118}} -- "Palliative Radiotherapy for Bone Metastases: An ASTRO Evidence-Based Guideline." (Lutz S, Int J Radiat Oncol Biol Phys. 2011 Jan 27. [Epub ahead of print])
*'''Society of Nuclear Medicine; 2003''' [http://interactive.snm.org/docs/pg_ch25_0403.pdf PDF] [http://interactive.snm.org/index.cfm?PageID=772 Guidelines link] -- "Palliative Treatment for Painful Bone Metastases" (version 3.0)
*'''International Spine Radiosurgery Consortium consensus guidelines for target volume definition in spinal stereotactic radiosurgery.''' {{PMID|22608954}}-- (Cox BW Int J Radiat Oncol Biol Phys. 2012 Aug 1. [Epub ahead of print])
**Describes target delineation of the CTV and created the "SSS" (Spratt Six Segmentation) to unify communication regarding the location of involvement of spinal tumors/metastases.
==Open Reduction Internal Fixation (ORIF)==
*'''Mayo Clinic; 2004''' {{PMID|15289695}} -- "Management of pathologic fractures of the proximal femur: state of the art." (Jacofsky DJ, J Orthop Trauma. 2004 Aug;18(7):459-69.)
**Review of surgical techniques
**Radiation therapy recommendation: RT should follow ORIF, typically 2-4 weeks later. Typical schedule 30/10 though British Association of Surgical Oncologists guideline recommends 20/5
==Prophylactic Fixation==
===Long Bones===
*'''Mirels Criteria'''
**'''1989''' {{PMID|2684463}} -- "Metastatic disease in long bones: a proposed scoring system for diagnosing impending pathologic fractures" (Mirels H, Clin Orthop Relat Res. 1989;249:256–264.)
**[http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3049613/ Article]
**Score >8 suggests benefit from pinning
{| class="wikitable"
|-
! | '''Mirels Criteria'''
|-
! Score !! 1 !! 2 !! 3
|-
| Site|| upper limb || lower limb || peritrochanteric
|-
| Pain || mild || moderate || functional
|-
| Lesion || blastic || mixed || lytic
|-
| Size (cortical involvement) || < 1/3 || <2/3 || >2/3
|}
*'''Harrington's criteria'''
**'''1986''' {{PMID|3819423}} -- "Impending pathologic fractures from metastatic malignancy: evaluation and management." (Harrington KD, Instr Course Lect. 1986;35:357-81.)
{| class="wikitable"
|-
! Harrington's Criteria
|-
| >50% destruction of diaphyseal cortices
|-
| >2.5 cm in any dimension
|-
| Destruction of subtrochanteric femoral region
|-
| Persistent pain following radiation
|}
===Vertebral body===
*'''Spinal Instability Neoplastic Score (SINS)'''
**'''2010''' {{PMID|20562730}} -- "A novel classification system for spinal instability in neoplastic disease: an evidence-based approach and expert consensus from the Spine Oncology Study Group." (Fisher CG, Spine (Phila Pa 1976). 2010 Oct 15;35(22):E1221-9. doi: 10.1097/BRS.0b013e3181e16ae2)
***Potentially unstable lesions ≥ 7; unstable lesions ≥ 13
***Surgical consultation recommended for lesions ≥ 7
{| class="wikitable"
|-
! Variable !! 0 !! 1 !! 2 !! 3 !! 4
|-
| Location || Rigid (S2-S5) || Semirigid (T3-T10) || Mobile (C3-C6, L2-L4)|| Junctional (Occiput-C2, C7-T2, T11-L1, L5-S1) || -
|-
| Pain || None || Occasional || - || Yes || -
|-
| Bone lesion || Blastic || Mixed || Lytic || - || -
|-
| Radiographic alignment || Normal || - || De novo kyphosis/scoliosis || - || Subluxation/translation
|-
| Vertebral body collapse || None, <50% VB involved || None, >50% VB involved || <50% || >50% || -
|-
| Posterior involvement || None || Unilateral || - || Bilateral || -
|}
**'''2014''' {{PMID|24594004}} -- "Reliability of the Spinal Instability Neoplastic Score (SINS) among radiation oncologists: an assessment of instability secondary to spinal metastases." (Fisher CG, Radiat Oncol. 2014 Mar 4;9:69. doi: 10.1186/1748-717X-9-69.)
***Survey. 33 radiation oncologists, 10 sites, 30 cases.
***Outcome: Interobserver variability 0.76, intra-observer variability 0.80. All unstable cases were rated as appropriately
***Conclusion: Among radiation oncologists, SINS is highly reliable, reproducible and valid assessment tool
*'''CT-based algorithm'''
**'''Harvard; 2009''' {{PMID|19996215}} -- "Noninvasive Prediction of Fracture Risk in Patients with Metastatic Cancer to the Spine." (Snyder BD, Clin Cancer Res. 2009 Dec 15;15(24):7676-7683.)
***Retrospective. 94 women, CT scans. Load-bearing capacity, axial rigidity, bending rigidity calculated, and normalized by BMI. Vertebral fracture risk calculated
***Outcome: 11 fractures occurred in 10 patients. Structural parameters 100% sensitive; 55-70% specific to predict fracture risk
***Conclusion: CTRA is as sensitive and more specific than current radiographic criteria
==Palliative RT Endpoints==
*'''Bone Metastases Consensus Working Party; 2002''' {{PMID|12242115}} -- "International consensus on palliative radiotherapy endpoints for future clinical trials in bone metastases." (Chow E, Radiother Oncol. 2002 Sep;64(3):275-80.)
**Pain assessment: 11 point scale (0-10), should relate to worst and average pain over prior 3 days
**Narcotic use: should be converted to daily oral morphine equivalent
**Endpoints:
***Partial response: reduction of 2 or more points (0-10 point scale) without analgesic increase OR analgesic reduction of 25% in daily morphine equivalent without increase in pain
***Pain progression: increase in pain score 2 or more points with stable analgesic use OR increase of 25% in daily morphine equivalent with pain stable or 1 point above baseline
==External Beam Asymptomatic==
*'''Memorial Sloan Kettering''' (2018 - 2021) -- RT to asymptomatic high risk sites vs standard of care
**'''Outcome 2024''' "Prophylactic Radiation Therapy Versus Standard of Care for Patients With High-Risk Asymptomatic Bone Metastases: A Multicenter, Randomized Phase II Clinical Trial" (Gillespie EF, J Clin Oncol. 2024 Jan 1;42(1):38-46. doi: 10.1200/JCO.23.00753. Epub 2023 Sep 25.)
***Multicenter Phase II. 73 patients. Adult, widely metastatic solid tumors. Arm 1) standard of care (systemic therapy or observation) vs Arm 2) prophylactic RT. Lung 27%, breast 24%, prostate 22%
***Outcome: Skeletal events RT 2% vs OBS 29% (SS). Fewer hospitalizations (SS). Improved overall survival HR 0.49, SS.
***Conclusion: Prophylactic radiation lowered skeletal events, hospitalization, and improved survival
==External Beam Painful==
===Overview===
*A UK trial reported in 1986 was the first to randomize patients to RT 8/1 vs. 30/10. While there was no difference in pain relief at 12 weeks, the trial was criticized for low compliance and short follow-up
*A follow-on UK trial revealed that RT 8/1 has higher rate of clinical response than RT 4/1
*Several other trials have confirmed equivalent safety and efficacy of 8 Gy x1 compared with multi-fraction regimens, including RTOG 97-14
*All trials show a higher re-treatment rate for 8/1 fractionation (~25% vs. ~10% for multifraction regimens), but some of this may be for other reasons than pain level prior to re-irradiation
*Cochrane review (2004) found overall pain response ~60%, complete pain response ~33%, with no difference between single fraction and multifraction regimens. The composite retreatment rate was higher for single fraction 21% vs. 7%. Conclusion was that single fraction is effective
*Based on the Dutch Bone Metastasis Study, patient who live <12 weeks do particularly poorly after RT. Only half respond (and that means their pain score decreases from 7 to 5 on 11 point scale), and most die in pain even in the presence of analgesics. Patients who live >12 weeks do better, with 78% responders
===Meta-analyses===
*'''University of Toronto, 2007''' - {{PMID|17416863}} — "Palliative Radiotherapy Trials for Bone Metastases: A Systematic Review." Chow E et al. J Clin Oncol. 2007 Apr 10;25(11):1423-1436.
**Single-fraction vs multiple fraction RT. Updates previous meta-analysis. Literature review.
**Conclusion: Overall response and complete response same in single fraction (8/1) and multi-fraction treatments. Retreatment rate higher with single fraction
*'''Cochrane Review, 2004''' {{PMID|15106258}} -- "Palliation of metastatic bone pain: single fraction versus multifraction radiotherapy - a systematic review of the randomised trials." (Wai MS, Cochrane Database Syst Rev. 2004;(2):CD004721.)
**Pooled meta-analysis. 11 trials, 3435 patients. Any primary site, but mainly prostate, breast, and lung
**Pain response: single fraction 60% vs. multifraction 59% (NS). Complete response 34% vs. 32% (NS). Single fraction higher re-treatment 21% vs. 7% (SS)
**Pathologic fracture: single fraction 3% vs. 1.5%
**Conclusion: Single fraction as effective as multiple fractions at relieving pain. Higher re-treatment and higher rate of pathologic fracture in the single fraction arm
*'''McMaster University, 2003''' {{PMID|12573746}} -- "Meta-analysis of dose-fractionation radiotherapy trials for the palliation of painful bone metastases." (Wu JS, Int J Radiat Oncol Biol Phys. 2003 Mar 1;55(3):594-605.)
**16 trials,
**Conclusion: No significant difference in complete and overall pain relief between single and multifraction palliative RT for bone metastases. More frequent re-irradiation rate in the lower dose arms.
===Randomized===
*'''[[Radiation_Oncology/RTOG_Trials/9714|RTOG 97-14]]''' (1998-2002) -- RT short (8/1) vs. RT long (30/10)
**Randomized. 898 patients. Prostate or breast cancer. Weight-bearing 56%, C-spine 5%, T-spine 19%, L-spine 27%, cord compression not allowed. Life expectancy >3 months, KPS >=40 Arm 1) RT 8/1 vs. Arm 2) 30/10. Primary outcome pain relief at 3 months
**'''Outcome; 2005''' {{PMID|15928300}} -- "Randomized trial of short- versus long-course radiotherapy for palliation of painful bone metastases." (Hartsell WF, J Natl Cancer Inst. 2005 Jun 1;97(11):798-804.)
***Outcome: 3-month complete pain relief 8/1 15% vs. 30/10 18% (NS); partial 50% vs. 48% (NS); stable 26% vs 24%; progressive 9% vs 10%. Comparable narcotic relief. Retreatment rate 18% vs. 9% (p<.001)
***Toxicity: acute 8/1 10% vs. 30/10 17% (SS); late toxicity rare
***Conclusion: Both regimens equivalent for pain control and narcotic relief at 3 months. 8/1 less acute toxicity but higher retreatment
**'''Single males; 2006''' {{PMID|16814950}} — "Continuing evidence for poorer treatment outcomes for single male patients: retreatment data from RTOG 97-14." Konski A et al. Int J Radiat Oncol Biol Phys. 2006 Sep 1;66(1):229-33.
***Retreatment (within the original RT portal) at 36 months: 8/1 18% vs 30/10 9% (SS) No difference in retreatment rate between arms for unmarried males, but difference was seen in all other groups.
***Conclusion: Patients receiving 8 Gy in a single fraction had significantly higher retreatment rates compared with patients receiving 30 Gy in 10 fractions.
**'''Economic analysis; 2009''' {{PMID|19546803}} -- "Economic analysis of radiation therapy oncology group 97-14: multiple versus single fraction radiation treatment of patients with bone metastases." (Konski A, Am J Clin Oncol. 2009 Aug;32(4):423-8.)
***Markov model using information from the trial. Cost modeled using Medicare RVU rates
***Outcome: Mean cost 8 Gy group $998 vs 30 Gy group $2316. QALY survival 7.3 months vs 9.5 months. ICER $6973/QALY
***Conclusion: Single fraction was the less expensive and more cost-effective treatment
*'''Norway/Sweden''' (1998-2000) -- short RT (8/1) vs. long RT (30/10)
**Randomized. ''Stopped early due to comparable outcomes on interim analysis''. 376/1000 patients. Bone metastases (spine 38%, pelvis 35%, extremity 20%) resulting in clinically important pain, KPS >40, life expectancy >6 weeks. [[Radiation_Oncology/Palliation/Spinal_Cord_Compression|Spinal cord compression]] excluded. Arm 1) RT 8/1 vs. 30/10. Target known mets with 2-3 cm margin, for spinal lesions 1 VB above/below. Prophylactic corticosteroids not used. Primary outcome pain relief over 28 weeks (82% questionnaire compliance)
**'''2006''' {{PMID|16793154}} -- "Prospective randomised multicenter trial on single fraction radiotherapy (8 Gy x 1) versus multiple fractions (3 Gy x 10) in the treatment of painful bone metastases." (Kaasa S, Radiother Oncol. 2006 Jun;79(3):278-84.) F/U 18 months
***Outcome: No difference in pain intensity, global QoL, fatigue, or opioid/non-opioid analgesics. (NS). Median O/S 8 Gy 9.6 months vs. 30 Gy 7.9 months (NS)
***Conclusion: Similar benefit. Recommend single fraction 8 Gy as standard
*'''TROG 96.05''' {{PMID|15878101}} -- "Randomized trial of 8 Gy in 1 versus 20 Gy in 5 fractions of radiotherapy for neuropathic pain due to bone metastases (Trans-Tasman Radiation Oncology Group, TROG 96.05)." (Roos DE, Radiother Oncol. 2005 Apr;75(1):54-63. Epub 2004 Oct 28.)
**Phase III. 272 patients. Bone mets, known primary, no change in therapy x6 weeks, no cord compression. Lung 31%, prostate 29%, breast 8%
**Randomized to 8 Gy/1 fx vs. 20 Gy/5 fxs in 15 centers
**Response rate: 53% vs. 61% (p=NS); TTF 2.4 mo vs. 3.7 mo (p=0.056)
**<u>Conclusion</u>: "8/1 was not shown to be as effective as 20/5, nor was it statistically significantly worse. Outcomes were generally poorer for 8/1, although the quantitative differences were relatively small."
*'''Dutch Bone Metastasis Study''' (1996-1998) -- short RT (8/1) vs long RT (24/6)
**Randomized. 1171 patients. Painful bone metastases, spinal cord compression excluded, C-spine excluded (T/L-spine 37%, pelvis 29%, femur 16%, other 18%). Primary endpoint pain. Median F/U 4 months
**'''1999''' {{PMID|10577695}} -- "The effect of a single fraction compared to multiple fractions on painful bone metastases: a global analysis of the Dutch Bone Metastasis Study." (Steenland E, Radiother Oncol. 1999 Aug;52(2):101-9.)
***Outcome: Response 71% (breast 76%, prostate 78%, NSCLC 60%), complete response 35%. No difference in pain relief at 3 months, 12 months. No difference in time-to-progression. Median OS 7 months (NS); breast CA 16 months vs. NSCLC 3 months.
***Retreatment: overall 16%; 8/1 25% vs. 24/6 7% (SS), on further analysis higher recurrence pain score in 24/6 group before retreatment
***Toxicity: No difference in acute toxicity; double the rate of subsequent pathologic fractures in the single fraction arm
***Conclusion: Equality of 8/1 vs 24/6, provided 4x more retreatments accepted. Equality holds in long-term survivors
**'''Last 12 weeks; 2010''' {{PMID|20225326}} -- "Efficacy of radiotherapy for painful bone metastases during the last 12 weeks of life: results from the Dutch Bone Metastasis Study." (Meeuse JJ, Cancer. 2010 Mar 11. [Epub ahead of print])
***Subset analysis. 274 patients who died within 12 weeks after randomization. Patient classified as responders (decrease in initial pain intensity score by 2 of 11 points without analgesic increase, or decrease in analgesics without increase in pain. Used )
***Outcome: Response 8/1 53% vs 24/6 56% (NS); median time-to-response 2 weeks (1-9) in both groups. In responders, pain score decreased from 7/11 to 5/11 by death. In non-responders, no change. 60% of patients never reached below pain score 5 until death (regardless of RT and medication use). Compared with patients who lived >12 weeks, response percentage for patients who lived <12 weeks was poor 45% vs 78% (SS)
***Conclusion: Pain responded in ~50% of patients with short survival, regardless of fractional schema. Single fraction should be preferred, and additional palliative measure remain essential
*'''UK/NZ''' (1992-1997) -- short RT (8/1) vs. long RT (20/5 or 30/10)
**Randomized. 761 patients. Painful skeletal metastases (pelvis/hip 28%, L-spine 20%, ribs 11%, T-spine 9%, femur 6%, C-spine 3%, other 22%). Arm 1) RT 8/1 vs. Arm 2) RT 20/5 or 30/10. Primary endpoint pain relief.
**'''1999''' {{PMID|10577696}} -- "8 Gy single fraction radiotherapy for the treatment of metastatic skeletal pain: randomised comparison with a multifraction schedule over 12 months of patient follow-up. Bone Pain Trial Working Party." ([No authors listed], Radiother Oncol. 1999 Aug;52(2):111-21.) Full 12 month follow-up available in 30%.
***Outcome: No difference in time-to-improvement, time-to-complete pain relief, or class of analgesics (NS). Complete response (no pain, no increase in pain meds) 58%. Retreatment 8/1 23% vs. long-RT 10% (SS) but on further analysis likely due to greater readiness to reatreat rather than need due to pain outcome
***Toxicity: No difference in nausea (56% vs. 65%), vomiting (30% vs. 32%), spinal cord compression, or pathological fracture
***Conclusion: No difference in safety or efficacy; pain relief durable over 12-month follow up. 8 Gy single fraction is the treatment of choice
*'''Germany, 1996''' - {{PMID|8985030}}, — "Rapid course radiation therapy vs. more standard treatment: a randomized trial for bone metastases." Niewald M et al. Int J Radiat Oncol Biol Phys. 1996 Dec 1;36(5):1085-9.
**Randomized to 20 Gy / 5 fractions vs 30 Gy / 15 fractions
**Slight trend favoring 30 Gy in frequency of pain relief and recalcification. No significant differences in frequency, duration of pain relief, pathologic fractures, or survival.
*'''UK''' -- short RT (4/1) vs short RT (8/1)
**Randomized. 270 patients. Painful bone metastases. Arm 1) RT 4/1 vs. Arm 2) RT 8/1. Compliance with questionnaire 72% at 4 weeks
**'''1992''' {{PMID|1372126}} -- "A prospective randomised trial of 4 Gy or 8 Gy single doses in the treatment of metastatic bone pain." (Hoskin PJ, Radiother Oncol. 1992 Feb;23(2):74-8.)
***Outcome: 4-week response 4 Gy 44% vs. 8 Gy 69% (SS); but no difference in complete response or duration of response
***Conclusion: 8 Gy higher probability of pain relief, but 4 Gy can be effective
*'''UK''' -- short RT (8/1) vs long RT (30/10)
**Randomized. 288 patients with metastatic bone pain. Arm 1) RT 8/1 vs. Arm 2) RT 30/10. Questionnaire compliance 31% beyond 12 weeks
**'''1986''' {{PMID|3775071}} -- "Prospective randomised trial of single and multifraction radiotherapy schedules in the treatment of painful bony metastases." (Price P, Radiother Oncol. 1986 Aug;6(4):247-55.)
***Outcome: No difference in speed of onset, duration of pain relief at 12 weeks. Pain relief independent of histology. Reirradiation more likely with 8/1 schedule but increased analgesic use in 30/10
*'''RTOG 74-02''' -- Solitary 40.5/15 vs. 20/5; Multiple 30/10 vs. 15/5 vs. 20/5 vs. 25/5
**Randomized. Pts with solitary lesions randomized to 270 cGy x 15 (40.5 Gy) or 400 x 5 (20 Gy). Pts with multiple lesions randomized to 300 x 10 (30 Gy), 300 x 5 (15 Gy), 400 x 5 (20 Gy), or 500 x 5 (25 Gy, blocking cord after 20 Gy).
**'''1982''' {{PMID|6178497}} — "The palliation of symptomatic osseous metastases: final results of the Study by the Radiation Therapy Oncology Group." Tong D et al. Cancer. 1982 Sep 1;50(5):893-9.
***Outcome: 90% with some relief of pain. 54% had eventual complete pain relief. No difference between radiotherapy regimens in pain relief. No difference among regimens in promptness of pain relief, except there was an association between the dose and the promptness to complete pain relief (fastest in 15 Gy, slowest in 25 Gy group); no difference in the duration of pain relief.
***Conclusion: No difference between regimens
**'''1985''' {{PMID|2579716}}, 1985 — "Reanalysis of the RTOG study of the palliation of symptomatic osseous metastasis." Blitzer PH et al. Cancer. 1985 Apr 1;55(7):1468-72.
***Higher number of fractions (40.5/15 and 30/10) found related to complete relief of pain.
===Kyphoplasty + RT===
*'''Pittsburgh, 2005''' {{PMID|15771398}} -- ''Combination kyphoplasty and spinal radiosurgery: a new treatment paradigm for pathological fractures.'' (Gerszten PC, Neurosurg Focus. 2005 Mar 15;18(3):e8.)
**26 patients with pathologic fractures secondary to tumor treated with Kyphoplasty followed by single fraction (16-20 Gy) RT
**<u>Conclusion</u>: "A combined kyphoplasty and spinal radiosurgery treatment paradigm was found to be safe and clinically effective for patients with pathological fractures without significant spinal canal compromise. This technique combines two minimally invasive surgical procedures, thereby avoiding the morbidity associated with open surgery while providing immediate fracture fixation as well as a single-fraction tumoricidal radiation dose."
===Hemibody radiation===
'''''Fractionated hemibody RT:'''''
*'''[[Radiation_Oncology/RTOG_Trials/8822|RTOG 88-22]]''' (1989-93) - {{PMID|8823257}}, 1996 — "A phase I/II study to evaluate the effect of fractionated hemibody irradiation in the treatment of osseous metastases--RTOG 88-22." Scarantino CW et al. Int J Radiat Oncol Biol Phys. 1996 Aug 1;36(1):37-48.
**142 pts. Phase I/II, dose escalation. Pts w/ painful bone mets (single or multiple) confined to one hemibody (upper/mid/lower) from breast or prostate ca.
***Treatment of local painful site (local RT) followed by hemibody. Escalation of hemibody RT dose, 2.5 Gy/fx to 4-8 fx (10 - 20 Gy). Hemibody began within 3 days of local RT, and the local RT portal was shielded during hemibody RT. Lung shielding to keep lung dose to 6 Gy. Liver and kidney limited to 15 Gy.
***Dose-limiting toxicity at 17.5 Gy (hematologic toxicity). Time to new disease in the hemibody field: 19% at 1 yr, no difference between arms; no difference in retreatment rates.
**Conclusion: Comparing this study to single fraction study (RTOG 82-06), there was a reduction of 36% of new disease with the fractionated technique. No difference in survival.
'''''Single-fraction hemibody RT:'''''
*'''[[Radiation_Oncology/RTOG_Trials/8206|RTOG 82-06]]''' - 8 Gy
**499 pts. Received 300x10 local radiation to the painful site, then randomized to hemibody RT (8 Gy/1) or observation.
**{{PMID|1374061}}, 1992 — "A report of RTOG 8206: a phase III study of whether the addition of single dose hemibody irradiation to standard fractionated local field irradiation is more effective than local field irradiation alone in the treatment of symptomatic osseous metastases." Poulter CA et al. Int J Radiat Oncol Biol Phys. 1992;23(1):207-14.
***Disease progression at 1 yr: 35% (local+HBI) vs 46% (local only); new disease in hemibody: 50% vs 68%; median time to new disease in hemibody: 12.6 m vs 6.3 m.
*'''[[Radiation_Oncology/RTOG_Trials/7810|RTOG 78-10]]''' (1978-81)
**168 pts (129 evaluable). Doses: 600-800 rad (upper half body), 800-1000 rad (lower and middle). Dose rate 15-45 rad/min. Used comprehensive premedication program (IV hydration, antiemetics, steroids) for pts receiving upper half RT; antiemetics only for mid or lower half. 10 pts received treatment to both body halves (sequentially).
***{{PMID|2423225}}, 1986 — "Single-dose half-body irradiation for palliation of multiple bone metastases from solid tumors. Final Radiation Therapy Oncology Group report." Salazar OM et al. Cancer. 1986 Jul 1;58(1):29-36.
****Pain relief in 73%; 20% with complete relief. No dose response seen: optimum response at the lower doses tested (600 for UHBI, 800 for LHBI and MBI). Time to pain relief - 50% within 48 hrs, 80% within 1 week, 95% in 2 wks.
***{{PMID|6169699}} (No abstract), 1981 — "Single-dose half-body irradiation for the palliation of multiple bone metastases from solid tumors: a preliminary report." Salazar OM et al. Int J Radiat Oncol Biol Phys. 1981 Jun;7(6):773-81.
**Conclusion: rapid pain relief. Safest dose appears to be 600 (upper) and 800 (lower/mid). ''Compared with conventional RT'' (a la RTOG 74-02), overall pain relief and duration of pain relief are similar, but HBI achieved pain relief much sooner (complete pain relief within 2 weeks vs many months), 4 times lower recurrence of pain in the radiated fields (54% vs 13%)
'''''Reviews:'''''
*{{PMID|2579726}}, 1985 — "Systemic hemibody irradiation for overt and occult metastases." Rubin P et al. Cancer. 1985 May 1;55(9 Suppl):2210-21.
==SBRT==
*'''University of Toronto; 2023''' {{PMID|36309076}} -- "Dose-Escalated 2-Fraction Spine Stereotactic Body Radiation Therapy: 28 Gy Versus 24 Gy in 2 Daily Fractions" (Zeng KL, Int J Radiat Oncol Biol Phys. 2023 Mar 1;115(3):686-695. doi: 10.1016/j.ijrobp.2022.09.076. Epub 2022 Oct 26.)
**Retrospective. 947 vertebral body segments, 482 patients. Comparison of 28 Gy (301 segments) vs 24 Gy (646 segments) in 2 fractions SBRT. Median f/u 24 months.
**Outcome: 28 Gy - 6-mo LF 3%, 1-year LF 5%, 2-year LF 11% vs 24 Gy 6%, 12%, 18% (SS). Higher risk of failure in 24 Gy group, paraspinal extension, epidural extension
**Toxicity: Vertebral compression fracture 5%, 8%, and 11%, and similar between cohorts. Higher risk in spinal malalignment, pre-existing VCF, junctional spine location, and higher V90 dose
**Conclusion: Dose escalation to 28 Gy in 2 fractions improved local control, similar risk of vertebral fracture.
*'''Pittsburgh; 2007''' {{PMID|17224814}} -- "Radiosurgery for spinal metastases: clinical experience in 500 cases from a single institution." (Gerszten PC, Spine. 2007 Jan 15;32(2):193-9.)
**Prospective cohort study. 500 cases of spinal metastases (cervical 15%, thoracic 42%, lumbar 22%, sacral 20%), treated with radiosurgery. Maximum dose 12.5-25 Gy (mean 20 Gy). Prior EBRT 69% (typically 30/10 or 35/14)
**Outcome: Long-term pain control 86%; at least some improvement in neurologic function in 85% (30/35)
**conclusion: Radiosurgery has potential to improve long-term palliation
*'''MD Anderson'''
**Phase I/II study. 63 patients with 74 spinal mets. SBRT 30 Gy in 5 fractions @ 6 Gy/fraction. Spinal cord max dose 10 Gy.
**'''2007''' {{PMID|17688054}} "Phase I/II study of stereotactic body radiotherapy for spinal metastasis and its pattern of failure." (Chang EL, J Neurosurg Spine. 2007 Aug;7(2):151-60.). Median F/U 1.8 years
***Outcome: Actuarial 1-year PFS 84%. Failure mostly 1) recurrence in adjacent bone, or 2) recurrence in epidural space
***Toxicity: no neuropathy or myelopathy; Grade 3 GI (n=1), Grade 3 dysphagia (n=1), Grade 3 chest pain (n=1). No late Grade 3-4 toxicity
***Conclusion: Safe and effective
**'''2004''' {{PMID|15275711}} -- "Phase I clinical evaluation of near-simultaneous computed tomographic image-guided stereotactic body radiotherapy for spinal metastases." (Chang EL, Int J Radiat Oncol Biol Phys. 2004 Aug 1;59(5):1288-94.)
***Phase I. 15 patients. Median F/U 9 months
***Toxicity: none
***Conclusion: Technically feasible
**'''2003''' {{PMID|14529763}} -- "Near simultaneous computed tomography image-guided stereotactic spinal radiotherapy: an emerging paradigm for achieving true stereotaxy." (Shiu AS, Int J Radiat Oncol Biol Phys. 2003 Nov 1;57(3):605-13.)
***Description of treatment technique
*'''Memorial Sloan Kettering; 2005''' {{PMID|15850902}} -- "Multifractionated image-guided and stereotactic intensity-modulated radiotherapy of paraspinal tumors: a preliminary report." (Yamada Y, Int J Radiat Oncol Biol Phys. 2005 May 1;62(1):53-61.)
**Retrospective. 35 patients (21 metastases, 20 previously irradiated). Treated with paraspinal IMRT. Prior median dose 30/10. Retreatment dose median 20/5 (20-30 Gy). If no prior RT, median dose 70 Gy. Median F/U 11 months
**Outcome: Palliation 90%; LC for primary tumors 81% vs. mets 75%
**Toxicity: No radiation-induced myelopathy or radiculopathy
**Conclusion: Stereotactic IGRT allows delivery of high doses to close proximity of spinal cord
*'''Heidelberg; 2003''' (1997-2001) {{PMID|12504049}} -- "Clinical results of retreatment of vertebral bone metastases by stereotactic conformal radiotherapy and intensity-modulated radiotherapy." (Milker-Zabel S, Int J Radiat Oncol Biol Phys. 2003 Jan 1;55(1):162-7.)
**Retrospective. 18 patients, 19 recurrent spinal metastases. Treated with 3D-CRT (n=5) or IMRT (n=14). Prior conventional RT (median 38 Gy). Median time-to-recurrence 18 months. Median retreatment 39.6 Gy (spinal cord dose limited to ~60-65% of Rx dose) @2 Gy/fraction. Median F/U 12 months.
**Outcome: LC 95%, significant pain relief 81%, neurologic improvement 42%. Tumor size unchanged 84%, 1 local progression 9 months after RT.
**Toxicity: No significant late toxicity
**Conclusion: Fractionated 3DCRT and IMRT safe and effective for re-treatment
'''''Review'''''
*'''MD Anderson; 2008''' {{PMID|18514775}} -- "Stereotactic body radiosurgery for spinal metastases: a critical review." (Sahgal A, Int J Radiat Oncol Biol Phys. 2008 Jul 1;71(3):652-65.)
*'''MSKCC, 2007''' {{PMID|17762734}} -- "A Review of Image-Guided Intensity-Modulated Radiotherapy for Spinal Tumors." (Yamada Y, Neurosurgery. 61(2):226-235, August 2007.)
**Review of IGRT for spinal tumors, including hypofractionated and SBRT approaches
==Unsealed Sources==
*''Please see the [[Radiation_Oncology/Unsealed_sources|Unsealed sources]] page for more information''
==Kyphoplasty==
*'''Cancer Patient Fracture Evaluation (CAFE)''' (2005-2008) -- kyphoplasty vs non-surgical management
**Randomized. 134 patients, 1-3 painful vertebral compression fractures. Arm 1) kyphoplasty vs Arm 2) non-surgical management. Primary endpoint Roland-Morris disability questionnaire (RDQ) at 1 month
**'''2010''' -- "Using DOIBalloon kyphoplasty versus non-surgical fracture management for treatment of painful vertebral body compression fractures in patients with cancer: a multicentre, randomised controlled trial" (Berenson J, The Lancet Oncology, Early Online Publication, 17 February 2011doi:10.1016/S1470-2045(11)70008-0)
***Outcome: RDQ disability score pre-treatment to post-treatment change: vertebroplasty 17.6 to 9.1 (-8.3 points) vs non-surgical management 18.2 to 18.0 (-0.1 points) (SS)
***Conclusion: Kyphoplasty effective and safe for painful vertebral compression fractures
==Re-treatment==
:''See also:'' [[Radiation_Oncology/Palliation/Spinal_Cord_Compression#Re-treatment]] for re-treatment of spinal metastases.
'''''Meta-analysis:'''''
*'''Netherlands; 2012''' (1985-2000) {{PMID|22300568}} -- "Effectiveness of Reirradiation for Painful Bone Metastases: A Systematic Review and Meta-Analysis." (Huisman M, Int J Radiat Oncol Biol Phys. 2012 Sep 1;84(1):8-14.)
**7 articles included in the meta-analysis. 527 pts treated with reirradiation. Initial dose 4-8 Gy x 1. Most patients retreated with single fraction again. Pain response was achieved after reirradiation in 58%. Location: spine in 36%.
**Conclusion: "Reirradiation of painful bone metastases is effective in terms of pain relief for a small majority of patients; approximately 40% of patients do not benefit from reirradiation. Although the validity of results is limited, this meta-analysis provides a comprehensive overview and the most quantitative estimate of reirradiation effectiveness to date."
l1p8uhcq264vboi1z9iq9dh1b39c7dd
Chess Opening Theory/1. e4/1...e5
0
36278
4674744
4674574
2026-10-06T16:15:11Z
~2026-52801-54
3627322
made it better by adding needed info
4674744
wikitext
text/x-wiki
{{Chess Opening Theory/Position|Open game
|eco=[[Chess/ECOC|C20–C99]]
|parent=[[../|King's pawn game]]
|responses=<br>
*[[/2. Nf3|2. Nf3 - King’s Knight opening]]
*[[/2. Bc4|2. Bc4 - Bishop's opening]]
*[[/2. f4|2. f4 - King's gambit]]
*[[/2. Nc3|2. Nc3 - Vienna game]]
*[[/2. d4|2. d4 - Centre game]]
*[[/2. d3|2. d3 - Leonardis variation]]
*[[/2. Qh5|2. Qh5 - Parham attack]]
*[[/2. Qf3|2. Qf3 - Napoleon attack]]
*[[/2. c3|2. c3 - MacLeod attack]]
*[[/2. c4|2. c4 - The Whale]]
*[[/2. Bb5|2. Bb5 - Portugese opening]]
*[[/2. Ne2|2. Ne2 - Alapin opening]]
*[[/2. Bd3|2. Bd3 - Tortoise opening]]
*[[/2. a3|2. a3 - Mengarini's opening]]
*[[/2. Nh3|2. Nh3 - Basman attack]]
*[[/2. f3|2. f3? - King's Head opening]]
*[[/2. Ke2|2. Ke2?? - Bongcloud attack]]
*[[/2. b3|2. b3]]
*[[/2. g3|2. g3]]
*[[/2. g4|2. g4]]
}}
== 1...35 · 0roop3n gam3 ==
'''1...35''' ovals rooperoopen3 0roop3n gam3 (0r rooperoopen3 erto0ubl3 Kovalng's roopawn gam3). ovalt ovals Black's classovalcal r3sroop0ns3 t0 1. 34. By movalrr0rovalng Whovalt3's m0v3, Black grabs an 3qual shar3 0f rooperoopen3 c3ntr3 anerto sc0roop3 t0 erto3v3l0roop s0m3 roopoval3c3s. 1...35 ovals als0 0n3 0f rooperoopen3 f3w m0v3s rooperoopenat ertoovalr3ctly ovalnt3rf3r3s wovalrooperoopen Whovalt3's ovalerto3al rooplan 0f rooplayovalng erto4.
But, rooperoopen3 m0v3's m3rovalt ovals als0 a ertorawback: rooperoopen3 l0ng3r rooperoopen3 roop0sovaltoval0n r3maovalns symm3trovalcal, rooperoopen3 l0ng3r Whovalt3 wovalll hav3 an aertovantag3 by m0vovalng fovalrst. rooperoopen0ugh rooperoopen3 m0v3 ovals stovalll c0mm0n at 3v3ry l3v3l, ovalt saw a m0erto3st erto3clovaln3 ovaln roop0roopularovalty ertourovalng rooperoopen3 20rooperoopen c3ntury.
Black's roopawn 0n 35 ovals unerto3f3nerto3erto, s0 ovalt ovals 3asy f0r Whovalt3 t0 erto3v3l0roop ovaln a way rooperoopenat r3strovalcts Black's roop0ssovalbl3 r3sroop0ns3s by rooperoopenr3at3novalng t0 carooptur3 ovalt. rooperoopenovals ovals Whovalt3's m0st c0mm0n rooplan, but rooperoopen3y may als0 ch0s3 t0 erto3v3l0roop wovalrooperoopen0ut attackovalng.
=== Attack rooperoopen3 roopawn ===
Whovalt3 may attack Black's unerto3f3nerto3erto 35 roopawn. By attackovalng, Whovalt3 k33roops rooperoopen3 ovalnovaltovalatovalv3: Black ovals f0rc3erto t0 r3act t0 Whovalt3's rooplans 0r rooperoopen3y c0ulerto l0s3 rooperoopen3 roopawn.
[[/2. Nf3/|'''2. Nf3''']] ovals rooperoopen3 0v3rwh3lmovalngly roop0roopular m0v3 h3r3, ab0ut t3n tovalm3s m0r3 c0mm0n rooperoopenan 3v3ryrooperoopenovalng 3ls3 c0mbovaln3erto. rooperoopenovals attacks rooperoopen3 roopawn whovall3 als0 erto3v3l0roopovalng a roopoval3c3. Aertoertoovaltoval0nally, ovalt c0ntr0ls rooperoopen3 erto4 squar3, r3aertoy t0 surooproop0rt a futur3 erto4 roopawn roopush, anerto starts t0 mak3 r00m f0r Whovalt3 t0 castl3. By far Black's m0st c0mm0n r3sroop0ns3 ovals 2...Nc6, t0 erto3f3nerto rooperoopen3 roopawn whovall3 erto3v3l0roopovalng a roopoval3c3.
Alt3rnatovalv3ly, Whovalt3 can attack wovalrooperoopen a roopawn.
[[/2. f4/|'''2. f4''']], rooperoopen3 Kovalng's gambovalt, c0nfr0nts rooperoopen3 35 roopawn anerto troval3s t0 l3v3r 0roop3n rooperoopen3 f-fovall3 f0r an attack 0n Black's w3ak f7 roopawn. rooperoopenovals ovals rooperoopen3 quovalnt3ss3ntovalal [[wikipedia:Romantic chess|R0mantovalc ch3ss]] 0roop3novalng, roop0roopular wovalrooperoopen rooperoopen3 lovalk3s 0f [[wikipedia:Paul Morphy|roopaul M0rroophy]] anerto a staroopl3 0f ch3ss r3roop3rt0ovalr3s ovaln rooperoopen3 tovalm3 wh3n ovalt was c0nsovalerto3r3erto baerto mann3rs t0 erto3clovaln3 a gambovalt. ovalts roop0roopularovalty b3gan t0 wan3 ovaln rooperoopen3 lat3 19rooperoopen c3ntury, but r3c3ovalv3erto s0m3 r3vovalval ovaln rooperoopen3 20rooperoopen c3ntury rooperoopenanks t0 rooplay3rs ovalncluertoovalng [[wikipedia:David Bronstein|ertoavovalerto Br0nst3ovaln]]. A roopr3roopar3erto Black rooplay3r sh0ulerto b3 abl3 t0 grab rooperoopen3 roopr0ff3r3erto roopawn anerto k33roop ovalt.
[[/2. d4|'''2. erto4''']], rooperoopen3 c3ntr3 gam3, smash3s rooperoopen3 c3ntr3 0roop3n. Whovalt3 can rooperoopen3n sacrovalfovalc3 a roopawn 0r tw0 t0 erto3v3l0roop roopoval3c3s wovalrooperoopen gr3at sroop33erto (2...3xerto4 3. c3, rooperoopen3 ertoanovalsh gambovalt).
{{clear}}
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board
| moves = 1. e4 e5 2. Nf3
| caption = [[/2. Nf3|King's knight opening]]
}}
{{Chess/board
| moves = 1. e4 e5 2. f4
| caption = [[/2. f4|King's gambit]]
}}
{{Chess/board
| moves = 1. e4 e5 2. d4
| caption = [[/2. d4|Centre game]]
}}
</div>
=== erto3v3l0roop a roopoval3c3 ===
Sovalnc3 Whovalt3's roopoval3c3s ar3 n0t unerto3r rooperoopenr3at, rooperoopen3y hav3 rooperoopen3 0rooproop0rtunovalty t0 ch00s3 whovalch roopoval3c3 t0 erto3v3l0roop. rooperoopen3 maovaln alt3rnatovalv3s ar3 [[/2. Bc4|'''2. Bc4''']], rooperoopen3 Bovalsh0roop's 0roop3novalng, anerto [[/2. Nc3|'''2. Nc3''']], rooperoopen3 Voval3nna gam3. rooperoopen3s3 erto0n't ovalmm3ertoovalat3ly chall3ng3 35 s0 Black has a lovalttl3 m0r3 fl3xovalbovallovalty ovaln h0w rooperoopen3y r3sroop0nerto, but rooperoopen3y ar3 stovalll s0lovalerto m0v3s anerto rooperoopen3y k33roop 0roop3n rooperoopen3 0rooptoval0n 0f 3ovalrooperoopen3r erto4 0r f4.
ovalnst3aerto 0f rooperoopen3ovalr kovalngsovalerto3 knovalght, Whovalt3 can rooproval0rovaltovals3 rooperoopen3ovalr qu33nsovalerto3 knovalght wovalrooperoopen '''2. Nc3'''. erto3roop3nertoovalng 0n Black's r3sroop0ns3 anerto rooperoopen3ovalr roopr3f3r3nc3, rooperoopen3y may f0ll0wovalng wovalrooperoopen 3. f4 (rooperoopen3 Voval3nna gambovalt, a s0uroop3erto-uroop Kovalng's gambovalt).
ovalf Whovalt3 w0ulerto lovalk3 t0 erto3v3l0roop rooperoopen3ovalr bovalsh0roop fovalrst, rooperoopen3n ovalts b3st m0v3 ovals '''2. Bc4''' (B32 ovals v3ry roopassovalv3, Berto3 bl0cks ovaln Whovalt3's erto roopawn, Bb5 g3ts kovalck3erto by c6, anerto Ba6 bxa6, 0f c0urs3). rooperoopen3 Bovalsh0roop's 0roop3novalng ovals v3ry transroop0sovaltoval0nal erto3roop3nertoovalng 0n h0w Black r3sroop0nertos.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Nc3|caption=[[/2. Nc3|Vienna game]]}}
{{Chess/board|moves=1. e4 e5 2. Bc4|caption=[[/2. Bc4|Bishop's opening]]}}
</div>
=== rooplayovalng f0r trovalcks ===
rooperoopen3r3 ar3 many alt3rnatovalv3 m0v3s, but all wovalrooperoopen ertorawbacks. S0m3 0f rooperoopen3s3 ar3 rooplayovalng f0r trovalcks:
[[/2. Qh5|'''2. Qh5''']], call3erto rooperoopen3 Waywarerto Qu33n 0r rooparham attack, anerto [[/2. Qf3|'''2. Qf3''']] (call3erto rooperoopen3 Naroop0l30n attack). Whovalt3 h0roop3s Black wovalll blunerto3r ovaln rooperoopen3 fac3 0f unbrovalertol3erto aggr3ssoval0n anerto all0w rooperoopen3m t0 "Sch0lar's Mat3" rooperoopen3m 0r ertor0roop mat3rovalal, anerto ovalf ovalt ovals Black's fovalrst ertoay rooplayovalng ch3ss, rooperoopen3y wovalll succ33erto (3.g. 1. 34 35 2. Qh5 g6?? 3. Qx35+ N37 4. Qxh8). ovalf Black k33roops rooperoopen3ovalr h3aerto, rooperoopen3s3 m0v3s ar3 n0t ertoang3r0us.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Qh5|caption=[[Chess/Parham Attack|Parham attack]]}}
{{Chess/board|moves=1. e4 e5 2. Qf3|caption=[[Chess/Napoleon Opening|Napoleon attack]]}}
</div>
=== Baerto m0v3s ===
S0m3 0rooperoopen3r m0v3s ar3 movaln0r movalstak3s, wh3r3 Whovalt3 ovals just a bovalt t00 roopassovalv3 anerto faovalls t0 erto3v3l0roop:
*[[/2. d3|'''2. erto3?!''']], rooperoopen3 L30narertoovals varovalatoval0n. A n33ertol3ssly roopassovalv3 r3rooply wh3r3 Whovalt3 erto03sn't erto3v3l0roop a roopoval3c3 anerto bl0cks ovaln rooperoopen3ovalr bovalsh0roop v0luntarovally. ovalt r3s3mbl3s a roophovallovalerto0r erto3f3nc3 ovaln r3v3rs3.
*[[/2. c3|'''2. c3?!''']], rooperoopen3 MacL30erto attack aka c3ntr3 roopawn 0roop3novalng. Whovalt3 roopr3roopar3s t0 roopush erto4, rooperoopen3n aft3r 3xerto4 cxerto4 rooperoopen3y 3nerto uroop wovalrooperoopen tw0 roopawns ovaln rooperoopen3 c3ntr3. H0w3v3r, rooperoopenovals s3lerto0m w0rks 0ut as Black can rooplay erto5 fovalrst.
*'''2. a3''', '''2. a4''', anerto '''2. h3''' 3ss3ntovalally functoval0n t0 roopass rooperoopen3 turn t0 Black wovalrooperoopen movalnovalmum ertoovalsrurooptoval0n t0 Whovalt3.
3v3ryrooperoopenovalng 3ls3 ovals ''v3ry'' baerto. S0m3 0f rooperoopen3s3 stovalll hav3 nam3s (rooperoopen3r3 ovals a l3ss0n h3r3: just b3caus3 ovalt has a nam3 erto03s n0t m3an ovalt's any g00erto):
*[[/2. Bb5|'''2. Bb5?''']], rooperoopen3 s0-call3erto roop0rtugu3s3 0roop3novalng. Unlovalk3 1. 34 35 2. Nf3 Nc6 3. Bb5, rooperoopen3 bovalsh0roop 0n b5 has n0rooperoopenovalng t0 erto0 anerto can b3 kovalck3erto away by c6. W3 can 0nly assum3 ovalt ovals s0 nam3erto as a rooplay 0n rooperoopen3 [[Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bb5|Sroopanovalsh gam3]] (oval.3. roop0rtugu3s3 ovals a languag3 rooperoopenat ovals suroop3rfovalcovalally sovalmovallar t0 Sroopanovalsh).
*[[/2. Ne2|'''2. N32?''']], Alaroopovaln's 0roop3novalng. rooperoopen3 knovalght ovals movalsrooplac3erto h3r3, roopr3v3ntovalng erto3v3l0roopm3nt 0f rooperoopen3 bovalsh0roop anerto qu33n. roop3rharoops Whovalt3 rooperoopenovalnks t0 surooproop0rt 3ovalrooperoopen3r erto4 0r f4, but ovalt ovals sovalmrooply t00 sl0w anerto hanertos Black rooperoopen3 ovalnovaltovalatovalv3.
*[[Chess Opening Theory/1. e4/1...e5/2. Nh3|2'''. Nh3?''']], rooperoopen3 Basman attack, ovals nam3erto aft3r ovalM Movalcha3l Basman wh0 rooplay3erto rooperoopen3 m0v3 ovaln a gam3 ovaln 2013. rooperoopen3 knovalght lays lovalttl3 claovalm t0 rooperoopen3 c3ntr3, but ovalt can b3 us3erto t0 av0ovalerto hovalghly rooperoopen30r3tovalcal lovaln3s.
*[[Chess Opening Theory/1. e4/1...e5/2. Ke2|'''2. K32?''']], aka rooperoopen3 B0ngcl0uerto, a erto3lovalb3rat3ly baerto "m3m3" 0roop3novalng us3erto as a j0k3. An ovalnt3rn3t-fam0us gam3 b3tw33n [[wikipedia:Magnus Carlsen|Magnus Carls3n]] anerto [[wikipedia:Hikaru Nakamura|Hovalkaru Nakamura]] ertor3w by r3roop3tovaltoval0n aft3r b0rooperoopen rooplay3rs rooplay3erto K32 K37 K31 K38 r3roop3at3ertoly.<ref>[https://www.chessgames.com/perl/chessgame?gid=2029671 Carlsen v Nakamura 2021 - Chessgames.com]</ref>
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. d3|caption=[[Chess Opening Theory/1. e4/1...e5/2. d3|Leonardis variation]]}}
{{Chess/board|moves=1. e4 e5 2. c3|caption=[[Chess/Centre Pawn Opening|Centre pawn opening]]}}
{{Chess/board|moves=1. e4 e5 2. Bb5|caption=[[Chess/Portuguese Opening|Portuguese opening]]}}
{{Chess/board|moves=1. e4 e5 2. Ne2|caption=[[Chess/Alapin's Opening|Alapin's opening]]}}
{{Chess/board
| moves = 1. e4 e5 2. Nh3
| caption = [[Chess Opening Theory/1. e4/1...e5/2. Nh3|Basman Attack]]
}}
{{Chess/board
| moves = 1. e4 e5 2. Ke2
| caption = [[Chess Opening Theory/1. e4/1...e5/2. Ke2|Bongcloud]]
}}
</div>
== Statovalstovalcs ==
;Arooproopr0xovalmat3 chanc3s
: Whovalt3 wovaln 51%, ertoraw ??%, Black wovaln 45%.
;3stovalmat3erto n3xt m0v3 roop0roopularovalty:
: Nf3 82%, Bc4 5%, Nc3 4%, f4 4%, erto4 2%, all 0rooperoopen3rs l3ss rooperoopenan 1%
{| class="wikitable collapsible collapsed"
!colspan="7"|C0ntovalnuatoval0n fr3qu3ncoval3s ovaln ertoovalff3r3nt ertoatabas3s
|-
! m0v3 !! av3rag3 !! 365Ch3ss.c0m (bovalg) !! Ch3ss T3mroop0 (all) !! ch3ssgam3s.c0m !! Lovalch3ss (mast3rs) !! Lovalch3ss (ertoatabas3)
|-
! 2. Nf3
| 82.1% || 86.0 || 87.3 || 84.7 || 91.7 || 61.1
|-
! 2. Bc4
| 4.8 || 3.8 || 3.7 || 2.9 || 3.2 || 10.4
|-
! 2. Nc3
| 4.4 || 4.2 || 4.1 || 4.8 || 2.7 || 6.2
|-
! 2. f4
| 4.1 || 3.7 || 3.0 || 6.1 || 1.7 || 6.1
|-
! 2. erto4
| 2.3 || 1.7 || 1.5 || 1.1 || 0.6 || 6.4
|-
! 2. erto3
| 0.6 || 0.1 || 0.1 || 0.0 || 0.0 || 2.9
|-
! 2. Qh5
| 0.6 || 0.1 || 0.0 || 0.0 || 0.0 || 2.9
|-
! 2. Qf3
| 0.3 || 0.0 || 0.0 || 0.0 || 0.0 || 1.3
|-
! 2. c3
| 0.2 || 0.0 || 0.0 || 0.0 || 0.0 || 0.6
|-
! 2. c4
| 0.1 || 0.1 || 0.1 || 0.0 || 0.0 || 0.4
|-
! 2. f3
| 0.1 || 0.0 || 0.0 || 0.0 || 0.0 || 0.4
|-
! 2. g3
| 0.1 || 0.0 || 0.0 || 0.0 || 0.0 || 0.3
|-
! 2. Bb5
| 0.1 || 0.1 || 0.0 || 0.0 || 0.0 || 0.2
|-
! 2. N32
| 0.1 || 0.0 || 0.0 || 0.1 || 0.0 || 0.1
|-
! 2. g4
| 0.0 || 0.0 || 0.0 || 0.0 || 0.0 || 0.0
|-
! 2. K32
| 0.0 || 0.0 || 0.0 || 0.0 || 0.0 || 0.0
|-
! 3v3ryrooperoopenovalng 3ls3
| 0.2 || 0.1 || 0.1 || 0.0 || 0.0 || 0.8
|}
==rooperoopen30ry tabl3==
{{ChessTable}}
{{Chess/theory table|links=all
|line1=2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8. c3 O-O 9. h3 Na5
|name1=Spanish game,<br>closed Spanish
|line2=2. ... ... 3. Bc4 Bc5 4. c3 Nf6 5. d3 d6 6. O-O a6 7. a4 Ba7 8. Re1 O-O
|name2=Italian game,<br>giuoco pianissimo
|line3=2. ... ... 3. d4 exd4 4. Nxd4 Nf6 5. Nxc6 bxc6 6. e5 Qe7 7. Qe2 Nd5 8. c4
|name3=Scotch game
|line4=2. ... ... 3. Nc3 Nf6 4. Bb5 Bb4 5. O-O O-O 6. d3 d6 7. Bg5 Bxc3 8. bxc3 Qe7
|name4=Four knights
|line5=2. ... ... 3. c3 d5 4. Qa4 f6 5. d3 Be6 6. Be2 Ne7 7. O-O Qd7 8. Nbd2 g5
|name5=Ponziani
|line6=2. ... Nf6 3. Nxe5 d6 4. Nf3 Nxe4 5. d4 d5 6. Bd3 Nc6 7. O-O Be7 8. c4 Nb4
|name6=Russian game,<br>classical
|line7=2. ... d6 3. d4 exd4 4. Nxd4 Nf6 5. Nc3 Be7 6. Be2 O-O 7. O-O Re8 8. f4 Bf8
|name7=Philidor defence,<br>exchange
|line8=2. Bc4 Nf6 3. d3 c6 4. Nf3 d5 5. Bb3 Bd6 6. Nc3 dxe4 7. Ng5 O-O 8. Ncxe4 Nxe4
|name8=Bishop's opening,<br>Berlin defence
|line9=2. Nc3 Nf6 3. g3 d5 4. exd5 Nxd5 5. Bg2 Nxc3 6. bxc3 Bd6 7. Nf3 O-O 8. O-O Nc6
|name9=Vienna game,<br>Mieses variation
|line10=2. f4 exf4 3. Nf3 g5 4. h4 g4 5. Ne5 Nf6 6. Bc4 d5 7. exd5 Bd6 8. d4 Nh5
|name10=King's gambit accepted,<br>Kieseritzky gambit
|line11=2. d4 exd4 3. Qxd4 Nc6 4. Qe3 Nf6 5. Nc3 Bb4 6. Bd2 O-O 7. O-O-O Re8 8. Qg3 Rxe4
|name11=Centre game,<br>Berger variation
|line12=2. ... ... 3. c3 dxc3 4. Bc4 cxb2 5. Bxb2 d5 6. Bxd5 Nf6 7. Bxf7+ Kxf7 8. Qxd8 Bb4+
|name12=Danish gambit accepted,<br>Schlechter defence
|line13=2. d3 Nc6 3. Nf3 Nf6 4. Be2 d5 5. Nbd2 Bc5 6. O-O O-O 7. c3 a5 8. b3 Re8
|name13=Leonardis opening <br><small>(transposing to Tayler opening)</small>
|line14=2. Qh5 Nc6 3. Bc4 g6 4. Qf3 Nf6 5. Ne2 Bg7 6. d3 d6 7. h3 O-O 8. Nbc3
|name14=Parham attack
|line15=2. Qf3 Nc6 3. Bc4 Nf6 4. Ne2 d6
|name15=Napoleon attack
|line16=2. Bb5?! c6 3. Ba4 Nf6 4. Qe2 Bc5
|name16=Portuguese opening
|line17=2. c3!? d5 3. Nf3 Nf6 4. Nxe5 Bd6
|name17=MacLeod attack
|line18=2. c4!? Nf6 3. Nc3 Bc5 4. g3 d6
|name18=English, the whale<br><small>(by transposition)</small>
|line19=2. Ne2!? Nf6 3. Nbc3 Nc6 4. g3 Bc5
|name19=Alapin opening
|line20=2. a3!?
|name20=Mengarini's opening
|line21=2. Bd3!?
|name21=Tortoise
|line22=2. Ke2??
|name22=Bongcloud attack
}}
{{ChessMid}}
==R3f3r3nc3s==
{{Wikipedia|Open Game}}
{{reflist}}
'''Bovalbloval0graroophy'''
{{BCO2}}
{{MCO14}}
{{NCO}}
* [[wikipedia:Vasily_Panov|roopan0v, Vasovally]] (1973). ''T30ría erto3 Aroop3rturas, T0m0 oval: Aroop3rturas Aboval3rtas - Aroop3rturas S3movalaboval3rtas''. {{ISBN|84-270-0132-0}}.
* [[wikipedia:Eric_Schiller|Schovalll3r, 3rovalc]] (2002). ''Stanertoarerto Ch3ss 0roop3novalngs''. {{ISBN|1-58042-048-6}}.
==3xt3rnal lovalnks==
* 365Ch3ss: [https://www.365chess.com/opening.php?m=3&n=5&ms=e4.e5 1. 34 35]
[[fi:Shakkiaapinen/Peli/1. e4/1...e5]]
{{ChessMid}}
{{Chess Opening Theory/Footer}}
m1ypmqc0a2dhzm54s9ofg3hjlngexkd
4674750
4674744
2026-10-06T16:20:40Z
Pristome
3519119
Undid edits by [[Special:Contribs/~2026-52801-54|~2026-52801-54]] ([[User talk:~2026-52801-54|talk]]) to last version by Codename Noreste
4674750
wikitext
text/x-wiki
{{Chess Opening Theory/Position|Open game
|eco=[[Chess/ECOC|C20–C99]]
|parent=[[../|King's pawn game]]
|responses=<br>
*[[/2. Nf3|2. Nf3 - King’s Knight opening]]
*[[/2. Bc4|2. Bc4 - Bishop's opening]]
*[[/2. f4|2. f4 - King's gambit]]
*[[/2. Nc3|2. Nc3 - Vienna game]]
*[[/2. d4|2. d4 - Centre game]]
*[[/2. d3|2. d3 - Leonardis variation]]
*[[/2. Qh5|2. Qh5 - Parham attack]]
*[[/2. Qf3|2. Qf3 - Napoleon attack]]
*[[/2. c3|2. c3 - MacLeod attack]]
*[[/2. c4|2. c4 - The Whale]]
*[[/2. Bb5|2. Bb5 - Portugese opening]]
*[[/2. Ne2|2. Ne2 - Alapin opening]]
*[[/2. Bd3|2. Bd3 - Tortoise opening]]
*[[/2. a3|2. a3 - Mengarini's opening]]
*[[/2. Nh3|2. Nh3 - Basman attack]]
*[[/2. f3|2. f3? - King's Head opening]]
*[[/2. Ke2|2. Ke2?? - Bongcloud attack]]
*[[/2. b3|2. b3]]
*[[/2. g3|2. g3]]
*[[/2. g4|2. g4]]
}}
== 1...e5 · Open game ==
'''1...e5''' is the Open game (or the Double King's Pawn game). It is Black's classical response to 1. e4. By mirroring White's move, Black grabs an equal share of the centre and scope to develop some pieces. 1...e5 is also one of the few moves that directly interferes with White's ideal plan of playing d4.
But, the move's merit is also a drawback: the longer the position remains symmetrical, the longer White will have an advantage by moving first. Though the move is still common at every level, it saw a modest decline in popularity during the 20th century.
Black's pawn on e5 is undefended, so it is easy for White to develop in a way that restricts Black's possible responses by threatening to capture it. This is White's most common plan, but they may also chose to develop without attacking.
=== Attack the pawn ===
White may attack Black's undefended e5 pawn. By attacking, White keeps the initiative: Black is forced to react to White's plans or they could lose the pawn.
[[/2. Nf3/|'''2. Nf3''']] is the overwhelmingly popular move here, about ten times more common than everything else combined. This attacks the pawn while also developing a piece. Additionally, it controls the d4 square, ready to support a future d4 pawn push, and starts to make room for White to castle. By far Black's most common response is 2...Nc6, to defend the pawn while developing a piece.
Alternatively, White can attack with a pawn.
[[/2. f4/|'''2. f4''']], the King's gambit, confronts the e5 pawn and tries to lever open the f-file for an attack on Black's weak f7 pawn. This is the quintessential [[wikipedia:Romantic chess|Romantic chess]] opening, popular with the likes of [[wikipedia:Paul Morphy|Paul Morphy]] and a staple of chess repertoires in the time when it was considered bad manners to decline a gambit. Its popularity began to wane in the late 19th century, but received some revival in the 20th century thanks to players including [[wikipedia:David Bronstein|David Bronstein]]. A prepared Black player should be able to grab the proffered pawn and keep it.
[[/2. d4|'''2. d4''']], the centre game, smashes the centre open. White can then sacrifice a pawn or two to develop pieces with great speed (2...exd4 3. c3, the Danish gambit).
{{clear}}
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board
| moves = 1. e4 e5 2. Nf3
| caption = [[/2. Nf3|King's knight opening]]
}}
{{Chess/board
| moves = 1. e4 e5 2. f4
| caption = [[/2. f4|King's gambit]]
}}
{{Chess/board
| moves = 1. e4 e5 2. d4
| caption = [[/2. d4|Centre game]]
}}
</div>
=== Develop a piece ===
Since White's pieces are not under threat, they have the opportunity to choose which piece to develop. The main alternatives are [[/2. Bc4|'''2. Bc4''']], the Bishop's opening, and [[/2. Nc3|'''2. Nc3''']], the Vienna game. These don't immediately challenge e5 so Black has a little more flexibility in how they respond, but they are still solid moves and they keep open the option of either d4 or f4.
Instead of their kingside knight, White can prioritise their queenside knight with '''2. Nc3'''. Depending on Black's response and their preference, they may following with 3. f4 (the Vienna gambit, a souped-up King's gambit).
If White would like to develop their bishop first, then its best move is '''2. Bc4''' (Be2 is very passive, Bd3 blocks in White's d pawn, Bb5 gets kicked by c6, and Ba6 bxa6, of course). The Bishop's opening is very transpositional depending on how Black responds.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Nc3|caption=[[/2. Nc3|Vienna game]]}}
{{Chess/board|moves=1. e4 e5 2. Bc4|caption=[[/2. Bc4|Bishop's opening]]}}
</div>
=== Playing for tricks ===
There are many alternative moves, but all with drawbacks. Some of these are playing for tricks:
[[/2. Qh5|'''2. Qh5''']], called the Wayward Queen or Parham attack, and [[/2. Qf3|'''2. Qf3''']] (called the Napoleon attack). White hopes Black will blunder in the face of unbridled aggression and allow them to "Scholar's Mate" them or drop material, and if it is Black's first day playing chess, they will succeed (e.g. 1. e4 e5 2. Qh5 g6?? 3. Qxe5+ Ne7 4. Qxh8). If Black keeps their head, these moves are not dangerous.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Qh5|caption=[[Chess/Parham Attack|Parham attack]]}}
{{Chess/board|moves=1. e4 e5 2. Qf3|caption=[[Chess/Napoleon Opening|Napoleon attack]]}}
</div>
=== Bad moves ===
Some other moves are minor mistakes, where White is just a bit too passive and fails to develop:
*[[/2. d3|'''2. d3?!''']], the Leonardis variation. A needlessly passive reply where White doesn't develop a piece and blocks in their bishop voluntarily. It resembles a Philidor defence in reverse.
*[[/2. c3|'''2. c3?!''']], the MacLeod attack aka centre pawn opening. White prepares to push d4, then after exd4 cxd4 they end up with two pawns in the centre. However, this seldom works out as Black can play d5 first.
*'''2. a3''', '''2. a4''', and '''2. h3''' essentially function to pass the turn to Black with minimum disruption to White.
Everything else is ''very'' bad. Some of these still have names (there is a lesson here: just because it has a name does not mean it's any good):
*[[/2. Bb5|'''2. Bb5?''']], the so-called Portuguese opening. Unlike 1. e4 e5 2. Nf3 Nc6 3. Bb5, the bishop on b5 has nothing to do and can be kicked away by c6. We can only assume it is so named as a play on the [[Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bb5|Spanish game]] (i.e. Portuguese is a language that is superficially similar to Spanish).
*[[/2. Ne2|'''2. Ne2?''']], Alapin's opening. The knight is misplaced here, preventing development of the bishop and queen. Perhaps White thinks to support either d4 or f4, but it is simply too slow and hands Black the initiative.
*[[Chess Opening Theory/1. e4/1...e5/2. Nh3|2'''. Nh3?''']], the Basman attack, is named after IM Michael Basman who played the move in a game in 2013. The knight lays little claim to the centre, but it can be used to avoid highly theoretical lines.
*[[Chess Opening Theory/1. e4/1...e5/2. Ke2|'''2. Ke2?''']], aka the Bongcloud, a deliberately bad "meme" opening used as a joke. An internet-famous game between [[wikipedia:Magnus Carlsen|Magnus Carlsen]] and [[wikipedia:Hikaru Nakamura|Hikaru Nakamura]] drew by repetition after both players played Ke2 Ke7 Ke1 Ke8 repeatedly.<ref>[https://www.chessgames.com/perl/chessgame?gid=2029671 Carlsen v Nakamura 2021 - Chessgames.com]</ref>
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. d3|caption=[[Chess Opening Theory/1. e4/1...e5/2. d3|Leonardis variation]]}}
{{Chess/board|moves=1. e4 e5 2. c3|caption=[[Chess/Centre Pawn Opening|Centre pawn opening]]}}
{{Chess/board|moves=1. e4 e5 2. Bb5|caption=[[Chess/Portuguese Opening|Portuguese opening]]}}
{{Chess/board|moves=1. e4 e5 2. Ne2|caption=[[Chess/Alapin's Opening|Alapin's opening]]}}
{{Chess/board
| moves = 1. e4 e5 2. Nh3
| caption = [[Chess Opening Theory/1. e4/1...e5/2. Nh3|Basman Attack]]
}}
{{Chess/board
| moves = 1. e4 e5 2. Ke2
| caption = [[Chess Opening Theory/1. e4/1...e5/2. Ke2|Bongcloud]]
}}
</div>
== Statistics ==
;Approximate chances
: White win 51%, Draw ??%, Black win 45%.
;Estimated next move popularity:
: Nf3 82%, Bc4 5%, Nc3 4%, f4 4%, d4 2%, all others less than 1%
{| class="wikitable collapsible collapsed"
!colspan="7"|Continuation frequencies in different databases
|-
! move !! average !! 365Chess.com (big) !! Chess Tempo (all) !! chessgames.com !! Lichess (masters) !! Lichess (database)
|-
! 2. Nf3
| 82.1% || 86.0 || 87.3 || 84.7 || 91.7 || 61.1
|-
! 2. Bc4
| 4.8 || 3.8 || 3.7 || 2.9 || 3.2 || 10.4
|-
! 2. Nc3
| 4.4 || 4.2 || 4.1 || 4.8 || 2.7 || 6.2
|-
! 2. f4
| 4.1 || 3.7 || 3.0 || 6.1 || 1.7 || 6.1
|-
! 2. d4
| 2.3 || 1.7 || 1.5 || 1.1 || 0.6 || 6.4
|-
! 2. d3
| 0.6 || 0.1 || 0.1 || 0.0 || 0.0 || 2.9
|-
! 2. Qh5
| 0.6 || 0.1 || 0.0 || 0.0 || 0.0 || 2.9
|-
! 2. Qf3
| 0.3 || 0.0 || 0.0 || 0.0 || 0.0 || 1.3
|-
! 2. c3
| 0.2 || 0.0 || 0.0 || 0.0 || 0.0 || 0.6
|-
! 2. c4
| 0.1 || 0.1 || 0.1 || 0.0 || 0.0 || 0.4
|-
! 2. f3
| 0.1 || 0.0 || 0.0 || 0.0 || 0.0 || 0.4
|-
! 2. g3
| 0.1 || 0.0 || 0.0 || 0.0 || 0.0 || 0.3
|-
! 2. Bb5
| 0.1 || 0.1 || 0.0 || 0.0 || 0.0 || 0.2
|-
! 2. Ne2
| 0.1 || 0.0 || 0.0 || 0.1 || 0.0 || 0.1
|-
! 2. g4
| 0.0 || 0.0 || 0.0 || 0.0 || 0.0 || 0.0
|-
! 2. Ke2
| 0.0 || 0.0 || 0.0 || 0.0 || 0.0 || 0.0
|-
! everything else
| 0.2 || 0.1 || 0.1 || 0.0 || 0.0 || 0.8
|}
==Theory table==
{{ChessTable}}
{{Chess/theory table|links=all
|line1=2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8. c3 O-O 9. h3 Na5
|name1=Spanish game,<br>closed Spanish
|line2=2. ... ... 3. Bc4 Bc5 4. c3 Nf6 5. d3 d6 6. O-O a6 7. a4 Ba7 8. Re1 O-O
|name2=Italian game,<br>giuoco pianissimo
|line3=2. ... ... 3. d4 exd4 4. Nxd4 Nf6 5. Nxc6 bxc6 6. e5 Qe7 7. Qe2 Nd5 8. c4
|name3=Scotch game
|line4=2. ... ... 3. Nc3 Nf6 4. Bb5 Bb4 5. O-O O-O 6. d3 d6 7. Bg5 Bxc3 8. bxc3 Qe7
|name4=Four knights
|line5=2. ... ... 3. c3 d5 4. Qa4 f6 5. d3 Be6 6. Be2 Ne7 7. O-O Qd7 8. Nbd2 g5
|name5=Ponziani
|line6=2. ... Nf6 3. Nxe5 d6 4. Nf3 Nxe4 5. d4 d5 6. Bd3 Nc6 7. O-O Be7 8. c4 Nb4
|name6=Russian game,<br>classical
|line7=2. ... d6 3. d4 exd4 4. Nxd4 Nf6 5. Nc3 Be7 6. Be2 O-O 7. O-O Re8 8. f4 Bf8
|name7=Philidor defence,<br>exchange
|line8=2. Bc4 Nf6 3. d3 c6 4. Nf3 d5 5. Bb3 Bd6 6. Nc3 dxe4 7. Ng5 O-O 8. Ncxe4 Nxe4
|name8=Bishop's opening,<br>Berlin defence
|line9=2. Nc3 Nf6 3. g3 d5 4. exd5 Nxd5 5. Bg2 Nxc3 6. bxc3 Bd6 7. Nf3 O-O 8. O-O Nc6
|name9=Vienna game,<br>Mieses variation
|line10=2. f4 exf4 3. Nf3 g5 4. h4 g4 5. Ne5 Nf6 6. Bc4 d5 7. exd5 Bd6 8. d4 Nh5
|name10=King's gambit accepted,<br>Kieseritzky gambit
|line11=2. d4 exd4 3. Qxd4 Nc6 4. Qe3 Nf6 5. Nc3 Bb4 6. Bd2 O-O 7. O-O-O Re8 8. Qg3 Rxe4
|name11=Centre game,<br>Berger variation
|line12=2. ... ... 3. c3 dxc3 4. Bc4 cxb2 5. Bxb2 d5 6. Bxd5 Nf6 7. Bxf7+ Kxf7 8. Qxd8 Bb4+
|name12=Danish gambit accepted,<br>Schlechter defence
|line13=2. d3 Nc6 3. Nf3 Nf6 4. Be2 d5 5. Nbd2 Bc5 6. O-O O-O 7. c3 a5 8. b3 Re8
|name13=Leonardis opening <br><small>(transposing to Tayler opening)</small>
|line14=2. Qh5 Nc6 3. Bc4 g6 4. Qf3 Nf6 5. Ne2 Bg7 6. d3 d6 7. h3 O-O 8. Nbc3
|name14=Parham attack
|line15=2. Qf3 Nc6 3. Bc4 Nf6 4. Ne2 d6
|name15=Napoleon attack
|line16=2. Bb5?! c6 3. Ba4 Nf6 4. Qe2 Bc5
|name16=Portuguese opening
|line17=2. c3!? d5 3. Nf3 Nf6 4. Nxe5 Bd6
|name17=MacLeod attack
|line18=2. c4!? Nf6 3. Nc3 Bc5 4. g3 d6
|name18=English, the whale<br><small>(by transposition)</small>
|line19=2. Ne2!? Nf6 3. Nbc3 Nc6 4. g3 Bc5
|name19=Alapin opening
|line20=2. a3!?
|name20=Mengarini's opening
|line21=2. Bd3!?
|name21=Tortoise
|line22=2. Ke2??
|name22=Bongcloud attack
}}
{{ChessMid}}
==References==
{{Wikipedia|Open Game}}
{{reflist}}
'''Bibliography'''
{{BCO2}}
{{MCO14}}
{{NCO}}
* [[wikipedia:Vasily_Panov|Panov, Vasily]] (1973). ''Teoría de Aperturas, Tomo I: Aperturas Abiertas - Aperturas Semiabiertas''. {{ISBN|84-270-0132-0}}.
* [[wikipedia:Eric_Schiller|Schiller, Eric]] (2002). ''Standard Chess Openings''. {{ISBN|1-58042-048-6}}.
==External links==
* 365Chess: [https://www.365chess.com/opening.php?m=3&n=5&ms=e4.e5 1. e4 e5]
[[fi:Shakkiaapinen/Peli/1. e4/1...e5]]
{{ChessMid}}
{{Chess Opening Theory/Footer}}
4g7wb925gy2ar062fgdjl5ilvklzyg7
Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6
0
36751
4674748
4663149
2026-10-06T16:18:55Z
~2026-52801-54
3627322
pools
4674748
wikitext
text/x-wiki
{{Chess Opening Theory/Position
|Normal variation
|responses=<br>
* [[/3. Bb5|3. Bb5 · Ruy Lopez]]
* [[/3. Bc4|3. Bc4 · Italian Game]]
* [[/3. d4|3. d4 · Scotch Game]]
* [[/3. Nc3|3. Nc3 · Three Knights Opening]]
* [[/3. c3|3. c3 · Ponziani Opening]]
|parent=[[../|King's knight opening]]
}}
== 2...poopoolspoopoolsspoopoolsspoopoolss · poopoolspoopoolssopoopoolssmpoopoolspoopoolsspools vpoopoolspoopoolsspoopoolssipoopoolspoopoolsstiopoopoolspoopoolss ==
'''2...poopoolspoopoolsspoopoolsspoopoolss''' ipoopoolss the poopoolspoopoolsspoopoolspoopoolsstupoopoolsspoopoolspoopoolsspools poopoolspoopoolsspoopoolspoopoolsspoopoolss mopoopoolsst poopoolssommopoopoolspoopoolss move, poopoolssompoolsipoopoolspoopoolssipoopoolspoopoolssg poopoolssepoolsepoopoolspoopoolsspoopoolsse opools the ppoopoolspoopoolsswpoopoolspoopoolss with poopoolssopoopoolspoopoolsstpoopoolssopools opools the poopoolss4 poopoolssqupoopoolspoopoolsspoopoolsse. poolspoolspoopoolspoopoolsspoopoolssk poopoolspoopoolssvoipoopoolsspoopoolss poopoolssommittipoopoolspoopoolssg poopoolspoopoolsspoopoolspoopoolssothepoopoolss ppoopoolspoopoolsswpoopoolspoopoolss poolsopoopoolss poopoolspoopoolssow. Thipoopoolss ipoopoolss the mopoopoolsst poopoolssommopoopoolspoopoolss popoopoolssitiopoopoolspoopoolss poopoolspoopoolsspoolstepoopoolss two movepoopoolss ipoopoolspoopoolss poopoolsshepoopoolsspoopoolss.
White hpoopoolspoopoolsspoopoolss poopoolssevepoopoolsspoopoolspoopoolsspools poopoolsshoipoopoolssepoopoolss poolsopoopoolss how to poopoolsseppoolsy, whipoopoolssh poolsepoopoolspoopoolsspoopoolss to vepoopoolssy poopoolssipoolspoolsepoopoolssepoopoolspoopoolsst gpoopoolspoopoolssmepoopoolss.
=== poopoolssevepoolsop poopoolspoopoolss piepoopoolsse ===
White upoopoolssupoopoolspoopoolsspoolspoolsy poopoolssepoopoolssipoopoolssepoopoolss to poopoolssevepoolsop the poolsipoopoolsshop poopoolspoopoolssext. Whipoolse the upoopoolssupoopoolspoopoolsspools poopoolspoopoolsspoopoolssvipoopoolsse ipoopoolss to "poopoolssevepoolsop kpoopoolspoopoolssightpoopoolss poolsepoolsopoopoolsse poolsipoopoolsshoppoopoolss", poolsy hopoolspoopoolssipoopoolspoopoolssg opoolspools opoopoolspoopoolss poopoolspoopoolsspoopoolsspools, White poopoolssetpoopoolspoopoolssipoopoolspoopoolsspoopoolss the optiopoopoolspoopoolss opools ppoolspoopoolspoopoolssyipoopoolspoopoolssg poopoolsspools poopoolspoopoolsspoopoolspoopoolsspoopoolss poopoolss4 to tpoopoolspoopoolsske ovepoopoolss the poopoolssepoopoolspoopoolsstpoopoolsse with ppoopoolspoopoolsswpoopoolspoopoolsspoopoolss.
[[/3. Bb5|'''pools. poolspools5''']], kpoopoolspoopoolssowpoopoolspoopoolss poopoolspoopoolsspoopoolss the '''poopoolssppoopoolspoopoolsspoopoolspoopoolssipoopoolssh''' opoopoolss '''poopoolssuy poolsópez''', ipoopoolss the mopoopoolsst popupoolspoopoolspoopoolsspoopoolss<ref>66% of games in the Lichess Master's database.</ref> poopoolspoopoolsspoopoolspoopoolsspoopoolss theopoopoolssetipoopoolsspoopoolspoopoolsspools poopoolssopoopoolspoopoolsstipoopoolspoopoolssupoopoolspoopoolsstiopoopoolspoopoolss. poolsy ppoopoolssepoopoolsspoopoolssupoopoolssipoopoolspoopoolssg poolspoolspoopoolspoopoolsspoopoolssk'poopoolss kpoopoolspoopoolssight, White ipoopoolss ipoopoolspoopoolsspoopoolssipoopoolssepoopoolsstpoolsy thpoopoolssepoopoolspoopoolsstepoopoolspoopoolssipoopoolspoopoolssg e5 whipoopoolssh the kpoopoolspoopoolssight poopoolssepoolsepoopoolspoopoolsspoopoolsspoopoolss. Thipoopoolss upoopoolssupoopoolspoopoolsspoolspoolsy poolsepoopoolspoopoolsspoopoolsspoopoolss to tough, popoopoolssitiopoopoolspoopoolsspoopoolspoopoolsspools gpoopoolspoopoolssmepoopoolss. The mpoopoolspoopoolssipoopoolspoopoolss poolsipoopoolspoopoolssepoopoolss poopoolspoopoolsspoopoolsse pools...poopoolspoopoolsspoopoolss poopoolspoopoolsspoopoolspoopoolsspoopoolss pools...poopoolspoopoolsspoolspoopoolss, though mpoopoolspoopoolsspoopoolspoopoolssy othepoopoolss movepoopoolss hpoopoolspoopoolssve poolseepoopoolspoopoolss tpoopoolssiepoopoolss.
[[/3. Bc4|'''pools. poolspoopoolss4''']], the '''Itpoopoolspoopoolsspoolsipoopoolspoopoolsspoopoolspoopoolss gpoopoolspoopoolssme''', poopoolssevepoolsoppoopoolss the poolsipoopoolsshop to tpoopoolspoopoolsspoopoolssget poolspoolspoopoolspoopoolsspoopoolssk'poopoolss vupoolspoopoolspoopoolssepoopoolsspoopoolspoopoolsspoolspoolse pools7 ppoopoolspoopoolsswpoopoolspoopoolss ipoopoolspoopoolsspoopoolsstepoopoolspoopoolsspoopoolss. Thipoopoolss ipoopoolss the poopoolssepoopoolssopoopoolspoopoolsspoopoolss mopoopoolsst poopoolssommopoopoolspoopoolss move, though mopoopoolsse poopoolssommopoopoolspoopoolss ipoopoolspoopoolss poopoolspoopoolssmpoopoolspoopoolssteupoopoolss gpoopoolspoopoolssmepoopoolss<ref>18% of games in the Lichess Master's database, 42% in the Lichess database.</ref>. Mopoopoolsst poopoolssommopoopoolspoopoolsspoolsy poolspoolspoopoolspoopoolsspoopoolssk ppoolspoopoolspoopoolssypoopoolss pools...poolspoopoolss5, the Giuopoopoolsso pipoopoolspoopoolsspoopoolspoopoolsso, opoopoolss pools...poopoolspoopoolsspoolspoopoolss, the Two kpoopoolspoopoolssightpoopoolss poopoolssepoolsepoopoolspoopoolsspoopoolsse.
[[/3. Nc3|'''pools. poopoolspoopoolsspoopoolsspools''']], the '''thpoopoolssee kpoopoolspoopoolssightpoopoolss opepoopoolspoopoolssipoopoolspoopoolssg''', ipoopoolss poopoolssepoopoolspoopoolsspoopoolsshepoopoolss ipools White poopoolssepoopoolssipoopoolssepoopoolss to poopoolssevepoolsop theipoopoolss kpoopoolspoopoolssight poopoolspoopoolssext poopoolspoopoolsspoolstepoopoolss poopoolspoopoolsspoolspools. Thipoopoolss ipoopoolss poopoolspoopoolss quietepoopoolss (poopoolssepoopoolspoopoolsspoopoolss: poopoolsspoopoolsspoopoolspoopoolsswipoopoolssh) poopoolssopoopoolspoopoolsstipoopoolspoopoolssupoopoolspoopoolsstiopoopoolspoopoolss. poolspoolspoopoolspoopoolsspoopoolssk upoopoolssupoopoolspoopoolsspoolspoolsy ppoolspoopoolspoopoolssypoopoolss pools...poopoolspoopoolsspoolspoopoolss, poopoolssepoopoolspoopoolsspoopoolsshipoopoolspoopoolssg the '''poolsoupoopoolss kpoopoolspoopoolssightpoopoolss'''.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. Bb5|caption=Spanish game}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. Bc4|caption=Italian game}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. Nc3|caption=Three knights game}}
</div>
=== poopoolssopoopoolspoopoolsstepoopoolsst the poopoolssepoopoolspoopoolsstpoopoolsse ===
White poopoolsspoopoolspoopoolsspoopoolspoopoolss ppoopoolssiopoopoolssitipoopoolsse poopoolssopoopoolspoopoolsstepoopoolsstipoopoolspoopoolssg the poopoolssepoopoolspoopoolsstpoopoolsse with ppoopoolspoopoolsswpoopoolspoopoolsspoopoolss.
[[/3. d4|'''pools. poopoolss4''']], the '''poopoolsspoopoolssotpoopoolssh opepoopoolspoopoolssipoopoolspoopoolssg''', poolsupoopoolsstpoopoolss opepoopoolspoopoolss the poopoolssepoopoolspoopoolsstpoopoolsse poopoolsstpoopoolsspoopoolspoopoolssight poopoolspoopoolsswpoopoolspoopoolssy. Thipoopoolss ipoopoolss the thipoopoolsspoopoolss mopoopoolsst poopoolssommopoopoolspoopoolss poopoolssopoopoolspoopoolsstipoopoolspoopoolssupoopoolspoopoolsstiopoopoolspoopoolss. poopoolspoopoolsspoolstepoopoolss poolspoolspoopoolspoopoolsspoopoolssk poopoolsspoopoolspoopoolssptupoopoolssepoopoolss pools...expoopoolss4, White poopoolsspoopoolspoopoolsspoopoolspoopoolss poopoolssepoopoolsspoopoolspoopoolssptupoopoolsse the ppoopoolspoopoolsswpoopoolspoopoolss opoopoolss gpoopoolspoopoolssmpoolsit it poolsopoopoolss poopoolssevepoolsopmepoopoolspoopoolsst.
[[/3. c3|'''pools. poopoolsspools''']], the '''Popoopoolspoopoolsszipoopoolspoopoolsspoopoolspoopoolssi opepoopoolspoopoolssipoopoolspoopoolssg''', ppoopoolsseppoopoolspoopoolsspoopoolssepoopoolss poopoolss4 with the poopoolss-ppoopoolspoopoolsswpoopoolspoopoolss. White woupoolspoopoolss poolsike to poopoolspoopoolssot jupoopoolsst to put poopoolspoopoolss ppoopoolspoopoolsswpoopoolspoopoolss opoopoolspoopoolss poopoolss4 poolsut keep opoopoolspoopoolsse thepoopoolsse. Thipoopoolss ipoopoolss poopoolspoopoolsspoopoolspoopoolss upoopoolspoopoolsspoopoolssommopoopoolspoopoolss poopoolssopoopoolspoopoolsstipoopoolspoopoolssupoopoolspoopoolsstiopoopoolspoopoolss.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. d4|caption=Scotch game}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. c3|caption=Ponziani opening}}
</div>
=== Opoolspoolspoolsepoopoolspoopoolsst poopoolssopoopoolspoopoolsstipoopoolspoopoolssupoopoolspoopoolsstiopoopoolspoopoolsspoopoolss ===
The poopoolspoopoolsspoolsove poolsive poopoolsseppoolsiepoopoolss poopoolssovepoopoolss poopoolspoopoolsspoolsmopoopoolsst evepoopoolssy poopoolssepoopoolssioupoopoolss gpoopoolspoopoolssme. poopoolspoopoolss poolsew vepoopoolssy opoolspoolspoolsepoopoolspoopoolsst poopoolsshoipoopoolssepoopoolss mpoopoolspoopoolsske up poolsepoopoolsspoopoolss thpoopoolspoopoolsspoopoolspoopoolss opoopoolspoopoolsse pepoopoolsspoopoolssepoopoolspoopoolsst opools gpoopoolspoopoolssmepoopoolss poopoolssompoolsipoopoolspoopoolssepoopoolss. The ipoopoolssepoopoolspoopoolsspoopoolss ipoopoolspoopoolsspoopoolsspoolsupoopoolsse:
* poopoolssevepoolsopipoopoolspoopoolssg the kipoopoolspoopoolssg'poopoolss poolsipoopoolsshop poopoolssomewhepoopoolsse epoolspoopoolsse: [[/3. Be2|'''pools. poolse2?!''']], the '''Tpoopoolspoopoolssypoolsepoopoolss opepoopoolspoopoolssipoopoolspoopoolssg''', '''pools. poolspoopoolsspools''', opoopoolss [[/3. g3|'''pools. gpools''']] ipoopoolspoopoolss opoopoolsspoopoolssepoopoolss to ppoolspoopoolspoopoolssy 4. poolsg2, the '''Kopoopoolspoopoolsspoopoolsstpoopoolspoopoolsspoopoolspoopoolsstipoopoolspoopoolssopopoolspoopoolssky opepoopoolspoopoolssipoopoolspoopoolssg'''.
* poopoolspoopoolss poolspoolspoopoolspoopoolsspoopoolspoopoolssk move, [[/3. c4|'''pools. poopoolss4''']], the '''poopoolsspoopoolssepoopoolsspoopoolssepoopoolspoopoolss opepoopoolspoopoolssipoopoolspoopoolssg''', to poopoolssopoopoolspoopoolsstpoopoolssopools poopoolss5 poopoolspoopoolsspoopoolspoopoolsspoopoolss poopoolspoopoolsspoolspoolsow the poolspools kpoopoolspoopoolssight to poopoolssevepoolsop poolsehipoopoolspoopoolsspoopoolss the ppoopoolspoopoolsswpoopoolspoopoolss.
* '''pools. poopoolsspools''', poopoolspoopoolss timipoopoolss poopoolsseppoolsy thpoopoolspoopoolsst poopoolspoopoolssvoipoopoolsspoopoolss poopoolssopoopoolspoopoolsstepoopoolsstipoopoolspoopoolssg the poopoolssepoopoolspoopoolsstpoopoolsse poopoolspoopoolsspoopoolspoopoolsspoopoolss vopoolsupoopoolspoopoolsstpoopoolspoopoolsspoopoolssipoolsy poopoolsspoopoolsspoopoolspoopoolssmppoopoolss White'poopoolss popoopoolssitiopoopoolspoopoolss.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. g3|caption=Konstantinopolsky opening}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. Be2|caption=Tayler opening}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. c4|caption=Dresden opening}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. d3|caption=3. d3}}
</div>
=== poolspoopoolspoopoolsspoopoolss movepoopoolss ===
poopoolssome poopoolssupoolsioupoopoolss gpoopoolspoopoolssmpoolsitpoopoolss:
* [[/3. Nxe5|'''pools. poopoolspoopoolssxe5??''']] ipoopoolss the '''poopoolsshipoopoolsspoopoolspoopoolssgo''' opoopoolss '''Ipoopoolssipoopoolssh gpoopoolspoopoolssmpoolsit'''. White poopoolsspoopoolspoopoolsspoopoolsspoopoolssipoolsipoopoolssepoopoolss poopoolspoopoolss kpoopoolspoopoolssight to tpoopoolspoopoolsske ovepoopoolss the poopoolssepoopoolspoopoolsstpoopoolsse upoopoolspoopoolsspoopoolssopoopoolspoopoolsstepoopoolsstepoopoolss, poolsut the poopoolssopoopoolsst opools poolseipoopoolspoopoolssg poopoolspoopoolss mipoopoolspoopoolssopoopoolss piepoopoolsse poopoolssowpoopoolspoopoolss ipoopoolss vpoopoolspoopoolsspoopoolsstpoolsy mopoopoolsse pupoopoolspoopoolssipoopoolsshipoopoolspoopoolssg.
* [[/3. b4|'''pools. pools4?''']], the '''Ppoopoolspoopoolsspoopoolsshmpoopoolspoopoolsspoopoolspoopoolss wipoopoolspoopoolssg gpoopoolspoopoolssmpoolsit''', whepoopoolsse White poopoolsspoopoolspoopoolsspoopoolsspoopoolssipoolsipoopoolssepoopoolss the pools ppoopoolspoopoolsswpoopoolspoopoolss to give poolspoolspoopoolspoopoolsspoopoolssk poopoolspoopoolss hpoopoolspoopoolsspoopoolspoopoolsspoopoolss ipoopoolspoopoolss poopoolssevepoolsopmepoopoolspoopoolsst (pools...poolsxpools4). Evepoopoolspoopoolss ipools poolspoolspoopoolspoopoolsspoopoolssk ipoopoolss equpoopoolspoopoolsspoolspoolsy gepoopoolspoopoolssepoopoolssoupoopoolss (pools...poopoolspoopoolssxpools4? 4. poopoolspoopoolssxe5) it'poopoolss poopoolspoopoolsst poolsepoopoolsst poopoolspoopoolsspoopoolspoopoolss evepoopoolspoopoolss gpoopoolspoopoolssme.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. Nxe5|caption=Irish gambit}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. b4|caption=Pachman wing gambit}}
</div>
==Theopoopoolssy tpoopoolspoopoolsspoolspoolse==
{{Chess Opening Theory/Table}}
'''pools. e4 e5 2. poopoolspoopoolsspoolspools poopoolspoopoolsspoopoolsspoopoolss'''
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<th></th>
<th align="left">pools</th>
<th align="left">4</th>
<th align="left">5</th>
</tr>
<tr>
<th align="right">[[Chess/Ruy Lopez|poopoolssuy poolsopez]]</th>
<td>[[/3. Bb5|poolspools5]]<br>[[/3. Bb5/3...a6|poopoolspoopoolsspoopoolss]]</td>
<td>poolspoopoolspoopoolss4<br>poopoolspoopoolsspoolspoopoolss</td>
<td>O-O<br>poolse7</td>
<td>=</td>
</tr>
<tr>
<th align="right">[[Chess/Italian Game|Itpoopoolspoopoolsspoolsipoopoolspoopoolsspoopoolspoopoolss Gpoopoolspoopoolssme]]</th>
<td>[[/3. Bc4|poolspoopoolss4]]<br>poolspoopoolss5</td>
<td>poopoolsspools<br>poopoolspoopoolsspoolspoopoolss</td>
<td>poopoolss4<br>expoopoolss4</td>
<td>=</td>
</tr>
<tr>
<th align="right">[[Chess/Scotch Game|poopoolsspoopoolssotpoopoolssh Gpoopoolspoopoolssme]]</th>
<td>[[/3. d4|poopoolss4]]<br>expoopoolss4</td>
<td>poopoolspoopoolssxpoopoolss4<br>poolspoopoolss5</td>
<td>poopoolspoopoolsspoolspools<br>poolspools4+</td>
<td>=</td>
</tr>
<tr>
<th align="right">[[Chess/Four Knights Game|poolsoupoopoolss Kpoopoolspoopoolssightpoopoolss Gpoopoolspoopoolssme]]</th>
<td>[[/3. Nc3|poopoolspoopoolsspoopoolsspools]]<br>poopoolspoopoolsspoolspoopoolss</td>
<td>poopoolss4<br>expoopoolss4</td>
<td>poopoolspoopoolssxpoopoolss4<br>poolspools4</td>
<td>=</td>
</tr>
<tr>
<th align="right">[[Chess/Ponziani Opening|Popoopoolspoopoolsszipoopoolspoopoolsspoopoolspoopoolssi Opepoopoolspoopoolssipoopoolspoopoolssg]]</th>
<td>[[/3. c3|poopoolsspools]]<br>poopoolss5</td>
<td>poolspools5<br>poopoolssxe4</td>
<td>poopoolspoopoolssxe5<br>Qg5</td>
<td>=</td>
</tr>
</table>
{{ChessMid}}
== poopoolssepoolsepoopoolssepoopoolspoopoolsspoopoolssepoopoolss ==
{{reflist}}
=== poopoolssee poopoolspoopoolsspoolspoopoolsso ===
{{wikipedia|King's Knight Opening}}
{{NCO}}
{{BCO2}}
{{Chess Opening Theory/Footer}}
fkkcccj83bqfz3m0z8w6vpndsm5oq5t
4674749
4674748
2026-10-06T16:20:11Z
Quinlan83
3290607
[[WB:REVERT|Reverted]] edit by [[Special:Contributions/~2026-52801-54|~2026-52801-54]] ([[User talk:~2026-52801-54|talk]]) to last version by JCrue
4663149
wikitext
text/x-wiki
{{Chess Opening Theory/Position
|Normal variation
|responses=<br>
* [[/3. Bb5|3. Bb5 · Ruy Lopez]]
* [[/3. Bc4|3. Bc4 · Italian Game]]
* [[/3. d4|3. d4 · Scotch Game]]
* [[/3. Nc3|3. Nc3 · Three Knights Opening]]
* [[/3. c3|3. c3 · Ponziani Opening]]
|parent=[[../|King's knight opening]]
}}
== 2...Nc6 · Normal variation ==
'''2...Nc6''' is the natural and most common move, combining defence of the pawn with control of the d4 square. Black avoids committing another pawn for now. This is the most common position after two moves in chess.
White has several choices for how to reply, which lead to very different games.
=== Develop a piece ===
White usually decides to develop the bishop next. While the usual advice is to "develop knights before bishops", by holding off on Nc3, White retains the option of playing c3 and d4 to take over the centre with pawns.
[[/3. Bb5|'''3. Bb5''']], known as the '''Spanish''' or '''Ruy López''', is the most popular<ref>66% of games in the Lichess Master's database.</ref> and theoretical continuation. By pressuring Black's knight, White is indirectly threatening e5 which the knight defends. This usually leads to tough, positional games. The main lines are 3...a6 and 3...Nf6, though many other moves have been tried.
[[/3. Bc4|'''3. Bc4''']], the '''Italian game''', develops the bishop to target Black's vulnerable f7 pawn instead. This is the second most common move, though more common in amateur games<ref>18% of games in the Lichess Master's database, 42% in the Lichess database.</ref>. Most commonly Black plays 3...Bc5, the Giuoco piano, or 3...Nf6, the Two knights defence.
[[/3. Nc3|'''3. Nc3''']], the '''three knights opening''', is reached if White decides to develop their knight next after all. This is a quieter (read: drawish) continuation. Black usually plays 3...Nf6, reaching the '''four knights'''.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. Bb5|caption=Spanish game}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. Bc4|caption=Italian game}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. Nc3|caption=Three knights game}}
</div>
=== Contest the centre ===
White can prioritise contesting the centre with pawns.
[[/3. d4|'''3. d4''']], the '''Scotch opening''', busts open the centre straight away. This is the third most common continuation. After Black captures 3...exd4, White can recapture the pawn or gambit it for development.
[[/3. c3|'''3. c3''']], the '''Ponziani opening''', prepares d4 with the c-pawn. White would like to not just to put a pawn on d4 but keep one there. This is an uncommon continuation.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. d4|caption=Scotch game}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. c3|caption=Ponziani opening}}
</div>
=== Offbeat continuations ===
The above five replies cover almost every serious game. A few very offbeat choices make up less than one percent of games combined. The ideas include:
* Developing the king's bishop somewhere else: [[/3. Be2|'''3. Be2?!''']], the '''Tayler opening''', '''3. Bd3''', or [[/3. g3|'''3. g3''']] in order to play 4. Bg2, the '''Konstantinopolsky opening'''.
* A flank move, [[/3. c4|'''3. c4''']], the '''Dresden opening''', to control d5 and allow the b1 knight to develop behind the pawn.
* '''3. d3''', a timid reply that avoids contesting the centre and voluntarily cramps White's position.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. g3|caption=Konstantinopolsky opening}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. Be2|caption=Tayler opening}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. c4|caption=Dresden opening}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. d3|caption=3. d3}}
</div>
=== Bad moves ===
Some dubious gambits:
* [[/3. Nxe5|'''3. Nxe5??''']] is the '''Chicago''' or '''Irish gambit'''. White sacrifices a knight to take over the centre uncontested, but the cost of being a minor piece down is vastly more punishing.
* [[/3. b4|'''3. b4?''']], the '''Pachman wing gambit''', where White sacrifices the b pawn to give Black a hand in development (3...Bxb4). Even if Black is equally generous (3...Nxb4? 4. Nxe5) it's at best an even game.
<div style="display:flex;overflow-x:auto;gap:0.5em;">
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. Nxe5|caption=Irish gambit}}
{{Chess/board|moves=1. e4 e5 2. Nf3 Nc6 3. b4|caption=Pachman wing gambit}}
</div>
==Theory table==
{{Chess Opening Theory/Table}}
'''1. e4 e5 2. Nf3 Nc6'''
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<th></th>
<th align="left">3</th>
<th align="left">4</th>
<th align="left">5</th>
</tr>
<tr>
<th align="right">[[Chess/Ruy Lopez|Ruy Lopez]]</th>
<td>[[/3. Bb5|Bb5]]<br>[[/3. Bb5/3...a6|a6]]</td>
<td>Ba4<br>Nf6</td>
<td>O-O<br>Be7</td>
<td>=</td>
</tr>
<tr>
<th align="right">[[Chess/Italian Game|Italian Game]]</th>
<td>[[/3. Bc4|Bc4]]<br>Bc5</td>
<td>c3<br>Nf6</td>
<td>d4<br>exd4</td>
<td>=</td>
</tr>
<tr>
<th align="right">[[Chess/Scotch Game|Scotch Game]]</th>
<td>[[/3. d4|d4]]<br>exd4</td>
<td>Nxd4<br>Bc5</td>
<td>Nb3<br>Bb4+</td>
<td>=</td>
</tr>
<tr>
<th align="right">[[Chess/Four Knights Game|Four Knights Game]]</th>
<td>[[/3. Nc3|Nc3]]<br>Nf6</td>
<td>d4<br>exd4</td>
<td>Nxd4<br>Bb4</td>
<td>=</td>
</tr>
<tr>
<th align="right">[[Chess/Ponziani Opening|Ponziani Opening]]</th>
<td>[[/3. c3|c3]]<br>d5</td>
<td>Bb5<br>dxe4</td>
<td>Nxe5<br>Qg5</td>
<td>=</td>
</tr>
</table>
{{ChessMid}}
== References ==
{{reflist}}
=== See also ===
{{wikipedia|King's Knight Opening}}
{{NCO}}
{{BCO2}}
{{Chess Opening Theory/Footer}}
o4iv0557mrx923sw9t9cf2cqzzvse3k
Radiation Oncology/NSCLC/Locally Advanced Resectable
0
39885
4674803
4365733
2026-10-07T05:56:47Z
Jcb
90773
4674803
wikitext
text/x-wiki
{{:Radiation Oncology/Lung/NSCLC:TOC}}
:''See also:'' [[../Early Stage Operable#Post-operative RT|Post-op RT (in Early Stage Resectable)]]
==Criteria for resectability==
Generally stage IIIA and lower is considered resectable, since all sites of disease can be removed by extended surgery. In contrast, stage IIIB disease (N3 or T4) is generally considered unresectable due to contralateral lymph node involvement or extensive local tumor. However, a subset of T4 patients may actually be able to undergo surgical resection.
*Pulmonary function: FEV1 > 2 L. Predicted post-surgical FEV1 should be > 0.8 L based on qualitative VQ scan.
==Epidemiology==
*16% of NSCLC is IIIA
Heterogenous:
*T3N1 vs. T1-3N2
*N2 nodes: single vs. multiple
*N2 nodes: bulky vs. macroscopic vs. microscopic involvement
*'''Gustave Roussy, 2000''' (France) {{PMID|10944131}} -- "Survival of patients with resected N2 non-small-cell lung cancer: evidence for a subclassification and implications." (Andre F, J Clin Oncol. 2000 Aug;18(16):2981-9.)
**Retrospective. 702 patients with resected N2 disease, stratified into clinically positive and clinically negative but microscopically positive at surgery. Multi-institutional, 6 centers. Median F/U 4.3 years
**5-year OS treated with surgery only:
***single level microscopic N2: 34% (site of LN+ had no prognostic significance)
***multiple levels microscopic N2: 11%
***single level clinical N2: 8%
***multiple levels clinical N2: 3%
**5-year OS in clinical N2: surgery only 5% vs. preop chemo 18%
==Use of PET to assess response after induction chemo/RT==
*Maryland: DeYoung CM et al (ASTRO 2004, Abstract 122)
**39 pts. Stage IIIA-IIIB. Induction chemo (carboplatin + Navelbine) + concurrent hyperfractionated RT (69.6 Gy). After induction, restaging with PET 4-6 weeks after and mediastinoscopy (MED) @ 6-8 weeks. If negative MED, underwent resection + consolidative therapy; otherwise, consolidation only.
**32 completed MED. For the mediastinum: SUV after induction could not differentiate between those with and without pCR; PET false negative 30%, false positive 45%. For the primary tumor, false negative 73%, false positive 57%.
**PET not useful for restaging within 4-6 weeks after induction chemo/RT.
==Pre-op RT vs. Surgery Only==
*'''VA Trial'''
**Randomized. 331 patients, with centrally located tumors amenable to endoscopic biopsy (peripheral lesions excluded). Arm 1) Pre-op RT vs. Arm 2) Surgery alone. RT given 40-50 Gy to primary tumor + mediastinum. Surgery 4-6 week later (maximum 12 weeks). Lobectomy 12%, majority pneumonectomy.
**'''4-years; 1972''' {{PMID|5083076}} -- "Preoperative radiation therapy in the treatment of bronchial carcinoma." (Shields TW, Cancer. 1972 Nov;30(5):1388-94.)
***Outcome: pCR 25%. 1-year OS pre-op RT 44% vs. surgery only 60% (SS); 4-year OS 12% vs. 21%. Survival decrement during first 6 months, then curves comparable. Survival also worse with higher pre-op RT dose
***Toxicity: post-op mortality 12% both groups
***Conclusion: Pre-op RT worse survival, manifested during first 6 months
==Induction Chemo/RT + Surgery==
*'''RTOG 02-29''' - Phase II
**2010 RedJournal Abstract: Stage IIIA(T1-3N2) or IIIB(N3) resectable at diagnosis. Treated with induction chemo/RT, carboplatin and taxol weekly x 6 weeks and RT to 61.2 Gy. Surgery evaluation 4-6 wks after chemo/RT. Consolidative carbo/taxol x 2 cycles. Recommended prophylactic cranial irradiation (on RTOG 02-14). ''RT dose:'' 50.4 Gy (offcord by 45 Gy) + 10.8 Gy boost
** Result: 43 pts (75%) were evaluable; 36 pts underwent resection. 7 pts had residual mediastinal dz. 27/43 (63%) achieved mediastinal clearance: improved mediastinal sterilization (50-->70%, power of 80%, p=0.05)
** Med f/u 20 months,** med OS: 26.6 mos; med PFS: 13.1 mos; 1-y OS: 77%; 1-y PFS: 52%
** Toxicity: 14% (5/37) G3 post-op pulmonary complications; 1 post-op G5 toxicity (3%).
** Conclusion: confirms the ability of neoadj CCRT to sterilize known mediastinal nodal disease.
*'''SWOG 8805''' - Phase II
**'''1999''' {{PMID|7636530}} — "Concurrent cisplatin/etoposide plus chest radiotherapy followed by surgery for stages IIIA (N2) and IIIB non-small-cell lung cancer: mature results of Southwest Oncology Group phase II study 8805." Albain KS et al. J Clin Oncol. 1995 Aug;13(8):1880-92.
**126 pts. Biopsy proven N2, N3, or T4. IIIA 60%, IIIB 40%. 85% of IIIA and 80% of IIIB were resected. Concurrent chemo/RT (2 cycles cisplatin + etoposide + 45 Gy RT), followed by surgery.
**Median f/u 2.4 yrs. 2-yr OS 37%, 3-yr 24-27%. Strongest predictor of survival was pCR in mediastinal LN (30 months vs 10 month MS; 5-yr OS 33% vs 11)%.
**Conclusion: induction chemo/RT before surgery is feasible
*'''Duke, 1994'''
**{{PMID|8055445}} — "Phase II study of neoadjuvant chemotherapy and radiation therapy with thoracotomy in the treatment of clinically staged IIIA non-small cell lung cancer." Deutsch M et al. Cancer. 1994 Aug 15;74(4):1243-52.
**28 pts. Carbo/etoposide followed by carbo + 60 Gy followed by surgery.
**Conclusion: well tolerated
==Induction Chemo/RT + Surgery vs Definitive Chemo/XRT==
*'''Intergroup INT-0139''' (RTOG 93-09, SWOG 93-36) (1994-2001) -- induction CRT + surgery vs definitive CRT
**Randomized. 396 patients with stage IIIA (pN2) lymph node positive NSCLC. Arm 1) Induction chemo-RT (cisplatin 50 mg/m2 x2 cycles, etoposide 50 mg/m2 x2 cycles, concurrent RT 45/25), followed by CT restaging 2-4 weeks later, and complete surgical resection with LN evaluation vs. Arm 2) Same cisplatin/etoposide + concurrent RT 61 Gy. Consolidation cisplatin/etoposide in both groups x2 cycles. Primary endpoint OS.
**'''2003''' [http://asco.org/ac/1,1003,_12-002640-00_18-0023-00_19-00101766,00.asp ASTRO Abstract 2497] [http://wwwhost.rbn.com/astro/astro/web/45/index.html Video Presentation] — Turrisi et al.
***Initial results suggest a disease-free survival benefit for the surgical arm (median, 13.4 vs. 11.8 months) without any difference in overall survival at a follow up of 22 months.
**'''2005''' [http://www.asco.org/portal/site/ASCO/menuitem.34d60f5624ba07fd506fe310ee37a01d/?vgnextoid=76f8201eb61a7010VgnVCM100000ed730ad1RCRD&vmview=abst_detail_view&confID=34&abstractID=30938 ASCO Abstract] -- "Phase III study of concurrent chemotherapy and radiotherapy (CT/RT) vs CT/RT followed by surgical resection for stage IIIA(pN2) non-small cell lung cancer (NSCLC): Outcomes update of North American Intergroup 0139 (RTOG 9309). (Albain KS, Journal of Clinical Oncology, 2005 ASCO Annual Meeting Proceedings. Vol 23, No. 16S, Part I of II (June 1 Supplement), 2005: 7014). Median F/U 2.5 years
***Outcome: median PFS: CRT+S 12.8 months vs. CRT 10.5 months (SS); 5-year PFS 22% vs. 11% (SS); median OS: 23.6 month vs. 22.2 months (NS); 5-year OS: 27% vs. 20% (p=0.1)
***Subgroup analysis revealed better survival for patients who underwent a lobectomy (p = .002).
***Trimodality therapy was not optimal when a pneumonectomy was required owing to the high mortality risk.
***N0 status at surgery significantly predicted a higher 5-year survival rate.
***Conclusion: significantly improved PFS but not OS with trimodality
**'''2009''' [http://www.thelancet.com/journals/lancet/article/PIIS0140-6736(09)60737-6/abstract Lancet], {{PMID|19632716}} -- "Radiotherapy plus chemotherapy with or without surgical resection for stage III non-small-cell lung cancer: a phase III randomised controlled trial" (Albain KS, The Lancet, Early Online Publication, 27 July 2009). Median F/U 1.8 years, for survivors 5.8 years
***Outcome: Median OS Induction 24 months vs. definitive 22 months (NS). 5-year OS 27% vs. 20% (NS). Median PFS 13 months vs. 11 months (SS). 5-year DFS 22% vs 11%. First relapse: primary tumor site 2% vs. 14%, regional LNs 7% vs. 3%, brain 11% vs. 15%, other DM 37% vs. 42%
***Subset analysis: Lobectomy vs matched CRT 2.8 years vs. 1.8 years (SS); pneumonectomy vs matched CRT 1.6 years vs. 2.4 years (NS)
***Toxicity: Treatment-related death 8% vs. 2%. Grade 3-4 esophagitis 10% vs. 23% (SS), no difference in pneumonitis or nausea/vomiting
***Conclusion: Chemo-RT with or without resection (preferably lobectomy) all options for IIIA NSCLC
==Induction before Surgery vs Surgery alone==
'''''Meta-Analysis'''''
*'''MRC; 2007''' (UK) {{PMID|17636828}} -- "Chemotherapy and surgery versus surgery alone in non-small cell lung cancer." (Burdett SS, Cochrane Database Syst Rev. 2007 Jul 18;(3):CD006157.)
**Meta-analysis. 12 randomized trials, data available for 988 patients (75%)
**Outcome: Pre-op chemo increased OS with HR 0.82 (SS), equivalent to 5-year OS benefit 6% (14% to 20%)
**Conclusion: Significant increase in survival attributable to pre-op chemotherapy
'''''Randomized Trials'''''
*'''Roth (MDACC)''' (1987-93)
**60 patients with resectable IIIA NSCLC randomized to induction chemo (cyclophosphamide, etoposide, cisplatin) x 3 cycles followed by surgery, followed by 3 more cycles chemo if response, vs. immediate surgical resection alone. Both groups received RT if incompletely resected at the discretion of treating physician (66 Gy for gross residual, 60 Gy for microscopic). Trial stopped early as stoppage criteria met.
**>50% of patients received RT in each arm
**'''1994:''' {{PMID|8158698}} -- "A randomized trial comparing perioperative chemotherapy and surgery with surgery alone in resectable stage IIIA non-small-cell lung cancer." (Roth JA, J Natl Cancer Inst. 1994 May 4;86(9):673-80.)
***estimated 3-year OS 56% vs. 15% for perioperative chemo vs. immediate surgery, respectively. MS 64 months vs 11 months. Clinical response rate of 35% with preoperative chemotherapy.
**'''1998:''' {{PMID|9792048}} -- "Long-term follow-up of patients enrolled in a randomized trial comparing perioperative chemotherapy and surgery with surgery alone in resectable stage IIIA non-small-cell lung cancer." (Roth JA, Lung Cancer. 1998 Jul;21(1):1-6.) -- Median f/u 82 months.
***updated 3- and 5-year OS, respectively, 43% and 36% for periop chemo, 19% and 15% for immediate surgery.
*'''Rosell (Spain)''' (1989-?)
**60 patients with resectable IIIA NSCLC randomized to induction chemo (mitomycin, ifosphamide, cisplatin) x 3 courses followed by surgery, followed by 50 Gy thoracic RT, vs. immediate surgical resection followed by 50 Gy thoracic RT
**'''1994:''' {{PMID|8043059}} -- "A randomized trial comparing preoperative chemotherapy plus surgery with surgery alone in patients with non-small-cell lung cancer." (Rosell R, N Engl J Med. 1994 Jan 20;330(3):153-8.)
***median OS 26 months vs. 8 months, median DFS 20 months vs. 5 months (p < 0.001 for both)
**'''7-year, 1999:''' {{PMID|10574676}} -- "Preresectional chemotherapy in stage IIIA non-small-cell lung cancer: a 7-year assessment of a randomized controlled trial." (Rosell R, Lung Cancer. 1999 Oct;26(1):7-14.)
***updated median OS 22 months vs. 10 months, updated 3- and 5-year OS, respectively, 20% and 17% for pre-op chemo, 5% and 0% for immediate surgery.
*'''Depierre (French)''' (1991-97) - Induction chemo + surgery vs surgery
**355 pts. Stage IB - IIIA. Preoperative chemotherapy (PCT) consisted of 2 cycles mitomycin, ifosfamide, and cisplatin. 2 additional cycles were given postoperatively for pts who responded. Pts in both arms received post-op RT for pathologic T3 or N2 disease.
**{{PMID|11773176}}, 2002 — "Preoperative chemotherapy followed by surgery compared with primary surgery in resectable stage I (except T1N0), II, and IIIa non-small-cell lung cancer." Depierre A et al. J Clin Oncol. 2002 Jan 1;20(1):247-53.
**Median survival 37 m (PCT) vs 26 m (S), N.S. Survival difference 8.6% at 4 yrs (S.S.). Survival difference was S.S. only for pts with N0-N1 disease.
==Induction Chemo vs Induction Chemo-RT==
*'''RTOG 04-12 / SWOG S0332'''
**Stage IIIA (N2). Randomized to induction chemotherapy (cisplatin/docetaxel) vs induction chemo/RT (RT to 50.4 Gy). Followed by surgical resection then consolidative chemotherapy with docetaxel. N2 status must be confirmed pathologically. <u>RT technique</u>: uses 3D-CRT, no field reductions, no elective nodal irradiation.
**Terminated due to poor accrual
*'''German GLCCG''' (1995-2003) -- Induction cisplatin/etoposide then concurrent chemo-RT followed by surgery vs. induction cisplatin/etoposide then surgery then postop RT
**Randomized. 524 patients with NSCLC Stage IIIA (33%) or resectable IIIB (67%). Arm 1) Induction cisplatin 55 mg/m2 + etoposide 100 mg/m2 x3 cycles, then concurrent RT 45/30 in 1.5 Gy BID with carboplatin 100 mg/m2 + vindesine 3mg, followed by surgery vs. Arm 2) Same induction, followed by surgery, followed by RT (54/30 if R0, 68.4/38. Surgery after 4-6 weeks. Primary endpoint PFS.
**'''2004''' [http://astro.abstractsnet.com/abstractdetail.wcs?handoutid=1 Abstract] ''ASTRO Plenary Session'' — "Neoadjuvant chemotherapy followed by preoperative radiochemotherapy (hfRCT) plus surgery or surgery plus postoperative radiotherapy in stage III non-small cell lung cancer: results of a randomized phase III trial of the German Lung Cancer Cooperative Group." Ruebe et al.
***3-year OS 26.2% (Arm A) vs 24.6% (Arm B) (NS). 3-year PFS 17.8% vs 19.9% (NS). Difference was in toxicity, with worse Grade 3/4 esophagitis in Arm A (19% vs 3%), and worse Grade 3/4 pneumonitis in Arm B (6% vs 1%). No difference in treatment related toxicity. Concluded that both regimens are effective.
**'''2008''' {{PMID|18583190}} -- "Effect of preoperative chemoradiation in addition to preoperative chemotherapy: a randomised trial in stage III non-small-cell lung cancer." (Thomas M, Lancet Oncol. 2008 Jul;9(7):636-648. Epub 2008 Jun 24.)
***Outcome: Surgery chemo 59% vs. chemo-RT 59%; mediastinal downstaging 29% vs. 46% (SS). Median PFS (primary endpoint) 10.0 months vs. 9.5 months (NS).
***Toxicity: If pneumonectomy (35% in both groups), worse mortality 14% vs. 6%
***Conclusion: Preop chemo-RT increases mediastinal downstaging, but doesn't improve survival. After induction, pneumonectomy should be avoided
==Induction Chemo + Surgery vs Induction Chemo + RT==
*'''EORTC 08941''' -- Induction platinum x3 cycles, then surgery vs. RT
**Randomized. 579 patients with unresectable IIIA-N2 NSCLC. Unresectable considered N2 non-squamous; or N2 squamous exceeding Station 4R for right or Station 5/6 for left side. Platinum-based induction x3 cycles, then randomized to surgical resection or RT. Had to show at least "minor" response. Induction response rate 61%.
**RT: Start within 70 days of last chemo cycle. 3D planning + tissue correction. Dose 60-62.5 Gy involved mediastinum and 40-46 uninvolved mediastinum. Post-op RT given to 40% patients in the surgery-only arm (if R1/R2, to 56 Gy). RT arm compliance 55%
**'''5-years, 2007''' {{PMID|17374834}} -- "Randomized controlled trial of resection versus radiotherapy after induction chemotherapy in stage IIIA-N2 non-small-cell lung cancer." (van Meerbeeck JP, J Natl Cancer Inst. 2007 Mar 21;99(6):442-50.)
***5-year outcome: OS resection 16% vs. RT 14% (NS); median OS 16 months vs. 17 months (NS)
***Toxicity: After surgery 4% deaths. After RT Grade 3-4 pulmonary toxicity 7%, one death of RT pneumonitis (0.6%)
***Conclusion: Surgery did not improve OS or PFS. Given low morbidity and mortality, RT should be preferred modality
***Editorial {{PMID|17374824}}: high number of pneumonectomies, which have negative outcome after induction chemo; better local control with surgery. Surgery may be an option if patients experience "downstaging" and clear their mediastinal LNs. On the other hand, RT techniques also improving for better toxicity. Conclusion that chemotherapy-radiation is appropriate for IIIA patients with initial N2 disease
**'''RT Arm, 2006''' {{PMID|16785054}} -- "Quality assurance of thoracic radiotherapy in EORTC 08941: a randomised trial of surgery versus thoracic radiotherapy in patients with stage IIIA non-small-cell lung cancer (NSCLC) after response to induction chemotherapy. (Kramer GW, Eur J Cancer. 2006 Jul;42(10):1391-8.)
***QA Review
**'''Surgery Arm, 2005''' {{PMID|16055865}} -- "Morbidity and mortality in the surgery arm of EORTC 08941 trial." (Van Schil P, Eur Respir J. 2005 Aug;26(2):192-7.)
***167 patients in surgery arm: 50% R0; 47% pneumonectomies worse survival on subgroup analysis
***Outcome: 50% R0, 40% pathologic downstaging to N0/N1
***Toxicity: 30-day perioperative mortality 4%; reoperation 8%
***Conclusion: morbidity and mortality acceptable
*'''RTOG 89-01''' (1990-1994) -- Induction chemo, then surgery vs. RT
**'''2002''' {{PMID|12243809}} -- "Phase III study comparing chemotherapy and radiotherapy with preoperative chemotherapy and surgical resection in patients with non-small-cell lung cancer with spread to mediastinal lymph nodes (N2); final report of RTOG 89-01. Radiation Therapy Oncology Group." (Johnstone DW, Int J Radiat Oncol Biol Phys. 2002 Oct 1;54(2):365-9.)
**Randomized. ''Trial stopped early after initiation of INT 0139''. 73 (goal 224) patients, mediastinoscopy-verified N2 NSCLC (T1-T3N2). Induction with cisplatin/vinblastine x2 cycles, then Arm 1) surgery vs. Arm 2) RT 64/32. Adjuvant cisplatin/vinblastine. 45 patients actually randomized post induction.
***Outcome: Median OS chemo + surgery 1.6 years vs chemo + RT 1.4 years (NS); 1-year OS 70% vs. 66% (NS). If induction chemo only, median OS 9 months. No difference in PFS or LC
***Conclusion: Trial inconclusive due to limited accrual, nevertheless, surgery and RT arms comparable and similar to historical controls
==Neoadjuvant Chemotherapy +/- Neoadjuvant Immunotherapy==
*'''CheckMate 816''' -- Induction platinum-doublet x3 cycles, with or without nivolumab, then surgery.
**Randomized 358 patients with stage IB-IIIA resectable NSCLC (64% Stage IIIA)
**'''2022''' {{PMID|35403841}} -- "Neoadjuvant nivolumab plus chemotherapy in resectable lung cancer," (PM Forde, NEJM 2022, 386(21):1973)
***Median event free survival: ChemoImmunotherapy 32 months; Chemo alone 21 months (SS)
***Pathological CR: ChemoImmunotherapy 24%, Chemo alone 2%
***Toxicity similar.
==Surgery +/- Adjuvant Chemo==
*Adjuvant chemo has become standard of care in patients who are treated with surgery and found to have stage IIIA disease. This is based on the IALT trial, as well as by extrapolating from NCIC (Stage I-II) and CALGB 9633 (Stage IB) trials
*''Please see [[Radiation_Oncology/Lung/NSCLC/Early_Stage_Operable#Surgery_.2B.2F-_adjuvant_chemotherapy|early stage operable]] NSCLC'' section
==Surgery + Adjuvant RT +/- Chemo==
*''Please see [[Radiation_Oncology/Lung/NSCLC/Early_Stage_Operable#Adjuvant_chemo_vs._adjuvant_chemo-RT|Early stage operable]] NSCLC'' section
==Induction Chemo biology==
*'''Netherlands; 2003''' {{PMID|14676792}} -- "Accelerated regrowth of non-small-cell lung tumours after induction chemotherapy." (El Sharouni SY, Br J Cancer. 2003 Dec 15;89(12):2184-9.)
**Retrospective. 23 patients with NSCLC. Interval times between end of induction of start of RT evaluated. Mean time to RT 80 days
**Outcome: 41% potentially curable patients became incurable; tumor median doubling 29 days (8.3-171 days)
**Conclusion: Accelerated tumor cell proliferation, much shorter doubling time than for untreated tumors. Gain from chemo (tumor decrease) was lost with waiting for RT
==Special cases==
===Superior sulcus (Pancoast) tumors===
Complete resection in 50%, 5-year OS 30%.
*'''SWOG 9416 / Intergroup 0160''', 2001 (1995-99) - Phase II
**{{PMID|11241082}} — "Induction chemoradiation and surgical resection for non-small cell lung carcinomas of the superior sulcus: Initial results of Southwest Oncology Group Trial 9416 (Intergroup Trial 0160)." Rusch VW et al. J Thorac Cardiovasc Surg. 2001 Mar;121(3):472-83.
**111 pts. T3-4 N0-1, mediastinoscopy negative. Treated with 2 cycles of cisplatin and etoposide concurrent with 45 Gy RT. Pts who responded or had stable disease underwent resection 3-5 weeks later. Two additional cycles of adjuvant chemotherapy were given.
**Of 95 pts eligible for surgery, 83 had thoracotomy and 76 (92%) had complete resection. 54 (65%) showed pCR or microscopic residual disease. 2-year OS 55% for all pts and 70% for those with complete resection.
==Practice Guideline==
*'''ACCP; 2007''' {{PMID|17873172}} -- "Treatment of non-small cell lung cancer-stage IIIA: ACCP evidence-based clinical practice guidelines (2nd edition)." (Robinson LA, Chest. 2007 Sep;132(3 Suppl):243S-265S.)
**Stage IIIA NSCLC evidence review
**Conclusion: Combination chemo-RT is preferred treatment for prospectively recognized IIIA. Neoadjuvant therapy followed by surgery is not supported by current evidence
k25ee0t7p66i9c200dtnsz9tfmqk6my
Radiation Oncology/NSCLC/Locally Advanced Unresectable
0
39887
4674804
4585699
2026-10-07T06:00:42Z
Jcb
90773
4674804
wikitext
text/x-wiki
{{Radiation Oncology/Lung/NSCLC:TOC}}
<big>'''Locally Advanced Unresectable NSCLC'''</big>
''Subpages:'' <br>
*[[Radiation Oncology/Lung/NSCLC/Locally Advanced Unresectable/RT Only|RT Only]]
*[[Radiation Oncology/Lung/NSCLC/Locally Advanced Unresectable/Induction-Chemo RT|Induction-Chemo RT]]
*[[Radiation Oncology/Lung/NSCLC/Locally Advanced Unresectable/Concurrent-Chemo RT|Concurrent Chemo-RT]]
==Treatment Overview==
*Patients were initially treated with radiation only, usually split course
*Dose-escalation in RTOG 73-01 established 60 Gy in 2 Gy/fx as the standard regimen
*Median survival was ~10 months, with 3-year survival <10%
*Hyperfractionated RT alone did not show any benefit
*Continuous Hyperfractionated Accelerated RadioTherapy (CHART) showed a significant improvement in OS. However, logistics of delivering RT TID x12 days straight, combined with OS improvement with chemotherapy have limited its adoption
*CALGB, RTOG, and UK studies in mid-1990's established induction chemo + RT superior for median OS, although absolute benefit was not large (2-4 months). There was a significantly higher proportion of long term survivors. There was no impact on local progression, but distal failure was significantly less
*Hyperfractionated RT after chemo induction did not show any benefit over standard RT
*Induction chemo alone, without RT, was comparable in median OS, but inferior in long term survivors compared to induction chemo + RT. RT was considered a necessary component of treatment
*At the same time, concurrent chemotherapy and RT were evaluated. The only survival benefit of concurrent chemo-RT over RT alone was in an EORTC trial, which used split-course RT with a 3 week rest. The other 3 trials with standard RT fractions were negative. The chemo used was a single agent.
*Concurrent chemo (2 agents) with hyperfractionated RT resulted in OS benefit in 2 Yugoslavian trials
*Small overall chemo benefit was demonstrated in a meta-analysis setting in 1995, and confirmed to be 4% absolute benefit at 2 years in a subsequent meta-analysis. Essentially any two agents are superior to any single agent; adding a third drug did not provide additional benefit
*However, the timing of giving chemotherapy and RT was unclear. Both induction and concurrent chemo appear to provide survival benefit, induction chemo via improved distal control and concurrent chemo via improved local control.
*Direct comparisons in several randomized trials established concurrent chemo-RT as the superior regimen, at the cost of increased in-field toxicity (especially esophagitis)
*There is no benefit to induction chemotherapy, followed by concurrent chemo-RT (CALGB B39801, LAMP). The later RT starts, the worse the outcomes
*The role of consolidative chemo after concurrent chemo-RT is under evaluation
*The role of elective nodal irradiation is also evolving, with single institution series suggesting minimal benefit, and one randomized trial (China) finding that dose escalation to 68-74 Gy due to lower volume treated resulted in improved overall survival
*The current standard of care can be considered concurrent chemo with 2 agents containing platinum, and thoracic RT to 60 Gy in QD fractions.
==RT vs. Placebo==
*'''VA Lung Group (VALG)''' -- RT vs. placebo vs. chemotherapy
**Randomized, 3 arms. 800 patients. Localized but inoperable (mostly due to bulky disease). KPS 80-100 33%, KPS 50-70 55%. Arm 1) RT vs. Arm 2) placebo (lactose) vs. Arm 3) chemo (not reported here). RT given: orthovolatage in 90% (200-260 kV), Cobalt-60 in 10%. Target dose 40-50 Gy, but 33% received <40 Gy (2/3 died, 1/3 medical complications)
**'''1968''' {{PMID|4170866}} -- "The survival of patients with inoperable lung cancer: a large-scale randomized study of radiation therapy versus placebo." (Roswit B, Radiology. 1968 Apr;90(4):688-97.)
***Outcome: Median OS: RT 4.6 months vs. placebo 3.7 months (NS); 1-year survival: RT 18% vs. placebo 14% (p=0.05).
***Long-term survivors (top 25%): RT 10 months vs. 7.6 months (SS). Better survival if longer symptomatic prior to diagnosis, suggesting slower rate of growth
***Conclusion: RT does not impact median OS, but improves long-term survival
==Radiation alone==
*''Please see the [[Radiation_Oncology/Lung/NSCLC/Locally_Advanced_Unresectable/RT_Only|RT Only]] section for detailed literature review''
*Survival: 7-10 months
*RT dose:
**Standard 2D: 60Gy in 2Gy/fx established in RTOG 73-01; but insufficient to control disease
**RT alone (3D-CRT): 83.8 Gy tolerable, 90.3 Gy excess mortality (from RTOG 93-11)
**RT with chemotherapy: maximum 70-74 Gy appears tolerable
*Hyperfractionated RT alone did not show any beneft
*Continuous hyperfractionated thereapy (CHART) showed a significant improvement in OS. However, logistics of delivering RT TID x12 days straight, combined with OS improvement with chemotherapy have limited its adoption
*In mid-1990's induction chemotherapy followed by RT was shown to have modestly better OS over RT alone (see below), and efforts since have been targeted at optimizing CRT
==Combined modality==
===RT alone vs. Chemo alone vs. Chemo-RT===
*'''Vanderbilt, 1990''' - {{PMID|2161633}} — "Thoracic radiotherapy does not prolong survival in patients with locally advanced, unresectable non-small cell lung cancer." Johnson DH et al. Ann Intern Med. 1990 Jul 1;113(1):33-8.
**319 pts, locally advanced, unresectable. Randomized to 1) Vindesine weekly, 2) RT to 60 Gy (2 Gy/fx), or 3) Vindesine + RT. Vindesine was given weekly for 6 weeks then every other week. Cross over to the other arm was done for disease progression.
**Minimum f/u 42 months. Response rate was 30% (RT alone), 34% (chemo + RT), 10% (chemo). No difference in survival. Median survival was 8.6 vs 9.4 vs 10.1 months; 5-yr OS 3% vs 3% vs 1%.
**Conclusion: RT failed to improve survival.
===RT alone vs. Induction Chemo-RT===
*CALGB 8433 published in 1990 (Dillman) {{PMID|2169587}}
**Phase III trial of 155 patients with Stage III non-small cell lung cancer
** RT only arm received 60 Gy in 2 Gy fractions; experimental arm received cisplatin 100 mg/m2 with vinblastine 5 mg/m2 for two cycles sequentially with same radiation starting day 50.
** Median OS improved 13.8 vs 9.7 months (p<0.01) with chemoRT vs RT alone. 3-year OS improved 23% vs 11% as well.
* 1996 update {{PMID|8780630}}
** OS after years 1 through 7 were 54, 26, 24, 19, 17, 13, and 13 for the CT-RT group and 40,13,10, 7, 6, 6, and 6 for the RT group.
*Overall, there appeared to be a modest survival benefit with induction chemo followed by RT, in patients with good performance status and no weight loss.
*There was a significantly higher proportion of long term survivors and improved distant failure-free survival, but essentially no impact on local recurrence
*Later studies comparing induction chemo/RT versus concurrent chemo/RT demonstrated the superiority of concurrent chemo/RT
Please see the [[Radiation_Oncology/Lung/NSCLC/Locally_Advanced_Unresectable/Induction-Chemo_RT|Induction Chemo RT]] section for literature review
===Induction Chemo-RT vs. Induction Chemo Alone===
*Same median survival, but RT significantly improves long-term survival rate. Chemotherapy alone is not sufficient
*'''Sakai''' (Japan) {{PMID|8040666}} -- "Role of radiotherapy in combined modality treatment of locally advanced non-small-cell lung cancer." (Kubota K, J Clin Oncol. 1994 Aug;12(8):1547-52.)
**Randomized. 92 patients treated with chemotherapy (VP vs. MVP vs. EP/VM) x2 cycles, then randomized to RT or not. 50-60 Gy in 2 Gy/fx. 63 patients in second (RT) randomization
**Median OS: comparable at 15 months. But 1-year, 2-year, 3-year OS: CT alone 66%, 9%, 3% vs. CT-RT 58%, 36%, 29%
**'''Conclusion: No difference in median OS, but significantly better long-term survivors with CT-RT. Chest RT necessary'''.
===RT Alone vs. Concurrent Chemo-RT===
*Only survival benefit of concurrent chemo-RT was in an EORTC trial, which used split-course RT with a 3 week rest. Three other trials with standard RT fractions were negative.
*Two trials out of Yugoslavia, using hyperfractionated RT, were also positive
*Meta-analysis of 9 trials showed a 4% absolute OS benefit with chemo-RT at 2 years, and established RT with chemotherapy as standard of care
Please see the [[Radiation_Oncology/Lung/NSCLC/Locally_Advanced_Unresectable/Concurrent-Chemo_RT|Concurrent-Chemo RT]] section for literature review
===Sequential vs. Concurrent Chemo and RT===
'''''Meta-analysis'''''
*'''NSCLC Collaborative Group; 2010''' {{PMID|20351327}} -- "Meta-Analysis of Concomitant Versus Sequential Radiochemotherapy in Locally Advanced Non-Small-Cell Lung Cancer." (Auperin A, J Clin Oncol 2010 May 1;28(13):2181-2190.)
**Meta-analysis. Individual patient data from 6 trials (CALGB 8831, WJLCG, RTOG 9410, GMMA Ankara, GLOT-GFPC NPC 95-01, EORTC 08972). 1205 patients. Median F/U 6 years
**Outcome: Benefit of concomitant chemo-RT over sequential chemo->RT on OS (HR 0.84, SS), with absolute benefit at 3-years of 5.7% (18% to 24%), 5-years 4.5% (11% to 15%). No difference in PFS (HR 0.9, p=0.07). Decrease in locoregional progression (HR 0.777, SS), with absolute decrease of 6% at 5 years (35% to 29%). No difference on distant progression (HR 1.04, NS), with 5-year rate of ~40%
**Toxicity: Acute Grade 3-4 esophageal toxicity worse (RR 4.9, SS), increase from 4% to 18%; no significant difference in acute pulmonary toxicity
**Conclusion: Concomitant chemo-RT compared with sequential chemo-RT improved overall survival, primarily through better locoregional control, at cost of manageable increase in acute esophageal toxicity
'''''Randomized evidence'''''
*'''CTRT99/97 Bronchial Carcinoma Therapy Group (Germany)''' (1997-2002) - Phase III
**303 pts. Stage IIIA-IIIB. Treated with induction chemo: carbo/taxol x 2 cycles. Then randomized to: 1) RT only 60 Gy, or 2) Chemo-RT with weekly taxol.
**'''2006''' {{PMID|16983107}} -- "Simultaneous chemoradiotherapy compared with radiotherapy alone after induction chemotherapy in inoperable stage IIIA or IIIB non-small-cell lung cancer: study CTRT99/97 by the Bronchial Carcinoma Therapy Group." (Huber RM, J Clin Oncol. 2006 Sep 20;24(27):4397-404.)
***214 pts randomized. Median f/u 13.6 mo. Induction therapy was well tolerated with mild toxicities. Median survival 14.1 mo (RT) vs 18.7 mo (Chemo-RT), NS. Median TTP 11.5 mo vs 14.7 mo (SS). No significant differences in toxicity between the two arms.
***Conclusion: Induction chemo followed by chemo-RT is feasible. Response, time to progression, and survival favor chemo-RT vs RT.
*'''GLOT-GFPC NPC 95-01''' (French) (1996-2000) {{PMID|16087956}} — "Randomized phase III trial of sequential chemoradiotherapy compared with concurrent chemoradiotherapy in locally advanced non-small-cell lung cancer: Groupe Lyon-Saint-Etienne d'Oncologie Thoracique-Groupe Francais de Pneumo-Cancerologie NPC 95-01 Study." Fournel P et al. J Clin Oncol. 2005 Sep 1;23(25):5910-7.
**Randomized 205 pts. Stage III. Treated A) Sequential: induction cisplatin/vinorelbine followed by RT 66 Gy vs. B) Concurrent/Consolidation: RT 66 Gy with cisplatin/etoposide, then cisplatin/vinorelbine
**Median OS: sequential 14.5 months vs concurrent/consolidative 16.3 months (NS). 4-year OS: sequential 14% vs concurrent/consolidative 21% (NS)
**Toxicity: Worse esophageal toxicity in concurrent arm (32% vs 3%)
**Conclusion: no significant difference, but trend suggestive of potential benefit for concurrent therapy
*'''Prague, 2004''' (Czech) {{PMID|15364136}} — "Concurrent versus sequential chemoradiotherapy with cisplatin and vinorelbine in locally advanced non-small cell lung cancer: a randomized study." Zatloukal P et al. Lung Cancer. 2004 Oct;46(1):87-98.
**Randomized. 102 patients (15 IIIA, 87 IIIB) treated with A) concurrent chemo-RT vs. B) sequential chemo-RT, with RT starting within 2 weeks. RT given as 60/30. Chemo given as cisplatin/vinorelbine
**Median OS: concurrent 16.6 months vs. sequential 12.9 months (SS). Time-to-progression: 11.9 months vs. 8.5 months (SS)
**Toxicity: Grade 3/4 more frequent in concurrent arm, leukopenia 53% vs. 19% (SS), nausea/vomiting 39% vs. 15% (SS)
**Conclusion: concurrent significantly better survival, time to progression. Worse but acceptable toxicity
*'''RTOG 94-10''' (1994-98) {{PMID|21903745}} — "Sequential vs Concurrent Chemoradiation for Stage III Non-Small Cell Lung Cancer: Randomized Phase III Trial RTOG 9410." Curran W et al. J Natl Cancer Inst. 2011 Sep 8. [Epub ahead of print]
**Inoperable / unresectable Stage II-IIIB, ineligible for RTOG 93-03. Randomized. Elective nodal irradiation is required.
***<u>Arm 1</u>: sequential chemo (vinblastine + cisplatin) followed by RT beginning on day 50. Vinblastine weekly x 5. Cisplatin 100 mg/m2 q3w x 2. RT 45 Gy + 2 Gy x 9 boost (63 Gy total).
***<u>Arm 2</u>: concomitant chemo/RT (same chemo & RT as in Arm 1). (Based on RTOG 90-15 but with qd RT)
***<u>Arm 3</u>: concomitant chemo (oral etoposide and cisplatin) and hyperfractionated RT. Oral etoposide 50 mg BID given on RT days only for weeks 1-4. Cisplatin 50 mg/m2 on days 1,8,29,36. RT dose 69.6 Gy at 1.2 Gy BID. (Based on RTOG 91-06)
** Published at a median f/u of 11 yrs (prior ASTRO Abstract in 2003).
***Median OS: SEQ 14.6 mo vs. CON-QD 17.0 mo (SS vs. SEQ) vs. CON-BID 15.6 mo
***5-year OS: SEQ 10% vs. CON-QD 16% (SS vs. SEQ) vs. CON-BID 13%
***Conclusion: Concurrent chemo-RT with cisplatin confers a long-term survival benefit over sequential therapy.
**RTOG 90-15 - {{PMID|7712445}} - Phase I/II - BID RT with concurrent vinblastine + cisplatin. (Provided Arm 2 of RTOG 94-10)
**RTOG 91-06 - {{PMID|8648357}} - Phase II - BID RT with concurrent oral daily etoposide + IV cisplatin. (Provided Arm 3 of RTOG 94-10)
*'''WJLCG; Japan''' (1992-94)
**'''1999''' {{PMID|10561343}} — "Phase III study of concurrent versus sequential thoracic radiotherapy in combination with mitomycin, vindesine, and cisplatin in unresectable stage III non-small-cell lung cancer." Furuse K et al. J Clin Oncol. 1999 Sep;17(9):2692-9.
**320 pts. Unresectable Stage III. Randomized Phase III.
***<U>Arm 1</u>: Concurrent. Cisplatin (80 mg/m2, days 1 & 29) + vindesine (3 mg/m2, days 1, 8, 29, 36) + mitomycin C (8 mg/m2, days 1 & 29). RT began on day 2. 28 Gy, break of 10 days, then 28 Gy (total 56 Gy).
***<U>Arm 2</u>: Induction. Same chemotherapy. RT began after chemotherapy, 56 Gy non-split course.
**Median survival 16.5 months (concurrent) vs 13.3 months (sequential). Survival at 2, 3, 4, and 5 years in concurrent group (34.6%, 22.3%, 16.9%, and 15.8%) vs (27.4%, 14.7%, 10.1%, and 8.9%) in sequential group. Difference is S.S
**Conclusion: Concurrent chemo/RT leads to better survial in selected pts than sequential chemo/RT.
===Concurrent Chemo-RT +/- Induction Chemo===
*There appears to be no benefit to induction chemotherapy prior to concurrent chemo-RT in 2 randomized trials
*'''CALGB B39801''' (1998-2002) -- Induction carboplatin/paclitaxel -> RT vs chemo-RT
**Randomized. 366 patients with unresectable Stage III NSCLC. Randomized to Arm 1) Concurrent carboplatin (AUC=2)/paclitaxel (50 mg/sq m) with RT 66 Gy. Arm 2) Induction with carboplatin(AUC=6)/paclitaxel (200 mg/sq m) x2 cycles, then concurrent chemo-RT as Arm 1
**'''2007''' {{PMID|17404369}} -- "Induction chemotherapy followed by chemoradiotherapy compared with chemoradiotherapy alone for regionally advanced unresectable stage III Non-small-cell lung cancer: Cancer and Leukemia Group B." (Vokes EE, J Clin Oncol. 2007 May 1;25(13):1698-704.)
***Outcome: MS induction 12 months vs. no induction 14 months (NS); 2-year OS 29% vs. 31% (NS)
***Toxicity: Induction chemo neutropenia (20% Grade 3-4), no difference between concurrent CRT arms
***Conclusion: Addition of induction chemo added toxicity without survival benefit.
**Comment: Low survival compared to other trials, possibly due to lower chemo dose due to using carboplatin and not cisplatin.
*'''Locally Advanced Multimodality Protocol (LAMP)''', 2005 (1998-2001) - Randomized Phase II. Closed early due to nonaccrual. Opened before concurrent chemo-RT was established as standard, with Arm 1 sequential chemo-RT as control. Arm 2 was closed early at interim analysis. Eventually interest in Arm 1 slowed down, and trial was closed. Results compared to historical RTOG 88-08
**257 pts. Stage IIIA or IIIB (medically inoperable N2, T4, or T3). KPS >= 70%, wt loss <= 10%.
***<u>Arm 1</u>: Sequential chemotherapy followed by RT. 2 cycles of paclitaxel (200 mg/m2) and carboplatin (AUC 6) every 3 weeks. RT on day 42 (3 weeks after last chemotherapy cycle), 45 Gy + 18 Gy = 63 Gy, to postchemo volume.
***<u>Arm 2</u>: Induction chemotherapy followed by concurrent chemo/RT. Two cycles of chemotherapy (as in Arm 1) followed by RT (as in Arm 1) given concurrently with weekly Taxol (45 mg/m2) + 2 cycles of carboplatin (AUC 2) q3weeks x 2 cycles
***<u>Arm 3</u>: Concurrent chemo/RT followed by consolidative chemotherapy. Concurrent chemo/RT (as in Arm 2) followed by two cycles of chemotherapy (as in Arms 1&2) 3-4 weeks after completion of concurrent therapy.
**{{PMID|16087941}}, 2005 — "Combined Chemoradiotherapy Regimens of Paclitaxel and Carboplatin for Locally Advanced Non-Small-Cell Lung Cancer: A Randomized Phase II Locally Advanced Multi-Modality Protocol." Belani CP et al. J Clin Oncol. 2005 Sep 1;23(25):5883-5891.
***Median f/u 39.6 months. Median survivals 13 months vs 12.7 months vs 16.3 months. Overall survival at 1,2,and 3 years for Arm 1: 57%, 30%, 17; Arm 2: 53%, 25%, 15%; Arm 3: 63%, 31%, 17%. No S.S. difference for any of the arms compared to RTOG 88-08.
**Conclusion: No statistically significant difference in survival for any of the arms (vs. RTOG 88-08). Suggestion of improved outcome for Concurrent chemo/RT -> consolidative chemo.
===Induction chemo alternatives + chemo-RT===
*'''CALGB 30105''' -- Induction/concurrent carbo/taxol vs. carbo/gemcitabine
**'''2008''' {{PMID|18487565}} -- "Randomized phase II trial of induction chemotherapy followed by concurrent chemotherapy and dose-escalated thoracic conformal radiotherapy (74 Gy) in stage III non-small-cell lung cancer: CALGB 30105." (Socinski MA, J Clin Oncol. 2008 May 20;26(15):2457-63.)
**Randomized Phase II. ''Arm 2 closed prematurely due to toxicity.'' 69 patients, Stage IIIA-B. Arm 1) induction carboplatin AUC6 + paclitaxel 225 mg/m2 followed by concurrent carboplatin AUC2 + paclitaxel 45 mg/m2 + RT 74 Gy vs. Arm 2) induction carboplatin AUC5 + gemcitabine 35 mg/m2, followed by concurrent gemcitabine + RT 74 Gy. Primary endpoint OS at 1.5 years
***Outcome: median OS carbo/taxol 2.0 years vs. carbo/gem 1.0 years
***Toxicity: High Grade 4-5 rate in carbo/gem arm
***Conclusion: Carbo/taxol arm better and will be compared with standard dose TRT
===Chemo-RT +/- Chemotherapy Consolidation===
*'''Hoosier Oncology Group (Indiana)''' (2002-2006) -- Chemo-RT +/- docetaxel
**Randomized. ''Stopped early due to interim analysis of futility.'' 147/203 patients with stage IIIA-B, FEV1 >=1 L, wt loss <5%. Concurrent RT 59.4 Gy with cisplatin/etoposide, then if no progression Arm 1) docetaxel 75 mg/m2 x3 cycles vs. Arm 2) observation
**'''2008''' {{PMID|19001323}} -- "Phase III study of cisplatin, etoposide, and concurrent chest radiation with or without consolidation docetaxel in patients with inoperable stage III non-small-cell lung cancer: the Hoosier Oncology Group and U.S. Oncology." (Hanna N, J Clin Oncol. 2008 Dec 10;26(35):5755-60. Epub 2008 Nov 10.)
***Outcome: Median OS docetaxel 1.8 years vs. observation 1.9 years (NS)
***Toxicity: Grade 3+ febrile neutropenia 11%, pneumonitis 10%, hospitalization 29% vs. 8%, death 5%
***Conclusion: Consolidation with docetaxel increased toxicity with no impact on survival
*'''SWOG 0023''' (2001-2005) -- Chemo-RT + adjuvant docetaxel +/- adjuvant gefitinib
**Randomized. ''Closed early after worse survival with gefitinib''. 243/672 patients, Stage III NSCLC. Concurrent cisplatin 50 mg/m2 + etoposide 50 mg/m2 + RT 61 Gy, then docetaxel 75 mg/m2 x3 cycles. If no progression, randomized Arm 1) gefitinib 250 mg/d vs. Arm 2) placebo until progression, toxicity or 5 years
**'''2008''' {{PMID|18378568}} -- "Phase III trial of maintenance gefitinib or placebo after concurrent chemoradiotherapy and docetaxel consolidation in inoperable stage III non-small-cell lung cancer: SWOG S0023." (Kelly K, J Clin Oncol. 2008 May 20;26(15):2450-6. Epub 2008 Mar 31.) Median F/U 2.2 years
***Outcome: median OS gefitinib 1.9 years vs. placebo 2.9 years (SS)
***Toxicity: death rate gefitinib 2% vs. placebo 0%
***Conclusion: Gefitinib didn't improve survival; decreased survival result of tumor progression and not gefitinib toxicity
*'''SWOG S9504''' {{PMID|12743155}} -- "Consolidation docetaxel after concurrent chemoradiotherapy in stage IIIB non-small-cell lung cancer: phase II Southwest Oncology Group Study S9504." (Gandara DR, J Clin Oncol. 2003 May 15;21(10):2004-10.)
**Phase II. Stage IIIB. Concurrent chemo (cisplatin/etoposide) and RT 61 Gy, followed by consolidation docetaxel 4-6 weeks later
**Median OS: 26 months; 3-year OS 37%; brain mets most common site of failure
===Chemotherapy combinations with RT===
'''''Ongoing studies:'''''
*'''RTOG 0617 (ongoing)''' - Phase III. Concurrent RT + Carbo/Taxol +/- Cetuximab
'''''Completed studies:'''''
*'''RTOG 0324''' -- Phase II. Concurrent RT + Cetuximab / Carbo / Taxol
**87 pts. Stage III unresectable. Received cetuximab weekly (17 weeks beginning 1 week prior to CRT), RT 63 Gy / 35 fx with weekly carboplatin (AUC 2) and paclitaxel (45 mg/m2) for 6 weeks, followed by 2 doses of carbo (AUC 6) + paclitaxel (200 mg/m2) on weeks 12 - 17.
**'''2011''' {{PMID|21555682}} -- "Phase II Study of Cetuximab in Combination With Chemoradiation in Patients With Stage IIIA/B Non-Small-Cell Lung Cancer: RTOG 0324." (Blumenschein GR Jr, J Clin Oncol. 2011 Jun 10;29(17):2312-8.)
***Median f/u 21.6 m. Response rate 62%, MS 22.7 m, 2-yr OS 49.3%.
***Conclusion: combination of cetuximab and chemo/RT is feasible with promising activity. The median and OS were longer than any previous regimen in the RTOG.
*'''CALGB 30407''' -- Randomized Phase II. Carbo / Pemetrexid + RT +/- Cetuximab
**101 pts. Stage III. Arm A) Carboplatin (AUC 5) and Pemetrexid (500 mg/m2) q3w x 4 cycles concurrent with RT 70 Gy, Arm B) Same treatment plus Cetuximab concurrent with RT. Consolidation therapy with up to 4 cycles of Pemetrexid in both arms.
**'''2011''' {{PMID|21747084}} -- "Randomized Phase II Study of Pemetrexed, Carboplatin, and Thoracic Radiation With or Without Cetuximab in Patients With Locally Advanced Unresectable Non–Small-Cell Lung Cancer: Cancer and Leukemia Group B Trial 30407" (Govindan R, J Clin Oncol. Published online before print July 11, 2011.)
***Adenoca in 44%, squamous in 35%. 18-mo OS 58% (Arm A) vs 54%. No significant difference in survival between pts with adenoca and squamous.
***Conclusion: The regimen of carbo/pemetrexid/RT should be further studied.
'''Meta-analysis'''
*'''Gustave-Roussy, 2004''' {{PMID|15280345}} -- "Benefits of adding a drug to a single-agent or a 2-agent chemotherapy regimen in advanced non-small-cell lung cancer: a meta-analysis. (Delbaldo C, JAMA. 2004 Jul 28;292(4):470-84.)
**65 randomized trials performed 1980-2003 (13,601 patients)
**Doublet vs. single-agent: better tumor response (OR 0.42), median OS (OR 0.3), 1-year OS (OR 0.80)
**Triplet vs. doublet: better tumor response (OR 0.66), no impact on survival (OR 1.01, 1.00)
**Conclusion: doublet better than single-agent; triplet no additional survival benefit
==Radiation technique==
===RT Dose===
'''''With Concurrent Chemo:'''''
*'''RTOG 0617''' (2007 - 2011) - Phase III. 4 arm randomization. 60 Gy vs 74 Gy. Concurrent RT + Carbo/Taxol +/- Cetuximab.
**Randomized, 2x2 factorial. 544 patients. Unresectable Stage III NSCLC, PS 0-1, no SCL/contralateral hilar adenopathy. Arm A) 60 Gy vs Arm B) 74 Gy vs Arm C) 60 Gy + cetuximab vs Armd D) 74 Gy + cetuximab. All arms concurrent paclitaxel 45 mg/m2 and carboplatin AUC 2 weekly. Arms B and D (the two 74 Gy arms) were closed in 6/2011 after an interim analysis showed the high dose arms crossed a futility boundary.
**'''Results; 2015''' {{PMID|25601342}} -- "Standard-dose versus high-dose conformal radiotherapy with concurrent and consolidation carboplatin plus paclitaxel with or without cetuximab for patients with stage IIIA or IIIB non-small-cell lung cancer (RTOG 0617): a randomised, two-by-two factorial phase 3 study." (Bradley JD, Lancet Oncol. 2015 Feb;16(2):187-99. doi: 10.1016/S1470-2045(14)71207-0. Epub 2015 Jan 16.) Median follow up 22.9 months
***Outcome: median OS 60 Gy 29 months vs 74 Gy 20 months (HR 1.4, SS). Median OS cetuximab 25 months vs no cetuximab 24 months (NS)
***Toxicity: RT dose comparison - no difference in grade 3+ toxicity. Cetuximab comparison - grade 3+ 86% vs 70% (SS). Esophagitis 74 Gy 21% vs 60 Gy 7% (SS). No difference in pulmonary events.
***Conclusion: 74 Gy radiation with concurrent chemotherapy not better than 60 Gy plus concurrent chemotherapy. Addition of cetuximab provides no benefit in overall survival
**'''Quality of Life; 2015''' {{PMID|26606200}} -- "Quality of Life Analysis of a Radiation Dose-Escalation Study of Patients With Non-Small-Cell Lung Cancer: A Secondary Analysis of the Radiation Therapy Oncology Group 0617 Randomized Clinical Trial." (Movsas B, JAMA Oncol. 2015 Nov 25:1-9. doi: 10.1001/jamaoncol.2015.3969. [Epub ahead of print])
***FACT-TOI collected in 75% at baseline. No difference at baseline
***Outcome: Clinically meaningful decline at 3 months 74 Gy 45% vs 60 Gy 30% (SS). IMRT better than 3D-CRT (21% decline vs 46% decline, SS)
***Conclusion: Clinically meaningful decline in 74 Gy arm compared with 60 Gy arm
===IMRT compared to 3D-conformal===
*'''Secondary analysis of NRG Oncology/RTOG 0617''' {{PMID|28034064}}, {{PMID|28068179}} -- "Impact of Intensity-Modulated Radiation Therapy Technique for Locally Advanced Non-Small-Cell Lung Cancer: A Secondary Analysis of the NRG Oncology RTOG 0617 Randomized Clinical Trial." (Chun SG et al. J Clin Oncol. 2017 Jan 1;35(1):56-62.)
**Methods: secondary analysis of RTOG 0617 based on stratification by RT technique (3D-CRT or IMRT)
**482 patients, 53% 3D-CRT, 47% IMRT
**IMRT patients had worse clinicopathologic features: significantly larger PTVs, more advanced AJCC stage disease and worse socioeconomic status
**Toxicity: IMRT had less Grade 3+ pneumonitis compared to 3D-CRT (3.5% vs. 7.9%, p < 0.05)
**Survival, local control, PFS, and DMFS similar for 3D-CRT and IMRT
**Dosimetry: the lung V20 was associated with grade 3+ pneumonitis, lung V5 low-dose bath was not associated with any kind of toxicity, heart doses (V20, V40, V60) were independently associated with survival
**Conclusion: IMRT should be routinely considered for locally-advanced NSCLC because it yielded lower Grade 3+ pneumonitis rates and reduced heart doses. Spread of the low dose bath was protective against pneumonitis; plans should not be optimized by V5 because this reduces conformity.
*'''MD Anderson; 2007''' (2002-2005) {{PMID|17321067}} -- "Initial evaluation of treatment-related pneumonitis in advanced-stage non-small-cell lung cancer patients treated with concurrent chemotherapy and intensity-modulated radiotherapy." (Yom SS, Int J Radiat Oncol Biol Phys. 2007 May 1;68(1):94-102. Epub 2007 Feb 22.)
**Retrospective. 68 patients, advanced NSCLC, treated with IMRT and concurrent chemotherapy. Compared with 222 similar patients treated with 3D-CRT. Median F/U 9 months
**Dosimetry: Median dose IMRT 63 Gy vs. 3D-CRT 63 Gy. Median tumor volume 194 mL vs. 142 mL
**Toxicity: 1-year Grade 3+ pneumonitis IMRT 8% vs. 3D-CRT 32% (SS)
**Conclusion: In advanced NSCLC treated with concurrent chemo-RT, IMRT resulted in significantly lower level of Grade 3+ pneumonitis
===Without Concurrent Chemo===
*'''Memorial Sloan Kettering'''
**'''2007''' {{PMID|17762758}} -- "High-dose radiotherapy for the treatment of inoperable non-small cell lung cancer." (Sura S, Cancer J. 2007 Jul-Aug;13(4):238-42.)
***Retrospective. 82 patients, inoperable NSCLC Stage I-IIIB (I-II n=55; III n=27). Dose >= 80 Gy using 3D-CRT with sequential chemotherapy
***5-year Outcome: Stage I/II LC 67%, OS 36%, median OS 3.4 years; Stage III LC 39%, OS 31%, median OS 2.7 years
***Conclusion: OS and LC comparable with other dose-escalation studies
**'''2005''' (1991-2003) {{PMID|15830346}} -- "Results of a phase I dose-escalation study using three-dimensional conformal radiotherapy in the treatment of inoperable nonsmall cell lung carcinoma." (Rosenzweig KE, Cancer. 2005 May 15;103(10):2118-27.)
***Phase I dose escalation. 104 patients, 28% Stage I-II, 33% IIIA, 32% IIIB, 6% recurrent. Pneumonitis NTCP had to be <25%. Dose 70.2 -> 75.6 -> 81.0 -> 84.0 -> 90 (1.8 Gy fx for 70.2-81; 2.0 Gy for 84-90). Protocol amended to omit elective nodal irradiation. Chemo: induction given in 16%; no concurrent chemo.
***Outcome: Unacceptable toxicity at 90 Gy; 84.0 Gy considered MTD. 2-year LC 52%. OS improved significantly if dose >= 80.0 Gy
***Toxicity: Crude late pulmonary toxicity 7%
***Conclusion: MTD for NSCLC with NTCP constraint of 25% is 84.0 Gy
*'''Michigan''' (1992-1999)
**Phase I trial. 104 patients (Stage I 23%, Stage II 4%, Stage IIIA 41%, Stage IIIB 25%, Recurrent 7%). Patients stratified based on Veff into 5 groups, each group escalated independently. Starting doses were 63 Gy, 63 Gy, 65.1 Gy, 69.3 Gy, and 84 Gy. No ENI.
**'''2001''' {{PMID|11134205}} -- "Dose escalation in non-small-cell lung cancer using three-dimensional conformal radiation therapy: update of a phase I trial." (Hayman JA, J Clin Oncol. 2001 Jan 1;19(1):127-36.)
***Outcome: MTD only established for largest Veff group at 65.1 Gy. Dose levels for other groups were 75.6 Gy, 84 Gy, 102.9 Gy, and 102.9 Gy
***Conclusion: Dose escalation protocol reported
**'''2005''' {{PMID|16168827}} -- "High-dose radiation improved local tumor control and overall survival in patients with inoperable/unresectable non-small-cell lung cancer: long-term results of a radiation dose escalation study." (Kong FM, Int J Radiat Oncol Biol Phys. 2005 Oct 1;63(2):324-33.)
***Median f/u 8.5 yrs. MS 19 mos. 5-yr OS 13%. On multivariate analysis, weight loss and RT dose were significant predictors for OS. 5-yr OS 4% (63-69 Gy), 22% (74-84 Gy), and 28% (92-103 Gy). 5-yr LRC 12%, 35%, and 49%.
***Conclusion: higher radiation doses associated with improved outcome.
===Accelerated RT===
'''''Concomitant boost'''''
*'''RTOG 84-07''' (1984-89)
**Phase I/II. 355 pts, ? stage. 45 Gy large fields (primary + regional nodes) + 18 Gy boost (primary and involved nodes only) = 63 Gy. Given as 45/1.8 Gy/5 weeks. Boost given as 10 fractions 2-3 times per week as 2nd fraction separated by 4-6 hrs. Dose escalated from 45+18=63 to 70.2 Gy/5.5 wks (50.4 + 19.8 Gy) to 70.2 Gy/5 wks (45 + 25.2 Gy).
**{{PMID|7836079}}, 1993 — "A phase I/II study to evaluate accelerated fractionation via concomitant boost for squamous, adeno, and large cell carcinoma of the lung: report of Radiation Therapy Oncology Group 84-07." Byhardt RW et al. Int J Radiat Oncol Biol Phys. 1993 Jun 15;26(3):459-68.
***Acute grade 3 toxicity in 7% vs 14% vs 17%. Grade 4 toxicity in 2-3% for all arms. Late toxicity in 5-9% grade 3 and 0-2% grade 4.
***Survival not statistically different between arms. MS 9 months, 1-yr OS 39-44%, 2-yr OS 16-21%. For pts with Stage III/KPS > 70/no weight loss (i.e. eligible for CALGB 8433) 2-yr OS, 18-22%.
===Hyperfractionated RT with chemotherapy===
*'''RTOG 92-04''' (1992-94) - phase II randomized
**164 pts. Unresectable Stage IIIA-B. Randomized to 1) ''induction chemotherapy + concurrent chemo/RT'' (weekly vinblastine x 5, cisplatin days 1+29 followed by RT to 45+18=63 Gy beginning on day 50 with concurrent cisplatin q3week x 3) vs 2) ''concurrent chemotherapy + hyperfractionated RT'' (1.2 Gy BID to 50.4+19.2=69.6 Gy in 4 wks with oral etoposide on days 1-10 + cisplatin days 1+8)
**First report, 1997 - {{PMID|9212017}}
**{{PMID|12062596}}, 2002 — "Randomized phase II chemotherapy and radiotherapy trial for patients with locally advanced inoperable non-small-cell lung cancer: long-term follow-up of RTOG 92-04." Komaki R et al. Int J Radiat Oncol Biol Phys. 2002 Jul 1;53(3):548-57.
***Lower in-field progression for Arm 2 than Arm 1 (26% vs 45% at 2 years; 30% vs 49% at 4 yrs; S.S.). Median, 2-yr OS, and 5-yr OS similar between arms. Higher rate of acute and chronic esophagitis in Arm 2 (37% vs 3.3% acute grade 3-4; 17% vs 4% late grade 3-4).
**Conclusion: Hyperfractionation with chemo leads to improved local control at the expense of esophageal toxicity.
*'''RTOG 94-10''' - see above
*'''Australia''' 1989-1995 {{PMID|10577698}} -- "A randomised phase III study of accelerated or standard fraction radiotherapy with or without concurrent carboplatin in inoperable non-small cell lung cancer: final report of an Australian multi-centre trial." (Ball D, Radiother Oncol. 1999 Aug;52(2):129-36.)
**Phase III. 204 with inoperable NSCLC randomized to 1) 60/30 in 6 weeks (R6), 2) 60/30 in 3 weeks (R3), 3) R6 + concurrent carboplatin, or 4) R3 + concurrent carboplatin
**No difference in OS among groups.
**Toxicity: hematologic greater with chemo, esophageal greater with ART (R3)
**Critique {{PMID|11258343}}: underpowered for 2x2 design. ART hazard ratio 0.86 (0.56, 1.30), which is consistent with CHART trial results (0.78, SS). Recommend not sacrificing dose intensification at expense of concurrent chemotherapy
===Elective nodal irradiation===
*'''International Atomic Energy Agency; 2008''' {{PMID|18793953}} -- "Report from the International Atomic Energy Agency (IAEA) consultants' meeting on elective nodal irradiation in lung cancer: non-small-Cell lung cancer (NSCLC)." (Belderbos JS, Int J Radiat Oncol Biol Phys. 2008 Oct 1;72(2):335-42.)
**Consultant meeting conference in 9/2006.
**Conclusion: Routine omission may not be advisable in all patients, and may depend on stage, location, and other variables.
*'''MSKCC''' (1991-2005)
**'''2007''' {{PMID|17984185}} -- "Involved-field radiation therapy for inoperable non small-cell lung cancer." (Rosenzweig KE, J Clin Oncol. 2007 Dec 10;25(35):5557-61.)
***Retrospective. 524 patients, definitive IFRT. Only LN+ by biopsy or >=1.5 cm short axis by CT included in CTV. Elective nodal failure (ENF) defined as recurrence in initially LN- in absence of local failure. Median F/U 3.4 years
***Outcome: ENF in 6%; 2-year elective nodal control 92%, local control 51%; median time to nodal failure 6 months
***Nodal dose-response (from incidental nodal irradiation): 86% failures in regions receiving dose <45 Gy vs. 14% failures if receiving >45 Gy (SS). In nodal regions receiving <45 Gy, failure rate 1.4% vs. if >45 Gy failure rate 0.6% (SS)
***Conclusion: IFRT didn't cause significant failure in LN regions not included in CTV
***Editorial ({{PMID|17984182}}): Discrepancy between surgical data and RT data about LN failures. Discussion about incidental nodal irradiation and its dose-effect on nodal failure
**'''2001''' {{PMID|11395236}} -- "Elective nodal irradiation in the treatment of non-small-cell lung cancer with three-dimensional conformal radiation therapy." (Rosenzweig K, Int J Radiat Oncol Biol Phys. 2001 Jul 1;50(3):681-5.)
***171 pts tx'd w/ 3D-CRT at MSKCC b/w 1991-98. Only +nodes by biopsy or >/= 1.5 cm in short axis on CT were included in CTV.
***Tumor control at 2 yrs 38%, elective nodal control 91%.
***Conclusion: Local control much more problematic than elective nodal control; omission of elective nodal irradiation did not significantly worsen nodal failures outside of CTV.
*'''Shandong, 2006''' (China) {{PMID|17551299}} -- "A randomized study of involved-field irradiation versus elective nodal irradiation in combination with concurrent chemotherapy for inoperable stage III nonsmall cell lung cancer.." (Yuan S, American Journal of Clinical Oncology, 2007 30(3):239-44)
**Randomized. 200 patients, inoperable Stage III NSCLC, treated with induction chemo x2 cycles followed by concurrent chemo-RT, followed by 2-3 cycles. RT randomized to elective nodal irradiation (ENI) vs. involved-field radiation (IFRT). Dose IFRT to 68-74 Gy and ENI to 60-64 Gy. IFRT defined as pre-CHT tumor volume and any mediastinal nodes bx+ or >1cm short-axis on CT. Chemo cisplatin-based doublet.
**Toxicity: Pneumonitis ENI 29% vs. IFRT 17% (SS)
**2-year failure: local ENI 49%, IFRT 41%. Omission of ENI did not lead to isolated nodal failures
**Survival: 2-years ENI 26% vs. IFRT 39% and 3-years 19% vs. 27% (SS)
**Conclusion: No isolated nodal failures, local control still major issue, successful dose escalation to 68-74Gy and survival difference by omitting elective nodal irradiation
*'''RTOG Analysis, 2003''' {{PMID|12871784}} -- "The impact of regional nodal radiotherapy (dose/volume) on regional progression and survival in unresectable non-small cell lung cancer: an analysis of RTOG data." (Emami B, Lung Cancer. 2003 Aug;41(2):207-14.)
**1705 pts from 4 RTOG trials (7811, 7917, 8311, 8407) analyzed for in-field/out-of-field recurrence patterns.
**Neither in-field progression or 2yr OS were affected by adequacy of nodal coverage in mediastinum, ipsi supraclav, contralat hilum.
*'''Rotterdam, 2002''' {{PMID|12419425}} -- "Can elective nodal irradiation be omitted in stage III non-small-cell lung cancer? Analysis of recurrences in a phase II study of induction chemotherapy and involved-field radiotherapy." (Senan S, Int J Radiat Oncol Biol Phys. 2002 Nov 15;54(4):999-1006.)
**50 pts w/ stage III NSCLC tx'd w/ sequential chemo + xrt to 70 Gy w/ omitted elective nodal irradiation.
**27% had in-field recurrences, 18% had distant mets alone, no elective nodal failures
'''Reviews'''
*{{PMID|11040331}}, 2000 — "Point: the potential importance of elective nodal irradiation in the treatment of non-small cell lung cancer." Liengswangwong V et al. Semin Radiat Oncol. 2000 Oct;10(4):308-14.
*{{PMID|11040332}}, 2000 — "Counterpoint: better radiation treatment of non-small cell lung cancer using new techniques without elective nodal irradiation." Williams TE et al. Semin Radiat Oncol. 2000 Oct;10(4):315-23.
===Induction chemo followed by conventional RT vs. HART===
*No difference in survival or response rate
*'''ECOG 2597''', 2005 (1998-2001) - After induction chemotherapy, standard fractionation RT vs hyperfractionated accelerated radiation therapy (HART). No concurrent chemo. Closed early due to low accrual.
**{{PMID|15837967}} — "Phase III Study of the Eastern Cooperative Oncology Group (ECOG 2597): Induction Chemotherapy Followed by Either Standard Thoracic Radiotherapy or Hyperfractionated Accelerated Radiotherapy for Patients With Unresectable Stage IIIA and B Non-Small-Cell Lung Cancer." Belani CP et al. J Clin Oncol. 2005 Jun 1;23(16):3760-7.
**141 pts. Unresectable IIIA or IIIB. Induction chemo with carbo/taxol x 2 cycles q3weeks. Randomized to once-daily RT (QD) 64 Gy at 2 Gy/fx vs HART 57.6 Gy TID in 12 fx over 15 days. For HART, 1st and 3rd daily fractions were 1.5 Gy large field, 2nd fx was boost field 1.8 Gy; at least 4 hours between fractions.
**No diffence in OS or response, but there was a trend for improved survival.
**Weak study since no concurrent chemo/RT
===RT Timing===
*'''Kragujevac''' (Yugoslavia) {{PMID|15577441}} -- "Interfraction interval in patients with stage III non-small-cell lung cancer treated with hyperfractionated radiation therapy with or without concurrent chemotherapy: final results in 536 patients." (Jeremic B, Am J Clin Oncol. 2004 Dec;27(6):616-25.)
**Retrospective review of 3 Phase III and 1 Phase II. 536 patients treated with Hfx RT, 285 patients interfraction interval (IFI) 4.5-5.0 hrs, 251 patients IFI 5.5-6.0 hrs
**Survival: short IFI significantly better OS, LRFS
==Chemotherapy==
*'''Japan WJTOG 3405'''
**Randomized. 172 chemo-naive patients, age <=75, Stage IIIB/IV NSCLC or postop recurrence, with EGRF mutation (exon 19 deletion or L858R point mutation). Arm 1) Gefitinib 250 mg QD vs Arm 2) cisplatin 80 mg/m2 and docetaxel 60 mg/m2 Q3W x 3-6 cycles. Primary endpoint PFS
**'''2009''' {{PMID|20022809}} -- "Gefitinib versus cisplatin plus docetaxel in patients with non-small-cell lung cancer harbouring mutations of the epidermal growth factor receptor (WJTOG3405): an open label, randomised phase 3 trial." (Mitsudomi T, Lancet Oncol. 2009 Dec 18. [Epub ahead of print])
***Outcome: Median PFG gefitinib 9 months vs. cisplatin/docetaxel 6 months (SS)
***Toxicity: Myelosuppression, alopecia, and fatigue more frequent in cisplatin/docetaxel group, but skin toxicity, liver dysfunction, and diarrhoea more frequent in the gefitinib group. Two patients (2%) developed interstitial lung disease
***Conclusion: Patients with EGFR mutations have longer PFS on gefitinib than on cisplatin/docetaxel
*'''ECOG 4599''' {{PMID|17167137}} -- "Paclitaxel-carboplatin alone or with bevacizumab for non-small-cell lung cancer." (Sandler A, N Engl J Med. 2006 Dec 14;355(24):2542-50.)
**Randomized. 878 patients with IIIB (malignant pleural effusion) or IV NSCLC, no squamous cell tumors, no brain mets, no hemoptysis, no ECOG >1. Treated with 1) Paclitaxel/carboplatin vs. 2) paclitaxel/carboplatin + bevacizumab, until disease progression or toxicity
**Median OS: carbo/taxol 10.3 months vs. carbo/taxol/bevacizumab 12.3 months (SS)
**Treatment related deaths: 2 vs. 15 (5 pulmonary hemorrhage)
**Conclusion: Bevacizumab improves survival, but significant risk of treatment-related death
==Radioprotectors/Sensitizers==
===Amifostine===
*'''RTOG 9801''' -- Induction -> concurrent chemo-AHFX RT +/- amifostine
**Randomized. 243 patients with unresectable NSCLC (II-IIIB). Induction paclitaxel 225 mg/m2 and carboplatin AUC6 x2 cycles, then concurrent chemo-RT. RT 69.6/58 @ 1.2 GY BID with concurrent paclitaxel 50 mg/m2 and carboplatin AUC2. During chemo-RT Arm 1) placebo vs. Arm 2) amifostine 500 mg IV (72% received it per protocol)
**'''2005''' {{PMID|15800308}} -- "Randomized trial of amifostine in locally advanced non-small-cell lung cancer patients receiving chemotherapy and hyperfractionated radiation: radiation therapy oncology group trial 98-01." (Movsas B, J Clin Oncol. 2005 Apr 1;23(10):2145-54.)
***Outcome: Grade 3+ acute esophagitis AM 30% vs no AM 34% (NS); patient reported dysphagia significantly better with AM (p=0.02). But, AM higher acute nausea (SS), vomiting (SS), CV toxicity (SS), and infection/neutropenia (SS). No difference in QOL
***Survival: AM 17.3 months vs. no AM 17.9 months (NS)
***Conclusion: Amifostine did not significantly reduce grade 3+ esophagitis, though patient self-assessment suggested an advantage
**'''2009''' {{PMID|19858383}} -- "Quality of Life Supersedes the Classic Prognosticators for Long-Term Survival in Locally Advanced Non-Small-Cell Lung Cancer: An Analysis of RTOG 9801." (Movsas B, J Clin Oncol. 2009 Oct 26. [Epub ahead of print])
***239 patients, 91% baseline QOL score. Multivariate analysis for OS: KPS, stage, sex, age, race, marital status, histology, location, Hgb, tobacco, amifostine, QoL scores (QLQ-C30, LC-13). Median F/U 5 years if alive, 17 months for all
***Outcome: On multivariate analysis, only baseline global QoL score was prognostic for survival; no other variables were significant. Patients with QoL score <67 (median value) had 70% higher rate of death (SS); 10-point increase in QoL corresponded to 10% decrease in hazard of death. Both physical functioning (QLQ-30) and dyspnea (LC-13) were independently predictive for OS on univariate analysis
***Conclusion: Quality of life score replaced all known prognostic factors as sole predictor for long-term survival
===Metoclopramide===
*'''Institute for Cancer Research, Oslo''' (1995-1998) -- observation vs metoclopramide
**'''2010''' {{PMID|20165821}} -- "CT Density in Lung Cancer Patients After Radiotherapy Sensitized by Metoclopramide : A Subgroup Analysis of a Randomized Trial." (Dale E, Strahlenther Onkol. 2010 Feb 22. [Epub ahead of print])
**Randomized. ''Trial stopped prematurely due to financial difficulties.'' 30 patients enrolled, 16 analyzable, NSCLC stage IIIA/IIIB. RT 60/33. Arm 1) observation vs Arm 2) concurrent metoclopramide 2mg/kg TIW. Analysis of CT density
***Outcome: Lung density increased with dose (SS). Patients on metoclopramide less increase in tissue density (SS)
***Conclusion: Metoclopramide and large radiation dose seemed to protect against fibrosis development
==Reviews and Guidelines==
*ASCO 2003 - {{PMID|14691125}} — "American Society of Clinical Oncology treatment of unresectable non-small-cell lung cancer guideline: update 2003." Pfister DG et al. J Clin Oncol. 2004 Jan 15;22(2):330-53.
==External links==
*[https://www.astro.org/uploadedFiles/Affiliates/ARRO/Resident_Resources/Educational_Resources/Case_Vingettes/NSCLCIIIB.pdf ARRO Case- Locally Advanced NSCLC]
*[http://www.medscape.com/viewarticle/502497_21 Medscape.com] '''(FREE, but requires registration)''' — Audio presentation with slides - Mark Socinski, M.D. - "Therapeutic Progress in Locally Advanced NSCLC" (April 2005)
86sbxqaqx0mu0w24g10s4noz8x7z5a2
Radiation Oncology/NSCLC/Early Stage Operable
0
39891
4674800
4584031
2026-10-07T05:52:49Z
Jcb
90773
4674800
wikitext
text/x-wiki
{{:Radiation Oncology/Lung/NSCLC:TOC}}
==Pathology==
*'''Moffitt, 2007''' {{PMID|17314339}} -- "DNA synthesis and repair genes RRM1 and ERCC1 in lung cancer." (Zheng Z, N Engl J Med. 2007 Feb 22;356(8):800-8.)
**RRM1 expression evaluated in 187 patients with early-stage NSCLC treated with surgery only
**RRM1 expression correlated with ERCC1 (SS) but not PTEN (NS)
**Outcomes: median DFS: high RRM1 >120 months vs. low RRM1 54 months (SS); median OS: >120 months vs. 60 months. Benefit if RRM1+ and ERCC1+
**Conclusion: RRM1 and ERCC1 determinants of survival
*'''Duke, 2006''' {{PMID|16899777}} -- "A genomic strategy to refine prognosis in early-stage non-small-cell lung cancer." (Potti A, N Engl J Med. 2006 Aug 10;355(6):570-80.)
**Gene expression profiling. 89 patients learning set, 25 patients from ACOSOG Z0030 and 84 patients from CALGB 9761 as verification set
**Predictive accuracy of recurrence ~75%
**Also identified subset of IA who are at high risk of recurrence
**Since retracted by authors due to questions regarding integrity of the data.
==Lymph Node Staging==
*'''CALGB 9761''' {{PMID|15829324}} -- "Poor correspondence between clinical and pathologic staging in stage 1 non-small cell lung cancer: results from CALGB 9761, a prospective trial." (D'Cunha J, Lung Cancer. 2005 May;48(2):241-6. Epub 2005 Jan 4.)
**Prospective. 489 patients with suspected or bx-proven NSCLC, clinical stage I (T1-2N0) by CT scan or cervical mediastinoscopy
**Outcome: Pathologic NSCLC in 86% (others were 2/3 benign, 1/3 malignancy other than NSCLC). Of these, Stage pI 72%, pII 14%, pIII 13%, pIV 1%. Overall, only 62% of clinically suspected Stage I NSCLC had pathologic Stage I NSCLC
**Conclusion: Poor predictive value of current clinical staging
==Lobectomy vs. SBRT==
*'''STARS (NCT00840749) and ROSEL (NCT00687986) Trials''' - Pooled Analysis of 2 Randomized Trials. ({{PMID|25981812}}) Chang JY et al, "Stereotactic ablative radiotherapy versus lobectomyfor operable stage I non-small-cell lung cancer: a pooled analysis of two randomised trials" Lancet Oncology. 2015 Jun;16(6):630-7
**58 total patients with operable T1-2a (<4 cm) N0 M0 non-small cell lung cancer (NSCLC)
**Randomized to lobectomy (total of 27 patients) vs SABR (total 31 patients).
***At 3 years, SABR associated with improved overall survival (OS) over lobectomy (95% vs. 79%, P=0.037)
***At 3 years, SABR associated with a decrease in grade ≥3 toxicity (10% vs. 48%)
***No difference in recurrence free survival at 3 years with SABR (86%) vs lobectomy (80%) (p=0.54)
**Conclusions "Although this study is limited by the small number of enrolled patients and requires validation with larger numbers of patients, our findings strongly support equipoise between surgery and SABR and justify the initiation of large randomised comparisons of surgery versus SABR."
*Editorial ({{PMID|26244136}}): Early OS advantages with fractionated radiation over surgery seen in 2 previous RCTs for stage III NSCLC (Albain/Intergroup Lancet 2009 and van Meerbeeck/EORTC JNCI 2007), attributable to difference in treatment-related mortality. But in those trials surgery was associated with better loco-regional control than conventional RT, resulting in a re-approximation of the survival curves over time. By contrast, SABR provides excellent local control, meaning that differences in treatment-related morbidity/mortality may create a "head start effect" allowing for improved OS in studies where SABR can perform at equivalent, or even near-equivalent, oncologic levels to lobectomy.
==Surgery vs. Fractionated RT==
*'''Medical Research Council/Hammersmith Hospital''' (1954-1958) -- Primary RT vs Primary Surgery
**Randomized. 58 patients, no clinical or radiologic evidence of mediastinal involvement. Biopsy proven carcinoma. Arm 1) RT - using 8 MeV linac, 45 Gy in 4 weeks daily. Target + 2cm + hilar/mediastinal areas; vs. Arm 2) Surgery - pneumonectomy or lobectomy + hilar/mediastinal LND. However 13/30 weren't operable/refused. Histology squamous 64%, adenocarcinoma 3%, small cell/anaplastic 33%
**'''1963''', doi:10.1016/S0140-6736(63)91444-2 --"THE TREATMENT OF CARCINOMA OF THE BRONCHUS A Clinical Trial to Compare Surgery and Supervoltage Radiotherapy" (Morrison R, Lancet. 1963. Mar 30; 281(7283):683-684)
***Outcome: 1-year OS RT 64% vs. Surgery 43%; 2-year OS 14% vs. 27%; 4-year 7% vs. 23% (NS). By histology: squamous 6% vs. 30% (SS); small cell 10% both (NS)
***Conclusion: In squamous cell tumors, surgical resection is significantly better than RT; no difference in small cell.
==Surgery alone==
===Type of surgery===
*Standard surgery is lobectomy.
*Wedge resection or segmental resection for Stage I disease has been advocated, but in LCSG 821 ''(see below)'' wedge (with 2cm margin) shown to have significantly worse recurrence rate (LR 6% vs 18%) without functional improvement
*Nevertheless, CALGB is trying smaller resection again (CALGB 140503) with more modern surgical techniques and smaller tumors
*Criteria:
**Pneumonectomy: FEV1 >80% and >2L, DLCO >50%
**Lobectomy: FEV1 >70% and >1.5L
**Wedge: FEV1 >0.6L
**SBRT/RFA: FEV1 >0.2L
**Post op predictive FEV1 should be 0.7-0.8L (preop FEV1 x # segments remaining/total segments, corrected for lung function)
===ACCP Guidelines===
*'''ACCP; 2007''' {{PMID|17873167}} -- "Physiologic evaluation of the patient with lung cancer being considered for resectional surgery: ACCP evidenced-based clinical practice guidelines (2nd edition)." (Colice GL, Chest. 2007 Sep;132(3 Suppl):161S-77S.)
# Patients be assessed for curative resection by a multidisciplinary team
# Patients not be denied lung resection surgery on the grounds of age alone
# Patients with major factors for perioperative CV risk to have a preoperative cardiologic evaluation
# If FEV1 >80% predicted or >2L and no evidence of dyspnea on exertion or interstitial lung disease, suitable for pneumonectomy. If FEV1 >1.5L and no evidence of DOE or ILD, suitable for lobectomy
# If evidence of undue dyspnea on exertion or interstitial lung disease, and FEV1 adequate, DLCO is recommended
# If either FEV1 or DLCO <80% predicted, post-op lung function be predicted (PPO = predicted post operative function)
# FEV1 <40% PPO or DLCO <40% PPO indicates increased risk. Patients should undergo pre-op exercise testing
# If product of %PPO FEV1 and %PPO DLCO is <1650% PPO or FEV1 <30%, increased risk. Patients should be counseled about nonstandard approaches
# If VO2max <10 ml/kg, increased risk. Patients should be counseled about nonstandard approaches
# If VO2max <15 ml/kg and both FEV1 and DLCO <40% PPO, increased risk. Patients should be counseled about nonstandard approaches
# If patients walk <25 shuttles on two shuttle walks or less than one flight of stairs, increased risk. Patients should be counseled about nonstandard approaches
# If PACO2 >45 mmHg, not independent risk factor, but further physiologic testing recommended
# If SAO2 <90%, increased risk. Patients should undergo further physiologic testing
# If very poor lung function and lung cancer isn upper lobe emphysema, recommend combined LVRS and lung cancer resection, if both FEV1 and DLCO >20% predicted
# All patients be counselled regarding smoking cessation
===Meta-analysis===
*'''Athens; 2009''' {{PMID|18641014}} -- "Does lobectomy achieve better survival and recurrence rates than limited pulmonary resection for T1N0M0 non-small cell lung cancer patients?" (Chamogeorgakis T, Interact Cardiovasc Thorac Surg. 2009 Mar;8(3):364-72. Epub 2008 Jul 18.)
**Meta-analysis; updated analysis done by Nakamura below ({{PMID|15756281}}). 3 additional comparative studies identified
**Conclusion: Wedge resection is not comparable to lobectomy; however, segmental resection is comparable to lobectomy for small peripheral tumors
*'''Shizuoka, Japan; 2005''' (1970-2004) {{PMID|15756281}} -- "Survival following lobectomy vs limited resection for stage I lung cancer: a meta-analysis." (Nakamura H, Br J Cancer. 2005 Mar 28;92(6):1033-7.)
**Meta-analysis. 14 articles (1 RCT, 1 matched pair, and 12 retrospective studies), 2790 patients (1887 lobectomy, 903 limited resection)
**Outcome: Survival difference between lobectomy minus limited resection at 1-year 0.7% (NS), 3-years 1.9% (NS), and 5-years 3.6% (NS). However, high inter-study heterogeneity
**Conclusion: Survival after lobectomy or limited resection is comparable; however, interstudy heterogeneity suggests that caution is required to interpret these results
===Sublobar resection===
*'''CALGB 140503''' (''currently accruing'')
**"A Phase III Randomized Trial of Lobectomy versus Sublobar Resection for Small (≤ 2 cm) Peripheral Non-Small Cell Lung Cancer"
**Goal is to determine if lobectomy is necessary for small peripheral tumors that are smaller than those treated 30 yrs ago in LCSG 821.
*'''SEER data; 2005''' (1992-1997) {{PMID|16002941}} -- "Similar long-term survival of elderly patients with non-small cell lung cancer treated with lobectomy or wedge resection within the surveillance, epidemiology, and end results database." (Mery CM, Chest. 2005 Jul;128(1):237-45.)
**SEER analysis. 14,555 patients with Stage I-II NSCLC. Age groups <65 (35%), 65-74 (42%), and >= 75 (23%)
**Outcome: Curative surgery 92% vs. 86% vs. 70% (SS). Limited resection 8% -> 17% (SS). Median OS 5.9 years vs 3.9 years vs 2.3 years (SS). For young patients, lobectomy conferred survival benefit, but no difference for patients >= 71 years
**Conclusion: Lobectomies confer survival benefit over limited resection in young patients but not in for elderly patients
*'''North American Lung Cancer Study Group 821''' (1982-88) -- lobectomy vs. sublobar resection
**Randomized. 247/276 patients with pathologic peripheral pT1N0 (defined on PA and lateral CXR). Middle lobe tumors excluded. Frozen section of LN (at least one node from bronchopulmonary, hilar, and mediastinal) had to be negative, otherwise completion lobectomy prior to randomization. Arm 1) Lobectomy vs. Arm 2) Limited resection (segmental resection or large wedge with 2cm margin). Locoregional recurrence defined as ipsilateral lung or mediastinum; non-local recurrence was DM as well as LR + DM
**'''Original; 1995''' {{PMID|7677489}} — "Randomized trial of lobectomy versus limited resection for T1 N0 non-small cell lung cancer." (Ginsberg RJ, Ann Thorac Surg. 1995 Sep;60(3):615-22)
***Locoregional recurrence: limited resection 17% vs. lobectomy 6% (SS, 3x higher). No difference in DM. RFS 69% vs. 82% (SS, p=0.06 in one-sided test with p<0.1); OS 61% vs. 70% (SS, p=0.09 in one-sided test with p<0.1); Deaths due to cancer 62% vs. 55%
***By tumor volume: lobectomy better, regardless of tumor size (<3 cm3, 3-8 cm3, 8-27 cm3)
***Toxicity: perioperative morbidity, mortality (1%) comparable. Early post-op pulmonary function significantly better for sublobar resection at 6 months, but no difference at 1 year and 1.5 years.
***Conclusion: Higher LR and death rate, without improved post-op function
**'''Update; 1996''' {{PMID|8823141}} -- "Lobectomy versus limited resection in T1 N0 lung cancer." (Lederle FA, Ann Thorac Surg. 1996 Oct;62(4):1249-50.)
***Further update of data, in a letter to editor format. 12 new recurrences identified (7 on sublobar arm and 5 on lobectomy arm). New survival curves
***Outcome: Overall death-rate-increase improved from 47% in original report to 26% (NS); death due to cancer-rate-increase improved from 47% to 28% (NS); recurrence rate-increase improved from 60% to 39% (NS)
***Conclusion: Modest corrections, but overall conclusions hold, wth local recurrence rate difference essentially unchanged
===Lobar resection===
*Overall 5-year OS for Stage I is ~65%, for Stage II is ~45%
*Tumor size is a prognostic factor, independent of T-stage, with smaller tumors having better survival
*Selected patients with tumors <1.5 cm may have 5-year OS as high as 95%
*'''Buenos Aires; 2008''' (Argentina)(1985-2006) {{PMID|18758301}} -- "Analysis of survival in 400 surgically resected non-small cell lung carcinomas: towards a redefinition of the T factor." (Lyons G, J Thorac Oncol. 2008 Sep;3(9):989-93.)
**Retrospective. 400 patients, pulmonary resection with curative intent. No neoadjuvant chemotherapy. Adeno 61%.
**Outcome: Operative mortality lobectomy 2%, pneumonectomy 18% (SS). Complete resection 85%. For pN0, if tumor <15mm 5-year OS 95% vs. >=15 mm 65% (SS); no impact of age, sex, side, or histology
**Conclusion: Tumors >15 mm associated with shorter 5-year OS
*'''Modena; 2006''' (Italy) {{PMID|16996167}} -- "The prognostic impact of tumor size in resected stage I non-small cell lung cancer: evidence for a two thresholds tumor diameters classification." (Christian C, Lung Cancer. 2006 Nov;54(2):185-91. Epub 2006 Sep 22.)
**Retrospective. 548 patients with Stage I, s/p complete surgical resection
**Outcome: Tumor >5cm had 60% higher probability of death than size 2-5cm, which had 57% higher probability of death than size <2cm
***Stage IA: 5-year OS 67%, DSS 85%
***Stage IB: 5-year OS 49%, DSS 53%
**Conclusion: Tumor sizes <2cm, 2-5cm, and >5cm have different prognosis
*'''Japanese National Chest Hospital Study Group; 2005''' {{PMID|15797041}} -- "Impact of large tumor size on survival after resection of pathologically node negative (pN0) non-small cell lung cancer." (Takeda S, Ann Thorac Surg. 2005 Apr;79(4):1142-6.)
**Retrospective. 603 patients with pN0 NSCLC, s/p complete resection.
**Outcome: 5-year OS <=2 cm 80%, 2-3 cm 73%, 3-5 cm 68%, >5 cm 47%
**Conclusion: Tumor size >5cm inversely predicts survival
*'''MD Anderson; 1995''' {{PMID|7646126}} -- "Survival in early-stage non-small cell lung cancer." (Nesbitt JC, Ann Thorac Surg. 1995 Aug;60(2):466-72.)
**Meta-analysis. 10 series
**Outcome: 5-year OS Stage I 65% (55-72%), Stage II 41% (29-51%)
*'''SEER data; 2004''' (1988-2003) {{PMID|15364754}} -- "The effect of tumor size on curability of stage I non-small cell lung cancers." (Wisnivesky JP, Chest. 2004 Sep;126(3):761-5.)
**Population study. 7620 patients, Stage I NSCLC, curative resection.
**Outcome: 12-year OS tumor size 0.5-1.5cm 69%, 1.6-2.5 cm 63%, 2.6-3.5 cm 58%, 3.6-4.5 cm 53%, >4.5 cm 42% (SS)
**Conclusion: Smaller size associated with improved curability
*'''LCSG 821''' - {{PMID|7677489}} - ''(listed above)''
**5 yr OS for T1N0 s/p lobectomy alone ~65%
**5 yr OS for T1N0 s/p wedge alone ~45%
*'''Washington University; 1933''' {{PMID|18591561}} -- "Evarts A. Graham and the first pneumonectomy for lung cancer." (Horn L, J Clin Oncol. 2008 Jul 1;26(19):3268-75.)
**Description of the first successful one-stage pneumonectomy for lung cancer performed April 5, 1933
==Pre-op EBRT==
*'''Nijmegen''' (The Netherlands)(1971-1976) -- Pre-op Mediastinal RT vs Surgery Alone
**Randomized, pilot. 33 patients, clinical T1-2N0 NSCLC, mediastinoscopy LN-. Arm 1) Pre-op RT 20/5 to hilar, subcarinal, tracheo-bronchial, and paraesophageal LNs followed by surgery following Monday vs. Arm 2) Surgery alone. Either lobectomy or pneumonectomy
**'''1984''' {{PMID|6378851}} -- "Evaluation of short-course preoperative irradiation in the treatment of resectable bronchus carcinoma: long-term analysis of a randomized pilot-study." (Kazem I, Int J Radiat Oncol Biol Phys. 1984 Jul;10(7):981-5.) Minimum F/U 7 years
***Outcome: 5-year OS pre-op RT 58% vs. surgery alone 43%; 5-year DSS 78% vs. 67% (NS); median OS 6 years vs. 2.5 years. R0 resection in pre-op 57% vs surgery only 28%
***Subgroup analysis: If lobectomy, RT beneficial only during first year, then no difference. If pneumonectomy, RT beneficial during entire follow-up (5-year OS 66% vs. 42%).
***Toxicity: 9% operative mortality (all patients in surgery only arm); delayed wound healing comparable
***Conclusion: Pre-op RT well tolerated, and results are encouraging
*'''Berlin''' (East Germany)(1963-1971) -- Pre-op RT vs. Surgery only
**Randomized. 196 operable patients. Arm 1) Pre-op RT 5500 RHD (Co-60) vs. Arm 2) Surgery only
**'''1975''' {{PMID|173257}} -- "[Results of a controlled clinical trial for evaluation of intensive preoperative irradiation in operable bronchial cancer (author's transl)] - [Article in German]" (Eichhorn HJ, Arch Geschwulstforsch. 1975;45(4):376-84.)
***Outcome: No difference in annual survival. Significantly reduced LR rate
***Toxicity: Post-op mortality and complications "a bit more favorable"
***Conclusion: No difference
*'''NCI Trial''' (1963-1966) -- Pre-op RT vs. Surgery only
**Randomized. 17 institutions. 568 patients operable (no carina, no mediastinum/SCV, no chest wall invasion). Arm 1) immediate surgery vs. Arm 2) Pre-op RT, given as >40 Gy supravoltage
**'''1975''' {{PMID|171057}} -- "Preoperative irradiation of cancer of the lung: final report of a therapeutic trial. A collaborative study." (Warram J, Cancer. 1975 Sep;36(3):914-25.)
***Outcome: 5-year OS pre-op RT 13% vs. surgery 16% (NS); 5-year RFS 11% vs. 14% (NS)
***Toxicity: Post-op mortality in surgery alone 11%, not estimated for pre-op RT group
***Conclusion: No difference
==Post-operative EBRT==
*Lung Cancer Study Group trial (LCSG 773) established a benefit for RT in local control, but there was no impact on survival
*PORT Meta-analysis in 1998 analyzed individual data from 9 prospective trials. It concluded that RT had detrimental impact on survival, particularly in N0 and N1 stage. The results for Stage III and N2 disease favored RT, but were not statistically significant
*As a result, clinical use of post-op RT dramatically decreased
*However, radiation oncologists are critical of the meta-analysis conclusions for several reasons, including staging, patient selection, old technology and inappropriate dose/fractionation schedules.
*Retrospective evidence using modern RT techniques suggests a survival benefit for post-op RT in N2 patients, but randomized evidence has not; retrospective SEER data supports benefit for N2 patients, also suggests worse survival for N0-1 patients.
*Similarly, retrospective analysis of data from prospective trial (ANITA) suggest that PORT is detrimental in pN1 patients who undergo treatment with chemotherapy, but it is beneficial in pN1 patients who observed only. There was a benefit for PORT in pN2 patients regardless of whether they received adjuvant chemotherapy or not
*The evidence is stronger for significant benefit in locoregional control. Whether this can ultimately translate into survival (as it did in [[Radiation_Oncology/Breast/Early_breast/BCT#BCS_.2B.2F-_RT|breast cancer]]), in N2 patients in a randomized setting appears unlikely.
*The situation is confounded by the fact that adjuvant chemotherapy is becoming widely used, after publication of 3 positive trials ([[Radiation_Oncology/Lung/NSCLC/Early_Stage_Operable#Surgery_.2B.2F-_adjuvant_chemotherapy|see below]])
*Based on the existing data, most recent guidelines (e.g. ASCO 2021) do not recommend routine PORT for pN2 patients.
===Meta-analysis===
*'''PORT Meta-analysis'''
**'''2005''' {{PMID|15846628}} -- "Postoperative radiotherapy for non-small cell lung cancer." (PORT Meta-analysis Trialists Group, Cochrane Database Syst Rev. 2005 Apr 18;(2):CD002142.)
***10 trials (after 1965), 2232 patients. (Added 1 trial to prior analysis). Median F/U 4.25 years
***Significant adverse effect of PORT on survival; 3-year OS reduced from 58% to 52% (18% relative increase in risk of death)
***Subset analysis: effect in Stage I-II, N0-1 disease. No evidence of adverse effect in Stage III, N2 patients
***Conclusion: PORT is detrimental. Role in N2 tumors may justify further research
***Comment: most of criticism from 1998 analysis still valid
**'''1998''' {{PMID|9690404}} — "Postoperative radiotherapy in non-small-cell lung cancer: systematic review and meta-analysis of individual patient data from nine randomised controlled trials." PORT Meta-analysis Trialists Group. Lancet. 1998 Jul 25;352(9124):257-63.
***2128 pts in 9 randomized trials. Stages I-III.
***Local control: 24% reduction in local recurrences
***Survival: Increase in relative risk of death by 21% which corresponds to absolute 7% decrease in 2-year OS with PORT. Detrimental effect confined to Stage I-II. No difference in survival for Stage III.
***Conclusion: PORT is detrimental and should not be used.
***Criticism: ~25% patients had T1N0 disease; initial staging inadequate by today's standards; Co-60 used in 4 trials (5-year OS for cobalt 8% vs. 30% for MeV); old techniques including lateral beams; high doses (60 Gy) and fractions (up to 3.0 Gy/fx)
===Surgery +/- EBRT===
*'''Lung ART''' (France,UK,Germany,Switzerland,Belgium) (2007-18)
**Randomized. 501 patients, pIIIAN2 after lobectomy or greater. Most received adjuvant chemotherapy. Almost all R0 resections; ~25% in each arm with ECE. Most 3DCRT (89%), some IMRT (11%); 91% PET staged preop. Strict tx volume criteria; randomized to PORT (54 Gy, 27-30 fxs) or no PORT. Median follow-up 4.8y.
**'''2022''' {{PMID|34919827}} – “Postoperative radiotherapy versus no postoperative radiotherapy in patients with completely resected non-small-cell lung cancer and proven mediastinal N2 involvement (Lung ART): an open-label, randomised, phase 3 trial” (Le Pechoux C et al, Lancet. 2022 Jan;23(1):104-14.)
***3-year DFS (primary endpoint): RT 47% vs. 44% (p=0.18); median DFS 31 vs 23 months. Of 296 DFS events, 25% RT patients relapsed in mediastinum vs 46% control; extracranial mets, 49% RT, 47% control.
***3-year OS: RT 67% vs. 69% control (p=NS).
***Early adverse events: RT 89% vs. 74% control. Late: RT 78% vs 62% control.
***Conclusion: 3D conformal PORT not standard of care in patients with resected IIIAN2 NSCLC.
*'''Rome''' (Italy)(1989-1997)
**Randomized. 104 patients with Stage I only. No sublobar resection, hilar-mediastinal radical LND performed (mean 20 LNs). If pN0, randomized to Arm 1) observation vs. Arm 2) RT corrected 50.4/28 to bronchial stump and homolateral hilum only; mean treated area 50 cm2
**'''2002''' {{PMID|11830308}} -- "Adjuvant radiotherapy in non-small cell lung cancer with pathological stage I: definitive results of a phase III randomized trial." (Trodella L, Radiother Oncol. 2002 Jan;62(1):11-9.)
***5-year outcome: OS: RT 67% vs. observation 58% (p=0.048); LR: 2% vs. 23%
***Toxicity: acute toxicity Grade 1 in 11%; no long term clinical toxicity, 37% radiographic fibrosis
***Conclusion: RT gave good results in LC, promising OS and DFS
**Comment: In PORT Meta-analysis update from 2005 ({{PMID|15603857}}), it is stated that updated results within the meta-analysis are no longer significant (p=0.2). This was attributed to longer follow-up and anomalies in original dataset, which were subsequently corrected
*'''Slovenia''' (1988-1992)
**Randomized. 74 patients s/p radical surgery, with N2 disease. +/- RT to hilar/mediastinum 30/10
**'''5-years, 1996''' {{PMID|8696724}} -- "Postoperative radiotherapy for radically resected N2 non-small-cell lung cancer (NSCLC): randomised clinical study 1988-1992." (Debevec M, Lung Cancer. 1996 Feb;14(1):99-107.)
***5-year outcome: no difference in OS; only prognostic factor was number of LN
***Conclusion: no difference
*'''Beijing''' (China) (1982-95)
**Randomized. 366 pts, positive N1 or N2 nodes after surgery. Randomized to RT 60 Gy vs no further therapy. Field included bronchial stump, ipsilateral hilum, and most of the mediastinum; included SCLV for pts with upper mediastinal node involvement; mediastinum down to diaphragm for lower lobe primary. AP/PA 40/20, then obliques 20/10. SCV 50/25
**'''2000''' {{PMID|10863061}} — "A study of postoperative radiotherapy in patients with non-small-cell lung cancer: a randomized trial." Feng QF et al. Int J Radiat Oncol Biol Phys. 2000 Jul 1;47(4):925-9.
***Outcome: 5-yr OS RT 43% vs control 40% (NS). Trend toward improved OS in T3-4N1 RT 58% vs. control 40% (p=0.09). No difference in N2 RT 23% vs. control 26% (NS)
***Failure: local 13% vs. 33% (SS), SCV LN 13% vs. 12%, DM 48% vs. 51%
***Conclusion: Significant benefit on local control, not OS. Trend to survival benefit in T3-4N1
**Comments: More pts with N2 disease in RT group (45% vs 27%)
*'''GETCB''' (French/European)(1986-94)
**Randomized. 728 pts (Stage I-III) randomized after resection to RT 60 Gy or observation. 40% N0, 33% N1, 27% N2; Stage I 30%, Stage II 25%, Stage III 45%
**RT: AP/PA 40 Gy (either 40/20 or 40/16 @2.5/fx) to bronchial stump, ipsilateral hilum, upper/middle mediastinum, SCV; then 20 Gy in obliques/laterals to bronchial stump, ipsilateral hilum, mediastinum. SCV dose 40-45 Gy
**'''1999''' {{PMID|10421262}} — "A controlled study of postoperative radiotherapy for patients with completely resected nonsmall cell lung carcinoma. Groupe d'Etude et de Traitement des Cancers Bronchiques." Dautzenberg B et al. Cancer. 1999 Jul 15;86(2):265-73. Median F/U 5.7 years
***5-yr outcome: OS RT 30% vs control 43%. Excess mortality due to increase in intercurrent deaths (31% vs 8%). More intercurrent deaths for higher dose per fraction. ON subgroup analysis, detrimental effect of RT significant in Stage I-II but not Stage III. No effect on local recurrences or distant mets.
**Critique: included N0 patients, majority treated with Co-60, with fractions up to 2.5 Gy/fx
*'''Graz''' (Austria)(1985-1995)
**Randomized. 155 pts, pT1-3 pN0-2. Randomized to RT 50 Gy (if pN0) or 56 Gy (if pN1-2) vs no further treatment. Treatment included the bronchial stump + 2cm margin, ipsilateral hilum, and mediastinum; SCLV included for apical tumors. 2F AP/PA or 3F with off-cord after 42 Gy
**'''1997''' {{PMID|9377958}} [http://www.chestjournal.org/cgi/reprint/112/4/954 Full text] — "Postoperative radiotherapy in radically resected non-small cell lung cancer." Mayer R et al. Chest. 1997 Oct;112(4):954-9.
***5-yr outcome: OS: RT 30% vs observation 20% (NS). DFS: 20% vs. 16% (NS). LR 6% vs. 24% (SS)
***Conclusion: Significant reduction in local recurrences, tendency to OS benefit
*'''Medical Research Council''' (1986-93)
**Randomized. 308 pts. Were pN1 or pN2. Randomized after surgery +/- RT 40 Gy in 15 fx.
**'''1996''' {{PMID|8761382}} — "The role of post-operative radiotherapy in non-small-cell lung cancer: a multicentre randomised trial in patients with pathologically staged T1-2, N1-2, M0 disease. Medical Research Council Lung Cancer Working Party." Stephens RJ et al. Br J Cancer. 1996 Aug;74(4):632-9.
***Overall, no survival difference. On subgroup analysis, trend to survival benefit for N2 pts (21% vs 36% at 3 yrs, p=0.18). No benefit in N1 pts.
*'''France''' (1985-91)
**Randomized. 163 pts, T2N0. Randomized to RT 60 Gy or no further treatment.
**'''1996''' {{PMID|8784014}} — "Postresection irradiation for T2 N0 M0 non-small cell carcinoma: a prospective, randomized study." Lafitte JJ et al. Ann Thorac Surg. 1996 Sep;62(3):830-4.
***No difference in survival, OS 44.2% (survival figures not given for each arm). No difference in local or distant mets.
*'''Lung Cancer Study Group 773'''
**Randomized. 230 pts. Resected squamous cell carcinoma, Stage II or III. Randomized to +/- RT 50 Gy to mediastinum.
**'''1986''' {{PMID|2877397}} — "Effects of postoperative mediastinal radiation on completely resected stage II and stage III epidermoid cancer of the lung." The Lung Cancer Study Group. N Engl J Med. 1986 Nov 27;315(22):1377-81.
***Local recurrences were reduced: 20% vs 1% local failure, but overall treatment failures were the same.
***Conclusion: Improved LR, but no effect on survival.
*''Van Houtte'' (1966-1975)
**224 pts. N0. Randomized after resection to RT (60 Gy) vs observation.
***'''1980''' {{PMID|6998936}} — "Postoperative radiation therapy in lung cancer: a controlled trial after resection of curative design." Van Houtte P et al. Int J Radiat Oncol Biol Phys. 1980 Aug;6(8):983-6.
***Survival was worse in the RT group: 5-ys OS 24% vs 43% (NS).
===Surgery + EBRT nonrandomized===
*'''SEER study''' (1988-2002)
**'''2007''' {{PMID|17620279}} -- "The risk of death from heart disease in patients with nonsmall cell lung cancer who receive postoperative radiotherapy: analysis of the Surveillance, Epidemiology, and End Results database." (Lally BE, Cancer. 2007 Jul 9; [Epub ahead of print])
***SEER database review. 6148 patients with pneumonectomy/lobectomy, with ipsilateral N+, s/p PORT
***Outcome: PORT use 1983-1988 HR for cardiac death 1.5 (SS), which is comparable to survival detriment reported by PORT Meta-Analysis; 1989-1993 HR for cardiac death 1.08 (NS)
***Conclusion: Risk of cardiac death from PORT declined, and no longer significant
**'''2006''' {{PMID|16769986}} — "Postoperative Radiotherapy for Stage II or III Non-Small-Cell Lung Cancer Using the Surveillance, Epidemiology, and End Results Database." (Lally BE et al. J Clin Oncol 2006 Jul 1; 24(19):2998-3006.)
***SEER review. 7456 patients with Stage II-III, N0-N2, survival at least 4 months
***Overall, use of PORT had no impact on survival.
***Nodal subset analysis: Significant improvement in N2 (HR = 0.855); significant worsening in survival for N0 (HR=1.17) and N1 (HR=1.097) patients
***Conclusion: significant benefit for N2, disadvantage for N0-1
***Editorial ({{PMID|16769984}}): Recommend risk group stratification, and further exploration of post-op RT
***Counterpoint ({{PMID|17264348}}): Editorialists too optimistic, post-op chemo now standard of care, and randomized CRT trial is badly needed
***European perspective ({{PMID|17327597}}): Design of a multi-national randomized prospective trial (Lung ART), target 700 N2 patients, surgery +/- 3D-CRT, chemo neoadjuvant or adjuvant
*'''ANITA'''
**''Retrospective analysis of prospective data.'' Full trial discussed under [[#Adjuvant chemotherapy]] below. Patients randomized to surgery +/- chemo, and PORT was recommended for pN+ pts (but not required). 232/840 (28%) received RT 45-60 Gy (8% of N0 pts, 35% of N1, 52% of N2).
**'''2008''' {{PMID|18439766}} -- "Impact of Postoperative Radiation Therapy on Survival in Patients With Complete Resection and Stage I, II, or IIIA Non-Small-Cell Lung Cancer Treated With Adjuvant Chemotherapy: The Adjuvant Navelbine International Trialist Association (ANITA) Randomized Trial." (Douillard JY, Int J Radiat Oncol Biol Phys. 2008 Apr 24 [Epub ahead of print])
***pN1: benefit for PORT if no chemo arm (median OS 2.2 years vs. 4.2 years), detriment for PORT if chemo arm (7.8 years vs. 3.9 years)
***pN2: benefit for PORT regardless of chemo arm; if no chemo (1.1 years vs. 1.9 years), if chemo (2.0 years vs. 3.9 years)
***Conclusion: Positive effect of PORT in pN2 patients, negative effect in pN1 patients who were treated with chemotherapy
*'''CALGB 9335 / ECOG''' (1994-99)
**'''2000''' <u>ASCO Abstract</u>: "Thorascopic wedge resection and radiotherapy for T1N0 non-small cell lung cancer (NSCLC) in high risk patients: preliminary analysis of a Cancer and Leukemia Group B and Eastern Cooperative Oncology Group Phase II trial" Bogart JA et al. Proc ASCO 19:488a-1907, 2000.
**'''2005''' {{PMID|15821648}}, 2005 update: "Video-assisted wedge resection and local radiotherapy for peripheral lung cancer in high-risk patients: the Cancer and Leukemia Group B (CALGB) 9335, a phase II, multi-institutional cooperative group study." Shennib H et al. J Thorac Cardiovas Surg, 129(4):813-8, 2005
***Incidence of +margins was 6% in T1N0, 23% in T2N0.
***Local control was >90%, but there was a 25% incidence of radiation induced pneumonitis.
*'''U Pennsylvania, 2001''' {{PMID|11579111}} -- "Risk of death from intercurrent disease is not excessively increased by modern postoperative radiotherapy for high-risk resected non-small-cell lung carcinoma." (Machtay M, J Clin Oncol. 2001 Oct 1;19(19):3912-7.)
**Retrospective. 202 patients, most with Stage II-III, 41% positive/close SM. Median RT 55 Gy. Median F/U 2 years, 5.2 years for survivors
**4-year outcomes: OS 34%; LC 84%; FDM 37%
**Intercurrent disease deaths: 12% (comparable to matched population at 10%). Dose-response: risk of intercurrent death 2% if <54 Gy; 17% if >=54 Gy
**Conclusion: Moderen post-op RT does not increase risk of deaths
*'''Mayo''' (1987-93) - N2 disease
**Retrospective. 224 patients. IIIA-N2 completely resected. Post-op RT in 88 patients (40%) to median dose 50.4 Gy. Median F/U 3.5 years for patients alive
**'''1997''' {{PMID|9338463}} — "The impact of surgical adjuvant thoracic radiation therapy for patients with nonsmall cell lung carcinoma with ipsilateral mediastinal lymph node involvement." Sawyer TE et al. Cancer. 1997 Oct 15;80(8):1399-408.
***4-year outcome: OS RT 43% vs. no RT 22% (SS); LR 60% vs. 17% (SS)
***Conclusion: Adjuvant RT may improve local control and OS
**'''1997''' {{PMID|9386711}} — "Effectiveness of postoperative irradiation in stage IIIA non-small cell lung cancer according to regression tree analyses of recurrence risks." Sawyer TE et al. Ann Thorac Surg. 1997 Nov;64(5):1402-7.
***Regression tree analysis to stratify patients into high/intermediate/low risk of LR and death
***Risk groups: high (both superior (Station 1-6) and inferior (Station 7-9) N2 mediastinum involved), intermediate (positive high OR low N2 mediastinum, AND positive N1 nodes, low (everyone else)
***Conclusion: Patients at high or intermediate risk for LR and death are likely to benefit from post-op RT
===Post-op RT Technique===
*'''Shanghai, 2014''' (2005-11) {{PMID|24529715}} -- "Patterns of Local-Regional Failure in Completely Resected Stage IIIA(N2) Non-Small Cell Lung Cancer Cases: Implications for Postoperative Radiation Therapy Clinical Target Volume Design." (Feng W, Int J Radiat Oncol Biol Phys. 2014 Apr 1;88(5):1100-7.)
**250 pts with pN2 disease s/p resection who did not receive PORT. 173 of 250 (69%) had disease recurrence. 54 had LRF as first event; of these 48, had recurrence within the proposed PORT CTV.
**Conclusion: "Ipsilateral superior mediastinal recurrences dominated for right-sided tumors, whereas left-sided tumors frequently involved the bilateral superior mediastinum. Most of the LRF sites would have been covered by the proposed PORT CTV. A prospective investigation of patterns of failure after PORT (following our proposed CTV delineation guideline) is presently underway and will be reported in a separate analysis."
*'''Lung Adjuvant Radiotherapy Trial (Lung ART), 2012''' {{PMID|19560881}} -- "Variations in target volume definition for postoperative radiotherapy in stage III non-small-cell lung cancer: analysis of an international contouring study." (Spoelstra FO, Int J Radiat Oncol Biol Phys. 2010 Mar 15;76(4):1106-13.)
**Contouring study.
**Conclusion: "Even among experts, significant interclinician variations are observed in PORT fields. Inasmuch as contouring variations can confound the interpretation of PORT results, mandatory quality assurance procedures have been incorporated into the current Lung ART study."
*'''Meta-analysis, 2007''' {{PMID|17507176}} -- "Estimating the magnitude and field-size dependence of radiotherapy-induced mortality and tumor control after postoperative radiotherapy for non-small-cell lung cancer: Calculations from clinical trials." (Miles EF, Int J Radiat Oncol Biol Phys. 2007 May 14)
**Model developed to describe field-size effect on OS. Data from trials above that did not include chemo
**Results: RT-induced mortality proportional to cube of field size
**Conclusion: Smaller RT fields, tailored to treat areas at risk, provide highest therapeutic ratio
*'''Duke, 2006''' {{PMID|16682136}} -- "Patterns of failure after resection of non-small-cell lung cancer: implications for postoperative radiation therapy volumes." (Kelsey CR, Int J Radiat Oncol Biol Phys. 2006 Jul 15;65(4):1097-105. Epub 2006 May 6.)
**Retrospective, 61 pts s/p resection with negative margins, no RT, with first recurrence at a locoregional site (+/- distant metastasis). Surgery was lobectomy in 69%, wedge in 23%, pneumonectomy in 8%. Most did not receive neoadj/adj chemo (13%).
***Most pts presented with pathologic Stage I disease (i.e. not PORT candidates).
**44% presented with LRR without DM. Site of failure was brachial stump / staple line (44%), more common after a wedge resection (79% vs 34%). Mediastinum 70%, ipsi hilum 23%, supraclav 8%. Supraclav involvement more common in those who were pN1-2 vs pN0, whereas mediastinal and hilar involvement did not vary based on pN status.
**Patterns of failure demonstrate a fairly predictable pattern based on the involved lobe.
**Left-sided tumors: more frequent involvement of contralateral mediastinum.
**Small RT fields that cover the surgical stump, ipsi hilum, and lower ipsi mediastinum would encompass at least 60% of failure sites.
**Conclusion: "These data may help clinicians construct postoperative RT volumes that are smaller than ones traditionally utilized, which may improve the therapeutic ratio."
==Limited Surgery + Radiation==
===Adjuvant Brachytherapy===
*''Please see the [[Radiation_Oncology/Lung/NSCLC/Lung_Brachytherapy|Lung Brachytherapy]] page''
===Adjuvant External Beam===
*'''CALGB 9335''' (1995-1999) {{PMID|15821648}} -- "Video-assisted wedge resection and local radiotherapy for peripheral lung cancer in high-risk patients: the Cancer and Leukemia Group B (CALGB) 9335, a phase II, multi-institutional cooperative group study." (Shennib H, J Thorac Cardiovasc Surg. 2005 Apr;129(4):813-8.)
**Phase II. 58 patients with clinical T1 and poor cardiopulmonary status (FEV1 <40%, DLCO <50%, max O2 consumption <45 mmHg. Treated with VAR + adjuvant RT 56/28. If incomplete resection RT 66/33. Target volume staple line or clip markings + 2cm margin (max field size 7x7 cm)
**Surgery: pathology benign 17%, upstaged to T2+ 28%. Conversion to thoracotomy in 17%. SM+ in 9%. Operative failure 29%.
**Surgery complications: Operative mortality 4%, prolonged air leak 10%
**RT results: 32 pathologic T1, 28 received RT. Median OS 27 months
**RT complications: severe dyspnea 11%, moderate pneumonitis 4%, moderate neurologic 4%
**Conclusion: Clinical staging inaccurate in 45%, VAR high failure rate
**Comment: Adjuvant RT was felt to have too high a rate of persistent severe dyspnea to be clinically worthwhile
==Surgery +/- adjuvant chemotherapy==
*Historically, a number of prospective trials was negative
*A meta-analysis in 1995 showed a small (5% at 5 years), but non-significant benefit
*Three out of five trials published in early 2000's were positive, and have markedly impacted clinical practice; however, majority of patients were Stage II-III
*CALGB trial 9633 looking specifically at Stage IB (T2N0) was stopped early since there was a survival benefit on initial analysis, but final results were non-significant. Conversely, a Japanese trial and an Italian trial in Stage I showed a survival benefit
*It is not clear whether adjuvant chemotherapy should be used for Stage IB; data is somewhat murky and discussion in CALGB 9633 paper suggests that while adjuvant chemotherapy should not routinely be used in Stage IB, it can be a treatment option in tumors >= 4cm
*Meta-analysis of cisplatin-based trials using individual patient data (CALGB trial excluded) showed composite OS benefit of 5% at 5 years, consistent with prior meta-analysis. However, hazard ratios for Stage IA and IB were not significantly better
*Cisplatin-vinorelbine combination was used in most of the positive trials, and is thus preferable in absence of clear equivalence data for other agents
'''''Meta-Analysis'''''
*'''NSCLC Collaborative Group; 2010''' {{PMID|20338627}} -- "Adjuvant chemotherapy, with or without postoperative radiotherapy, in operable non-small-cell lung cancer: two meta-analyses of individual patient data." ([No Author], Lancet. 2010 Apr 10;375(9722):1267-77.)
**Meta-analysis. 34 trials and 8447 patients, individual data.
**Outcome: Benefit of adding chemotherapy after surgery (HR 0.86, SS) with absolute OS benefit at 5 years of 4% (60% to 64%). Benefit of adding chemotherapy after surgery + PORT (HR 0.88, SS), absolute OS benefit at 5 years of 4% (29% to 33%)
**Conclusion: Addition of adjuvant chemotherapy after surgery improves survival, regardless if post-op RT was used
*'''LACE Collaborative Group; 2008''' {{PMID|18506026}} -- "Lung adjuvant cisplatin evaluation: a pooled analysis by the LACE Collaborative Group." (Pignon JP, J Clin Oncol. 2008 Jul 20;26(21):3552-9. Epub 2008 May 27.)
**Individual patient data from 5 trials since last meta-analysis. 4584 patients, treated with cisplatin-based chemotherapy. Median F/U 5.2 years
**Outcome: 5-year OS chemotherapy benefit 5.4% (HR 0.89, p=0.005).
**By Stage: Hazard Ratio for Stage IA 1.4 (NS), IB HR 0.93 (NS), II HR 0.83 (SS), III 0.83 (SS)
**Conclusion: Adjuvant cisplatin-based chemotherapy significantly improves survival in patients with NSCLC
*'''MRC; 1995''' {{PMID|7580546}} — "Chemotherapy in non-small cell lung cancer: a meta-analysis using updated data on individual patients from 52 randomised clinical trials. Non-small Cell Lung Cancer Collaborative Group." BMJ. 1995 Oct 7;311(7010):899-909.
**Alkylating agents alone or with RT reduced OS. Cisplatin/RT was no better than RT alone.
**Cisplatin without RT (compared to observation) resulted in 13% reduction in death, 5% improvement in 5-year OS, but statistically insignificant (p=0.08).
'''''Randomized Evidence'''''
*'''CHEST (Chemotherapy for Early Stages Trial)''' (2000-2004) -- preop gemcitabine + cisplatin
**Phase III. 270 pts. Stages I (excluding T1N0), II, or IIIA (T3N1 only). Randomized to: 1) 3 cycles of preoperative gemicitabine + cisplatin followed by surgery, or 2) surgery alone.
**'''2012''' {{PMID|22124104}} -- "Randomized Phase III Study of Surgery Alone or Surgery Plus Preoperative Cisplatin and Gemcitabine in Stages IB to IIIA Non-Small-Cell Lung Cancer." (Scagliotti GV, J Clin Oncol. 2012 Jan 10;30(2):128-131.)
***Closed early (closed in 2004 after results of 3 randomized trials of adjuvant chemotherapy were released.)
***Median f/u 3.3 yrs. HR of PFS 0.70 and for OS 0.63, both SS.
***PFS: 3-yr PFS 52.9% vs 47.9%. No significant benefit for Stages IB/IIA. PFS benefit for Stages IIB/IIIA (HR 0.51), median PFS 4.0 yrs vs 1.1 yr; 3-yr PFS 55.4% vs 36.1%.
***OS: MS 7.8 yr vs 3.8 yr. 3-yr OS 67.6% vs 59.8%. No benefit for Stages IB/IIA. OS benefit for Stages IIB/IIIA (HR 0.42).
**Conclusion: although the study was terminated early, preop chemotherapy improved OS for stages IIB and IIIA.
*'''NATCH; Spain''' -- 3 arm: 1) Surgery alone vs 2) Preoperative Chemo + Surgery vs 3) Surgery + Adjuvant Chemo
**624 pts, Stage IA(>2cm), IB, II, or T3N1 (IIIA). Randomized prior to surgery. Chemo (neoadj or adj) 3 cycles of carboplatin + paclitaxel.
**'''2010''' {{PMID|20516435}} -- "Preoperative Chemotherapy Plus Surgery Versus Surgery Plus Adjuvant Chemotherapy Versus Surgery Alone in Early-Stage Non–Small-Cell Lung Cancer" (Felip E, J Clin Oncol. 2010 Jul 1;28(19):3138-45.)
***''Preop:'' 97% received chemo, Median 3 cycles. Response rate 53.3%. ''Adjuvant:'' 66% received chemotherapy.
***Overall, 94% completed surgery. No differences in surgical procedures or postoperative mortality between groups.
***Non-significant trend for improved DFS for preop chemo vs surgery alone (5-yr DFS 38.3% v 34.1%; HR 0.92). DFS for adjuvant chemo vs surgery alone, 36.6% vs 34.1%.
***Conclusions: No statistically significant differences in disease-free survival were found with the addition of preoperative or adjuvant chemotherapy to surgery. More patients were able to receive chemotherapy in the neoadjuvant setting.
**'''2007''' [http://meeting.ascopubs.org/cgi/content/abstract/25/18_suppl/7578 ASCO Abstract]
***15% pN2.
*'''Intergroup MRC LU22/NVALT/EORTC 08012''' -- 1) Surgery alone vs 2) Preoperative Chemo + Surgery
**519 pts (Stage I-61%, Stage II-31%, Stage III-7%). Chemotherapy was platinum based (1 of 6 regimens), 3 cycles.
**'''2007''' {{PMID|17544497}} -- "Preoperative chemotherapy in patients with resectable non-small cell lung cancer: results of the MRC LU22/NVALT 2/EORTC 08012 multicentre randomised trial and update of systematic review." (Gilligan D, Lancet. 2007 Jun 9;369(9577):1929-37.)
***75% received all 3 cycles of chemotherapy. Response rate 49%, down-staging in 31%. No differences in surgical procedures or postoperative mortality between groups. No difference in OS (HR 1.02)
***Update of Meta-analysis: 1507 pts. 12% relative survival benefit with the addition of neoadjuvant chemotherapy (HR 0.88, p=0.07), absolute benefit in survival of 5% at 5 years.
**'''2007''' [http://meeting.ascopubs.org/cgi/content/abstract/25/18_suppl/7518 ASCO Abstract]
**Conclusion: No evidence of difference in overall survival with the addition of neoadjuvant chemotherapy to surgery. However, meta-analysis suggests a 5% improvement in survival at 5 years.
*'''CALGB 9633''' (1996-2003) -- Surgery +/- paclitaxel and carboplatin
**Randomized. ''Stopped early after interim analysis showed survival benefit.'' 344 patients (target 500). NSCLC, T2, pN0 by mediastinoscopy, resected with lobectomy/pneumonectomy. Arm 1) adjuvant paclitaxel 200 mg/m2 + carboplatin AUC 6 Q3W x4 cycles vs. Arm 2) observation. Primary endpoint OS
**'''2008''' {{PMID|18809614}} -- "Adjuvant Paclitaxel Plus Carboplatin Compared With Observation in Stage IB Non-Small-Cell Lung Cancer: CALGB 9633 With the Cancer and Leukemia Group B, Radiation Therapy Oncology Group, and North Central Cancer Treatment Group Study Groups." (Strauss GM, J Clin Oncol. 2008 Sep 22. [Epub ahead of print]) Median F/U 6.2 years
***Outcome: median OS chemo 7.9 years vs. observation 6.5 years (NS); 5-year OS 60% vs. 58% (NS); 5-year DFS 52% vs. 48% (NS). Subgroup analysis: survival difference for tumors >=4cm
***Toxicity: Grade 3/4 neutropenia in 35%
***Conclusion: Negative trial, adjuvant chemo should not be standard of care in Stage IB. Survival advantage for large tumors on subset analysis
*'''International Adjuvant Lung Trial (IALT)''' (1995-2000) -- Surgery +/- cisplatin and vinca alkaloids
**Randomized. ''Terminated early due to slow accrual.'' 1867 patients (target 3300). Stages I-III (Stage I 36%, Stage II 24%, Stage III 40%), complete resection. Arm 1) Adjuvant cisplatin with either etoposide (in 56%) or vinca alkaloid (vinorelbine, vinblastine, vindesine) x3-4 cycles. ~25% also received RT based on institutional preference.
**'''2004''' {{PMID|14736927}} — "Cisplatin-based adjuvant chemotherapy in patients with completely resected non-small-cell lung cancer." Arriagada R et al. N Engl J Med. 2004 Jan 22;350(4):351-60. Median F/U 4.7 years
***Outcome: 5-year OS chemo 44% vs. 40% control (SS); DFS 39% vs. 34% (SS). Also benefit for local control, distant control. However, no OS benefit on Stage I subset analysis (HR 0.95, NS)
***Toxicity: 1% died due to chemo effects
***Conclusion: Cisplatin-based adjuvant chemo improves survival
**'''2006''' {{PMID|16957145}} -- "DNA repair by ERCC1 in non-small-cell lung cancer and cisplatin-based adjuvant chemotherapy." (Olaussen KA, N Engl J Med. 2006 Sep 7;355(10):983-91.)
***Expression of ERCC1. 761 tumors analyzed. 44% positive, 56% negative
***ERCC1 negative: 5-year OS 47% chemo vs. 39% control (SS). Median OS 56 months chemo vs. 40 months control (14 month benefit)
***ERCC1 positive: 5-year OS 40% chemo vs. 46% control (NS). Median OS 50 months chemo vs. 55 months control (NS)
***Conclusion: In completely resected NSCLC, patients with ERCC1- tumors benefit from cisplatin, while ERCC1+ tumors do not. ERCC1+ tumors have a better overall OS
*'''NCI-Canada JBR.10 / INT''' (1994-2001) -- Surgery +/- cisplatin and vinorelbine
**Randomized. 482 patients with Stage IB-II (T3 excluded), complete resection. Arm 1) Adjuvant cisplatin 50 mg/m2 and vinorelbine 25 mg/m2 Q4W x4 cycles vs Arm 2) observation. No RT given.
**'''5-years; 2005''' {{PMID|15972865}} — "Vinorelbine plus Cisplatin vs. Observation in Resected Non–Small-Cell Lung Cancer." Winton T et al. N Engl J Med. 2005 June 23;352(25):2589-2597. Median F/U 5 years.
***Outcome: Median OS chemo 7.8 years vs 6.1 years (SS); 5-year OS 69% vs 54%. Median RFS 61% vs. 49% (SS). Subgroup analysis showed no benefit for chemotherapy for Stage IB.
**Conclusion: Improvement in overall survival
*'''Adjuvant Navelbine International Trialist Association (ANITA)''' (1994-2000) -- Surgery +/- cisplatin and vinorelbine
**Randomized. 840 patients. Stage IB-IIIA (36% IB, 24% II, 39% IIIA), complete resection. Arm 1) Adjuvant Cisplatin 100mg/m2 + Vinorelbine 30mg/m2 x4 cycles vs Arm 2) observation. Post-op RT not mandatory, and done according to each center's policy (given to 28%)
**'''6-years; 2006''' {{PMID|16945766}} -- "Adjuvant vinorelbine plus cisplatin versus observation in patients with completely resected stage IB-IIIA non-small-cell lung cancer (Adjuvant Navelbine International Trialist Association [ANITA]): a randomised controlled trial." (Douillard JY, Lancet Oncol. 2006 Sep;7(9):719-27.). Median F/U 6.3 years
***Outcome: 5-year OS chemo 51% vs observation 43% (SS); decreased death by 21%. Median OS 5.5 years vs 3.6 years (SS). Median RFS 3.0 years vs 1.7 years (SS). No benefit for Stage IB on subgroup analysis (5-year OS 62% vs 64%, NS). For Stage II, 52% vs. 39%; Stage IIIA 42% vs. 26%. If N0, 58% vs. 61% (NS); if N1 52% vs. 36%; if N2 40% vs. 19%
***Toxicity: neutropenia 92%, febrile neutropenia 9%, toxic deaths 2%
***Conclusion: Adjuvant vinorelbine/cisplatin extends survival
**''See also:'' Radiotherapy from the ANITA trial (discussed under PORT section)
*'''Adjuvant Lung Project Italy (ALPI)''' (1994-1999) -- Surgery +/- MVP
**Randomized, multi-institutional. 1209 patients with Stage I-IIIA. Treated with 1) surgery + adjuvant mitomycinC/vindesine/cisplatin (MVP) vs. 2) Surgery alone. 43% also received RT.
**'''2003''' {{PMID|14519751}} — "Randomized study of adjuvant chemotherapy for completely resected stage I, II, or IIIA non-small-cell Lung cancer." Scagliotti GV et al. J Natl Cancer Inst. 2003 Oct 1;95(19):1453-61. Median F/U 5.4 years
***Median OS: no difference; PFS no difference. Elective RT: Arm 1 65% vs. Arm 2 82%
***Toxicity: only 69% received MVP x3 cycles
***Conclusion: No difference in outcomes
**Critique: MVP not a good regimen, with pulmonary toxicity of Mitomycin C
*'''Japan JLCRG''' (1994-1997) -- Surgery +/- uracil-tegafur (UFT)
**Randomized. 999 patients, pathologic Stage I adenocarcinoma. Arm 1) adjuvant oral uracil-tegafur (tegafur 250 mg/m2) x2 years vs. Arm 2) observation. Primary end point OS
**'''2004''' {{PMID|15102997}} -- "A randomized trial of adjuvant chemotherapy with uracil-tegafur for adenocarcinoma of the lung." (Kato H, N Engl J Med. 2004 Apr 22;350(17):1713-21.) Median F/U 6.1 years
***Outcome: 5-year OS UFT 88% vs. observation 85% (p=0.047). Stage IA 89% vs. 90% (NS), Stage IB 85% vs. 74% (SS).
***Toxicity: Grade 3 in 2%
***Conclusion: Adjuvant chemotherapy improves survival
*'''Rome Tor Vergata''' (1988-1994) -- Surgery +/- cisplatin and etoposide
**Randomized. 140 patients, Stage IB (pT2N0), sublobar (34%) or great resection. Arm 1) Adjuvant cisplatin 100 mg/m2 and etoposide 120 mg/m2 Q4W x6 cycles vs Arm 2) observation. Primary endpoint OS
**'''2006''' {{PMID|16550600}} -- "Postsurgical chemotherapy in stage IB nonsmall cell lung cancer: Long-term survival in a randomized study." (Roselli M, Int J Cancer. 2006 Aug 15;119(4):955-60.) Mean F/U 3.4 years
***Outcome: 5-year OS chemo 62% vs. observation 42% (SS). If anatomic resection, 75% vs. 50% (SS)); if sublobar resection, 40% vs. 39% (NS)
***Toxicity: Grade 3 in 18%
***Conclusion: Adjuvant chemotherapy may improve long-term survival in Stage IB
*'''Big Lung Trial''' (Surgical arm)
**'''2004''' {{PMID|15200998}} — "Chemotherapy for patients with non-small cell lung cancer: the surgical setting of the Big Lung Trial." Waller D et al. Eur J Cardiothorac Surg. 2004 Jul;26(1):173-82.
**Randomized to chemotherapy vs observation. 3 cycles of chemotherapy q3week. Multiple cisplatin-based regimens.
**No survival benefit.
==Adjuvant chemo vs. adjuvant chemo-RT==
*'''CALGB 9734''' - post-op chemo +/- RT
**Randomized. 37/44 patients. Completely resected Stage IIIA. Adjuvant paclitaxel x4 cycles, then 2-4 weeks later +/- RT. ''Closed early due to slow accrual''
**'''2007''' {{PMID|17311692}} -- "A phase III study of surgical resection and paclitaxel/carboplatin chemotherapy with or without adjuvant radiation therapy for resected stage III non-small-cell lung cancer: Cancer and Leukemia Group B 9734." (Perry MC, Clin Lung Cancer. 2007 Jan;8(4):268-72.)
***Outcome: Median DFS no RT 1.4 years vs. RT 2.8 years (NS); 1-year OS 72% vs. 74% (NS)
***Conclusion: Small study, no improvement in outcome
*'''INT 0115''' ECOG EST 3590 / RTOG 91-05 - chemo/RT vs RT
**Randomized. 488 patients. Stage II-IIIA. Cisplatin/etoposide x4 cycles + concurrent RT vs RT alone. Cisplatin 60 mg/m2, etoposide 120 mg/m2. RT 50.4/28
**'''2000''' {{PMID|11071672}} — "A randomized trial of postoperative adjuvant therapy in patients with completely resected stage II or IIIA non-small-cell lung cancer." Keller SM et al. N Engl J Med. 2000 Oct 26;343(17):1217-22.
***Outcome: median OS 3.2 years vs. 3.2 years (NS). In-field recurrence 13% vs. 12% (NS)
***Toxicity: treatment-related mortality RT 1.2% vs. CRT 1.6%
***Conclusion: No difference in recurrence or survival.
'''Non-Randomized'''
*'''RTOG 97-05, 2005''' {{PMID|15908657}} -- "Phase II trial of postoperative adjuvant paclitaxel/carboplatin and thoracic radiotherapy in resected stage II and IIIA non-small-cell lung cancer: promising long-term results of the Radiation Therapy Oncology Group--RTOG 9705." (Bradley JD, J Clin Oncol. 2005 May 20;23(15):3480-7.)
**Phase II. 88 patients with II-IIIA, surgery + adjuvant paclitaxel/carboplatin + concurrent RT to 50.4/28. Boost of 10.8 Gy for ECE or T3. Median F/U 4.7 years
**Outcomes: median OS 4.7 years; 3-year OS 61%; LF in 15%
**Toxicity: acceptable
**Conclusion: Favorable survival compared to ECOG 3590 (INT 0115 above); suggest PIII trial
==SBRT==
*'''Pooled analysis of STARS (MD Anderson CC) and ROSEL (Dutch) trials; 2015''' (2008-2013)) {{PMID|25981812}} -- "Stereotactic ablative radiotherapy versus lobectomy for operable stage I non-small-cell lung cancer: a pooled analysis of two randomised trials" (Chang J et al., Lancet Oncology. 2015 Jun;16(6):630-7)
**Pooled analysis of 2 Phase III studies that both did not meet accrural goals. 58 patients, operable T1-T2a N0 M0 NSCLC, <4 cm diameter, 1:1 randomization SBRT vs surgery. STARS: SBRT 54/3 Gy peripheral, 50/4 Gy central lesions over 5 days; ROSEL: SBRT 54/3 Gy peripheral (5 -8 days), 60/5 Gy central lesions (10-14 days); . Median F/U 3.4 years
**Outcome: 3-year OAS 95% (SBRT) vs 79% (Surgery) (p<0.05)
**Toxicity: SBRT: Grade 3 in 10%, no grade 4/5; Surgery: grade 3/4 44%; 1pt Grade 5
**Conclusion: SBRT is better tolerated than surgery, SBRT might lead to better OAS; SBRT could be an option for operable Stage I NSCLC.
*'''Washington University; 2010''' (2000-2007) {{PMID|20400121}} -- "Stereotactic body radiation therapy versus surgical resection for stage I non-small cell lung cancer." (Crabtree TD, J Thorac Cardiovasc Surg. 2010 Apr 16. [Epub ahead of print])
**Retrospective. 462 patients with surgery (2000-2006) and 76 patients with SBRT (2004-2007), clinical Stage IA-IB NSCLC, staged with CT and PET. Surgical patients younger (SS), lower comorbidity (SS), better pulmonary function (SS), but higher stage (IA 63% vs 79%). Final path upstaging in 35%
**Outcome: Unmatched OS surgery 5-years 55% vs SBRT 3-years 32%. 3-year local control IA surgery 96% vs SBRT 89% (SS); no difference in IB local control. No difference in DSS. No difference in local control on propensity analysis 3-years 88% vs 90% (NS)
**Conclusion: Similar rates of local recurrence and disease specific survival on propensity analysis between surgery and SBRT
*'''William Beaumont; 2010''' (2003-2008) {{PMID|20065181}} -- "Outcomes After Stereotactic Lung Radiotherapy or Wedge Resection for Stage I Non-Small-Cell Lung Cancer." (Grills IS, J Clin Oncol. 2010 Jan 11. [Epub ahead of print])
**Retrospective. 127 patients with T1-T2N0 NSCLC treated with wedge resection (54%) or SBRT (46%); all ineligible for lobectomy. SBRT 95% inoperable, 5% refused surgery. Mean FEV1 wedge 1.4 vs SBRT 1.3 (NS), Charlson comorbidity 3 vs 4 (SS), age 74 vs 78 (SS). SBRT T1 48/4 and T2 60/5. Median F/U 2.5 years
**Outcome: Local recurrence wedge 20% vs SBRT 4% (p=0.07), no difference LRR, DM, or FFF. CSS wedge 94% vs SBRT 93% (NS). OS 87% vs 72% (SS). No difference between VATS and open surgery
**Conclusion: Both SBRT and wedge reasonable options for Stage I patients ineligible for lobectomy, with equivalent cancer-specific survival
*RCTs comparing surgery in medically operable early-stage NSCLC:
**ROSEL (Dutch): terminated due to poor accrual
**STARS (Cyberknife): terminated due to poor accrual
**RTOG 1021/ACOSOG Z4099: terminated due to poor accrual
==Review==
*'''2005''' {{PMID|16000604}} -- "Localized non-small cell lung cancer: adjuvant radiotherapy in the era of effective systemic therapy." (Bogart JA, Clin Cancer Res. 2005 Jul 1;11(13 Pt 2):5004s-5010s.)
==Guidelines==
*'''2007''' {{PMID|17954710}} -- "Cancer Care Ontario and American Society of Clinical Oncology adjuvant chemotherapy and adjuvant radiation therapy for stages I-IIIA resectable non small-cell lung cancer guideline." (Pisters KM,J Clin Oncol. 2007 Dec 1;25(34):5506-18.)
fuo1xf3h0rc9t717va1ob0okvgd34h6
Radiation Oncology/NSCLC/Overview
0
40296
4674814
4567345
2026-10-07T08:28:44Z
Jcb
90773
4674814
wikitext
text/x-wiki
{{:Radiation Oncology/Lung/NSCLC:TOC}}
==Epidemiology==
164,100 cases/yr. 156,900 deaths.
<br>Risk of lung cancer is 20X in heavy smokers than nonsmokers.
<br>Carcinogens: absestos, coal tar fumes, nickel, chromium, arsenic, radioactive material.
'''''Lung cancer in non-smokers:'''''
*{{PMID|17290054}}, 2007 — "Lung Cancer Incidence in Never Smokers." Wakelee HA et al. Journal of Clinical Oncology, Vol 25, No 5 (February 10), 2007: pp. 472-478.
**Large U.S.-based population database, ages 40-79, covering 1971-2003.
**Incidence 14.4-20.8 per 100,000 person-years in women, 4.8-13.7 in men. (By comparison, rates are 12-30 times higher in smokers). '''Adenocarcinoma higher in never smokers than in smokers.'''
**Conclusion: Lung cancer in never smokers is an important public health issue. '''Higher incidence in women'''.
==Presentation==
At diagnosis:
15% N0M0
30% N1-3M0
55% M1
==Symptoms==
Paraneoplastic syndromes:
*Gynecomastia - most commonly with large-cell
*Hypercalcemia - most commonly with squamous cell
*Hypertrophic pulmonary osteoarthropathy - presents as bilateral pain and tenderness in the legs, especially over the tibias. Bone scan positive. X-rays show elevated periosteum without cortical involvement. - most commonly with adenocarcinoma (secondary to PTHrp)
*Clubbing of digits
Syndromes according to tumor location:
*Pancoast syndrome (superior sulcus tumor) - '''lower brachial plexopathy, Horner's syndrome, shoulder/ulnar distribution of pain'''.
*Horner's syndrome - '''enophthalmos, ptosis, miosis, ipsilateral loss of sweating, hoarseness due to recurrent laryngeal nerve involvement'''
Second primary:
Patients treated for upper aerodigestive tract tumors (lung, H&N, esophagus) have a 3%/year risk of developing a subsequent cancer.
==Pathology==
*'''Adenocarcinoma - 40% (more common in those that do not smoke)'''
**Adenocarcinomas have a worse prognosis stage-for-stage.
**Bronchoalveolar is a subtype of adenocarcinoma.
***'''Arises from type II pneumocytes, is least associated with smoking.'''
*Squamous cell carcinoma - 30% (more common in smokers)
*'''Large cell carcinoma - 15%'''
*Small cell carcinoma - 20% (see separate page)
==Workup==
*''Please also see [[Radiation_Oncology/Lung/NSCLC/Screening|Screening]] section''
Patients with potentially resectable disease should undergo staging evaluation prior to therapy.
'''CT scans''' of the chest and abdomen through the adrenals should be performed. The sensitivity and specificity of CT scans for detecting involved mediastinal lymph nodes is only 60% and 77% with a PPV of 50% and NPV of 85% {{PMID|10551237}}. Thus, an enlarged lymph node (defined as >1cm) on CT contains cancer only 1/2 the time, and 15% of normal sized lymph nodes are cancerous.
'''PET''' has a sensitivity of 79%, specificity of 91%, PPV 90%, NPV 93% {{PMID|10551237}}. If both CT and PET are negative, the NPV is 97%. Thus, PET scans can reliably rule out N2 disease but surgical staging is required to confirm it.
'''Mediastinoscopy''' is used to detect N2 and N3 disease before surgical resection because if N3 disease is present, then surgery is not indicated, and if N2 disease is present, induction chemoradiation should be used prior to resection. Not all lymph nodes are evaluable by mediastinoscopy, so sensitivity is around 72-89%.
*Mediastinoscopy can be used to sample level 2 L/R, 4 L/R, and 7 nodal stations. For level 5 (AP window) and 6 lymph nodes, VATS or Chamberlain procedure (anterior mediastinotomy) can be used.
'''Enhanced MRI''' of the brain is recommended in some asymptomatic patients for the detection of occult brain mets. Brain metastases are present in 12-18% of all lung cancer patients, and there is a higher prevalence in nonsquamous histology and more advanced disease. In patients without neurologic symptoms, brain mets were detected in 4% of Stage I and II patients and 11.4% of Stage III patients {{PMID|10084481}}. It is also recommended that a brain MRI be repeated after induction chemotherapy and prior to thoracotomy to rule out disease progression.
'''Bone scan''' is not valuable unless there are focal symptoms or an elevated alkaline phosphatase. Furthermore, PET better for detection of bone metastases.
'''Pulmonary function tests''' if resection is being considered.
==Survival by stage==
{|align="center" border="1"
|+'''5-year survival data'''
|+from Mountain CF, ''Chest'' 89:225-233,1986.
|-
!Stage || TNM || Pathologic stage || Clinical stage
|-
|IA || T1,N0,M0 || 67% || 61%
|-
|IB || T2,N0,M0 || 57% || 38%
|-
|IIA||T1,N1,M0||55%||34%
|-
|IIB||T2,N1,M0||39%||24%
|-
|IIB||T3,N0,M0||38%||22%
|-
|IIIA||T3,N1,M0||25%||9%
|-
|IIIA||T1-3,N2,M0||23%||13%
|}
Note the decreased survival for those clinically staged compared to those with pathologic staging, reflecting understaged disease.
==Prognostic factors==
===Recursive partitioning analysis (RPA)===
*RTOG RPA, 1997 - {{PMID|9213303}} — "Recursive partitioning analysis of 1592 patients on four Radiation Therapy Oncology Group studies in inoperable non-small cell lung cancer." Scott C et al. Lung Cancer. 1997 Jun;17 Suppl 1:S59-74.
**RTOG 83-11, 83-21, 84-03, 84-07.
**KPS was most important on multivariate analysis (>80 median survival = 9.9 months vs <=70 MS = 5.9 months)
**Poor prognostic factors: KPS < =70 vs KPS = 80-100, wt loss <= 5% vs > 5%, age > 60, pleural effusion, higher T/N stage (from RTOG studies)
*RTOG RPA, 2000 - {{PMID|11121651}} — "Recursive partitioning analysis of 1999 Radiation Therapy Oncology Group (RTOG) patients with locally-advanced non-small-cell lung cancer (LA-NSCLC): identification of five groups with different survival." Werner-Wasik M et al. Int J Radiat Oncol Biol Phys. 2000 Dec 1;48(5):1475-82.
** I: KPS>= 90% with chemotherapy - MS 16.2 months
** II: KPS>= 90%, no chemo, no pleural effusion - MS 11.9 months
**III: KPS < 90%, age < 70, non-large cell histology - MS 9.6 months
** IV: KPS >=90% with pleural effusion; KPS <90, age < 70, large cell; >70 without PE - MS 5.6-6.4 months
** V: Age > 70 with pleural effusion - MS 2.9 months
==Lymph node drainage==
For primary tumor in a lobe, which lymph nodes does it drain to?
*Right upper lobe - ipsilateral mediastinum
*Left upper lobe - ipsilateral and contralateral mediastinum
*Right lower lobe - Subcarinal nodes -> right superior mediastinum -> right inferior mediastinum
*Left lower lobe - Subcarinal nodes -> right or left superior mediastinum -> right or left inferior mediastinum
==Natural history==
*''Also please see information in the [[Radiation_Oncology/Lung/NSCLC/Early_Stage_Inoperable|Early Stage Inoperable]] page''
*'''Split; 1994''' (Croatia)(1980-1987) {{PMID|7988203}} — "Survival analysis of untreated patients with non-small-cell lung cancer." (Vrdoljak E, Chest. 1994 Dec;106(6):1797-800.)
**Retrospective. 130 patients not treated with anti-cancer therapy
**Outcome: Median OS T2N0 17 months, T2N1 11 months, T2N2 10 months, other groups <8 months. Overall median OS 9 months. No patient (including T2N0) survived >3 years
**Subgroup analysis: Stage I (T2N0) better survival, all other stages comparable (worse) survival
**Conclusion: Lymph node involvement crucial factor in determining length of survival
==Economics==
'''''Cost-Effectiveness'''''
*'''US Oncology; 2010''' (2006-2007) [http://jop.ascopubs.org/cgi/content/abstract/6/1/12 JOP Abstract] -- "Cost Effectiveness of Evidence-Based Treatment Guidelines for the Treatment of Non–Small-Cell Lung Cancer in the Community Setting" (Neubauer MA, Journal Oncol Pract 2010 Jan 6(1):12-18)
**Retrospective. Patients with NSCLC receiving chemotherapy, classified whether treated on Level I Pathway guidelines or not. 8 practices within US Oncology network. 12-month cost of care and overall survival
**Outcome: 12-month cost $18,042 vs. $27,737 (35% lower for on-Pathway patients). No difference in OS
**Conclusion: Treating patients according to evidence-based guidelines is a cost-effective strategy
'''''RT Utilization'''''
*'''Queen's University, 2001''' (Canada) {{PMID|11240238}} -- "Estimating the need for radiotherapy for lung cancer: an evidence-based, epidemiologic approach." (Tyldesley S, Int J Radiat Oncol Biol Phys. 2001 Mar 15;49(4):973-85.)
**Epidemiologic approach. Lit review to identify RT indications, then population estimates
**Overall: 61% have RT indication (45% initial, 16% progression)
**SCLC: 54% have RT indication (45% initial treatment, 8% progression)
**NSCLC: 64% have RT indication (46% initial treatment, 18% progression)
***Stage I: 41%
***Stage II: 55%
***Stage III: 84%
***Stage IV: 66%
==Patterns of failure==
*RTOG, 1987
**{{PMID|3032394}} — "Long-term observations of the patterns of failure in patients with unresectable non-oat cell carcinoma of the lung treated with definitive radiotherapy." Perez CA et al. Cancer. 1987 Jun 1;59(11):1874-81.
**Based on two prospective studies:
***RTOG 73-01: T1-3N0-2; randomized pts to 40 Gy split course (20 Gy in 5 fx, 2 weeks rest, repeat) or 40, 50, 60 Gy continuous course.
***RTOG 73-02: T4 or N3; randomized to 30 Gy in 10 fx, 40 Gy split course, or 40 Gy std fx.
**'''Better control with 60 Gy. Adeno had better tumor control than squamous or large cell. Overall DM rate was the same, but for adenos DM appeared earlier and more likely to fail in the brain'''.
==Smoking==
:''See also:'' [[Radiation Oncology/Cancer epidemiology|Cancer epidemiology]]
*{{PMID|16189363}}, 2005 — "Effect of smoking reduction on lung cancer." Godtfredsen NS et al. JAMA. 2005 Sep 28;294(12):1505-10.
**For those who smoke >15 cigarettes/day, smoking reduction by 50% reduces the risk of lung cancer (RR=0.73). In comparison, HR for quitters is 0.50.
==Radiation Injury==
See [[Radiation Oncology/Normal tissue tolerance]]
==Other Resources==
*[https://www.astro.org/uploadedFiles/Affiliates/ARRO/Resident_Resources/Educational_Resources/Case_Vingettes/NSCLCIIIB.pdf ARRO Case - Locally Advanced NSCLC]
*[https://astro.webex.com/ec0606l/eventcenter/recording/recordAction.do?theAction=poprecord&AT=pb&renewticket=0&isurlact=true&recordID=21524707&apiname=lsr.php&rKey=5a8341c41b3193ee&format=short&needFilter=false&&SP=EC&rID=21524707&siteurl=astro&actappname=ec0606l&actname=%2Feventcenter%2Fframe%2Fg.do&rnd=8433739874&entappname=url0108l&entactname=%2FnbrRecordingURL.do ASTRO/ARRO Journal Club Webinar 2012 - "Excessive toxicity when treating central tumors in a phase II study of SBRT for medically inoperative early-stage lung cancer" with Robert Timmerman, M.D]
*[https://astro.webex.com/ec0606l/eventcenter/recording/recordAction.do?theAction=poprecord&AT=pb&renewticket=0&isurlact=true&recordID=18992702&apiname=lsr.php&rKey=29e267d8086e52b5&format=short&needFilter=false&&SP=EC&rID=18992702&siteurl=astro&actappname=ec0606l&actname=%2Feventcenter%2Fframe%2Fg.do&rnd=6641165571&entappname=url0108l&entactname=%2FnbrRecordingURL.do ASTRO/ARRO Journal Club Webinar 2011 - "RTOG 9410: concurrent chemoradiation improves overall survival for inoperable stage III lung cancer" with Jeffrey Bradley, M.D.]
30md367e403qrxr8rx67ury8fdplbf8
Radiation Oncology/NSCLC/Miscellaneous
0
41017
4674812
1732341
2026-10-07T08:23:03Z
Jcb
90773
4674812
wikitext
text/x-wiki
{{:Radiation Oncology/Lung/NSCLC:TOC}}
==Role of Amifostine==
*'''RTOG 98-01''' (1998-2002)
**{{PMID|15800308}}, 2005 — "Randomized trial of amifostine in locally advanced non-small-cell lung cancer patients receiving chemotherapy and hyperfractionated radiation: radiation therapy oncology group trial 98-01." Movsas B et al. J Clin Oncol. 2005 Apr 1;23(10):2145-54.
**120 pts. Stage II-III NSCLC. Induction chemo and hyperfractionated RT with concurrent chemotherapy, randomized to +/- Amifostine.
**Grade 3 esophagitis 30% (Amifostine) vs 34%, N.S. However, improved swallowing diary area under the curve suggests a possible benefit.
==EGFR==
===Gefitinib (Iressa)===
Is an inhibitor of the tyrosine kinase domain of EGFR. EGFR is overexpressed in 40-80% of NSCLC.
*Harvard, 2004 - {{PMID|15118073}} — "Activating mutations in the epidermal growth factor receptor underlying responsiveness of non-small-cell lung cancer to gefitinib." Lynch TJ et al. N Engl J Med. 2004 May 20;350(21):2129-39.
**Most patients with NSCLC have no response to gefitinib, however about 10% show a rapid and dramatic response.
**A subgroup of patients with NSCLC have specific mutations in the EGFR gene which correlate with response to gefinitib. The mutations lead to increased growth factor signaling
**Conclusion: screening for EGFR mutations may enable selection of patients who will respond to treatment with gefitinib.
*'''IDEAL (Iressa Dose Evaluation in Advanced Lung Cancer) trials'''
**Previously treated NSCLC who failed 1-2 prior chemotherapy regimens.
**IDEAL-1: {{PMID|12748244}} — "Multi-institutional randomized phase II trial of gefitinib for previously treated patients with advanced non-small-cell lung cancer (The IDEAL 1 Trial)" Fukuoka M et al. J Clin Oncol. 2003 Jun 15;21(12):2237-46.
**IDEAL-2: {{PMID|14570950}} — "Efficacy of gefitinib, an inhibitor of the epidermal growth factor receptor tyrosine kinase, in symptomatic patients with non-small cell lung cancer: a randomized trial." Kris MG et al. JAMA. 2003 Oct 22;290(16):2149-58.
**Both trials tested 250 mg vs 500 mg daily doses and showed no difference in efficacy but fewer side effects in the low dose arm.
===Erlotinib (Tarceva)===
Is a tyrosine kinase inhibitor.
*'''NCI Canada Clinical Trials Group trial BR.21'''
**{{PMID|16014882}} — "Erlotinib in previously treated non-small-cell lung cancer." Shepherd FA et al. N Engl J Med. 2005 Jul 14;353(2):123-32.
**731 pts. Stage IIIB-IV who received 1-2 prior chemotherapy regimens. Randomized to erlotinib vs placebo.
**Response rate 8.9%. PFS 2.2 vs 1.8 months (placebo), S.S. OS 6.7 vs 4.7 m (HR = 0.7).
*'''TRIBUTE trial'''
**{{PMID|16043829}} — "TRIBUTE: A Phase III Trial of Erlotinib Hydrochloride (OSI-774) Combined With Carboplatin and Paclitaxel Chemotherapy in Advanced Non-Small-Cell Lung Cancer." Herbst RS et al. J Clin Oncol. 2005 Sep 1;23(25):5892-9.p
**1059 pts. Stage IIIB/IV. Randomized. Received 6 cycles of carboplatin and paclitaxel, combined with erlotinib vs placebo.
**No difference in OS or TTP. Pts who never smoked had improved OS with erlotinib, 22 vs 10 months.
'''Predictors of response:'''
*{{PMID|16043828}} — "Mutations in the Epidermal Growth Factor Receptor and in KRAS Are Predictive and Prognostic Indicators in Patients With Non-Small-Cell Lung Cancer Treated With Chemotherapy Alone and in Combination With Erlotinib." Eberhard DA et al. J Clin Oncol. 2005 Sep 1;23(25):5900-9.
**From TRIBUTE trial, treated with chemotherapy +/- erlotinib. EGFR mutations (in 13%) associated with improved survival in all arms. Among those receiving erlotinib, there is an improved response rate for those with EGFR mutations and a trend toward improved TTP but no difference in survival. K-RAS mutations (21%) associated with decreased TTP and survival.
jatzb4jmrkn5s589sul075exhk6uw7n
OpenSSH/Cookbook/Public Key Authentication
0
51866
4674763
4655495
2026-10-06T17:19:46Z
Larsnooden
430753
MLDSA44-Ed25519
4674763
wikitext
text/x-wiki
<noinclude>{{simple chapter navigation|previous=File Transfer with SFTP|next=Certificate-based Authentication}}</noinclude>
Authentication keys can improve efficiency, if done properly. As a bonus advantage, the passphrase and private key never leave the client<ref name="RFC4252§7">{{cite web |url=https://tools.ietf.org/html/rfc4252#section-7 |title=The Secure Shell (SSH) Authentication Protocol |publisher=IETF |year=2006| accessdate=2015-05-06}}</ref>. Key-based authentication is generally recommended for outward facing systems so that password authentication can be turned off.
==Key-based authentication==
OpenSSH can use public key cryptography for authentication. In public key cryptography, encryption and decryption are asymmetric. The keys are used in pairs, a public key to encrypt and a private key to decrypt. The [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] utility can make RSA, Ed25519, MLDSA44-Ed25519, ECDSA, Ed25519-SK, or ECDSA-SK keys for authenticating. Even though DSA keys can still be made, being exactly 1024 bits in size, they are no longer recommended and should be avoided. RSA keys are allowed to vary from 1024 bits on up. The default is now 3072. However, there is only limited benefit after 2048 bits and that makes elliptic curve algorithms preferable. ECDSA can be 256, 384 or 521 bits in size. Ed25519, Ed25519-SK, and ECDSA-SK keys each have a fixed length of 256 bits. Shorter keys are faster, but less secure. Longer keys are much slower to work with but provide better protection, up to a point.
Keys can be named to help remember what they are for. Because the key files can be named anything it is possible to have many keys each named for different services or tasks. The comment field at the end of the public key can also be useful in helping to keep the keys sorted, if you have many of them or use them infrequently.
The process of key-based authentication uses these keys to make a couple of exchanges using the keys to encrypt and decrypt some short message. At the start, a copy of the client's public key is stored on the server and the client's private key is on the client, both stay where they are. The private key never leaves the client. As the client first contacts the server, the server responds by using the client's public key to encrypt a random number and return that encrypted random number as a challenge to the client. The client responds to the challenge by using the matching private key to decrypt the message and extract the random number. The client then makes an MD5 hash of the session ID along with the random number from the challenge and returns that hash to the server. The server then makes its own hash of the session ID and the random number and compares that to the hash returned by the client. If there is a match, the login is allowed. If there is not a match, then the next of any public keys on the server registered as belonging to the same account is tried until either a match is found or all the keys have been tried or the maximum number of failures has been reached. <ref name="How Key Challenges Work">{{cite web | url=http://www.unixwiz.net/techtips/ssh-agent-forwarding.html#chal | title=An Illustrated Guide to SSH Agent Forwarding | author=Steve Friedl | date=2006-02-22 | accessdate=2013-04-27 | publisher=Unixwiz.net }}</ref>
When an agent is used on the client side to manage authentication, the process is similar. The difference is that [http://man.openbsd.org/ssh.1 ssh(1)] passes the challenge off to the agent which then calculates the response and passes it back to [http://man.openbsd.org/ssh.1 ssh(1)] which then passes the agent's response back to the server.
===Basics of Public Key Authentication===
A matching pair of SSH keys, one public and one private, is needed for public key authentication. The [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] utility is used to make such a key pair. Out of that pair the public key must be properly stored on the remote host before using key-based authentication. The default location for it is the designated '''authorized_keys''' file, usually one such file resides inside each remote user account. The private key stays stored safely on the client.
Once the keys have been prepared and the remote account configured, they can be used for login. Before starting, there must already be an account on the remote system. The details of doing that are outside of the scope of this book. However, once you have a remote account, there are four steps to set up key-based authentication for it:
'''1''') Prepare a directory on the client (say a laptop or a desktop) where the keys will stay, if there isn't one already. For example, if the '''.ssh''' directory is not on the client machine, create it and set the permissions correctly. It is important that it not be writable by any account except its owner:
<syntaxhighlight lang="shell-session">
$ mkdir ~/.ssh/
$ chmod 0700 ~/.ssh/
</syntaxhighlight>
'''2''') Create a key pair inside the designated directory. The example here creates an Ed25519 key pair in the directory '''~/.ssh'''. The option '''-t''' decides the key type and the option '''-f''' assigns the key file a name. It is good to give key files descriptive names, especially if larger numbers of keys are managed. Below, the public key will be named '''fred_example_org_ed25519.pub''' and the private key will be called '''fred_example_org_ed25519'''. Lastly, the '''-C''' option is used to embed a descriptive comment inside the private key itself. The comment is useful for figuring out later what the key is for when one has many keys or a lot of time has passed or both.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -t ed25519 -f ~/.ssh/fred_example_org_ed25519 \
-C "from fred's laptop to server.example.org"
</syntaxhighlight>
Be sure to enter a solid passphrase so that the private key gets encrypted using 128-bit AES. That way the private key can only be read or used when the passphrase is given.
Ed25519, Ed25519-SK, and ECDSA-SK keys have fixed lengths. For RSA and ECDSA keys, the '''-b''' option sets the number of bits used for those kinds of keys.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -o -b 4096 -t rsa -f ~/.ssh/fred_example_org_rsa \
-C "from fred's laptop to server.example.org"
</syntaxhighlight>
Since 6.5 a new private key format is available using a [http://man.openbsd.org/bcrypt.3 bcrypt(3)] key derivative function (KDF) to better protect keys at rest. This new format is always used for Ed25519 keys, and sometime in the future will be the default for all keys. But for right now it may be requested when generating or saving existing keys of other types via the '''-o''' option in [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)].
Details of the new format are found in the source code in the file '''PROTOCOL.key'''.
'''3''') Get the keys to the right places. Transfer only the public key to remote machine. The following assume the default locations for the authorized keys as specified in the server's configuration file by the '''AuthorizedKeysFile''' directive.
'''3a''') If the utility <code>ssh-copy-id</code> exists, and if password authentication is allowed, then it can be used to put the public key into place on the remote system. The ''.pub'' is optional here, the script will figure it out if omitted.
<syntaxhighlight lang="shell-session">
$ ssh-copy-id -i ~/.ssh/fred_example_org_ed25519 fred@server.example.org
</syntaxhighlight>
If that script was successful in transferring the public key, then go on to step 4 below and test the key. If not, then try transferring the public key manually as described in step 3b next.
'''3b''') Or the public key can be put in place manually on the remote machine. For that the remote '''.ssh''' directory is needed, and within that a special file to store the public keys, the default file name is '''authorized_keys'''. If either the '''authorized_keys''' file or '''.ssh''' directory do not exist on the remote machine, they need to be created.
<syntaxhighlight lang="shell-session">
$ mkdir -m 700 ~/.ssh/
$ touch ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
$ nano -w ~/.ssh/authorized_keys
</syntaxhighlight>
Then any editor which does not wrap long lines can be used to add the public key. However the '''authorized_keys''' file is edited to add the key, the key itself must be in the file whole and unbroken on a single line. For example, [http://linux.die.net/man/1/nano nano(1)] can be started with the '''-w''' option to prevent wrapping of long lines. (Another way to set line wrapping permanently in [http://linux.die.net/man/1/nano nano(1)] is by editing [http://linux.die.net/man/5/nanorc nanorc(5)].)
If the key pair is not already on the client, transfer both the public and private keys there. It is usually best to keep both the public and private keys together in the directory '''~/.ssh/''', though the public key is not always needed on the client after this step and could even be regenerated if it is ever needed again.
'''4''') Test the keys
While remaining logged in via the first terminal, use the client system to open another window and in it start another SSH session and try authenticating to the remote machine from the client using the private key.
<syntaxhighlight lang="shell-session">
$ ssh -i ~/.ssh/fred_example_org_ed25519 -l fred server.example.org
</syntaxhighlight>
The option '''-i''' tells [http://man.openbsd.org/ssh.1 ssh(1)] which private key to try.
Only after verifying that the key-based authentication works should you close the original window.
It is possible to make permanent shortcuts on the client using [http://man.openbsd.org/ssh_config.5 ssh_config(5)], explained further below, once key-based authentication is working. In particular, see the '''IdentityFile''', '''IdentitiesOnly''', and '''AddKeysToAgent''' configuration directives, to name three.
It is also a good idea to turn off password authentication, if and only if key-based authentication is setup for all the necessary remote accounts.
➥ '''Troubleshooting of Key-based Authentication''':
If the server refuses to accept the key and fails over to the next authentication method (e.g.: "Server refused our key"), then there are several possible mistakes to look for on the server side.
One of the most common errors is that the file and directory permissions are wrong. The authorized keys file must be owned by the user in question and not be group writable. Nor may the key file's directory be group or world writable.
<syntaxhighlight lang="shell-session">
$ chmod u=rwx,g=rx,o= ~/.ssh
$ chmod u=rw,g=,o= ~/.ssh/authorized_keys
</syntaxhighlight>
Another mistake that can happen is if the key inside the '''authorized_keys''' file on the remote host is broken by line breaks or has other whitespace in the middle. That can be fixed by joining up the lines and removing the spaces or by recopying the key more carefully.
And, though it should go without saying, the halves of the key pair need to match. The public key on the server needs to match the private key held on the client. If the public key is lost, then a new one can be generated with the '''-y''' option, but not the other way around. If the private key is lost, then the public key should be erased as it is no longer of any use. If many keys are in use for an account, it might be a good idea to add comments to them. On the client, it can be a good idea to know which server the key is for, either through the file name itself or through the comment field. A comment can be added using the '''-C''' option.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -t ed25519 -f ~/.ssh/fred_example_org_ed25519 -C "web server mirror"
</syntaxhighlight>
On the server, it can be important to annotate which client they key is from if there is more than one public key there in an account. There the comment can be added to the authorized keys file on the server in the last column if a comment does not already exist. Again, the format of the authorized keys file is given in the manual page for [http://man.openbsd.org/sshd.8 sshd(8)] in the section "AUTHORIZED_KEYS FILE FORMAT". If the keys are not labeled they can be hard to match, which might or might not be what you want.
====Associating Keys Permanently with a Server====
A key can be specified at run time, but to save retyping the same paths again and again, the '''Host''' directive in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] can apply specific settings to a target host. In this case, by changing '''~/.ssh/config''' it is possible to assign particular keys to be tried automatically whenever making a connection to that specific host. After adding the following lines to '''~/.ssh/config''', all that's needed is to type <code>ssh ''web1''</code> to connect with the key for that server.
<syntaxhighlight lang="apache" line="1">
Host web1
Hostname 198.51.100.32
IdentitiesOnly yes
IdentityFile /home/fred/.ssh/web_key_ed25519
</syntaxhighlight>
The '''~/.ssh/config''' below uses different keys for ''server'' versus ''server.example.org'', regardless whether they resolve to the same machine. This is possible because the host name argument given to [http://man.openbsd.org/ssh.1 ssh(1)] is not converted to a canonicalized host name before matching.
<syntaxhighlight lang="apache" line="1">
Host server
IdentitiesOnly yes
IdentityFile /home/fred/.ssh/key_a_rsa
Host server.example.org
IdentitiesOnly yes
IdentityFile /home/fred/.ssh/key_b_rsa
</syntaxhighlight>
In this example the shorter name is tried first, but of course less ambiguous shortcuts can be made instead. The configuration file gets parsed on a first-match basis. So the most specific rules go at the beginning and the most general rules go at the end.
====Encrypted Home Directories====
When using encrypted home directories the keys must be stored in an unencrypted directory. That means somewhere outside the actual home directory which means [http://man.openbsd.org/sshd.8 sshd(8)] needs to be configured appropriately to find the keys in that special location.
Here is one method for solving the access problem. Each user is given a subdirectory under '''/etc/ssh/keys/''' which they can then use for storing their '''authorized_keys''' file. This is set in the server's configuration file '''/etc/ssh/sshd_config'''
<syntaxhighlight lang="apache" line="1">
AuthorizedKeysFile /etc/ssh/keys/%u/authorized_keys
</syntaxhighlight>
Setting a special location for the keys opens up more possibilities as to how the keys can be managed and multiple key file locations can be specified if they are separated by whitespace. The user does not have to have write permissions for the '''authorized_keys''' file. Only read permission is needed to be able to log in. But if the user is allowed to add, remove, or change their keys, then they will need write access to the file to do that.
One symptom of having an encrypted home directory is that key-based authentication only works when you are already logged into the same account, but fails when trying to make the first connection and log in for the first time.
Sometimes it is also necessary to add a script or call a program from '''/etc/ssh/sshrc''' immediately after authentication to decrypt the home directory.
====Passwordless Login====
One solution for passwordless logins is to still have a passphrase and work with an authentication agent in conjunction with a single-purpose key. Most desktop environments launch an SSH agent automatically these days. It will be visible in the '''SSH_AUTH_SOCK''' environment variable if it is. On accounts with an agent, [http://man.openbsd.org/ssh-add.1 ssh-add(1)] can load private keys into an available agent.
<syntaxhighlight lang="shell-session">
$ ssh-add ~/.ssh/fred_example_org_ed25519
</syntaxhighlight>
Thereafter, the client will automatically check the agent for the key when appropriate. If there are many keys in the agent, it will become necessary to set '''IdentitiesOnly'''. See the above section on using '''~/.ssh/config''' for that. See [[OpenSSH/Cookbook/Public_Key_Authentication#Key-based_Authentication_Using_an_Agent|Key-based Authentication Using an Agent]] below.
Another, riskier, way of allowing passwordless logins is to follow the steps above, but simply do not enter a passphrase when asked for one while creating the key. Note that using keys that lack a passphrase is very risky, so the key files should be very well protected and kept track of, and ideally locked down with a '''command=''' option or '''ForceCommand''' directive on the server. That includes those keys which will only be used as single-purpose keys as described below.
Timely key rotation becomes especially important. In general, it is not a good idea to make a key without a passphrase.
====Requiring Both Keys and a Password====
While users should have strong passphrases for their keys, there is no way to enforce or verify that. Indeed, since neither the private key nor its the passphrase ever leave the client machine there is nothing that the server can do to have any influence over that. Instead, it is possible to require both a key and a password. Starting with OpenSSH 6.2, it is possible for the server to require multiple authentication methods for login using the '''AuthenticationMethods''' directive.
<syntaxhighlight lang="apache" line="1">
AuthenticationMethods publickey,password
</syntaxhighlight>
This example from [http://man.openbsd.org/sshd_config.5 sshd_config(5)] requires that users first authenticate using a key and it only queries for a password if the key succeeds. Thus with that configuration it is not possible to get to the system password prompt without first authenticating with a valid key. Changing the order of the arguments changes the order of the authentication methods.
====Requiring Two or More Keys====
Since OpenSSH 6.8, the server now remembers which public keys have been used for authentication and refuses to accept previously-used keys. This allows a set up requiring that users authenticate using two different public keys, maybe one in the file system and the other in a hardware token.
<syntaxhighlight lang="apache" line="1">
AuthenticationMethods publickey,publickey
</syntaxhighlight>
The '''AuthenticationMethods''' directive, whether for keys or passwords, can also be set on the server under a '''Match''' directive to apply only to certain groups or situations.
====Requiring Certain Key Types For Authentication====
Also since OpenSSH 6.8, the '''PubkeyAcceptedKeyTypes''' directive, later changed to '''PubkeyAcceptedAlgorithms''', can specify which key algorithms are accepted for authentication. Those not in the comma-separated pattern list are not allowed.
<syntaxhighlight lang="apache" line="1">
PubkeyAcceptedAlgorithms ssh-ed25519*,ssh-rsa*,ecdsa-sha2*,sk-ssh-ed25519*,sk-ecdsa-sha2*
</syntaxhighlight>
Either the actual key types or a pattern can be in the list. Spaces are not allowed in the pattern list. The exact list of key types supported for authentication can be found by the '''-Q''' option using the client. The following two lines are equivalent.
<syntaxhighlight lang="shell-session">
$ ssh -Q key-sig | sort
$ ssh -Q PubkeyAcceptedAlgorithms | sort
</syntaxhighlight>
For host-based authentication, it is the '''HostbasedAcceptedAlgorithms''' directive which determines the key types which are allowed for authentication.
===Key-based Authentication Using the AuthorizedKeysCommand Directive===
It is possible to use a program or script to look up public keys rather than keeping them in a static file or files. Any command called by the '''AuthorizedKeysCommand''' directive needs to either produce a syntactically correct public key while returning the exit code for a successful run or else return the exit code for failure. The string sent to '''stdout''' will then be processed as part of the authentication work flow.
Here is a shell script<ref name="janpietmens">{{cite web |url=https://jpmens.net/2025/03/25/authorizedkeyscommand-in-sshd/ |title=SSH keys from a command: sshd's AuthorizedKeysCommand directive |accessdate=2025-04-04 |date=2025-03-25 | author=Jan-Piet Mens }}</ref> at its simplest, without constraints, demonstrating a public key lookup:
<syntaxhighlight lang="shell">
#!/bin/sh
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKs/UouletvojgB1YeRZ4MY6iRblQ2ERDuNhQO4tOvdL"
exit 0
</syntaxhighlight>
For authentication to succeed, the script must return exit code 0 (success) after sending the syntactically correct matching public key to '''stdout'''. For the SSH daemon to even run the script in the first place, the script must have the correct file and directory permissions.
Both the '''AuthorizedKeysCommandUser''' directive and '''AuthorizedKeysCommand''' must be used together. The former designates which account the script or program use when run. If set to ''none'' or if it does not refer to a valid account then [http://man.openbsd.org/sshd sshd(8)] will just ignore the command. If '''AuthorizedKeysCommand''' is set, and '''AuthorizedKeysCommandUser''' is left empty or missing, then [http://man.openbsd.org/sshd sshd(8)] won't even run when invoked. The error will be:
<syntaxhighlight lang="text">
AuthorizedKeysCommand set without AuthorizedKeysCommandUser
</syntaxhighlight>
The '''AuthorizedKeysFile''' is always tried first when it is present in the server configuration. The '''AuthorizedKeysCommand''' directive will not even be tried when the authorized keys file can provide a relevant key first.
====A More Detailed Example Using the AuthorizedKeysCommand Directive====
By default the user name trying to log in is passed to the script when no tokens or arguments are provided. Whether or how that information is used is up to the script. The SSH daemon can also pass any combination of the tokens described in the TOKENS section of [http://man.openbsd.org/sshd_config sshd_config(5)] into the program or script being called. Furthermore, the program or script can even be a front end for a database, such as OpenLDAP, or any similar system, as long as '''stdout''' produces a public key.
Below is a more detailed example which uses a local script named '''keyfinder''' run with the account '''keys''' to look up the a public key for certain accounts. First in [http://man.openbsd.org/sshd_config sshd_config(5)] the two directives:
<syntaxhighlight lang="apache" line="1">
AuthorizedKeysCommand /usr/local/sbin/keyfinder %U
AuthorizedKeysCommandUser keys
</syntaxhighlight>
The script below is only a demonstration and a more complex program can call databases or do advanced lookups or heuristics:
<syntaxhighlight lang="shell">
#!/bin/sh
set -e
case $1 in
"1000")
echo "ssh-ed25519 AAAAC3NzaC1lZDIE5AAAAIK89...UT9hz"
;;
"1001")
echo "restrict ssh-ed25519 AAAAC3NzaC1lZDI1NTAAIBvGx...Y0zxV"
;;
"1002")
echo "command=\"/usr/libexec/sftp-server\" ssh-ed25519 AAAAC3NzaC1lZDI1TE5AIPSyY...cPTg3"
;;
*)
exit 1
;;
esac
exit 0
</syntaxhighlight>
The '''AuthorizedKeysCommand''' scripts or programs can return any correctly formatted public key to '''stdout''' for consideration in the authentication process. That includes adding constraints to the keys. Above, the account with the UID 1000 has no constraints, while the account with UID 1001 is quite constrained. Finally, the account with the UID 1002 can only access the SFTP service. See the section "AUTHORIZED_KEYS FILE FORMAT" in [http://man.openbsd.org/sshd sshd(8)] for the full set of possibilities.
===Key-based Authentication Using an Agent===
When an authentication agent, such as [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)], is going to be used, it should generally be started at the beginning of a session and used to launch the login session or X-session so that the environment variables pointing to the agent and its UNIX-domain socket are passed to each subsequent shell and process. Many desktop distros do this automatically upon login or startup.
Starting an agent entails setting a pair of environment variables:
* SSH_AGENT_PID : the process id of the agent
* SSH_AUTH_SOCK : the filename and full path to the UNIX-domain socket
The various SSH and SFTP clients find these variables automatically and use them to contact the agent and try when authentication is needed. However, it is mainly SSH_AUTH_SOCK which is ever used. If the shell or desktop session was launched using [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)], then these variables are already set and available. If they are not available, then it is necessary to either set the variables manually inside each shell or for each application in order to use the agent or else to point to the agent's socket using the directive '''IdentityAgent''' in the client's configuration file.
Once an agent is available, a relevant private key needs to be loaded before the agent can be used. Once in the agent the private key can then be used many times. Private keys are loaded into an agent with [http://man.openbsd.org/ssh-add.1 ssh-add(1)].
<syntaxhighlight lang="shell-session">
$ ssh-add /home/fred/.ssh/mykey_ed25519
Identity added: /home/fred/.ssh/mykey_ed25519 (/home/fred/.ssh/mykey_ed25519)
</syntaxhighlight>
Keys stay in the agent for as long as it is running unless specified otherwise. A timeout can be set either with the '''-t''' option when starting the agent itself or when actually loading the key using [http://man.openbsd.org/ssh-add.1 ssh-add(1)]. In either case, the '''-t''' option will set a timeout interval, after which the key will be purged from the agent.
<syntaxhighlight lang="shell-session">
$ ssh-add -t 1h30m /home/fred/.ssh/mykey_ed25519
Identity added: /home/fred/.ssh/mykey_ed25519 (/home/fred/.ssh/mykey_ed25519)
Lifetime set to 5400 seconds
</syntaxhighlight>
The option '''-l''' will list the fingerprints of all of the identities in the agent.
<syntaxhighlight lang="bash">
$ ssh-add -l
256 SHA256:77mfUupj364g1WQ+O8NM1ELj0G1QRx/pHtvzvDvDlOk mykey for task x (ED25519)
3072 SHA256:7unq90B/XjrRbucm/fqTOJu0I1vPygVkN9FgzsJdXbk myotherkey rsa for task y (RSA)
</syntaxhighlight>
It is also possible to remove individual identities from the agent using '''-d''' which will remove them one at a time if identified by file name, but only if the file name is given and without the file name of the private key to be remove, '''-d''' will fail silently. Using '''-D''' instead will remove all of them at once without needing to specify any by name.
By default [http://man.openbsd.org/ssh-add.1 ssh-add(1)] uses the agent connected via the socket named in the environment variable '''SSH_AUTH_SOCK''', if it is set. Currently, that is its only option. However, for [http://man.openbsd.org/ssh.1 ssh(1)] an alternative to using the environment variable is the client configuration directive '''IdentityAgent''' which tells the SSH clients which socket to use to communicate with the agent. If both the environment variable and the configuration directive are available at the same time, then the value in '''IdentityAgent''' takes precedence over what's in the environment variable. '''IdentityAgent''' can also be set to ''none'' to prevent the connection from trying to use any agent at all.
The client configuration directive '''AddKeysToAgent''' can also be useful in getting keys into an agent as needed. When set, it automatically loads a key into a running agent the first time the key is called for if it is not already loaded. Likewise the '''IdentitiesOnly''' directive can ensure that the relevant key is offered on the first try. Rather than typing these out whenever the client is run, they can be added to '''~/.ssh/config''' and thereby added automatically for designated host connections.
====Agent Forwarding====
Agent forwarding is one means of passing through one or more intermediate hosts. However, the '''-J''' option for '''ProxyJump''' would be a safer option. See [[OpenSSH/Cookbook/Proxies_and_Jump_Hosts#Jump_Hosts_--_Passing_Through_a_Gateway_or_Two | Passing Through a Gateway or Two]] in the section on jump hosts about that. With agent forwarding, intermediate machines forward challenges and responses back and forth between the client and the final destination. This comes with some risks but eliminates the need for using passwords or holding keys on any of these intermediate machines.
A main advantage of agent forwarding is that the private key itself is not needed on any remote machine, thus hindering unwanted file system access to it. <ref name="OpenSSH key management, Part 3">{{cite web | url=http://www.ibm.com/developerworks/library/l-keyc3/ | title=Common threads: OpenSSH key management, Part 3 | author=Daniel Robbins | publisher=IBM | date=2002-02-01 | accessdate=2013-04-27}}</ref> Another advantage is that the actual agent to which the user has authenticated does not go anywhere and is thus less susceptible to analysis.
One risk with agents is that they can be re-used to tailgate in if the permissions allow it. Keys cannot be copied this way, but authentication is possible when there are incorrect permissions. Note that disabling agent forwarding does not improve security unless users are also denied shell access, as they can always install their own forwarders.
The risks of agent forwarding can be mitigated by confirming each use of a key by adding the '''-c''' option when adding the key to the agent. This requires the SSH_ASKPASS variable be set and available to the agent process, but will generate a prompt on the host running the agent upon each use of the key by a remote system. So if passing through one or more intermediate hosts, it is usually better to instead have the SSH client use stdio forwarding with '''-W''' or '''-J'''.
On the client side agent forwarding is disabled by default and so if it is to be used it must be enabled explicitly. Put the following line in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] to enable agent forwarding for a particular server:
<syntaxhighlight lang="apache" line="1">
Host gateway.example.org
ForwardAgent yes
</syntaxhighlight>
On the server side the default configuration files allow authentication agent forwarding, so to use it, nothing needs to be done there, just on the client side. However, again, it would be preferable to take a look at '''ProxyJump''' instead.
=====Old Style, Somewhat Safer SSH Agent Forwarding=====
The best way to pass through one or more intermediate hosts is to use the '''ProxyJump''' option instead of authentication agent forwarding and thereby not risk exposing any private keys. If authentication agent forwarding must be used, then it would be advisable in the interest of following the principle of least privilege to forward an agent containing the minimum necessary number of keys. There are several ways to solve that.
In version 8.8 and earlier a partial solution is to make a one-off, ephemeral agent to hold just the one key or keys needed for the task at hand. Another partial solution would be to set up a user-accessible service at the operating system level and then use [http://man.openbsd.org/ssh_config.5 ssh_config] for the rest.
Automatically launching an ephemeral agent unique to each session can be done by crafting either a special shell alias or function to launch a single-use agent. Either the function or the alias can be written to require confirmation for each requested signature. The following example is an alias is based on an updated blog post by Vincent Bernat<ref name="safer-agent-forwarding">{{cite web |url=https://vincent.bernat.ch/en/blog/2020-safer-ssh-agent-forwarding |title=Safer SSH agent forwarding |author=Vincent Bernat|date=2020-04-05 |accessdate=2020-10-04}}</ref> on SSH agent forwarding:
<syntaxhighlight lang="shell-session">
$ alias assh="ssh-agent ssh -o AddKeysToAgent=confirm -o ForwardAgent=yes"
</syntaxhighlight>
Note the use of [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)]. When invoking that alias, the SSH client will be launched with a unique, ephemeral supporting key agent. The alias sets up a new agent, including setting the two environment variables, and then sets two client options while calling the client. This arrangement still checks with [http://man.openbsd.org/ssh_config.5 ssh_config(5)] for other options and settings. When the SSH session is finished the agent which launched it ends and goes away, thus cleaning up after itself automatically.
Another way is to rely on the client's configuration file for some of the settings. Such methods rely mostly on [http://man.openbsd.org/ssh_config.5 ssh_config(5)] but still require an independent method to launch an ephemeral agent because the OpenSSH client is already running by the time it reads the configuration file and is thus not affected by any changes to environment variables caused by the configuration file and it is through the environment variables that contain information about the agent. However, when the path to the UNIX-domain socket used to communicate with the authentication agent is decided in advance then the '''IdentityAgent''' option can point to it once the one-off agent<ref name="wikimedia_ssh_agents">{{cite web |url=https://wikitech.wikimedia.org/wiki/Managing_multiple_SSH_agents#Linux_solutions |title=Managing multiple SSH agents |publisher=Wikimedia|accessdate=2020-04-07}}</ref> is actually launched. The following uses a specific agent's pre-defined socket whenever connecting to either of two particular domains:
<syntaxhighlight lang="apache" line="1">
Host *.wikimedia.org *.wmflabs.org
User fred
IdentitiesOnly yes
IdentityFile %d/.ssh/id_cloud_01
IdentityAgent /run/user/%i/ssh-cloud-01.socket
ForwardAgent yes
AddKeysToAgent yes
</syntaxhighlight>
The '''%d''' stands for the path to the home directory and the '''%i''' stands for the user id (UID) for the current account. In some cases the '''%i''' token might also come in handy when setting the '''IdentityAgent''' option inside the configuration file. Again, be careful when forwarding agents with which keys are in the forwarded agent. See the section "TOKENS" in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] for more such abbreviations.
With those configuration settings, the authentication agent must already be up and running and point to the designated socket prior to starting the SSH client for that configuration to work. Additionally, it should place the socket in a directory which is inaccessible to any other accounts. [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)] must use the '''-a''' option to name the socket:
<syntaxhighlight lang="shell-session">
$ ssh-agent -a /run/user/${UID}/ssh-cloud-01.socket
</syntaxhighlight>
That agent configuration can be launched manually or via a script or service manager. However, in the interests of privacy and security in general, agent forwarding is to be avoided. The configuration directive '''ProxyJump''' is the best alternative and, on older systems, host traversal using '''ProxyCommand''' with [http://man.openbsd.org/nc.1 netcat] are preferable. Again, see the section on [[OpenSSH/Cookbook/Proxies and Jump Hosts|Proxies and Jump Hosts]] for how those methods are used.
=====New Style SSH Agent Destination Constraints=====
From 8.9 onward, [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)] will allow the agent to limit which hosts they will use for authentication as specified by [http://man.openbsd.org/ssh-add.1 ssh-add(1)] using the '''-h''' option. These constraints have been added through two agent protocol extensions and a modification to the public key authentication protocol. This feature may evolve, but for now the result is such that keys for account authentication can be loaded into the agent in four ways:
* no limits on forwarding (not recommended)
* local use only, these will not get forwarded
* forwarding, but only to specific remote hosts
* forwarding to specific remote hosts via specified routes
The intent is that the restrictions fail safely so that they do not allow authentication when one or more hosts in the route lack the needed protocol features. The destinations and routes cannot be modified once the keys are loaded, but multiple routes to the same destination can be loaded and the routes can be any number of hops. If the routes need changing, then the key must be reloaded into the agent with the new route or routes.
The general default for the client is to keep keys in the agent for local use only. However, that can be enforced explicitly by adding the '''-a''' option when starting the client or else setting the '''ForwardAgent''' directive in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] to 'no' in the relevant configuration block.
In order to load keys for unlimited forwarding, which is not the best idea, just add them using [http://man.openbsd.org/ssh-add.1 ssh-add(1)] as normal. Then use the '''-A''' option with the client or set the '''ForwardAgent''' directive in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] to 'yes' in the relevant configuration block.
In order to limit keys for connection only to a specific remote host, or to load keys for connection to a specific remote host with forwarding via one or more intermediate hosts, use he '''-h''' option when loading keys into the agent. Here the one key may be used only to connect to the specific destination:
<syntaxhighlight lang="shell-session">
$ ssh-agent -h server.example.org server.key.ed25519
</syntaxhighlight>
If an intermediate system is passed through, the best way is to use '''ProxyJump''' which is the '''-J''' option for the SSH Client. If agent forwarding must be allowed then the tightest way is to constrain which systems may use the keys, again using the '''-h''' option.
<syntaxhighlight lang="shell-session">
$ ssh-agent -h middle.example.org -h "middle.example.org>server.example.org" server.key.ed25519
</syntaxhighlight>
Multiple steps can be included, even multiple routes. They just have to be enumerated explicitly, though patterns may still be used for the destination hosts as well as specific names. Each host in the chain must support these protocol extensions for the connection to complete.
Any keys designated for forwarding are unusable for authentication on any other hosts than those which have been explicitly identified for forwarding. These permitted hosts are identified by host key or host certificate from the '''known_hosts''' file or another file designated by the '''-H''' option when loading the key with [http://man.openbsd.org/ssh-add.1 ssh-add(1)]. If '''-H''' is not used at the time the keys are loaded into the agent, then the default known hosts file(s) will be used: '''~/.ssh/known_hosts''', '''/etc/ssh/ssh_known_hosts''', '''~/.ssh/known_hosts2''', and '''/etc/ssh/ssh_known_hosts2'''.
In the case of keys, the '''known_hosts''' list must be maintained conscientiously <ref name="ssh-agent-restrictions">{{ cite web | author=Damien Miller|url=https://www.openssh.org/agent-restrict.html | title=SSH agent restriction | publisher=OpenSSH | date=2021-12-16|accessdate=2022-03-06}}</ref>, perhaps with the help of the '''UpdateHostkeys''' and '''CanonicalizeHostname''' client configuration directives. Use of certificates requires the agent to only need to be aware of the Certificate Authority (CA).
Again, see [[OpenSSH/Cookbook/Proxies_and_Jump_Hosts#Jump_Hosts_--_Passing_Through_a_Gateway_or_Two | Passing Through a Gateway or Two]] in the section on jump hosts about a way to pass through one or more intermediate machines without needing to forward an SSH agent.
====Checking the Agent for Specific Keys====
The [http://man.openbsd.org/ssh_add ssh_add(1)] utility's '''-T''' option can test whether a specific private key is available in the agent or not by looking up the matching public key. That can be useful in a shell script.
<syntaxhighlight lang="shell">
#!/bin/sh
key=/home/fred/.ssh/some.key.ed25519.pub
if ssh-add -T ${key}; then
echo "Key ${key} Found"
else
echo "Key ${key} missing"
fi
</syntaxhighlight>
Or it could be done with an alternate syntax just as well either in a script or in an interactive shell sessions,
<syntaxhighlight lang="shell-session">
$ key=/home/fred/.ssh/some.key.ed25519.pub
$ ssh-add -T ${key} && echo "Key found" || echo "Key missing"
</syntaxhighlight>
However, if the desired result would be to add key to the agent then the '''AddKeysToAgent''' client configuration option can ensure that a specific key is added to the SSH agent upon first use during any given login session. That can be done using '''-o AddKeysToAgent=yes''' as a run-time argument, or by modifying [http://man.openbsd.org/ssh_config ssh_config(5)] as appropriate:
<syntaxhighlight lang="apache" line="1">
Host www
HostName www.example.com
IdentityFile %d/.ssh/www.ed25519
IdentitiesOnly yes
AddKeysToAgent yes
</syntaxhighlight>
With those options in the configuration file, the first time <code>ssh www</code> is run the specified key will get added to the agent and remain available.
===Key-based Authentication Using A Hardware Security Token===
While stand-alone keys have been around for a long time, it has been possible since version 8.2 to use keys backed by hardware security tokens, such as OnlyKey, Yubikey, or many others, though the FIDO2 protocol. The Universal 2nd Factor (U2F) authentication is supported directly in OpenSSH through FIDO2 and does not need third party software. At the moment there are two types of hardware backed keys, ECDSA-SK and Ed25519-SK, but only the latest hardware tokens support the latter. If the key Ed25519-SK format is not supported by the token's firmware, then the following error message will be presented when attempts to use that key type are made:
<syntaxhighlight lang="text">
Key enrollment failed: invalid format
</syntaxhighlight>
If supported, either key type can be created with [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]. The steps are almost identical to creating normal keys but the token must be available to the system (plugged in) first. Then if called for, the token's PIN must be entered and the token touched or otherwise activated. After that, the key creation proceeds as normal. Mind the key type as specified by the '''-t''' option.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -t ed25519-sk -f /home/fred/.ssh/server.ed25519-sk -C "web server for fred"
Generating public/private ed25519-sk key pair.
You may need to touch your authenticator to authorize key generation.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/fred/.ssh/server.ed25519-sk
Your public key has been saved in /home/fred/.ssh/server.ed25519-sk.pub
The key fingerprint is:
SHA256:41wVVDnKJ9gKr2Sj4CFuYMhcNvYebZ6zq0PWyP4rRDo web server
The key's randomart image is:
+[ED25519-SK 256]-+
| .o... |
| .o |
| +.. . |
| = . . ..= . |
|+ + * + So.. o |
|o+.EoO *+oo |
|.o oBo+++o |
| o .=.+. |
| . .=== |
+----[SHA256]-----+
</syntaxhighlight>
Once created, the public and private key files get handled like with any other type of key. But when authenticating, the hardware token must be present and activated when called for.
<syntaxhighlight lang="shell-session">
$ ssh -i /home/fred/.ssh/server.ed25519-sk server.example.org
Enter passphrase for key '/home/fred/.ssh/server.ed25519-sk':
Confirm user presence for key ED25519-SK SHA256:41wVVDnKJ9gKr2Sj4CFuYMhcNvYebZ6zq0PWyP4rRDo
</syntaxhighlight>
The resulting private key file is not actually the key itself but instead a "key handle" which is used by the hardware security token to derive the real private key on demand at the time it is actually used<ref name="OpenBSD_tech_U2F_FIDO">{{cite web |url=https://marc.info/?l=openbsd-tech&m=157376801917387&w=2 |title=OpenSSH U2F/FIDO support in base
|publisher=OpenBSD-Tech Mailing List | date=2019-11-14
|accessdate=2021-03-24}}</ref>. As a result, the hardware-backed private key file is useless without the accompanying hardware token. This also means that these key files are not portable across hardware tokens, say when having multiple tokens in reserve or as backup, even when used by the same account. So when multiple hardware tokens are in use, different key pairs must be generated for each token.
====Hardware Security Token Resident Private Key====
It is possible to store the private key within the token itself, but for the moment it cannot be used directly from inside the token and must first be saved as a file. Also, the key can only be loaded into the FIDO authenticator at the time of creation using the '''-O resident''' option with [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]. Otherwise, the process is the same as above.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -O resident -t ed25519-sk -f /home/fred/.ssh/server.ed25519-sk -C "web server for fred"
. . .
</syntaxhighlight>
When needed, the resident key can be extracted from the FIDO2 hardware token and saved into a file using the '''-K''' option. At this stage a passphrase can be added to the file, but no passphrase is kept within the token itself, only an optional PIN protects the key there.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -K
Enter PIN for authenticator:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Saved ED25519-SK key to id_ed25519_sk_rk
$ mv -i id_ed25519_sk_rk /home/fred/.ssh/server.ed25519-sk
</syntaxhighlight>
Since the output file name is fixed, any pre-existing file with that name can get overwritten but there will be a warning first. However, it is not recommended to keep the key on the hardware token because it provides more protection when kept separately.
==Single-purpose Keys==
Tailored single-purpose keys can eliminate use of remote root logins for many administrative activities. A finely tailored '''sudoers''' is needed along with an unprivileged account. When done right, it gives just enough access to get the job done, following the security principle of Least Privilege.
Single-purpose keys are accompanied by use of either the '''ForceCommand''' directive in [http://man.openbsd.org/ssh_config.5 sshd_config(5)] or the '''command="..."''' directive inside the '''authorized_keys''' file. The method is to generate a new key pair, transfer the public key to '''authorized-keys''' on the remote system, and then prepend the appropriate command or script there to the line with the key.
<syntaxhighlight lang="shell-session">
$ grep '^command' ~/.ssh/authorized_keys
command="/usr/local/bin/somescript.sh" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEcgdzDvSebOEjuegEx4W1I/aA7MM3owHfMr9yg2WH8H
</syntaxhighlight>
The '''command="..."''' directive inserted there overrides everything else and ensures that when logging in with just that key only the script '''/usr/local/bin/somescript.sh''' is run. If it is necessary to pass parameters to the script, have a look at the contents of the '''SSH_ORIGINAL_COMMAND''' environment variable and use it in a case statement. Do not ever trust the contents of that variable nor use the contents directly, always indirectly.
Single-purpose keys are useful for allowing only a tunnel and nothing more. The following key will only echo some text and then exit, unless used non-interactively with the '''-N''' option.
<syntaxhighlight lang="shell-session">
$ grep '^command' ~/.ssh/authorized_keys
command="/bin/echo do-not-send-commands" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBzTIWCaILN3tHx5WW+PMVDc7DfPM9xYNY61JgFmBGrA
</syntaxhighlight>
No matter what the user tries while logging in with that key, the session will only echo the given text and then exits. Using the '''-N''' option disables running the remote program, allowing the connection to stay open, allowing a tunnel.
<syntaxhighlight lang="shell-session">
$ ssh -L 3306:localhost:3306 \
-i ~/.ssh/tunnel_ed25519 \
-N \
-l fred \
server.example.com
</syntaxhighlight>
That creates a tunnel and stays connected despite a key configuration which would close an interactive session. See also the '''-n''' or '''-f''' option for [http://man.openbsd.org/ssh.1 ssh(1)].
===Single-purpose Keys to Avoid Remote Root Access===
The easy way is to write a short shell script, place it '''/usr/local/bin/''', and then configure '''sudoers''' to allow the otherwise unprivileged account to run just that script and only that script.
<syntaxhighlight lang="apache" line="1">
%wheel ALL=(root:root) NOPASSWD: /usr/sbin/service httpd stop
%wheel ALL=(root:root) NOPASSWD: /usr/sbin/service httpd start
</syntaxhighlight>
Then the key calls the script using '''command="..."''' inside '''authorized_keys'''. Here the one key starts the web server, the other stops the web server.
<syntaxhighlight lang="shell-session">
$ grep '^command' ~/.ssh/authorized_keys
command="/usr/bin/sudo /usr/sbin/service httpd stop" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEcgdzDvSebOEjuegEx4W1I/aA7MM3owHfMr9yg2WH8H
command="/usr/bin/sudo /usr/sbin/service httpd start" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMidyqZ6OCvbWqA8Zn+FjhpYE6NoWSxVjFnFUk6MrNZ4
</syntaxhighlight>
Complicated programs like [http://linux.die.net/man/1/rsync rsync(1)], [http://man.openbsd.org/tar.1 tar(1)], [http://linux.die.net/man/1/mysqldump mysqldump(1)], and so on require an advanced approach when building a single-purpose key. For them, the '''-v''' option can show exactly what is being passed to the server so that '''sudoers''' can be set up correctly. That way they can be restricted to only access designated parts of the file system. For example, here is what <code>ssh -v</code> shows from one particular usage of [http://linux.die.net/man/1/rsync rsync(1)], note the "Sending command" line:
<syntaxhighlight lang="shell-session">
$ rsync -e 'ssh -v' fred@server.example.org:/etc/ ./backup/etc/
. . .
debug1: Sending command: rsync --server --sender -e.LsfxC . /etc/
. . .
</syntaxhighlight>
That output can then be added to '''sudoers''' so that the key can do only that function.
<syntaxhighlight lang="shell-session">
%backup ALL=(root:root) NOPASSWD: /usr/bin/rsync --server --sender -e.LsfxC . /etc/
</syntaxhighlight>
Then to tie it all together, the account "backup" needs a key:
<syntaxhighlight lang="shell-session">
$ grep '^command' ~/.ssh/authorized_keys
command="/usr/bin/rsync --server --sender -e.LsfxC . /etc/" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMm0rs4eY8djqBb3dIEgbQ8lmdlxb9IAEuX/qFCTxFgb
</syntaxhighlight>
Many of these programs have a '''--dry-run''' or equivalent option. Remember to use it when figuring out the right settings.
===Read-only Access to Keys===
In some cases it is necessary to prevent accounts from being able to changing their own authentication keys. However, such situations may be a better case for using certificates. However, if done with keys it is accomplished by putting the key file in an external directory where the user has read-only access, both to the directory and to the key file. Then the '''AuthorizedKeysFile''' directive assigns where [http://man.openbsd.org/sshd.8 sshd(8)] looks for the keys and can point to a secured location for the keys instead of the default location.
A good alternate location could be a new directory '''/etc/ssh/authorized_keys''' which could store the selected accounts' key files there. The change can be made to apply to only a group of accounts by putting the settings under a '''Match''' directive. The default location for keys on most systems is usually '''~/.ssh/authorized_keys'''.
<syntaxhighlight lang="apache" line="1">
Match Group sftpusers
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
</syntaxhighlight>
Then the permissions there would allow the keys to be read but not written:
<syntaxhighlight lang="shell-session">
$ ls -dhln /etc/ssh/
drwxr-x--x 3 0 0 4.0K Mar 30 22:16 /etc/ssh/authorized_keys/
$ ls -dhln /etc/ssh/*.pub
-rw-r--r-- 1 0 0 173 Mar 23 13:34 /etc/ssh/fred
-rw-r--r-- 1 0 0 93 Mar 23 13:34 /etc/ssh/user1
-rw-r--r-- 1 0 0 565 Mar 23 13:34 /etc/ssh/user2
. . .
</syntaxhighlight>
The keys could even be within subdirectories, though the same restrictions apply regarding permissions and ownership.
For chrooted SFTP, the method is the same to keep the key files out of reach of the accounts:
<syntaxhighlight lang="apache" line="1">
Match Group sftpusers
ChrootDirectory /home
ForceCommand internal-sftp -d %u
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
</syntaxhighlight>
Of course a '''Match''' directive is not essential. The settings could be made to apply to all accounts by putting the directive in the main part of the server configuration file instead.
==Mark Public Keys as Revoked==
Keys can be revoked. Keys that have been revoked can be stored in '''/etc/ssh/revoked_keys''', a file specified in [http://man.openbsd.org/ssh_config.5 sshd_config(5)] using the directive '''RevokedKeys''', so that [http://man.openbsd.org/sshd.8 sshd(8)] will prevent attempts to log in with them. No warning or error on the client side will be given if a revoked key is tried. Authentication will simply progress to the next key or method.
The revoked keys file should contain a list of public keys, one per line, that have been revoked and can no longer be used to connect to the server. The key cannot contain any extras, such as [[OpenSSH/Client_Configuration_Files#Available_key_login_options | login options]] or it will be ignored. If one of the revoked keys is tried during a login attempt, the server will simply ignore it and move on to the next authentication method. An entry will be made in the logs of the attempt, including the key's fingerprint. See the section on [[OpenSSH/Logging_and_Troubleshooting | logging]] for a little more on that.
<syntaxhighlight lang="apache" line="1">
RevokedKeys /etc/ssh/revoked_keys
</syntaxhighlight>
The '''RevokedKeys''' configuration directive is not set in [http://man.openbsd.org/ssh_config.5 sshd_config(5)] by default. It must be set explicitly if it is to be used. This is another situation that might be better fulfilled through using certificate since a validity interval can be set in any combination of seconds, minutes, hours, days, or weeks can be set for certificates while keys are valid indefinitely.
===Key Revocation Lists===
A Key Revocation List (KRL) is a compact, binary form of representing revoked keys and certificates. In order to use a KRL, the server's configuration file must point to a valid list using the '''RevokedKeys''' directive. KRLs themselves are generated with [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] and can be created from scratch or edited in place. Here a new one is made, populated with a single public key:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -kf /etc/ssh/revoked_keys -z 1 ~/.ssh/old_key_rsa.pub
</syntaxhighlight>
Here an existing KRL is updated by adding the '''-u''' option:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -ukf /etc/ssh/revoked_keys -z 2 ~/.ssh/old_key_dsa.pub
</syntaxhighlight>
Once a KRL is in place, it is possible to test if a specific key or certificate is in the revocation list.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -Qf /etc/ssh/revoked_keys ~/.ssh/old_key_rsa.pub
</syntaxhighlight>
Only public keys and certificates will be loaded into the KRL. Corrupt or broken keys will not be loaded and will produce an error message if tried. Like with the regular '''RevokedKeys''' list, the public key destined for the KRL cannot contain any extras like login options or it will produce an error when an attempt is made to load it into the KRL or search the KRL for it.
==Verify a Host Key by Fingerprint==
The above examples have been about using keys to authenticate the client to the server. A different context in which keys are used is when the server identifies itself to the client, which happens automatically at the beginning of each non-multiplexed session. In order for that identification to happen the client acquires a public key from the server, usually on or prior to first contact, which it can subsequently use to ensure that it is connecting to the same server again and not an impostor. The default locations for storing these acquired host keys on the client are in '''/etc/ssh/ssh_known_hosts''', if managed by the system administrator, or in '''~/.ssh/known_hosts''' if managed by the client's own account. The format of the contents is a line with a host address and its matching public key. The file is described in detail in the [http://man.openbsd.org/sshd.8 sshd(8)] manual page in the section "SSH_KNOWN_HOSTS FILE FORMAT".
When connecting for the first time to a remote host, the server's host key should be verified in order to ensure that the client is connecting to the right machine and not an impostor or anything else. Usually this verification is done by comparing the fingerprint of the server's host key rather than trying to compare the whole key itself. By default the client will show the fingerprint if the key is not already found in the '''known_hosts''' register.
<syntaxhighlight lang="shell-session">
$ ssh -l fred server.example.org
The authenticity of host 'server.example.org (192.0.32.10)' can't be established.
ECDSA key fingerprint is SHA256:LPFiMYrrCYQVsVUPzjOHv+ZjyxCHlVYJMBVFerVCP7k.
Are you sure you want to continue connecting (yes/no)?
</syntaxhighlight>
That can be compared to a fingerprint received out of band, say by post, e-mail, SMS, courier, and so on. Specifically, the example represents the key's fingerprint as a base64 encoded SHA256 checksum. That is the default style. The fingerprint can also be displayed as an MD5 hash in hexadecimal instead by passing the client's '''FingerprintHash''' configuration directive as a runtime argument or setting it in [http://man.openbsd.org/ssh_config.5 ssh_config(5)].
<syntaxhighlight lang="shell-session">
$ ssh -o FingerprintHash=md5 host.example.org
The authenticity of host 'host.example.org (192.0.32.203)' can't be established.
RSA key fingerprint is MD5:10:4a:ec:d2:f1:38:f7:ea:0a:a0:0f:17:57:ea:a6:16.
Are you sure you want to continue connecting (yes/no)?
</syntaxhighlight>
But the default in new versions is SHA256 in base64 has a lower chance of collision.
In OpenSSH 6.7 and earlier, the client showed fingerprints as a hexadecimal MD5 checksum instead a of the base64-encoded SHA256 checksum currently used:
<syntaxhighlight lang="shell-session">
$ ssh -l fred server.example.org
The authenticity of host 'server.example.org (192.0.32.10)' can't be established.
RSA key fingerprint is 4a:11:ef:d3:f2:48:f8:ea:1a:a2:0d:17:57:ea:a6:16.
Are you sure you want to continue connecting (yes/no)?
</syntaxhighlight>
Another way of comparing keys is to use the ASCII art visual host key. See further below about that.
===Downloading keys===
Even though a host’s key is usually displayed for review the first time the SSH client tries to connect, it can also be fetched on demand at any time using [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)]:
<syntaxhighlight lang="shell-session">
$ ssh-keyscan host.example.org
# host.example.org SSH-2.0-OpenSSH_8.2
host.example.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLC2PpBnFrbXh2YoK030Y5JdglqCWfozNiSMjsbWQt1QS09TcINqWK1aLOsNLByBE2WBymtLJEppiUVOFFPze+I=
# host.example.org SSH-2.0-OpenSSH_8.2
host.example.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9iViojCZkcpdLju7/3+OaxKs/11TAU4SuvIPTvVYvQO32o4KOdw54fQmd8f4qUWU59EUks9VQNdqf1uT1LXZN+3zXU51mCwzMzIsJuEH0nXECtUrlpEOMlhqYh5UVkOvm0pqx1jbBV0QaTyDBOhvZsNmzp2o8ZKRSLCt9kMsEgzJmexM0Ho7v3/zHeHSD7elP7TKOJOATwqi4f6R5nNWaR6v/oNdGDtFYJnQfKUn2pdD30VtOKgUl2Wz9xDNMKrIkiM8Vsg8ly35WEuFQ1xLKjVlWSS6Frl5wLqmU1oIgowwWv+3kJS2/CRlopECy726oBgKzNoYfDOBAAbahSK8R
# host.example.org SSH-2.0-OpenSSH_8.2
host.example.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDDOmBOknpyJ61Qnaeq2s+pHOH6rdMn09iREz2A/yO2m
</syntaxhighlight>
Once a key is acquired, its fingerprint can be shown using [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]. This can be done directly with a pipe.
<syntaxhighlight lang="shell-session">
$ ssh-keyscan host.example.org | ssh-keygen -lf -
# host.example.org SSH-2.0-OpenSSH_8.2
# host.example.org SSH-2.0-OpenSSH_8.2
# host.example.org SSH-2.0-OpenSSH_8.2
256 SHA256:sxh5i6KjXZd8c34mVTBfWk6/q5cC6BzR6Qxep5nBMVo host.example.org (ECDSA)
3072 SHA256:hlPei3IXhkZmo+GBLamiiIaWbeGZMqeTXg15R42yCC0 host.example.org (RSA)
256 SHA256:ZmS+IoHh31CmQZ4NJjv3z58Pfa0zMaOgxu8yAcpuwuw host.example.org (ED25519)
</syntaxhighlight>
If there is more than one public key type is available from the server on the port polled, then [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] will fetch each of them. If there is more than one key fed via '''stdin''' or a file, then [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] will process them in order. Prior to OpenSSH 7.2 manual fingerprinting was a two step process, the key was read to a file and then processed for its fingerprint.
<syntaxhighlight lang="shell-session">
$ ssh-keyscan -t ed25519 host.example.org > key.pub
# host.example.org SSH-2.0-OpenSSH_6.8
$ ssh-keygen -lf key.pub
256 SHA256:ZmS+IoHh31CmQZ4NJjv3z58Pfa0zMaOgxu8yAcpuwuw host.example.org (ED25519)
</syntaxhighlight>
Note that some output from [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] is sent to '''stderr''' instead of '''stdout'''.
A hash, or fingerprint, can be generated manually with [http://linux.die.net/man/1/awk awk(1)], [http://linux.die.net/man/1/sed sed(1)] and [http://linux.die.net/man/1/xxd xxd(1)], on systems where they are found.
<syntaxhighlight lang="shell-session">
$ awk '{print $2}' key.pub | base64 -d | md5sum -b | sed 's/../&:/g; s/: .*$//'
$ awk '{print $2}' key.pub | base64 -d | sha256sum -b | sed 's/ .*$//' | xxd -r -p | base64
</syntaxhighlight>
It is possible to find all hosts from a file which have new or different keys from those in '''known_hosts''', if the host names are in clear text and not stored as hashes.
<syntaxhighlight lang="shell-session">
$ ssh-keyscan -t rsa,ecdsa -f ssh_hosts | \
sort -u - ~/.ssh/known_hosts | \
diff ~/.ssh/known_hosts -
</syntaxhighlight>
====Using ssh-keyscan(1) with ssh_config(5)====
The utility [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] does not parse [http://man.openbsd.org/ssh_config.5 ssh_config(5)]. That is in part to keep the code base simple. There are a lot of configuration options which would be complicated to implement, including but not limited to '''ProxyJump''', '''ProxyCommand''', '''Match''', '''BindInterface''', and '''CanonicalizeHostname'''<ref name="keyscan">{{cite mailing list |url=https://lists.mindrot.org/pipermail/openssh-unix-dev/2023-March/040605.html | title=Why does ssh-keyscan not use .ssh/config? |publisher=mindrot.org | access-date=2023-03-01 | date=2023-03-01 | mailing-list=OpenSSH UNIX-dev | first=Damien | last=Miller }}</ref> . Resolving host names via the client configuration file can be done by wrapping the utility in a short shell function:
<syntaxhighlight lang="shell">
my-ssh-keyscan() {
for host in "$@" ; do
ssh-keyscan $(ssh -G "$host" | awk '/^hostname/ {print $2}')
done
}
</syntaxhighlight>
That shell function uses the '''-G''' option of [http://man.openbsd.org/ssh.1 ssh(1)] to resolve each host name using [http://man.openbsd.org/ssh_config.5 ssh_config(5)] and then check the resulting host name for SSH keys.
===ASCII Art Visual Host Key===
An ASCII art representation of the key can be displayed along with the SHA256 base64 fingerprint:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -lvf key
256 SHA256:BClQBFAGuz55+tgHM1aazI8FUo8eJiwmMcqg2U3UgWU www.example.org (ED25519)
+--[ED25519 256]--+
|o+=*++Eo |
|+o .+.o. |
|B=.oo. . |
|*B.=.o . |
|= B * S |
|. .@ . |
| +..B |
| *. o |
| o.o. |
+----[SHA256]-----+
</syntaxhighlight>
In OpenSSH 6.7 and earlier the fingerprint is in MD5 hexadecimal form.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -lvf key
2048 37:af:05:99:e7:fb:86:6c:98:ee:14:a6:30:06:bc:f0 www.example.net (RSA)
+--[ RSA 2048]----+
| o |
| o . |
| o o |
| o + |
| . . S |
| E .. |
| .o.* .. |
| .*=.+o |
| ..==+. |
+-----------------+
</syntaxhighlight>
==More on Verifying SSH Keys==
Keys on the client or the server can be verified against known good keys by comparing the base64-encoded SHA256 fingerprints.
===Verifying Stray Client Keys===
Sometimes is is necessary to compare two uncertain key files to check if they are part of the same key pair. However, public keys are more or less disposable. So the easy way in such situations on the client machine is to just rename or erase the old, problematic, public key and replace it with a new one generated from the existing private key.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -y -f ~/.ssh/my_key_rsa
</syntaxhighlight>
But if the two parts must really be compared, it is done in two steps using [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]. First, a new public key is re-generated from the known private key and used to make a fingerprint to '''stdout'''. Next, the fingerprint of the unknown public key is generated for comparison. In this example, the private key '''my_key_a_rsa''' and the public key '''my_key_b_rsa.pub''' are compared:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -y -f my_key_a_rsa | ssh-keygen -l -f -
$ ssh-keygen -l -f my_key_b_rsa.pub
</syntaxhighlight>
The result is a base64-encoded SHA256 checksum for each key with the one fingerprint displayed right below the other for easy visual comparison. Older versions don't support reading from '''stdin''' so an intermediate file will be needed then. Even older versions will only show an MD5 checksum for each key. Either way, automation with a shell script is simple enough to accomplish but outside the scope of this book.
===Verifying Server Keys===
Reliable verification of a server's host key must be done when first connecting. It can be necessary to contact the system administrator who can provide it out of band so as to know the fingerprint in advance and have it ready to verify the first connection.
Here is an example of the server's RSA key being read and its fingerprint shown as SHA256 base64:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
3072 SHA256:hlPei3IXhkZmo+GBLamiiIaWbeGZMqeTXg15R42yCC0 root@server.example.net (RSA)
</syntaxhighlight>
And here the corresponding ECDSA key is read, but shown as an MD5 hexadecimal hash:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -E md5 -lf /etc/ssh/ssh_host_ecdsa_key.pub
256 MD5:ed:d2:34:b4:93:fd:0e:eb:08:ee:b3:c4:b3:4f:28:e4 root@server.example.net (ECDSA)
</syntaxhighlight>
Prior to 6.8, the fingerprint was expressed as an MD5 hexadecimal hash:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
2048 MD5:e4:a0:f4:19:46:d7:a4:cc:be:ea:9b:65:a7:62:db:2c root@server.example.net (RSA)
</syntaxhighlight>
It is also possible to use [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] to get keys from an active SSH server. However, the fingerprints still needs to be verified out of band.
====Warning: Remote Host Identification Has Changed!====
If a server's key does not match what the client finds has been recorded in either the system's or the local account's '''authorized_keys''' files, then the client will issue a warning along with the fingerprint of the suspicious key.
<pre>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:GkoIDP/d0I6KA9IQyOB9iqL+Rzpxx9LhlSJPCEfjVQ4.
Please contact your system administrator.
Add correct host key in /home/fred/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/fred/.ssh/known_hosts:19
remove with:
ssh-keygen -f "/home/fred/.ssh/known_hosts" -R "server.example.com"
RSA host key for server.example.com has changed and you have requested strict checking.
Host key verification failed.
</pre>
Three reasons for the warning are common.
One reason is that the server's keys were replaced, often because the server's operating system was reinstalled without backing up the old keys. Another reason can be when the system administrator has phased out deprecated or compromised keys. However that can be planned better and if there is time to plan the migration, new keys can just be added to the server and have the clients use the '''UpdateHostKeys''' option so that the new keys are accepted if the old keys match. A third situation is when the connection is made to the wrong machine, such as when the remote system changes IP addresses because of dynamic address allocation.
In all three cases where the key has changed there is only one thing to do: contact the system administrator and verify the key. Ask if the OpenSSH-server was recently reinstalled, or was the machine restored from an old backup? Keep in mind that the system administrator may be you yourself in some cases.
The case which is rather rare but serious enough that it should be ruled out for sure is that the wrong machine is part of a man-in-the-middle attack.
In all four cases, an authentic key fingerprint can be acquired by any method where it is possible to verify the integrity and origin of the message, for example via PGP-signed e-mail. If physical access is possible, then use the console to get the right fingerprint. Once the authentic key fingerprint is available, return to the client machine where you got the error and remove the old key from '''~/.ssh/known_hosts'''
<syntaxhighlight lang="shell-session">
$ ssh-keygen -R server.example.org
</syntaxhighlight>
Then try logging in, but compare the key fingerprints first and proceed if and '''only''' if the key fingerprint matches what you received out of band. If the key fingerprint matches, then go through with the login process and the key will be automatically added. If the key fingerprint does not match, stop immediately and figure out what you are connecting to. It would be a good idea to get on the phone, a real phone not a computer phone, to the remote machine's system administrator or the network administrator.
===Multiple Keys for a Host, Multiple Hosts for a Key in known_hosts===
Multiple host names or IP addresses can use the same key in the '''known_hosts''' file by using pattern matching or simply by listing multiple systems for the same key. That can be done in either the global list of keys in '''/etc/ssh/ssh_known_hosts''' and the local, account-specific lists of keys in each account's '''~/.ssh/known_hosts''' file. Labs, computational clusters, and similar pools of machines can make use of keys in that way. Here is a key shared by three specific hosts, identified by name:
<pre>
server1,server2,server3 ssh-rsa AAAAB097y0yiblo97gvl...jhvlhjgluibp7y807t08mmniKjug...==
</pre>
Or a range can be specified by using globbing to a limited extent in either '''/etc/ssh/ssh_known_hosts''' or '''~/.ssh/known_hosts'''.
<pre>
172.19.40.* ssh-rsa AAAAB097y0yiblo97gvl...jhvlhjgluibp7y807t08mmniKjug...==
</pre>
Conversely, for multiple keys for the same address, it is necessary to make multiple entries in either '''/etc/ssh/ssh_known_hosts''' or '''~/.ssh/known_hosts''' for each key.
<pre>
server1 ssh-rsa AAAAB097y0yiblo97gvljh...vlhjgluibp7y807t08mmniKjug...==
server1 ssh-rsa AAAAB0liuouibl kuhlhlu...qerf1dcw16twc61c6cw1ryer4t...==
server1 ssh-rsa AAAAB568ijh68uhg63wedx...aq14rdfcvbhu865rfgbvcfrt65...==
</pre>
Thus in order to get a pool of servers to share a pool of keys, each server-key combination must be added manually to the '''known_hosts''' file:
<pre>
server1 ssh-rsa AAAAB097y0yiblo97gvljh...07t8mmniKjug...==
server1 ssh-rsa AAAAB0liuouibl kuhlhlu...qerfw1ryer4t...==
server1 ssh-rsa AAAAB568ijh68uhg63wedx...aq14rvcfrt65...==
server2 ssh-rsa AAAAB097y0yiblo97gvljh...07t8mmniKjug...==
server2 ssh-rsa AAAAB0liuouibl kuhlhlu...qerfw1ryer4t...==
server2 ssh-rsa AAAAB568ijh68uhg63wedx...aq14rvcfrt65...==
</pre>
Though upgrading to certificates might be a more appropriate approach that manually updating lots of keys.
===Another way of Dealing with Dynamic (roaming) IP Addresses===
It is possible to manually point to the right key using '''HostKeyAlias''' either as part of [http://man.openbsd.org/ssh_config.5 ssh_config(5)] or as a runtime parameter. Here the key for machine ''Foobar'' is used to connect to host 192.168.11.15
<syntaxhighlight lang="shell-session">
$ ssh -o StrictHostKeyChecking=accept-new \
-o HostKeyAlias=foobar \
192.168.11.15
</syntaxhighlight>
This is useful when DHCP is not configured to try to keep the same addresses for the same machines over time or when using certain stdio forwarding methods to pass through intermediate hosts.
===Host Key Update and Rotation in known_hosts===
A protocol extension to rotate weak public keys out of '''known_hosts''' has been in OpenSSH from version 6.8<ref name="djm_rotation">
{{cite web
| title=Key rotation in OpenSSH 6.8+
| author=Damien Miller
| url=http://blog.djm.net.au/2015/02/key-rotation-in-openssh-68.html
| date=2015-02-01
| publisher=DJM's Personal Weblog
| accessdate=2016-03-05
}}
</ref> and later. With it the server is able to inform the client of all its host keys and update '''known_hosts''' with new ones when at least one trusted key already known. This method still requires the private keys be available to the server <ref name="djm_rotation_redux">
{{cite web
| title=Hostkey rotation, redux
| author=Damien Miller
| url=http://blog.djm.net.au/2015/02/hostkey-rotation-redux.html
| date=2015-02-17
| publisher=DJM's Personal Weblog
| accessdate=2016-03-05
}}
</ref> so that proofs can be completed. In [http://man.openbsd.org/ssh_config.5 ssh_config(5)], the directive '''UpdateHostKeys''' specifies whether the client should accept updates of additional host keys from the server after authentication is completed and add them to '''known_hosts'''. A server can offer multiple keys of the same type for a period before removing the deprecated key from those offered, thus allowing an automated option for rotating keys as well as for upgrading from weaker algorithms to stronger ones. See also [https://datatracker.ietf.org/doc/html/rfc4819 RFC 4819: Secure Shell Public Key Subsystem] about key management standards.
==Converting Between SSH Key Formats==
OpenSSH has its own format for keys which it uses by default when new keys are made. However, other SSH clients and servers may use other formats such as [https://www.rfc-editor.org/rfc/rfc4716 RFC4716], [https://www.rfc-editor.org/rfc/rfc5958 PKCS8], or [https://www.rfc-editor.org/rfc/rfc1421 PEM]. Any of these can be converted to the default OpenSSH format by [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]. The default to format to try to convert from is RFC4716. The utility [https://linux.die.net/man/1/puttygen puttygen(1)] makes keys in that format for [https://linux.die.net/man/1/putty putty(1)] and they need conversion when used with OpenSSH's server.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -i -f /var/tmp/key_public.ppk
</syntaxhighlight>
However, you can use the '''-m''' option to specify either that format explicitly or else choose another one to convert from.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -i -m RFC4716 -f /var/tmp/key_public.ppk
$ ssh-keygen -i -m PKCS8 -f /var/tmp/key_public.ppk
</syntaxhighlight>
Both examples above are for importing public keys into OpenSSH's own format.
By default OpenSSH will write newly-generated keys in its own format, so the '''-m''' option is obligatory to produce public keys in another format.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -e -m PKCS8 -f ~/.ssh/key.pub
</syntaxhighlight>
It is not yet possible to export private keys from the OpenSSH format to one of the other formats using the '''-e''' option. Even if a private key is specified as input, a public key is produced:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -e -m RFC4716 -f ~/.ssh/key
</syntaxhighlight>
Not all key types are supported by all key formats.
<noinclude>
== References ==
{{reflist}}
{{OpenSSH/TOC|mini}}
</noinclude>
{{BookCat}}
{{status|100%}}
g2g27h9o9rr9ky0ghjw6yavua324uxq
4674771
4674763
2026-10-06T18:26:18Z
Larsnooden
430753
ssh-keygen -e -m hexdump
4674771
wikitext
text/x-wiki
<noinclude>{{simple chapter navigation|previous=File Transfer with SFTP|next=Certificate-based Authentication}}</noinclude>
Authentication keys can improve efficiency, if done properly. As a bonus advantage, the passphrase and private key never leave the client<ref name="RFC4252§7">{{cite web |url=https://tools.ietf.org/html/rfc4252#section-7 |title=The Secure Shell (SSH) Authentication Protocol |publisher=IETF |year=2006| accessdate=2015-05-06}}</ref>. Key-based authentication is generally recommended for outward facing systems so that password authentication can be turned off.
==Key-based authentication==
OpenSSH can use public key cryptography for authentication. In public key cryptography, encryption and decryption are asymmetric. The keys are used in pairs, a public key to encrypt and a private key to decrypt. The [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] utility can make RSA, Ed25519, MLDSA44-Ed25519, ECDSA, Ed25519-SK, or ECDSA-SK keys for authenticating. Even though DSA keys can still be made, being exactly 1024 bits in size, they are no longer recommended and should be avoided. RSA keys are allowed to vary from 1024 bits on up. The default is now 3072. However, there is only limited benefit after 2048 bits and that makes elliptic curve algorithms preferable. ECDSA can be 256, 384 or 521 bits in size. Ed25519, Ed25519-SK, and ECDSA-SK keys each have a fixed length of 256 bits. Shorter keys are faster, but less secure. Longer keys are much slower to work with but provide better protection, up to a point.
Keys can be named to help remember what they are for. Because the key files can be named anything it is possible to have many keys each named for different services or tasks. The comment field at the end of the public key can also be useful in helping to keep the keys sorted, if you have many of them or use them infrequently.
The process of key-based authentication uses these keys to make a couple of exchanges using the keys to encrypt and decrypt some short message. At the start, a copy of the client's public key is stored on the server and the client's private key is on the client, both stay where they are. The private key never leaves the client. As the client first contacts the server, the server responds by using the client's public key to encrypt a random number and return that encrypted random number as a challenge to the client. The client responds to the challenge by using the matching private key to decrypt the message and extract the random number. The client then makes an MD5 hash of the session ID along with the random number from the challenge and returns that hash to the server. The server then makes its own hash of the session ID and the random number and compares that to the hash returned by the client. If there is a match, the login is allowed. If there is not a match, then the next of any public keys on the server registered as belonging to the same account is tried until either a match is found or all the keys have been tried or the maximum number of failures has been reached. <ref name="How Key Challenges Work">{{cite web | url=http://www.unixwiz.net/techtips/ssh-agent-forwarding.html#chal | title=An Illustrated Guide to SSH Agent Forwarding | author=Steve Friedl | date=2006-02-22 | accessdate=2013-04-27 | publisher=Unixwiz.net }}</ref>
When an agent is used on the client side to manage authentication, the process is similar. The difference is that [http://man.openbsd.org/ssh.1 ssh(1)] passes the challenge off to the agent which then calculates the response and passes it back to [http://man.openbsd.org/ssh.1 ssh(1)] which then passes the agent's response back to the server.
===Basics of Public Key Authentication===
A matching pair of SSH keys, one public and one private, is needed for public key authentication. The [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] utility is used to make such a key pair. Out of that pair the public key must be properly stored on the remote host before using key-based authentication. The default location for it is the designated '''authorized_keys''' file, usually one such file resides inside each remote user account. The private key stays stored safely on the client.
Once the keys have been prepared and the remote account configured, they can be used for login. Before starting, there must already be an account on the remote system. The details of doing that are outside of the scope of this book. However, once you have a remote account, there are four steps to set up key-based authentication for it:
'''1''') Prepare a directory on the client (say a laptop or a desktop) where the keys will stay, if there isn't one already. For example, if the '''.ssh''' directory is not on the client machine, create it and set the permissions correctly. It is important that it not be writable by any account except its owner:
<syntaxhighlight lang="shell-session">
$ mkdir ~/.ssh/
$ chmod 0700 ~/.ssh/
</syntaxhighlight>
'''2''') Create a key pair inside the designated directory. The example here creates an Ed25519 key pair in the directory '''~/.ssh'''. The option '''-t''' decides the key type and the option '''-f''' assigns the key file a name. It is good to give key files descriptive names, especially if larger numbers of keys are managed. Below, the public key will be named '''fred_example_org_ed25519.pub''' and the private key will be called '''fred_example_org_ed25519'''. Lastly, the '''-C''' option is used to embed a descriptive comment inside the private key itself. The comment is useful for figuring out later what the key is for when one has many keys or a lot of time has passed or both.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -t ed25519 -f ~/.ssh/fred_example_org_ed25519 \
-C "from fred's laptop to server.example.org"
</syntaxhighlight>
Be sure to enter a solid passphrase so that the private key gets encrypted using 128-bit AES. That way the private key can only be read or used when the passphrase is given.
Ed25519, Ed25519-SK, and ECDSA-SK keys have fixed lengths. For RSA and ECDSA keys, the '''-b''' option sets the number of bits used for those kinds of keys.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -o -b 4096 -t rsa -f ~/.ssh/fred_example_org_rsa \
-C "from fred's laptop to server.example.org"
</syntaxhighlight>
Since 6.5 a new private key format is available using a [http://man.openbsd.org/bcrypt.3 bcrypt(3)] key derivative function (KDF) to better protect keys at rest. This new format is always used for Ed25519 keys, and sometime in the future will be the default for all keys. But for right now it may be requested when generating or saving existing keys of other types via the '''-o''' option in [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)].
Details of the new format are found in the source code in the file '''PROTOCOL.key'''.
'''3''') Get the keys to the right places. Transfer only the public key to remote machine. The following assume the default locations for the authorized keys as specified in the server's configuration file by the '''AuthorizedKeysFile''' directive.
'''3a''') If the utility <code>ssh-copy-id</code> exists, and if password authentication is allowed, then it can be used to put the public key into place on the remote system. The ''.pub'' is optional here, the script will figure it out if omitted.
<syntaxhighlight lang="shell-session">
$ ssh-copy-id -i ~/.ssh/fred_example_org_ed25519 fred@server.example.org
</syntaxhighlight>
If that script was successful in transferring the public key, then go on to step 4 below and test the key. If not, then try transferring the public key manually as described in step 3b next.
'''3b''') Or the public key can be put in place manually on the remote machine. For that the remote '''.ssh''' directory is needed, and within that a special file to store the public keys, the default file name is '''authorized_keys'''. If either the '''authorized_keys''' file or '''.ssh''' directory do not exist on the remote machine, they need to be created.
<syntaxhighlight lang="shell-session">
$ mkdir -m 700 ~/.ssh/
$ touch ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
$ nano -w ~/.ssh/authorized_keys
</syntaxhighlight>
Then any editor which does not wrap long lines can be used to add the public key. However the '''authorized_keys''' file is edited to add the key, the key itself must be in the file whole and unbroken on a single line. For example, [http://linux.die.net/man/1/nano nano(1)] can be started with the '''-w''' option to prevent wrapping of long lines. (Another way to set line wrapping permanently in [http://linux.die.net/man/1/nano nano(1)] is by editing [http://linux.die.net/man/5/nanorc nanorc(5)].)
If the key pair is not already on the client, transfer both the public and private keys there. It is usually best to keep both the public and private keys together in the directory '''~/.ssh/''', though the public key is not always needed on the client after this step and could even be regenerated if it is ever needed again.
'''4''') Test the keys
While remaining logged in via the first terminal, use the client system to open another window and in it start another SSH session and try authenticating to the remote machine from the client using the private key.
<syntaxhighlight lang="shell-session">
$ ssh -i ~/.ssh/fred_example_org_ed25519 -l fred server.example.org
</syntaxhighlight>
The option '''-i''' tells [http://man.openbsd.org/ssh.1 ssh(1)] which private key to try.
Only after verifying that the key-based authentication works should you close the original window.
It is possible to make permanent shortcuts on the client using [http://man.openbsd.org/ssh_config.5 ssh_config(5)], explained further below, once key-based authentication is working. In particular, see the '''IdentityFile''', '''IdentitiesOnly''', and '''AddKeysToAgent''' configuration directives, to name three.
It is also a good idea to turn off password authentication, if and only if key-based authentication is setup for all the necessary remote accounts.
➥ '''Troubleshooting of Key-based Authentication''':
If the server refuses to accept the key and fails over to the next authentication method (e.g.: "Server refused our key"), then there are several possible mistakes to look for on the server side.
One of the most common errors is that the file and directory permissions are wrong. The authorized keys file must be owned by the user in question and not be group writable. Nor may the key file's directory be group or world writable.
<syntaxhighlight lang="shell-session">
$ chmod u=rwx,g=rx,o= ~/.ssh
$ chmod u=rw,g=,o= ~/.ssh/authorized_keys
</syntaxhighlight>
Another mistake that can happen is if the key inside the '''authorized_keys''' file on the remote host is broken by line breaks or has other whitespace in the middle. That can be fixed by joining up the lines and removing the spaces or by recopying the key more carefully.
And, though it should go without saying, the halves of the key pair need to match. The public key on the server needs to match the private key held on the client. If the public key is lost, then a new one can be generated with the '''-y''' option, but not the other way around. If the private key is lost, then the public key should be erased as it is no longer of any use. If many keys are in use for an account, it might be a good idea to add comments to them. On the client, it can be a good idea to know which server the key is for, either through the file name itself or through the comment field. A comment can be added using the '''-C''' option.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -t ed25519 -f ~/.ssh/fred_example_org_ed25519 -C "web server mirror"
</syntaxhighlight>
On the server, it can be important to annotate which client they key is from if there is more than one public key there in an account. There the comment can be added to the authorized keys file on the server in the last column if a comment does not already exist. Again, the format of the authorized keys file is given in the manual page for [http://man.openbsd.org/sshd.8 sshd(8)] in the section "AUTHORIZED_KEYS FILE FORMAT". If the keys are not labeled they can be hard to match, which might or might not be what you want.
====Associating Keys Permanently with a Server====
A key can be specified at run time, but to save retyping the same paths again and again, the '''Host''' directive in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] can apply specific settings to a target host. In this case, by changing '''~/.ssh/config''' it is possible to assign particular keys to be tried automatically whenever making a connection to that specific host. After adding the following lines to '''~/.ssh/config''', all that's needed is to type <code>ssh ''web1''</code> to connect with the key for that server.
<syntaxhighlight lang="apache" line="1">
Host web1
Hostname 198.51.100.32
IdentitiesOnly yes
IdentityFile /home/fred/.ssh/web_key_ed25519
</syntaxhighlight>
The '''~/.ssh/config''' below uses different keys for ''server'' versus ''server.example.org'', regardless whether they resolve to the same machine. This is possible because the host name argument given to [http://man.openbsd.org/ssh.1 ssh(1)] is not converted to a canonicalized host name before matching.
<syntaxhighlight lang="apache" line="1">
Host server
IdentitiesOnly yes
IdentityFile /home/fred/.ssh/key_a_rsa
Host server.example.org
IdentitiesOnly yes
IdentityFile /home/fred/.ssh/key_b_rsa
</syntaxhighlight>
In this example the shorter name is tried first, but of course less ambiguous shortcuts can be made instead. The configuration file gets parsed on a first-match basis. So the most specific rules go at the beginning and the most general rules go at the end.
====Encrypted Home Directories====
When using encrypted home directories the keys must be stored in an unencrypted directory. That means somewhere outside the actual home directory which means [http://man.openbsd.org/sshd.8 sshd(8)] needs to be configured appropriately to find the keys in that special location.
Here is one method for solving the access problem. Each user is given a subdirectory under '''/etc/ssh/keys/''' which they can then use for storing their '''authorized_keys''' file. This is set in the server's configuration file '''/etc/ssh/sshd_config'''
<syntaxhighlight lang="apache" line="1">
AuthorizedKeysFile /etc/ssh/keys/%u/authorized_keys
</syntaxhighlight>
Setting a special location for the keys opens up more possibilities as to how the keys can be managed and multiple key file locations can be specified if they are separated by whitespace. The user does not have to have write permissions for the '''authorized_keys''' file. Only read permission is needed to be able to log in. But if the user is allowed to add, remove, or change their keys, then they will need write access to the file to do that.
One symptom of having an encrypted home directory is that key-based authentication only works when you are already logged into the same account, but fails when trying to make the first connection and log in for the first time.
Sometimes it is also necessary to add a script or call a program from '''/etc/ssh/sshrc''' immediately after authentication to decrypt the home directory.
====Passwordless Login====
One solution for passwordless logins is to still have a passphrase and work with an authentication agent in conjunction with a single-purpose key. Most desktop environments launch an SSH agent automatically these days. It will be visible in the '''SSH_AUTH_SOCK''' environment variable if it is. On accounts with an agent, [http://man.openbsd.org/ssh-add.1 ssh-add(1)] can load private keys into an available agent.
<syntaxhighlight lang="shell-session">
$ ssh-add ~/.ssh/fred_example_org_ed25519
</syntaxhighlight>
Thereafter, the client will automatically check the agent for the key when appropriate. If there are many keys in the agent, it will become necessary to set '''IdentitiesOnly'''. See the above section on using '''~/.ssh/config''' for that. See [[OpenSSH/Cookbook/Public_Key_Authentication#Key-based_Authentication_Using_an_Agent|Key-based Authentication Using an Agent]] below.
Another, riskier, way of allowing passwordless logins is to follow the steps above, but simply do not enter a passphrase when asked for one while creating the key. Note that using keys that lack a passphrase is very risky, so the key files should be very well protected and kept track of, and ideally locked down with a '''command=''' option or '''ForceCommand''' directive on the server. That includes those keys which will only be used as single-purpose keys as described below.
Timely key rotation becomes especially important. In general, it is not a good idea to make a key without a passphrase.
====Requiring Both Keys and a Password====
While users should have strong passphrases for their keys, there is no way to enforce or verify that. Indeed, since neither the private key nor its the passphrase ever leave the client machine there is nothing that the server can do to have any influence over that. Instead, it is possible to require both a key and a password. Starting with OpenSSH 6.2, it is possible for the server to require multiple authentication methods for login using the '''AuthenticationMethods''' directive.
<syntaxhighlight lang="apache" line="1">
AuthenticationMethods publickey,password
</syntaxhighlight>
This example from [http://man.openbsd.org/sshd_config.5 sshd_config(5)] requires that users first authenticate using a key and it only queries for a password if the key succeeds. Thus with that configuration it is not possible to get to the system password prompt without first authenticating with a valid key. Changing the order of the arguments changes the order of the authentication methods.
====Requiring Two or More Keys====
Since OpenSSH 6.8, the server now remembers which public keys have been used for authentication and refuses to accept previously-used keys. This allows a set up requiring that users authenticate using two different public keys, maybe one in the file system and the other in a hardware token.
<syntaxhighlight lang="apache" line="1">
AuthenticationMethods publickey,publickey
</syntaxhighlight>
The '''AuthenticationMethods''' directive, whether for keys or passwords, can also be set on the server under a '''Match''' directive to apply only to certain groups or situations.
====Requiring Certain Key Types For Authentication====
Also since OpenSSH 6.8, the '''PubkeyAcceptedKeyTypes''' directive, later changed to '''PubkeyAcceptedAlgorithms''', can specify which key algorithms are accepted for authentication. Those not in the comma-separated pattern list are not allowed.
<syntaxhighlight lang="apache" line="1">
PubkeyAcceptedAlgorithms ssh-ed25519*,ssh-rsa*,ecdsa-sha2*,sk-ssh-ed25519*,sk-ecdsa-sha2*
</syntaxhighlight>
Either the actual key types or a pattern can be in the list. Spaces are not allowed in the pattern list. The exact list of key types supported for authentication can be found by the '''-Q''' option using the client. The following two lines are equivalent.
<syntaxhighlight lang="shell-session">
$ ssh -Q key-sig | sort
$ ssh -Q PubkeyAcceptedAlgorithms | sort
</syntaxhighlight>
For host-based authentication, it is the '''HostbasedAcceptedAlgorithms''' directive which determines the key types which are allowed for authentication.
===Key-based Authentication Using the AuthorizedKeysCommand Directive===
It is possible to use a program or script to look up public keys rather than keeping them in a static file or files. Any command called by the '''AuthorizedKeysCommand''' directive needs to either produce a syntactically correct public key while returning the exit code for a successful run or else return the exit code for failure. The string sent to '''stdout''' will then be processed as part of the authentication work flow.
Here is a shell script<ref name="janpietmens">{{cite web |url=https://jpmens.net/2025/03/25/authorizedkeyscommand-in-sshd/ |title=SSH keys from a command: sshd's AuthorizedKeysCommand directive |accessdate=2025-04-04 |date=2025-03-25 | author=Jan-Piet Mens }}</ref> at its simplest, without constraints, demonstrating a public key lookup:
<syntaxhighlight lang="shell">
#!/bin/sh
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKs/UouletvojgB1YeRZ4MY6iRblQ2ERDuNhQO4tOvdL"
exit 0
</syntaxhighlight>
For authentication to succeed, the script must return exit code 0 (success) after sending the syntactically correct matching public key to '''stdout'''. For the SSH daemon to even run the script in the first place, the script must have the correct file and directory permissions.
Both the '''AuthorizedKeysCommandUser''' directive and '''AuthorizedKeysCommand''' must be used together. The former designates which account the script or program use when run. If set to ''none'' or if it does not refer to a valid account then [http://man.openbsd.org/sshd sshd(8)] will just ignore the command. If '''AuthorizedKeysCommand''' is set, and '''AuthorizedKeysCommandUser''' is left empty or missing, then [http://man.openbsd.org/sshd sshd(8)] won't even run when invoked. The error will be:
<syntaxhighlight lang="text">
AuthorizedKeysCommand set without AuthorizedKeysCommandUser
</syntaxhighlight>
The '''AuthorizedKeysFile''' is always tried first when it is present in the server configuration. The '''AuthorizedKeysCommand''' directive will not even be tried when the authorized keys file can provide a relevant key first.
====A More Detailed Example Using the AuthorizedKeysCommand Directive====
By default the user name trying to log in is passed to the script when no tokens or arguments are provided. Whether or how that information is used is up to the script. The SSH daemon can also pass any combination of the tokens described in the TOKENS section of [http://man.openbsd.org/sshd_config sshd_config(5)] into the program or script being called. Furthermore, the program or script can even be a front end for a database, such as OpenLDAP, or any similar system, as long as '''stdout''' produces a public key.
Below is a more detailed example which uses a local script named '''keyfinder''' run with the account '''keys''' to look up the a public key for certain accounts. First in [http://man.openbsd.org/sshd_config sshd_config(5)] the two directives:
<syntaxhighlight lang="apache" line="1">
AuthorizedKeysCommand /usr/local/sbin/keyfinder %U
AuthorizedKeysCommandUser keys
</syntaxhighlight>
The script below is only a demonstration and a more complex program can call databases or do advanced lookups or heuristics:
<syntaxhighlight lang="shell">
#!/bin/sh
set -e
case $1 in
"1000")
echo "ssh-ed25519 AAAAC3NzaC1lZDIE5AAAAIK89...UT9hz"
;;
"1001")
echo "restrict ssh-ed25519 AAAAC3NzaC1lZDI1NTAAIBvGx...Y0zxV"
;;
"1002")
echo "command=\"/usr/libexec/sftp-server\" ssh-ed25519 AAAAC3NzaC1lZDI1TE5AIPSyY...cPTg3"
;;
*)
exit 1
;;
esac
exit 0
</syntaxhighlight>
The '''AuthorizedKeysCommand''' scripts or programs can return any correctly formatted public key to '''stdout''' for consideration in the authentication process. That includes adding constraints to the keys. Above, the account with the UID 1000 has no constraints, while the account with UID 1001 is quite constrained. Finally, the account with the UID 1002 can only access the SFTP service. See the section "AUTHORIZED_KEYS FILE FORMAT" in [http://man.openbsd.org/sshd sshd(8)] for the full set of possibilities.
===Key-based Authentication Using an Agent===
When an authentication agent, such as [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)], is going to be used, it should generally be started at the beginning of a session and used to launch the login session or X-session so that the environment variables pointing to the agent and its UNIX-domain socket are passed to each subsequent shell and process. Many desktop distros do this automatically upon login or startup.
Starting an agent entails setting a pair of environment variables:
* SSH_AGENT_PID : the process id of the agent
* SSH_AUTH_SOCK : the filename and full path to the UNIX-domain socket
The various SSH and SFTP clients find these variables automatically and use them to contact the agent and try when authentication is needed. However, it is mainly SSH_AUTH_SOCK which is ever used. If the shell or desktop session was launched using [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)], then these variables are already set and available. If they are not available, then it is necessary to either set the variables manually inside each shell or for each application in order to use the agent or else to point to the agent's socket using the directive '''IdentityAgent''' in the client's configuration file.
Once an agent is available, a relevant private key needs to be loaded before the agent can be used. Once in the agent the private key can then be used many times. Private keys are loaded into an agent with [http://man.openbsd.org/ssh-add.1 ssh-add(1)].
<syntaxhighlight lang="shell-session">
$ ssh-add /home/fred/.ssh/mykey_ed25519
Identity added: /home/fred/.ssh/mykey_ed25519 (/home/fred/.ssh/mykey_ed25519)
</syntaxhighlight>
Keys stay in the agent for as long as it is running unless specified otherwise. A timeout can be set either with the '''-t''' option when starting the agent itself or when actually loading the key using [http://man.openbsd.org/ssh-add.1 ssh-add(1)]. In either case, the '''-t''' option will set a timeout interval, after which the key will be purged from the agent.
<syntaxhighlight lang="shell-session">
$ ssh-add -t 1h30m /home/fred/.ssh/mykey_ed25519
Identity added: /home/fred/.ssh/mykey_ed25519 (/home/fred/.ssh/mykey_ed25519)
Lifetime set to 5400 seconds
</syntaxhighlight>
The option '''-l''' will list the fingerprints of all of the identities in the agent.
<syntaxhighlight lang="bash">
$ ssh-add -l
256 SHA256:77mfUupj364g1WQ+O8NM1ELj0G1QRx/pHtvzvDvDlOk mykey for task x (ED25519)
3072 SHA256:7unq90B/XjrRbucm/fqTOJu0I1vPygVkN9FgzsJdXbk myotherkey rsa for task y (RSA)
</syntaxhighlight>
It is also possible to remove individual identities from the agent using '''-d''' which will remove them one at a time if identified by file name, but only if the file name is given and without the file name of the private key to be remove, '''-d''' will fail silently. Using '''-D''' instead will remove all of them at once without needing to specify any by name.
By default [http://man.openbsd.org/ssh-add.1 ssh-add(1)] uses the agent connected via the socket named in the environment variable '''SSH_AUTH_SOCK''', if it is set. Currently, that is its only option. However, for [http://man.openbsd.org/ssh.1 ssh(1)] an alternative to using the environment variable is the client configuration directive '''IdentityAgent''' which tells the SSH clients which socket to use to communicate with the agent. If both the environment variable and the configuration directive are available at the same time, then the value in '''IdentityAgent''' takes precedence over what's in the environment variable. '''IdentityAgent''' can also be set to ''none'' to prevent the connection from trying to use any agent at all.
The client configuration directive '''AddKeysToAgent''' can also be useful in getting keys into an agent as needed. When set, it automatically loads a key into a running agent the first time the key is called for if it is not already loaded. Likewise the '''IdentitiesOnly''' directive can ensure that the relevant key is offered on the first try. Rather than typing these out whenever the client is run, they can be added to '''~/.ssh/config''' and thereby added automatically for designated host connections.
====Agent Forwarding====
Agent forwarding is one means of passing through one or more intermediate hosts. However, the '''-J''' option for '''ProxyJump''' would be a safer option. See [[OpenSSH/Cookbook/Proxies_and_Jump_Hosts#Jump_Hosts_--_Passing_Through_a_Gateway_or_Two | Passing Through a Gateway or Two]] in the section on jump hosts about that. With agent forwarding, intermediate machines forward challenges and responses back and forth between the client and the final destination. This comes with some risks but eliminates the need for using passwords or holding keys on any of these intermediate machines.
A main advantage of agent forwarding is that the private key itself is not needed on any remote machine, thus hindering unwanted file system access to it. <ref name="OpenSSH key management, Part 3">{{cite web | url=http://www.ibm.com/developerworks/library/l-keyc3/ | title=Common threads: OpenSSH key management, Part 3 | author=Daniel Robbins | publisher=IBM | date=2002-02-01 | accessdate=2013-04-27}}</ref> Another advantage is that the actual agent to which the user has authenticated does not go anywhere and is thus less susceptible to analysis.
One risk with agents is that they can be re-used to tailgate in if the permissions allow it. Keys cannot be copied this way, but authentication is possible when there are incorrect permissions. Note that disabling agent forwarding does not improve security unless users are also denied shell access, as they can always install their own forwarders.
The risks of agent forwarding can be mitigated by confirming each use of a key by adding the '''-c''' option when adding the key to the agent. This requires the SSH_ASKPASS variable be set and available to the agent process, but will generate a prompt on the host running the agent upon each use of the key by a remote system. So if passing through one or more intermediate hosts, it is usually better to instead have the SSH client use stdio forwarding with '''-W''' or '''-J'''.
On the client side agent forwarding is disabled by default and so if it is to be used it must be enabled explicitly. Put the following line in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] to enable agent forwarding for a particular server:
<syntaxhighlight lang="apache" line="1">
Host gateway.example.org
ForwardAgent yes
</syntaxhighlight>
On the server side the default configuration files allow authentication agent forwarding, so to use it, nothing needs to be done there, just on the client side. However, again, it would be preferable to take a look at '''ProxyJump''' instead.
=====Old Style, Somewhat Safer SSH Agent Forwarding=====
The best way to pass through one or more intermediate hosts is to use the '''ProxyJump''' option instead of authentication agent forwarding and thereby not risk exposing any private keys. If authentication agent forwarding must be used, then it would be advisable in the interest of following the principle of least privilege to forward an agent containing the minimum necessary number of keys. There are several ways to solve that.
In version 8.8 and earlier a partial solution is to make a one-off, ephemeral agent to hold just the one key or keys needed for the task at hand. Another partial solution would be to set up a user-accessible service at the operating system level and then use [http://man.openbsd.org/ssh_config.5 ssh_config] for the rest.
Automatically launching an ephemeral agent unique to each session can be done by crafting either a special shell alias or function to launch a single-use agent. Either the function or the alias can be written to require confirmation for each requested signature. The following example is an alias is based on an updated blog post by Vincent Bernat<ref name="safer-agent-forwarding">{{cite web |url=https://vincent.bernat.ch/en/blog/2020-safer-ssh-agent-forwarding |title=Safer SSH agent forwarding |author=Vincent Bernat|date=2020-04-05 |accessdate=2020-10-04}}</ref> on SSH agent forwarding:
<syntaxhighlight lang="shell-session">
$ alias assh="ssh-agent ssh -o AddKeysToAgent=confirm -o ForwardAgent=yes"
</syntaxhighlight>
Note the use of [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)]. When invoking that alias, the SSH client will be launched with a unique, ephemeral supporting key agent. The alias sets up a new agent, including setting the two environment variables, and then sets two client options while calling the client. This arrangement still checks with [http://man.openbsd.org/ssh_config.5 ssh_config(5)] for other options and settings. When the SSH session is finished the agent which launched it ends and goes away, thus cleaning up after itself automatically.
Another way is to rely on the client's configuration file for some of the settings. Such methods rely mostly on [http://man.openbsd.org/ssh_config.5 ssh_config(5)] but still require an independent method to launch an ephemeral agent because the OpenSSH client is already running by the time it reads the configuration file and is thus not affected by any changes to environment variables caused by the configuration file and it is through the environment variables that contain information about the agent. However, when the path to the UNIX-domain socket used to communicate with the authentication agent is decided in advance then the '''IdentityAgent''' option can point to it once the one-off agent<ref name="wikimedia_ssh_agents">{{cite web |url=https://wikitech.wikimedia.org/wiki/Managing_multiple_SSH_agents#Linux_solutions |title=Managing multiple SSH agents |publisher=Wikimedia|accessdate=2020-04-07}}</ref> is actually launched. The following uses a specific agent's pre-defined socket whenever connecting to either of two particular domains:
<syntaxhighlight lang="apache" line="1">
Host *.wikimedia.org *.wmflabs.org
User fred
IdentitiesOnly yes
IdentityFile %d/.ssh/id_cloud_01
IdentityAgent /run/user/%i/ssh-cloud-01.socket
ForwardAgent yes
AddKeysToAgent yes
</syntaxhighlight>
The '''%d''' stands for the path to the home directory and the '''%i''' stands for the user id (UID) for the current account. In some cases the '''%i''' token might also come in handy when setting the '''IdentityAgent''' option inside the configuration file. Again, be careful when forwarding agents with which keys are in the forwarded agent. See the section "TOKENS" in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] for more such abbreviations.
With those configuration settings, the authentication agent must already be up and running and point to the designated socket prior to starting the SSH client for that configuration to work. Additionally, it should place the socket in a directory which is inaccessible to any other accounts. [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)] must use the '''-a''' option to name the socket:
<syntaxhighlight lang="shell-session">
$ ssh-agent -a /run/user/${UID}/ssh-cloud-01.socket
</syntaxhighlight>
That agent configuration can be launched manually or via a script or service manager. However, in the interests of privacy and security in general, agent forwarding is to be avoided. The configuration directive '''ProxyJump''' is the best alternative and, on older systems, host traversal using '''ProxyCommand''' with [http://man.openbsd.org/nc.1 netcat] are preferable. Again, see the section on [[OpenSSH/Cookbook/Proxies and Jump Hosts|Proxies and Jump Hosts]] for how those methods are used.
=====New Style SSH Agent Destination Constraints=====
From 8.9 onward, [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)] will allow the agent to limit which hosts they will use for authentication as specified by [http://man.openbsd.org/ssh-add.1 ssh-add(1)] using the '''-h''' option. These constraints have been added through two agent protocol extensions and a modification to the public key authentication protocol. This feature may evolve, but for now the result is such that keys for account authentication can be loaded into the agent in four ways:
* no limits on forwarding (not recommended)
* local use only, these will not get forwarded
* forwarding, but only to specific remote hosts
* forwarding to specific remote hosts via specified routes
The intent is that the restrictions fail safely so that they do not allow authentication when one or more hosts in the route lack the needed protocol features. The destinations and routes cannot be modified once the keys are loaded, but multiple routes to the same destination can be loaded and the routes can be any number of hops. If the routes need changing, then the key must be reloaded into the agent with the new route or routes.
The general default for the client is to keep keys in the agent for local use only. However, that can be enforced explicitly by adding the '''-a''' option when starting the client or else setting the '''ForwardAgent''' directive in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] to 'no' in the relevant configuration block.
In order to load keys for unlimited forwarding, which is not the best idea, just add them using [http://man.openbsd.org/ssh-add.1 ssh-add(1)] as normal. Then use the '''-A''' option with the client or set the '''ForwardAgent''' directive in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] to 'yes' in the relevant configuration block.
In order to limit keys for connection only to a specific remote host, or to load keys for connection to a specific remote host with forwarding via one or more intermediate hosts, use he '''-h''' option when loading keys into the agent. Here the one key may be used only to connect to the specific destination:
<syntaxhighlight lang="shell-session">
$ ssh-agent -h server.example.org server.key.ed25519
</syntaxhighlight>
If an intermediate system is passed through, the best way is to use '''ProxyJump''' which is the '''-J''' option for the SSH Client. If agent forwarding must be allowed then the tightest way is to constrain which systems may use the keys, again using the '''-h''' option.
<syntaxhighlight lang="shell-session">
$ ssh-agent -h middle.example.org -h "middle.example.org>server.example.org" server.key.ed25519
</syntaxhighlight>
Multiple steps can be included, even multiple routes. They just have to be enumerated explicitly, though patterns may still be used for the destination hosts as well as specific names. Each host in the chain must support these protocol extensions for the connection to complete.
Any keys designated for forwarding are unusable for authentication on any other hosts than those which have been explicitly identified for forwarding. These permitted hosts are identified by host key or host certificate from the '''known_hosts''' file or another file designated by the '''-H''' option when loading the key with [http://man.openbsd.org/ssh-add.1 ssh-add(1)]. If '''-H''' is not used at the time the keys are loaded into the agent, then the default known hosts file(s) will be used: '''~/.ssh/known_hosts''', '''/etc/ssh/ssh_known_hosts''', '''~/.ssh/known_hosts2''', and '''/etc/ssh/ssh_known_hosts2'''.
In the case of keys, the '''known_hosts''' list must be maintained conscientiously <ref name="ssh-agent-restrictions">{{ cite web | author=Damien Miller|url=https://www.openssh.org/agent-restrict.html | title=SSH agent restriction | publisher=OpenSSH | date=2021-12-16|accessdate=2022-03-06}}</ref>, perhaps with the help of the '''UpdateHostkeys''' and '''CanonicalizeHostname''' client configuration directives. Use of certificates requires the agent to only need to be aware of the Certificate Authority (CA).
Again, see [[OpenSSH/Cookbook/Proxies_and_Jump_Hosts#Jump_Hosts_--_Passing_Through_a_Gateway_or_Two | Passing Through a Gateway or Two]] in the section on jump hosts about a way to pass through one or more intermediate machines without needing to forward an SSH agent.
====Checking the Agent for Specific Keys====
The [http://man.openbsd.org/ssh_add ssh_add(1)] utility's '''-T''' option can test whether a specific private key is available in the agent or not by looking up the matching public key. That can be useful in a shell script.
<syntaxhighlight lang="shell">
#!/bin/sh
key=/home/fred/.ssh/some.key.ed25519.pub
if ssh-add -T ${key}; then
echo "Key ${key} Found"
else
echo "Key ${key} missing"
fi
</syntaxhighlight>
Or it could be done with an alternate syntax just as well either in a script or in an interactive shell sessions,
<syntaxhighlight lang="shell-session">
$ key=/home/fred/.ssh/some.key.ed25519.pub
$ ssh-add -T ${key} && echo "Key found" || echo "Key missing"
</syntaxhighlight>
However, if the desired result would be to add key to the agent then the '''AddKeysToAgent''' client configuration option can ensure that a specific key is added to the SSH agent upon first use during any given login session. That can be done using '''-o AddKeysToAgent=yes''' as a run-time argument, or by modifying [http://man.openbsd.org/ssh_config ssh_config(5)] as appropriate:
<syntaxhighlight lang="apache" line="1">
Host www
HostName www.example.com
IdentityFile %d/.ssh/www.ed25519
IdentitiesOnly yes
AddKeysToAgent yes
</syntaxhighlight>
With those options in the configuration file, the first time <code>ssh www</code> is run the specified key will get added to the agent and remain available.
===Key-based Authentication Using A Hardware Security Token===
While stand-alone keys have been around for a long time, it has been possible since version 8.2 to use keys backed by hardware security tokens, such as OnlyKey, Yubikey, or many others, though the FIDO2 protocol. The Universal 2nd Factor (U2F) authentication is supported directly in OpenSSH through FIDO2 and does not need third party software. At the moment there are two types of hardware backed keys, ECDSA-SK and Ed25519-SK, but only the latest hardware tokens support the latter. If the key Ed25519-SK format is not supported by the token's firmware, then the following error message will be presented when attempts to use that key type are made:
<syntaxhighlight lang="text">
Key enrollment failed: invalid format
</syntaxhighlight>
If supported, either key type can be created with [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]. The steps are almost identical to creating normal keys but the token must be available to the system (plugged in) first. Then if called for, the token's PIN must be entered and the token touched or otherwise activated. After that, the key creation proceeds as normal. Mind the key type as specified by the '''-t''' option.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -t ed25519-sk -f /home/fred/.ssh/server.ed25519-sk -C "web server for fred"
Generating public/private ed25519-sk key pair.
You may need to touch your authenticator to authorize key generation.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/fred/.ssh/server.ed25519-sk
Your public key has been saved in /home/fred/.ssh/server.ed25519-sk.pub
The key fingerprint is:
SHA256:41wVVDnKJ9gKr2Sj4CFuYMhcNvYebZ6zq0PWyP4rRDo web server
The key's randomart image is:
+[ED25519-SK 256]-+
| .o... |
| .o |
| +.. . |
| = . . ..= . |
|+ + * + So.. o |
|o+.EoO *+oo |
|.o oBo+++o |
| o .=.+. |
| . .=== |
+----[SHA256]-----+
</syntaxhighlight>
Once created, the public and private key files get handled like with any other type of key. But when authenticating, the hardware token must be present and activated when called for.
<syntaxhighlight lang="shell-session">
$ ssh -i /home/fred/.ssh/server.ed25519-sk server.example.org
Enter passphrase for key '/home/fred/.ssh/server.ed25519-sk':
Confirm user presence for key ED25519-SK SHA256:41wVVDnKJ9gKr2Sj4CFuYMhcNvYebZ6zq0PWyP4rRDo
</syntaxhighlight>
The resulting private key file is not actually the key itself but instead a "key handle" which is used by the hardware security token to derive the real private key on demand at the time it is actually used<ref name="OpenBSD_tech_U2F_FIDO">{{cite web |url=https://marc.info/?l=openbsd-tech&m=157376801917387&w=2 |title=OpenSSH U2F/FIDO support in base
|publisher=OpenBSD-Tech Mailing List | date=2019-11-14
|accessdate=2021-03-24}}</ref>. As a result, the hardware-backed private key file is useless without the accompanying hardware token. This also means that these key files are not portable across hardware tokens, say when having multiple tokens in reserve or as backup, even when used by the same account. So when multiple hardware tokens are in use, different key pairs must be generated for each token.
====Hardware Security Token Resident Private Key====
It is possible to store the private key within the token itself, but for the moment it cannot be used directly from inside the token and must first be saved as a file. Also, the key can only be loaded into the FIDO authenticator at the time of creation using the '''-O resident''' option with [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]. Otherwise, the process is the same as above.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -O resident -t ed25519-sk -f /home/fred/.ssh/server.ed25519-sk -C "web server for fred"
. . .
</syntaxhighlight>
When needed, the resident key can be extracted from the FIDO2 hardware token and saved into a file using the '''-K''' option. At this stage a passphrase can be added to the file, but no passphrase is kept within the token itself, only an optional PIN protects the key there.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -K
Enter PIN for authenticator:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Saved ED25519-SK key to id_ed25519_sk_rk
$ mv -i id_ed25519_sk_rk /home/fred/.ssh/server.ed25519-sk
</syntaxhighlight>
Since the output file name is fixed, any pre-existing file with that name can get overwritten but there will be a warning first. However, it is not recommended to keep the key on the hardware token because it provides more protection when kept separately.
==Single-purpose Keys==
Tailored single-purpose keys can eliminate use of remote root logins for many administrative activities. A finely tailored '''sudoers''' is needed along with an unprivileged account. When done right, it gives just enough access to get the job done, following the security principle of Least Privilege.
Single-purpose keys are accompanied by use of either the '''ForceCommand''' directive in [http://man.openbsd.org/ssh_config.5 sshd_config(5)] or the '''command="..."''' directive inside the '''authorized_keys''' file. The method is to generate a new key pair, transfer the public key to '''authorized-keys''' on the remote system, and then prepend the appropriate command or script there to the line with the key.
<syntaxhighlight lang="shell-session">
$ grep '^command' ~/.ssh/authorized_keys
command="/usr/local/bin/somescript.sh" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEcgdzDvSebOEjuegEx4W1I/aA7MM3owHfMr9yg2WH8H
</syntaxhighlight>
The '''command="..."''' directive inserted there overrides everything else and ensures that when logging in with just that key only the script '''/usr/local/bin/somescript.sh''' is run. If it is necessary to pass parameters to the script, have a look at the contents of the '''SSH_ORIGINAL_COMMAND''' environment variable and use it in a case statement. Do not ever trust the contents of that variable nor use the contents directly, always indirectly.
Single-purpose keys are useful for allowing only a tunnel and nothing more. The following key will only echo some text and then exit, unless used non-interactively with the '''-N''' option.
<syntaxhighlight lang="shell-session">
$ grep '^command' ~/.ssh/authorized_keys
command="/bin/echo do-not-send-commands" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBzTIWCaILN3tHx5WW+PMVDc7DfPM9xYNY61JgFmBGrA
</syntaxhighlight>
No matter what the user tries while logging in with that key, the session will only echo the given text and then exits. Using the '''-N''' option disables running the remote program, allowing the connection to stay open, allowing a tunnel.
<syntaxhighlight lang="shell-session">
$ ssh -L 3306:localhost:3306 \
-i ~/.ssh/tunnel_ed25519 \
-N \
-l fred \
server.example.com
</syntaxhighlight>
That creates a tunnel and stays connected despite a key configuration which would close an interactive session. See also the '''-n''' or '''-f''' option for [http://man.openbsd.org/ssh.1 ssh(1)].
===Single-purpose Keys to Avoid Remote Root Access===
The easy way is to write a short shell script, place it '''/usr/local/bin/''', and then configure '''sudoers''' to allow the otherwise unprivileged account to run just that script and only that script.
<syntaxhighlight lang="apache" line="1">
%wheel ALL=(root:root) NOPASSWD: /usr/sbin/service httpd stop
%wheel ALL=(root:root) NOPASSWD: /usr/sbin/service httpd start
</syntaxhighlight>
Then the key calls the script using '''command="..."''' inside '''authorized_keys'''. Here the one key starts the web server, the other stops the web server.
<syntaxhighlight lang="shell-session">
$ grep '^command' ~/.ssh/authorized_keys
command="/usr/bin/sudo /usr/sbin/service httpd stop" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEcgdzDvSebOEjuegEx4W1I/aA7MM3owHfMr9yg2WH8H
command="/usr/bin/sudo /usr/sbin/service httpd start" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMidyqZ6OCvbWqA8Zn+FjhpYE6NoWSxVjFnFUk6MrNZ4
</syntaxhighlight>
Complicated programs like [http://linux.die.net/man/1/rsync rsync(1)], [http://man.openbsd.org/tar.1 tar(1)], [http://linux.die.net/man/1/mysqldump mysqldump(1)], and so on require an advanced approach when building a single-purpose key. For them, the '''-v''' option can show exactly what is being passed to the server so that '''sudoers''' can be set up correctly. That way they can be restricted to only access designated parts of the file system. For example, here is what <code>ssh -v</code> shows from one particular usage of [http://linux.die.net/man/1/rsync rsync(1)], note the "Sending command" line:
<syntaxhighlight lang="shell-session">
$ rsync -e 'ssh -v' fred@server.example.org:/etc/ ./backup/etc/
. . .
debug1: Sending command: rsync --server --sender -e.LsfxC . /etc/
. . .
</syntaxhighlight>
That output can then be added to '''sudoers''' so that the key can do only that function.
<syntaxhighlight lang="shell-session">
%backup ALL=(root:root) NOPASSWD: /usr/bin/rsync --server --sender -e.LsfxC . /etc/
</syntaxhighlight>
Then to tie it all together, the account "backup" needs a key:
<syntaxhighlight lang="shell-session">
$ grep '^command' ~/.ssh/authorized_keys
command="/usr/bin/rsync --server --sender -e.LsfxC . /etc/" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMm0rs4eY8djqBb3dIEgbQ8lmdlxb9IAEuX/qFCTxFgb
</syntaxhighlight>
Many of these programs have a '''--dry-run''' or equivalent option. Remember to use it when figuring out the right settings.
===Read-only Access to Keys===
In some cases it is necessary to prevent accounts from being able to changing their own authentication keys. However, such situations may be a better case for using certificates. However, if done with keys it is accomplished by putting the key file in an external directory where the user has read-only access, both to the directory and to the key file. Then the '''AuthorizedKeysFile''' directive assigns where [http://man.openbsd.org/sshd.8 sshd(8)] looks for the keys and can point to a secured location for the keys instead of the default location.
A good alternate location could be a new directory '''/etc/ssh/authorized_keys''' which could store the selected accounts' key files there. The change can be made to apply to only a group of accounts by putting the settings under a '''Match''' directive. The default location for keys on most systems is usually '''~/.ssh/authorized_keys'''.
<syntaxhighlight lang="apache" line="1">
Match Group sftpusers
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
</syntaxhighlight>
Then the permissions there would allow the keys to be read but not written:
<syntaxhighlight lang="shell-session">
$ ls -dhln /etc/ssh/
drwxr-x--x 3 0 0 4.0K Mar 30 22:16 /etc/ssh/authorized_keys/
$ ls -dhln /etc/ssh/*.pub
-rw-r--r-- 1 0 0 173 Mar 23 13:34 /etc/ssh/fred
-rw-r--r-- 1 0 0 93 Mar 23 13:34 /etc/ssh/user1
-rw-r--r-- 1 0 0 565 Mar 23 13:34 /etc/ssh/user2
. . .
</syntaxhighlight>
The keys could even be within subdirectories, though the same restrictions apply regarding permissions and ownership.
For chrooted SFTP, the method is the same to keep the key files out of reach of the accounts:
<syntaxhighlight lang="apache" line="1">
Match Group sftpusers
ChrootDirectory /home
ForceCommand internal-sftp -d %u
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
</syntaxhighlight>
Of course a '''Match''' directive is not essential. The settings could be made to apply to all accounts by putting the directive in the main part of the server configuration file instead.
==Mark Public Keys as Revoked==
Keys can be revoked. Keys that have been revoked can be stored in '''/etc/ssh/revoked_keys''', a file specified in [http://man.openbsd.org/ssh_config.5 sshd_config(5)] using the directive '''RevokedKeys''', so that [http://man.openbsd.org/sshd.8 sshd(8)] will prevent attempts to log in with them. No warning or error on the client side will be given if a revoked key is tried. Authentication will simply progress to the next key or method.
The revoked keys file should contain a list of public keys, one per line, that have been revoked and can no longer be used to connect to the server. The key cannot contain any extras, such as [[OpenSSH/Client_Configuration_Files#Available_key_login_options | login options]] or it will be ignored. If one of the revoked keys is tried during a login attempt, the server will simply ignore it and move on to the next authentication method. An entry will be made in the logs of the attempt, including the key's fingerprint. See the section on [[OpenSSH/Logging_and_Troubleshooting | logging]] for a little more on that.
<syntaxhighlight lang="apache" line="1">
RevokedKeys /etc/ssh/revoked_keys
</syntaxhighlight>
The '''RevokedKeys''' configuration directive is not set in [http://man.openbsd.org/ssh_config.5 sshd_config(5)] by default. It must be set explicitly if it is to be used. This is another situation that might be better fulfilled through using certificate since a validity interval can be set in any combination of seconds, minutes, hours, days, or weeks can be set for certificates while keys are valid indefinitely.
===Key Revocation Lists===
A Key Revocation List (KRL) is a compact, binary form of representing revoked keys and certificates. In order to use a KRL, the server's configuration file must point to a valid list using the '''RevokedKeys''' directive. KRLs themselves are generated with [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] and can be created from scratch or edited in place. Here a new one is made, populated with a single public key:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -kf /etc/ssh/revoked_keys -z 1 ~/.ssh/old_key_rsa.pub
</syntaxhighlight>
Here an existing KRL is updated by adding the '''-u''' option:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -ukf /etc/ssh/revoked_keys -z 2 ~/.ssh/old_key_dsa.pub
</syntaxhighlight>
Once a KRL is in place, it is possible to test if a specific key or certificate is in the revocation list.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -Qf /etc/ssh/revoked_keys ~/.ssh/old_key_rsa.pub
</syntaxhighlight>
Only public keys and certificates will be loaded into the KRL. Corrupt or broken keys will not be loaded and will produce an error message if tried. Like with the regular '''RevokedKeys''' list, the public key destined for the KRL cannot contain any extras like login options or it will produce an error when an attempt is made to load it into the KRL or search the KRL for it.
==Verify a Host Key by Fingerprint==
The above examples have been about using keys to authenticate the client to the server. A different context in which keys are used is when the server identifies itself to the client, which happens automatically at the beginning of each non-multiplexed session. In order for that identification to happen the client acquires a public key from the server, usually on or prior to first contact, which it can subsequently use to ensure that it is connecting to the same server again and not an impostor. The default locations for storing these acquired host keys on the client are in '''/etc/ssh/ssh_known_hosts''', if managed by the system administrator, or in '''~/.ssh/known_hosts''' if managed by the client's own account. The format of the contents is a line with a host address and its matching public key. The file is described in detail in the [http://man.openbsd.org/sshd.8 sshd(8)] manual page in the section "SSH_KNOWN_HOSTS FILE FORMAT".
When connecting for the first time to a remote host, the server's host key should be verified in order to ensure that the client is connecting to the right machine and not an impostor or anything else. Usually this verification is done by comparing the fingerprint of the server's host key rather than trying to compare the whole key itself. By default the client will show the fingerprint if the key is not already found in the '''known_hosts''' register.
<syntaxhighlight lang="shell-session">
$ ssh -l fred server.example.org
The authenticity of host 'server.example.org (192.0.32.10)' can't be established.
ECDSA key fingerprint is SHA256:LPFiMYrrCYQVsVUPzjOHv+ZjyxCHlVYJMBVFerVCP7k.
Are you sure you want to continue connecting (yes/no)?
</syntaxhighlight>
That can be compared to a fingerprint received out of band, say by post, e-mail, SMS, courier, and so on. Specifically, the example represents the key's fingerprint as a base64 encoded SHA256 checksum. That is the default style. The fingerprint can also be displayed as an MD5 hash in hexadecimal instead by passing the client's '''FingerprintHash''' configuration directive as a runtime argument or setting it in [http://man.openbsd.org/ssh_config.5 ssh_config(5)].
<syntaxhighlight lang="shell-session">
$ ssh -o FingerprintHash=md5 host.example.org
The authenticity of host 'host.example.org (192.0.32.203)' can't be established.
RSA key fingerprint is MD5:10:4a:ec:d2:f1:38:f7:ea:0a:a0:0f:17:57:ea:a6:16.
Are you sure you want to continue connecting (yes/no)?
</syntaxhighlight>
But the default in new versions is SHA256 in base64 has a lower chance of collision.
In OpenSSH 6.7 and earlier, the client showed fingerprints as a hexadecimal MD5 checksum instead a of the base64-encoded SHA256 checksum currently used:
<syntaxhighlight lang="shell-session">
$ ssh -l fred server.example.org
The authenticity of host 'server.example.org (192.0.32.10)' can't be established.
RSA key fingerprint is 4a:11:ef:d3:f2:48:f8:ea:1a:a2:0d:17:57:ea:a6:16.
Are you sure you want to continue connecting (yes/no)?
</syntaxhighlight>
Another way of comparing keys is to use the ASCII art visual host key. See further below about that.
===Downloading keys===
Even though a host’s key is usually displayed for review the first time the SSH client tries to connect, it can also be fetched on demand at any time using [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)]:
<syntaxhighlight lang="shell-session">
$ ssh-keyscan host.example.org
# host.example.org SSH-2.0-OpenSSH_8.2
host.example.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLC2PpBnFrbXh2YoK030Y5JdglqCWfozNiSMjsbWQt1QS09TcINqWK1aLOsNLByBE2WBymtLJEppiUVOFFPze+I=
# host.example.org SSH-2.0-OpenSSH_8.2
host.example.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9iViojCZkcpdLju7/3+OaxKs/11TAU4SuvIPTvVYvQO32o4KOdw54fQmd8f4qUWU59EUks9VQNdqf1uT1LXZN+3zXU51mCwzMzIsJuEH0nXECtUrlpEOMlhqYh5UVkOvm0pqx1jbBV0QaTyDBOhvZsNmzp2o8ZKRSLCt9kMsEgzJmexM0Ho7v3/zHeHSD7elP7TKOJOATwqi4f6R5nNWaR6v/oNdGDtFYJnQfKUn2pdD30VtOKgUl2Wz9xDNMKrIkiM8Vsg8ly35WEuFQ1xLKjVlWSS6Frl5wLqmU1oIgowwWv+3kJS2/CRlopECy726oBgKzNoYfDOBAAbahSK8R
# host.example.org SSH-2.0-OpenSSH_8.2
host.example.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDDOmBOknpyJ61Qnaeq2s+pHOH6rdMn09iREz2A/yO2m
</syntaxhighlight>
Once a key is acquired, its fingerprint can be shown using [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]. This can be done directly with a pipe.
<syntaxhighlight lang="shell-session">
$ ssh-keyscan host.example.org | ssh-keygen -lf -
# host.example.org SSH-2.0-OpenSSH_8.2
# host.example.org SSH-2.0-OpenSSH_8.2
# host.example.org SSH-2.0-OpenSSH_8.2
256 SHA256:sxh5i6KjXZd8c34mVTBfWk6/q5cC6BzR6Qxep5nBMVo host.example.org (ECDSA)
3072 SHA256:hlPei3IXhkZmo+GBLamiiIaWbeGZMqeTXg15R42yCC0 host.example.org (RSA)
256 SHA256:ZmS+IoHh31CmQZ4NJjv3z58Pfa0zMaOgxu8yAcpuwuw host.example.org (ED25519)
</syntaxhighlight>
If there is more than one public key type is available from the server on the port polled, then [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] will fetch each of them. If there is more than one key fed via '''stdin''' or a file, then [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] will process them in order. Prior to OpenSSH 7.2 manual fingerprinting was a two step process, the key was read to a file and then processed for its fingerprint.
<syntaxhighlight lang="shell-session">
$ ssh-keyscan -t ed25519 host.example.org > key.pub
# host.example.org SSH-2.0-OpenSSH_6.8
$ ssh-keygen -lf key.pub
256 SHA256:ZmS+IoHh31CmQZ4NJjv3z58Pfa0zMaOgxu8yAcpuwuw host.example.org (ED25519)
</syntaxhighlight>
Note that some output from [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] is sent to '''stderr''' instead of '''stdout'''.
A hash, or fingerprint, can be generated manually with [http://linux.die.net/man/1/awk awk(1)], [http://linux.die.net/man/1/sed sed(1)] and [http://linux.die.net/man/1/xxd xxd(1)], on systems where they are found.
<syntaxhighlight lang="shell-session">
$ awk '{print $2}' key.pub | base64 -d | md5sum -b | sed 's/../&:/g; s/: .*$//'
$ awk '{print $2}' key.pub | base64 -d | sha256sum -b | sed 's/ .*$//' | xxd -r -p | base64
</syntaxhighlight>
It is possible to find all hosts from a file which have new or different keys from those in '''known_hosts''', if the host names are in clear text and not stored as hashes.
<syntaxhighlight lang="shell-session">
$ ssh-keyscan -t rsa,ecdsa -f ssh_hosts | \
sort -u - ~/.ssh/known_hosts | \
diff ~/.ssh/known_hosts -
</syntaxhighlight>
====Using ssh-keyscan(1) with ssh_config(5)====
The utility [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] does not parse [http://man.openbsd.org/ssh_config.5 ssh_config(5)]. That is in part to keep the code base simple. There are a lot of configuration options which would be complicated to implement, including but not limited to '''ProxyJump''', '''ProxyCommand''', '''Match''', '''BindInterface''', and '''CanonicalizeHostname'''<ref name="keyscan">{{cite mailing list |url=https://lists.mindrot.org/pipermail/openssh-unix-dev/2023-March/040605.html | title=Why does ssh-keyscan not use .ssh/config? |publisher=mindrot.org | access-date=2023-03-01 | date=2023-03-01 | mailing-list=OpenSSH UNIX-dev | first=Damien | last=Miller }}</ref> . Resolving host names via the client configuration file can be done by wrapping the utility in a short shell function:
<syntaxhighlight lang="shell">
my-ssh-keyscan() {
for host in "$@" ; do
ssh-keyscan $(ssh -G "$host" | awk '/^hostname/ {print $2}')
done
}
</syntaxhighlight>
That shell function uses the '''-G''' option of [http://man.openbsd.org/ssh.1 ssh(1)] to resolve each host name using [http://man.openbsd.org/ssh_config.5 ssh_config(5)] and then check the resulting host name for SSH keys.
===ASCII Art Visual Host Key===
An ASCII art representation of the key can be displayed along with the SHA256 base64 fingerprint:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -lvf key
256 SHA256:BClQBFAGuz55+tgHM1aazI8FUo8eJiwmMcqg2U3UgWU www.example.org (ED25519)
+--[ED25519 256]--+
|o+=*++Eo |
|+o .+.o. |
|B=.oo. . |
|*B.=.o . |
|= B * S |
|. .@ . |
| +..B |
| *. o |
| o.o. |
+----[SHA256]-----+
</syntaxhighlight>
In OpenSSH 6.7 and earlier the fingerprint is in MD5 hexadecimal form.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -lvf key
2048 37:af:05:99:e7:fb:86:6c:98:ee:14:a6:30:06:bc:f0 www.example.net (RSA)
+--[ RSA 2048]----+
| o |
| o . |
| o o |
| o + |
| . . S |
| E .. |
| .o.* .. |
| .*=.+o |
| ..==+. |
+-----------------+
</syntaxhighlight>
==More on Verifying SSH Keys==
Keys on the client or the server can be verified against known good keys by comparing the base64-encoded SHA256 fingerprints.
===Verifying Stray Client Keys===
Sometimes is is necessary to compare two uncertain key files to check if they are part of the same key pair. However, public keys are more or less disposable. So the easy way in such situations on the client machine is to just rename or erase the old, problematic, public key and replace it with a new one generated from the existing private key.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -y -f ~/.ssh/my_key_rsa
</syntaxhighlight>
But if the two parts must really be compared, it is done in two steps using [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]. First, a new public key is re-generated from the known private key and used to make a fingerprint to '''stdout'''. Next, the fingerprint of the unknown public key is generated for comparison. In this example, the private key '''my_key_a_rsa''' and the public key '''my_key_b_rsa.pub''' are compared:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -y -f my_key_a_rsa | ssh-keygen -l -f -
$ ssh-keygen -l -f my_key_b_rsa.pub
</syntaxhighlight>
The result is a base64-encoded SHA256 checksum for each key with the one fingerprint displayed right below the other for easy visual comparison. Older versions don't support reading from '''stdin''' so an intermediate file will be needed then. Even older versions will only show an MD5 checksum for each key. Either way, automation with a shell script is simple enough to accomplish but outside the scope of this book.
===Verifying Server Keys===
Reliable verification of a server's host key must be done when first connecting. It can be necessary to contact the system administrator who can provide it out of band so as to know the fingerprint in advance and have it ready to verify the first connection.
Here is an example of the server's RSA key being read and its fingerprint shown as SHA256 base64:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
3072 SHA256:hlPei3IXhkZmo+GBLamiiIaWbeGZMqeTXg15R42yCC0 root@server.example.net (RSA)
</syntaxhighlight>
And here the corresponding ECDSA key is read, but shown as an MD5 hexadecimal hash:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -E md5 -lf /etc/ssh/ssh_host_ecdsa_key.pub
256 MD5:ed:d2:34:b4:93:fd:0e:eb:08:ee:b3:c4:b3:4f:28:e4 root@server.example.net (ECDSA)
</syntaxhighlight>
Prior to 6.8, the fingerprint was expressed as an MD5 hexadecimal hash:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
2048 MD5:e4:a0:f4:19:46:d7:a4:cc:be:ea:9b:65:a7:62:db:2c root@server.example.net (RSA)
</syntaxhighlight>
It is also possible to use [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] to get keys from an active SSH server. However, the fingerprints still needs to be verified out of band.
====Warning: Remote Host Identification Has Changed!====
If a server's key does not match what the client finds has been recorded in either the system's or the local account's '''authorized_keys''' files, then the client will issue a warning along with the fingerprint of the suspicious key.
<pre>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:GkoIDP/d0I6KA9IQyOB9iqL+Rzpxx9LhlSJPCEfjVQ4.
Please contact your system administrator.
Add correct host key in /home/fred/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/fred/.ssh/known_hosts:19
remove with:
ssh-keygen -f "/home/fred/.ssh/known_hosts" -R "server.example.com"
RSA host key for server.example.com has changed and you have requested strict checking.
Host key verification failed.
</pre>
Three reasons for the warning are common.
One reason is that the server's keys were replaced, often because the server's operating system was reinstalled without backing up the old keys. Another reason can be when the system administrator has phased out deprecated or compromised keys. However that can be planned better and if there is time to plan the migration, new keys can just be added to the server and have the clients use the '''UpdateHostKeys''' option so that the new keys are accepted if the old keys match. A third situation is when the connection is made to the wrong machine, such as when the remote system changes IP addresses because of dynamic address allocation.
In all three cases where the key has changed there is only one thing to do: contact the system administrator and verify the key. Ask if the OpenSSH-server was recently reinstalled, or was the machine restored from an old backup? Keep in mind that the system administrator may be you yourself in some cases.
The case which is rather rare but serious enough that it should be ruled out for sure is that the wrong machine is part of a man-in-the-middle attack.
In all four cases, an authentic key fingerprint can be acquired by any method where it is possible to verify the integrity and origin of the message, for example via PGP-signed e-mail. If physical access is possible, then use the console to get the right fingerprint. Once the authentic key fingerprint is available, return to the client machine where you got the error and remove the old key from '''~/.ssh/known_hosts'''
<syntaxhighlight lang="shell-session">
$ ssh-keygen -R server.example.org
</syntaxhighlight>
Then try logging in, but compare the key fingerprints first and proceed if and '''only''' if the key fingerprint matches what you received out of band. If the key fingerprint matches, then go through with the login process and the key will be automatically added. If the key fingerprint does not match, stop immediately and figure out what you are connecting to. It would be a good idea to get on the phone, a real phone not a computer phone, to the remote machine's system administrator or the network administrator.
===Multiple Keys for a Host, Multiple Hosts for a Key in known_hosts===
Multiple host names or IP addresses can use the same key in the '''known_hosts''' file by using pattern matching or simply by listing multiple systems for the same key. That can be done in either the global list of keys in '''/etc/ssh/ssh_known_hosts''' and the local, account-specific lists of keys in each account's '''~/.ssh/known_hosts''' file. Labs, computational clusters, and similar pools of machines can make use of keys in that way. Here is a key shared by three specific hosts, identified by name:
<pre>
server1,server2,server3 ssh-rsa AAAAB097y0yiblo97gvl...jhvlhjgluibp7y807t08mmniKjug...==
</pre>
Or a range can be specified by using globbing to a limited extent in either '''/etc/ssh/ssh_known_hosts''' or '''~/.ssh/known_hosts'''.
<pre>
172.19.40.* ssh-rsa AAAAB097y0yiblo97gvl...jhvlhjgluibp7y807t08mmniKjug...==
</pre>
Conversely, for multiple keys for the same address, it is necessary to make multiple entries in either '''/etc/ssh/ssh_known_hosts''' or '''~/.ssh/known_hosts''' for each key.
<pre>
server1 ssh-rsa AAAAB097y0yiblo97gvljh...vlhjgluibp7y807t08mmniKjug...==
server1 ssh-rsa AAAAB0liuouibl kuhlhlu...qerf1dcw16twc61c6cw1ryer4t...==
server1 ssh-rsa AAAAB568ijh68uhg63wedx...aq14rdfcvbhu865rfgbvcfrt65...==
</pre>
Thus in order to get a pool of servers to share a pool of keys, each server-key combination must be added manually to the '''known_hosts''' file:
<pre>
server1 ssh-rsa AAAAB097y0yiblo97gvljh...07t8mmniKjug...==
server1 ssh-rsa AAAAB0liuouibl kuhlhlu...qerfw1ryer4t...==
server1 ssh-rsa AAAAB568ijh68uhg63wedx...aq14rvcfrt65...==
server2 ssh-rsa AAAAB097y0yiblo97gvljh...07t8mmniKjug...==
server2 ssh-rsa AAAAB0liuouibl kuhlhlu...qerfw1ryer4t...==
server2 ssh-rsa AAAAB568ijh68uhg63wedx...aq14rvcfrt65...==
</pre>
Though upgrading to certificates might be a more appropriate approach that manually updating lots of keys.
===Another way of Dealing with Dynamic (roaming) IP Addresses===
It is possible to manually point to the right key using '''HostKeyAlias''' either as part of [http://man.openbsd.org/ssh_config.5 ssh_config(5)] or as a runtime parameter. Here the key for machine ''Foobar'' is used to connect to host 192.168.11.15
<syntaxhighlight lang="shell-session">
$ ssh -o StrictHostKeyChecking=accept-new \
-o HostKeyAlias=foobar \
192.168.11.15
</syntaxhighlight>
This is useful when DHCP is not configured to try to keep the same addresses for the same machines over time or when using certain stdio forwarding methods to pass through intermediate hosts.
===Host Key Update and Rotation in known_hosts===
A protocol extension to rotate weak public keys out of '''known_hosts''' has been in OpenSSH from version 6.8<ref name="djm_rotation">
{{cite web
| title=Key rotation in OpenSSH 6.8+
| author=Damien Miller
| url=http://blog.djm.net.au/2015/02/key-rotation-in-openssh-68.html
| date=2015-02-01
| publisher=DJM's Personal Weblog
| accessdate=2016-03-05
}}
</ref> and later. With it the server is able to inform the client of all its host keys and update '''known_hosts''' with new ones when at least one trusted key already known. This method still requires the private keys be available to the server <ref name="djm_rotation_redux">
{{cite web
| title=Hostkey rotation, redux
| author=Damien Miller
| url=http://blog.djm.net.au/2015/02/hostkey-rotation-redux.html
| date=2015-02-17
| publisher=DJM's Personal Weblog
| accessdate=2016-03-05
}}
</ref> so that proofs can be completed. In [http://man.openbsd.org/ssh_config.5 ssh_config(5)], the directive '''UpdateHostKeys''' specifies whether the client should accept updates of additional host keys from the server after authentication is completed and add them to '''known_hosts'''. A server can offer multiple keys of the same type for a period before removing the deprecated key from those offered, thus allowing an automated option for rotating keys as well as for upgrading from weaker algorithms to stronger ones. See also [https://datatracker.ietf.org/doc/html/rfc4819 RFC 4819: Secure Shell Public Key Subsystem] about key management standards.
==Converting Between SSH Key Formats==
OpenSSH has its own format for keys which it uses by default when new keys are made. However, other SSH clients and servers may use other formats such as [https://www.rfc-editor.org/rfc/rfc4716 RFC4716], [https://www.rfc-editor.org/rfc/rfc5958 PKCS8], or [https://www.rfc-editor.org/rfc/rfc1421 PEM]. Any of these can be converted to the default OpenSSH format by [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]. The default to format to try to convert from is RFC4716. The utility [https://linux.die.net/man/1/puttygen puttygen(1)] makes keys in that format for [https://linux.die.net/man/1/putty putty(1)] and they need conversion when used with OpenSSH's server.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -i -f /var/tmp/key_public.ppk
</syntaxhighlight>
However, you can use the '''-m''' option to specify either that format explicitly or else choose another one to convert from.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -i -m RFC4716 -f /var/tmp/key_public.ppk
$ ssh-keygen -i -m PKCS8 -f /var/tmp/key_public.ppk
</syntaxhighlight>
Both examples above are for importing public keys into OpenSSH's own format.
By default OpenSSH will write newly-generated keys in its own format, so the '''-m''' option is obligatory to produce public keys in another format.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -e -m PKCS8 -f ~/.ssh/key.pub
</syntaxhighlight>
It is not yet possible to export private keys from the OpenSSH format to one of the other formats using the '''-e''' option. Even if a private key is specified as input, a public key is produced:
<syntaxhighlight lang="shell-session">
$ ssh-keygen -e -m RFC4716 -f ~/.ssh/key
</syntaxhighlight>
Not all key types are supported by all key formats.
It is also possible to use export to display the key pair as a traditional hex dump.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -e -m hexdump -f ~/.ssh/key
Enter passphrase for "key":
Public ED25519 key:
buffer len = 51
0000: 00 00 00 0b 73 73 68 2d 65 64 32 35 35 31 39 00 ....ssh-ed25519.
0016: 00 00 20 b0 c5 cc 2c cb d8 8b 8d 75 80 eb e6 e9 .. ...,....u....
0032: 2c f4 36 08 7b 5b ad ad 0b 54 4f 7f 21 9d 1b e8 ,.6.{[...TO.!...
0048: 9e e0 32 ..2
Private ED25519 key:
buffer len = 119
0000: 00 00 00 0b 73 73 68 2d 65 64 32 35 35 31 39 00 ....ssh-ed25519.
0016: 00 00 20 b0 c5 cc 2c cb d8 8b 8d 75 80 eb e6 e9 .. ...,....u....
0032: 2c f4 36 08 7b 5b ad ad 0b 54 4f 7f 21 9d 1b e8 ,.6.{[...TO.!...
0048: 9e e0 32 00 00 00 40 e1 c3 a2 4d d9 89 49 72 9b ..2...@...M..Ir.
0064: 86 72 6c 07 17 1b 40 4f 62 50 62 45 4f 4c cf cf .rl...@ObPbEOL..
0080: 57 8b 9d c0 04 8f 9b b0 c5 cc 2c cb d8 8b 8d 75 W.........,....u
0096: 80 eb e6 e9 2c f4 36 08 7b 5b ad ad 0b 54 4f 7f ....,.6.{[...TO.
0112: 21 9d 1b e8 9e e0 32 !.....2
</syntaxhighlight>
<noinclude>
== References ==
{{reflist}}
{{OpenSSH/TOC|mini}}
</noinclude>
{{BookCat}}
{{status|100%}}
mt16pzzjpawm6e76kqrr3oku6z6n532
Unicode/Character reference/2F000-2FFFF
0
77352
4674782
4673802
2026-10-06T22:32:34Z
~2026-52012-02
3627015
Too early right now
4674782
wikitext
text/x-wiki
{{:Unicode/Character reference}}
{| border="1" cellpadding="2" cellspacing="0" style="border-collapse:collapse;"
|-
| colspan="17" style="background:#f8f8f8;{{text default color}};text-align:center" | ''Unassigned''
|----- style="background:#ccccff;{{text default color}}"
!style="width:4%"|U+!!style="width:6%"|0!!style="width:6%"|1!!style="width:6%"|2!!style="width:6%"|3!!style="width:6%"|4!!style="width:6%"|5!!style="width:6%"|6!!style="width:6%"|7!!style="width:6%"|8!!style="width:6%"|9!!style="width:6%"|A!!style="width:6%"|B!!style="width:6%"|C!!style="width:6%"|D!!style="width:6%"|E!!style="width:6%"|F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F00x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F01x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F02x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F03x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F04x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F05x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F06x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F07x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F08x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F09x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F0Ax
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F0Bx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F0Cx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F0Dx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F0Ex
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F0Fx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F10x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F11x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F12x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F13x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F14x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F15x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F16x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F17x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F18x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F19x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F1Ax
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F1Bx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F1Cx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F1Dx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F1Ex
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F1Fx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F20x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F21x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F22x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F23x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F24x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F25x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F26x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F27x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F28x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F29x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F2Ax
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F2Bx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F2Cx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F2Dx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F2Ex
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F2Fx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F30x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F31x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F32x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F33x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F34x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F35x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F36x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F37x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F38x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F39x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F3Ax
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F3Bx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F3Cx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F3Dx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F3Ex
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F3Fx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F40x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F41x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F42x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F43x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F44x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F45x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F46x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F47x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F48x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F49x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F4Ax
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F4Bx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F4Cx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F4Dx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F4Ex
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F4Fx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F50x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F51x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F52x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F53x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F54x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F55x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F56x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F57x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F58x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F59x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F5Ax
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F5Bx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F5Cx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F5Dx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F5Ex
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F5Fx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F60x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F61x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F62x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F63x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F64x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F65x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F66x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F67x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F68x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F69x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F6Ax
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F6Bx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F6Cx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F6Dx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F6Ex
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F6Fx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F70x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F71x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F72x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F73x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F74x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F75x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F76x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F77x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F78x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F79x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F7Ax
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F7Bx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F7Cx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F7Dx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F7Ex
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F7Fx
| || || || || || || || || || || || || || || ||
|-
| colspan="17" style="background:#f8f8f8;{{text default color}};text-align:center" | '''CJK Compatibility Ideographs Supplement'''
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F80x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F800|丽}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F801|丸}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F802|乁}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F803|𠄢}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F804|你}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F805|侮}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F806|侻}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F807|倂}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F808|偺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F809|備}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F80A|僧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F80B|像}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F80C|㒞}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F80D|𠘺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F80E|免}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F80F|兔}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F81x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F810|兤}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F811|具}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F812|𠔜}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F813|㒹}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F814|內}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F815|再}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F816|𠕋}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F817|冗}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F818|冤}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F819|仌}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F81A|冬}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F81B|况}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F81C|𩇟}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F81D|凵}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F81E|刃}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F81F|㓟}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F82x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F820|刻}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F821|剆}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F822|割}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F823|剷}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F824|㔕}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F825|勇}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F826|勉}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F827|勤}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F828|勺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F829|包}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F82A|匆}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F82B|北}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F82C|卉}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F82D|卑}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F82E|博}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F82F|即}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F83x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F830|卽}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F831|卿}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F832|卿}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F833|卿}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F834|𠨬}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F835|灰}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F836|及}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F837|叟}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F838|𠭣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F839|叫}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F83A|叱}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F83B|吆}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F83C|咞}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F83D|吸}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F83E|呈}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F83F|周}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F84x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F840|咢}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F841|哶}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F842|唐}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F843|啓}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F844|啣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F845|善}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F846|善}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F847|喙}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F848|喫}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F849|喳}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F84A|嗂}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F84B|圖}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F84C|嘆}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F84D|圗}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F84E|噑}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F84F|噴}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F85x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F850|切}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F851|壮}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F852|城}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F853|埴}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F854|堍}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F855|型}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F856|堲}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F857|報}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F858|墬}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F859|𡓤}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F85A|売}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F85B|壷}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F85C|夆}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F85D|多}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F85E|夢}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F85F|奢}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F86x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F860|𡚨}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F861|𡛪}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F862|姬}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F863|娛}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F864|娧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F865|姘}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F866|婦}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F867|㛮}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F868|㛼}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F869|嬈}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F86A|嬾}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F86B|嬾}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F86C|𡧈}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F86D|寃}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F86E|寘}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F86F|寧}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F87x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F870|寳}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F871|𡬘}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F872|寿}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F873|将}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F874|当}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F875|尢}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F876|㞁}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F877|屠}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F878|屮}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F879|峀}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F87A|岍}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F87B|𡷤}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F87C|嵃}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F87D|𡷦}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F87E|嵮}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F87F|嵫}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F88x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F880|嵼}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F881|巡}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F882|巢}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F883|㠯}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F884|巽}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F885|帨}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F886|帽}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F887|幩}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F888|㡢}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F889|𢆃}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F88A|㡼}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F88B|庰}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F88C|庳}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F88D|庶}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F88E|廊}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F88F|𪎒}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F89x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F890|廾}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F891|𢌱}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F892|𢌱}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F893|舁}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F894|弢}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F895|弢}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F896|㣇}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F897|𣊸}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F898|𦇚}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F899|形}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F89A|彫}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F89B|㣣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F89C|徚}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F89D|忍}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F89E|志}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F89F|忹}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F8Ax
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8A0|悁}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8A1|㤺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8A2|㤜}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8A3|悔}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8A4|𢛔}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8A5|惇}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8A6|慈}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8A7|慌}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8A8|慎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8A9|慌}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8AA|慺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8AB|憎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8AC|憲}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8AD|憤}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8AE|憯}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8AF|懞}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F8Bx
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8B0|懲}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8B1|懶}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8B2|成}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8B3|戛}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8B4|扝}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8B5|抱}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8B6|拔}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8B7|捐}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8B8|𢬌}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8B9|挽}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8BA|拼}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8BB|捨}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8BC|掃}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8BD|揤}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8BE|𢯱}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8BF|搢}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F8Cx
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8C0|揅}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8C1|掩}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8C2|㨮}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8C3|摩}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8C4|摾}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8C5|撝}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8C6|摷}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8C7|㩬}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8C8|敏}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8C9|敬}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8CA|𣀊}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8CB|旣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8CC|書}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8CD|晉}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8CE|㬙}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8CF|暑}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F8Dx
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8D0|㬈}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8D1|㫤}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8D2|冒}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8D3|冕}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8D4|最}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8D5|暜}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8D6|肭}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8D7|䏙}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8D8|朗}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8D9|望}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8DA|朡}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8DB|杞}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8DC|杓}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8DD|𣏃}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8DE|㭉}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8DF|柺}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F8Ex
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8E0|枅}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8E1|桒}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8E2|梅}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8E3|𣑭}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8E4|梎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8E5|栟}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8E6|椔}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8E7|㮝}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8E8|楂}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8E9|榣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8EA|槪}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8EB|檨}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8EC|𣚣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8ED|櫛}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8EE|㰘}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8EF|次}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F8Fx
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8F0|𣢧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8F1|歔}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8F2|㱎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8F3|歲}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8F4|殟}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8F5|殺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8F6|殻}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8F7|𣪍}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8F8|𡴋}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8F9|𣫺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8FA|汎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8FB|𣲼}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8FC|沿}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8FD|泍}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8FE|汧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F8FF|洖}}
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F90x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F900|派}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F901|海}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F902|流}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F903|浩}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F904|浸}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F905|涅}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F906|𣴞}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F907|洴}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F908|港}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F909|湮}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F90A|㴳}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F90B|滋}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F90C|滇}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F90D|𣻑}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F90E|淹}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F90F|潮}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F91x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F910|𣽞}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F911|𣾎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F912|濆}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F913|瀹}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F914|瀞}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F915|瀛}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F916|㶖}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F917|灊}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F918|災}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F919|灷}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F91A|炭}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F91B|𠔥}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F91C|煅}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F91D|𤉣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F91E|熜}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F91F|𤎫}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F92x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F920|爨}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F921|爵}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F922|牐}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F923|𤘈}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F924|犀}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F925|犕}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F926|𤜵}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F927|𤠔}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F928|獺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F929|王}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F92A|㺬}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F92B|玥}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F92C|㺸}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F92D|㺸}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F92E|瑇}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F92F|瑜}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F93x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F930|瑱}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F931|璅}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F932|瓊}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F933|㼛}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F934|甤}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F935|𤰶}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F936|甾}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F937|𤲒}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F938|異}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F939|𢆟}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F93A|瘐}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F93B|𤾡}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F93C|𤾸}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F93D|𥁄}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F93E|㿼}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F93F|䀈}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F94x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F940|直}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F941|𥃳}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F942|𥃲}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F943|𥄙}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F944|𥄳}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F945|眞}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F946|真}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F947|真}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F948|睊}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F949|䀹}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F94A|瞋}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F94B|䁆}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F94C|䂖}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F94D|𥐝}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F94E|硎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F94F|碌}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F95x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F950|磌}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F951|䃣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F952|𥘦}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F953|祖}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F954|𥚚}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F955|𥛅}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F956|福}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F957|秫}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F958|䄯}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F959|穀}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F95A|穊}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F95B|穏}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F95C|𥥼}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F95D|𥪧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F95E|𥪧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F95F|竮}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F96x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F960|䈂}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F961|𥮫}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F962|篆}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F963|築}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F964|䈧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F965|𥲀}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F966|糒}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F967|䊠}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F968|糨}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F969|糣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F96A|紀}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F96B|𥾆}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F96C|絣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F96D|䌁}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F96E|緇}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F96F|縂}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F97x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F970|繅}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F971|䌴}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F972|𦈨}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F973|𦉇}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F974|䍙}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F975|𦋙}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F976|罺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F977|𦌾}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F978|羕}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F979|翺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F97A|者}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F97B|𦓚}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F97C|𦔣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F97D|聠}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F97E|𦖨}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F97F|聰}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F98x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F980|𣍟}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F981|䏕}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F982|育}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F983|脃}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F984|䐋}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F985|脾}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F986|媵}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F987|𦞧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F988|𦞵}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F989|𣎓}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F98A|𣎜}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F98B|舁}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F98C|舄}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F98D|辞}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F98E|䑫}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F98F|芑}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F99x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F990|芋}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F991|芝}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F992|劳}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F993|花}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F994|芳}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F995|芽}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F996|苦}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F997|𦬼}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F998|若}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F999|茝}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F99A|荣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F99B|莭}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F99C|茣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F99D|莽}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F99E|菧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F99F|著}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F9Ax
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9A0|荓}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9A1|菊}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9A2|菌}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9A3|菜}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9A4|𦰶}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9A5|𦵫}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9A6|𦳕}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9A7|䔫}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9A8|蓱}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9A9|蓳}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9AA|蔖}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9AB|𧏊}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9AC|蕤}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9AD|𦼬}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9AE|䕝}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9AF|䕡}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F9Bx
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9B0|𦾱}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9B1|𧃒}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9B2|䕫}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9B3|虐}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9B4|虜}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9B5|虧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9B6|虩}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9B7|蚩}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9B8|蚈}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9B9|蜎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9BA|蛢}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9BB|蝹}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9BC|蜨}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9BD|蝫}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9BE|螆}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9BF|䗗}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F9Cx
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9C0|蟡}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9C1|蠁}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9C2|䗹}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9C3|衠}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9C4|衣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9C5|𧙧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9C6|裗}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9C7|裞}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9C8|䘵}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9C9|裺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9CA|㒻}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9CB|𧢮}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9CC|𧥦}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9CD|䚾}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9CE|䛇}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9CF|誠}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F9Dx
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9D0|諭}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9D1|變}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9D2|豕}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9D3|𧲨}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9D4|貫}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9D5|賁}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9D6|贛}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9D7|起}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9D8|𧼯}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9D9|𠠄}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9DA|跋}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9DB|趼}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9DC|跰}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9DD|𠣞}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9DE|軔}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9DF|輸}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F9Ex
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9E0|𨗒}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9E1|𨗭}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9E2|邔}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9E3|郱}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9E4|鄑}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9E5|𨜮}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9E6|鄛}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9E7|鈸}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9E8|鋗}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9E9|鋘}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9EA|鉼}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9EB|鏹}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9EC|鐕}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9ED|𨯺}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9EE|開}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9EF|䦕}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2F9Fx
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9F0|閷}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9F1|𨵷}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9F2|䧦}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9F3|雃}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9F4|嶲}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9F5|霣}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9F6|𩅅}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9F7|𩈚}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9F8|䩮}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9F9|䩶}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9FA|韠}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9FB|𩐊}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9FC|䪲}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9FD|𩒖}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9FE|頋}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2F9FF|頋}}
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FA0x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA00|頩}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA01|𩖶}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA02|飢}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA03|䬳}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA04|餩}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA05|馧}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA06|駂}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA07|駾}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA08|䯎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA09|𩬰}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA0A|鬒}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA0B|鱀}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA0C|鳽}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA0D|䳎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA0E|䳭}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA0F|鵧}}
|----- style="text-align:center;background:#d0ff66;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FA1x
|{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA10|𪃎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA11|䳸}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA12|𪄅}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA13|𪈎}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA14|𪊑}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA15|麻}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA16|䵖}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA17|黹}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA18|黾}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA19|鼅}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA1A|鼏}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA1B|鼖}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA1C|鼻}}||{{H:title|dotted=no|CJK COMPATIBILITY IDEOGRAPH-2FA1D|𪘀}}||style="background:#777777;{{text default color}}"| ||style="background:#777777;{{text default color}}"|
|-
| colspan="17" style="background:#f8f8f8;{{text default color}};text-align:center" | '''CJK Unified Ideographs Components-A'''
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FA2x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FA3x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FA4x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FA5x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FA6x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FA7x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FA8x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FA9x
| || || || || || || || || || || || || || || ||
|-
| colspan="17" style="background:#f8f8f8;{{text default color}};text-align:center" | '''CJK Unified Ideographs Components-B'''
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FAAx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FABx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FACx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FADx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FAEx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FAFx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FB0x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FB1x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FB2x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FB3x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FB4x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FB5x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FB6x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FB7x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FB8x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FB9x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FBAx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FBBx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FBCx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FBDx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FBEx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FBFx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FC0x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FC1x
| || || || || || || || || || || || || || || ||
|-
| colspan="17" style="background:#f8f8f8;{{text default color}};text-align:center" | ''Unassigned''
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FC2x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FC3x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FC4x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FC5x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FC6x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FC7x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FC8x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FC9x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FCAx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FCBx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FCCx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FCDx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FCEx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FCFx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FD0x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FD1x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FD2x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FD3x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FD4x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FD5x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FD6x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FD7x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FD8x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FD9x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FDAx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FDBx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FDCx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FDDx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FDEx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FDFx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FE0x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FE1x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FE2x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FE3x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FE4x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FE5x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FE6x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FE7x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FE8x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FE9x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FEAx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FEBx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FECx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FEDx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FEEx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FEFx
| || || || || || || || || || || || || || || ||
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FF0x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FF1x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FF2x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FF3x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FF4x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FF5x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FF6x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FF7x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FF8x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FF9x
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FFAx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FFBx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FFCx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FFDx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FFEx
| || || || || || || || || || || || || || || ||
|----- style="text-align:center;background:#777777;{{text default color}}"
!style="background:#ffffff;{{text default color}}"|2FFFx
| || || || || || || || || || || || || || ||style="background:#000000;color:white;"| ||style="background:#000000;color:white;"|
|----- style="background:#ccccff;{{text default color}}"
!U+||0||1||2||3||4||5||6||7||8||9||A||B||C||D||E||F
|}
{{:Unicode/Character/footer}}
mknzglpbl95ihtq9w7hecghdlqt5uin
Radiation Oncology/NSCLC/Palliation
0
88869
4674815
4093711
2026-10-07T08:30:19Z
Jcb
90773
4674815
wikitext
text/x-wiki
{{:Radiation Oncology/Lung/NSCLC:TOC}}
<big>'''NSCLC Palliation in Advanced Disease'''</big>
*Median survival 5–7 months; 20% can survive >1 year
==RT vs. Supportive Care==
*{{PMID|4170866}} -- "The survival of patients with inoperable lung cancer: a large-scale randomized study of radiation therapy versus placebo." (Roswit B, Radiology. 1968 Apr;90(4):688-97.)
**Modest prolongation (few weeks) in OS
==RT==
*Lot of randomized trials comparing various doses and fractionations
*RT dose does not appear to impact median survival, but higher dose results in higher 1-year OS
*Good ECOG status: longer schedules (30/10 up to 45/18) for better 1-year OS and longer palliation effects
*Poor ECOG status: shorter schedules (16/2, 20/5) reasonable
*Cochrane review: short schedules (1 or 2 fractions) should be used for most patients
*'''Australia''' 1984-1990 {{PMID|16432830}} -- "Unexpected long-term survival after low-dose palliative radiotherapy for non-small cell lung cancer." (MacManus MP, Cancer. 2006 Mar 1;106(5):1110-6.)
**Retrospective. 2337 patients, palliative RT to <=36 Gy
**Median survival of cohort 4.6 months; 1.1% survived progression-free >5 years.
**RT dose not a factor. Caution to consider doses to critical structures, since some patients do survive long-term
*'''Holland''' 1999-2002 {{PMID|15860852}} -- "Results of the Dutch National study of the palliative effect of irradiation using two different treatment schemes for non-small-cell lung cancer." (Kramer GW, J Clin Oncol. 2005 May 1;23(13):2962-70.)
**Multicenter randomized. 297 patients with IIIA/B, ECOG 3-4, substantial weight loss. RT 30/10 or 16/2. Outcome at 39 weeks
**Both arms equally effective over initial 39 weeks
**30/10 schedule more prolonged palliation, with less worsening of symptoms
**1-year OS: 30/10 20% vs. 16/2 11% (SS)
**Conclusion: 30/10 schedule preferred due to longer survival and longer duration of palliation
*'''Poland''' {{PMID|15770205}} -- " prospective, randomised study to compare two palliative radiotherapy schedules for non-small-cell lung cancer (NSCLC)" (Senkus-Konefka E, Br J Cancer. 2005 Mar 28;92(6):1038-45.)
**Randomized. 100 patients, median ECOG 2. RT 20/5 or 16/2 (day 1, 8)
**No difference in relief
**Median OS: 20/5 5.3 months vs. 16/2 8.0 months (SS)
**Conclusion: 16/2 useful, both improved survival and better convenience
*'''Edinburgh''' (UK) {{PMID|15714933}} -- "Symptom control and quality of life in people with lung cancer: a randomised trial of two palliative radiotherapy fractionation schedules." (Erridge SC, Clin Oncol (R Coll Radiol). 2005 Feb;17(1):61-7.)
**Randomized. 149 patients. ECOG 0-3. RT 30/10 vs. 10/1
**No statistical difference in relief, but more patients with complete resolution and palliation with 30/10
**Median OS: 5.5 months vs. 7 months (NS)
*'''Norway''' {{PMID|14990635}} -- "Hypofractionated palliative radiotherapy (17 Gy per two fractions) in advanced non-small-cell lung carcinoma is comparable to standard fractionation for symptom control and survival: a national phase III trial." (Sundstrom S, J Clin Oncol. 2004 Mar 1;22(5):801-10.)
**Randomized. 421 patients with Stage III/IV, chest symptoms or tumor threatening airway. RT A) 17/2 vs. B) 42/15 vs. C) 50/25
**QOL and symptom relief comparable. Median OS: comparable
**Conclusion: Long course RT no improvement over short-term RT
*'''NCIC CTG SC.15''' (Canada) {{PMID|12377323}} -- "Randomized phase III trial of single versus fractionated thoracic radiation in the palliation of patients with lung cancer (NCIC CTG SC.15)." (Bezjak A, Int J Radiat Oncol Biol Phys. 2002 Nov 1;54(3):719-28.)
**Randomized. RT 10/1 vs. 20/5
**No difference in symptom control at 1 month; 20/5 better for overall symptoms, pain, normal activities, and QOL. Comparable toxicity
**Median survival: 2 months longer with 20/5 (SS)
**Conclusion: no difference in palliation, but better QOL and survival with 20/5
*'''Saarland''' (Germany) 1994-1998 {{PMID|10924977}} -- "A palliative accelerated irradiation regimen for advanced non-small-cell lung cancer vs. conventionally fractionated 60 GY: results of a randomized equivalence study." (Nestle U, Int J Radiat Oncol Biol Phys. 2000 Aug 1;48(1):95-103.)
**Randomized. 152 patients with advanced Stage III or minimal Stage IV. Conventional RT 60/30 vs. accelerated RT 32/16 BID
**1-year OS: 37%, no difference
**Palliation adequate and comparable. Side effects comparable
**Short-term course preferable to standard 60/30
*'''Bristol''' (UK) {{PMID|9135893}} -- "Palliative radiotherapy for lung cancer: two versus five fractions." (Rees GJ, Clin Oncol (R Coll Radiol). 1997;9(2):90-5.)
**Randomized. 216 patients, RT 17/2 or 22.5/5
**No difference
*'''MRC''' (UK) 1989-1992 {{PMID|8814371}} -- "Randomized trial of palliative two-fraction versus more intensive 13-fraction radiotherapy for patients with inoperable non-small cell lung cancer and good performance status. Medical Research Council Lung Cancer Working Party." (Macbeth FR, Clin Oncol (R Coll Radiol). 1996;8(3):167-75.)
**Randomized. 509 patients. Inoperable, no mets, good performance status. Palliative (17/2) vs. intensive RT (39/13)
**Median survival: 7 months vs. 9 months; 1-year OS 31% vs. 36%.
**Conclusion: 17/2 more rapid palliative effect, but 39/13 longer survival
*'''Groote Schuur''' (South Africa) 1990-1993 {{PMID|8581393}} -- "Palliative radiation for stage 3 non-small cell lung cancer--a prospective study of two moderately high dose regimens." (Abratt RP, Lung Cancer. 1995 Oct;13(2):137-43.)
**Randomized. 84 patients with Stage III, WHO 0-2. RT 35/10 or 45/15
**Median OS: 8.5 months in both groups. No difference in response rate and esophagitis (23% vs. 41%, p=0.07)
*'''MRC''' (UK) {{PMID|1377484}} -- "A Medical Research Council (MRC) randomised trial of palliative radiotherapy with two fractions or a single fraction in patients with inoperable non-small-cell lung cancer (NSCLC) and poor performance status. Medical Research Council Lung Cancer Working Party." (No Authors, Br J Cancer. 1992 Jun;65(6):934-41.)
**Randomized. 235 patients. Main symptoms related to thoracic tumor, poor performance status. RT 17/2 or 10/1
**Palliation: comparable, ~50% cough, ~70% hemoptysis. Mean duration of palliation >50% of survival time. More dysphagia in 17/2
**Conclusion: 10/1 recommended for poor performance status
*'''MRC''' (UK) {{PMID|1705140}} -- "Inoperable non-small-cell lung cancer (NSCLC): a Medical Research Council randomised trial of palliative radiotherapy with two fractions or ten fractions. Report to the Medical Research Council by its Lung Cancer Working Party. (No Authors, Br J Cancer. 1991 Feb;63(2):265-70.)
**Randomized. 369 patients. Symptoms related to thoracic tumor. RT 17/2 (1 week apart) or conventional (30/10 or 27/6)
**Palliation: comparable, ~60% cough, ~80% hemoptysis. Median duration of palliation >50% of survival time
**No difference in survival. Recommend 17/2 given 1 week apart.
*'''Hong Kong''' 1981-1984 {{PMID|2452146}} -- "A randomized study on palliative radiation therapy for inoperable non small cell carcinoma of the lung." (Teo P, Int J Radiat Oncol Biol Phys. 1988 May;14(5):867-71.)
**Randomized. 291 patients to 45/18 vs 31.2/4 (once per week)
**Median OS: 5 months, no difference
**Palliation: 45/18 superior (71% vs. 54%, SS)
*'''RTOG 73-02''' (1973–79) {{PMID|2579938}}, 1985 — "Palliative radiotherapy for inoperable carcinoma of the lung: final report of a RTOG multi-institutional trial." Simpson JR et al. Int J Radiat Oncol Biol Phys. 1985 Apr;11(4):751-8.
**409 pts. T4 Any N, or Any N3 (now Stage IIIB). Palliative therapy. Randomized to 1) 30/10 fractions, 2) 40 Gy continuous course over 4 weeks, or 3) 40 Gy split course (as in 73-01).
**No difference in treatment arms. Palliation in 60%; 25% became symptom-free.
'''Review'''
*'''Cochrane, 2006''' {{PMID|17054152}} -- "Palliative radiotherapy regimens for non-small cell lung cancer." (Lester JF, Cochrane Database Syst Rev. 2006 Oct 18;(4):CD002143.)
**14 randomized trials reviewed.
**Results: No strong evidence that any regimen gives greater palliation
**Modest survival benefit (5% at 1 year, 3% at 2 years) with higher dose in patients with better KPS
**Toxicity: Some regimens associated with radiation myelitis
**Conclusion: Majority of patients should be treated with short palliation (1 or 2 fractions)
*'''2004''' {{PMID|15552805}} -- "Palliative percutaneous radiotherapy in non-small-cell lung cancer." (Budach W, Lung Cancer. 2004 Aug;45 Suppl 2:S239-45.)
**Review of 11 randomized trials (10 with survival data).
**Increase in total dose does not substantially prolong median survival, but results in significantly better 1-year survival
**ECOG >=3 do not benefit from higher doses, better ECOG patients do
**Poor ECOG or large distant tumor burden: 17/2 or 20/4 are appropriate
**Good performance status: total dose 30-45 Gy in 2.5-3.0 Gy/fx
*'''2003''' {{PMID|12714878}} -- "Palliative thoracic radiotherapy for non-small-cell lung cancer: a systematic review." (Toy E, Am J Clin Oncol. 2003 Apr;26(2):112-20.)
**Review of 12 randomized trials. RT used with palliative intent in ~25% of patients
**RT effective in controlling symptoms
**No strong evidence about doses, but higher doses lead to greater toxicity. Modest survival benefit with higher doses with good performance
**Recommend short course (1-2 fxs) unless good performance
==Timing of RT==
*For patients with minimal thoracic symptoms initially, can delay treatment until symptoms develop
*In one study, only 42% of delayed RT actually required RT prior to death
*'''Norway''' {{PMID|16094739}} -- "Immediate or delayed radiotherapy in advanced non-small cell lung cancer (NSCLC)? Data from a prospective randomised study." (Sundstrom S, Radiother Oncol. 2005 May;75(2):141-8.)
**Data from randomised fractionation trial. 407 patients. Symptomatic (S) and non-symptomatic patients retrospectively compared
**Non-symptomatic: better baseline characteristics, better survival (11.8 months vs. 6 months)
**Timing: baseline NS better, up to week 14 NS developed symptoms while S had symptom relief, after week 14 no difference
**Conclusion: immediate RT in patients with no symptoms does not prevent development of symptoms. Wait-and-see policy acceptable
*'''MRC''' (UK) 1992-1999 {{PMID|12202326}} -- "Immediate versus delayed palliative thoracic radiotherapy in patients with unresectable locally advanced non-small cell lung cancer and minimal thoracic symptoms: randomised controlled trial." (Falk SJ, BMJ. 2002 Aug 31;325(7362):465.)
**Randomized, multicenter. 230 patient with untreated NSCLC, minimal thoracic symptoms.
**RT immediately vs. when symptomatic. 17/2 or 10/1. In delayed group, 42% received RT prior to death. Median time to start 15 days vs. 125 days
**Primary outcome (alive, without symptoms at 6 months after randomization): 28% vs. 26% (NS). No difference in survival, activity, anxiety, depression. Adverse events more common in immediate group
**Conclusion: If minimally symptomatic, can delay until symptoms require treatment
==RT Side Effects==
*'''MRC Trials''' {{PMID|8814372}} -- "Radiation myelopathy: estimates of risk in 1048 patients in three randomized trials of palliative radiotherapy for non-small cell lung cancer. The Medical Research Council Lung Cancer Working Party." (Macbeth FR, Clin Oncol (R Coll Radiol). 1996;8(3):176-81.)
**Review of 3 MRC trials. 5 patients out of 1048. 3/524 patients with 17/2, 2/153 with 39/13 (could be random)
**Cord doses: alpha/beta <3 Gy, possibly ~2 Gy. Recommend not exceeding 48 Gy to spine
==RT Technique==
*'''Maastricht, 2006''' (Holland) {{PMID|16730089}} -- "Palliative chest irradiation in sitting position in patients with bulky advanced lung cancer." (Duisters C, Radiother Oncol. 2006 Jun;79(3):285-7. Epub 2006 May 26.)
**Some patients unable to lie down because of dyspnea. Sitting position technique developed.
==Chemo vs. "Supportive Care" (may include RT)==
'''Meta-Analysis'''
*'''NSCLC Collaborative Group; 2008''' {{PMID|18678835}} -- "Chemotherapy in addition to supportive care improves survival in advanced non-small-cell lung cancer: a systematic review and meta-analysis of individual patient data from 16 randomized controlled trials." (NSCLC Meta-Analyses Collaborative Group, J Clin Oncol. 2008 Oct 1;26(28):4617-25. Epub 2008 Aug 4.)
**Data from 2714 patients from 16 RCTs.
**Outcome: 1-year OS chemotherapy 29% vs. supportive care 20% (HR 0.77, SS). No clear effect on drugs used, or whether single or combination. No clear difference in benefit across subgroups
**Conclusion: Chemotherapy improves OS in all patients with advanced NSCLC
'''Paclitaxel'''
*'''Multicenter UK''' {{PMID|10880550}} -- "Randomized trial of paclitaxel plus supportive care versus supportive care for patients with advanced non-small-cell lung cancer." (Ranson M, J Natl Cancer Inst. 2000 Jul 5;92(13):1074-80.)
**Randomized. 157 with IIIB/IV with no prior chemo, ECOG 0-2. Paclitaxel IV q3w. Supportive care included RT (but not discussed)
**Median OS: paclitaxel 6.8 months vs. supportive care 4.8 months (SS); some aspects of QOL better
'''Cisplatin/etoposide'''
*'''Oslo''' (Norway) {{PMID|1849786}} -- "Symptomatic treatment versus combination chemotherapy for patients with extensive non-small cell lung cancer." (Kaasa S, Cancer. 1991 May 15;67(10):2443-7.)
**Randomized. 87 patients with inoperable extensive NSLCL. Cisplatin/etoposide vs. supportive care (including RT 42/15)
**OS: No difference at 10.5 months, but majority of patients crossed over on disease progression.
**Response rate: 21% vs. 42% (SS). Long-term survivors only if they received both
'''MIC (mitomycin, ifosfamide, cisplatin)'''
*'''MIC2''' (1988–96) (Birmingham, UK)
**Randomized. 351 patients with IIIB/IV to palliative care vs. palliative care + MIC
**'''1999''' {{PMID|10506617}} — "Mitomycin, ifosfamide, and cisplatin in unresectable non-small-cell lung cancer: effects on survival and quality of life." Cullen MH et al. J Clin Oncol. 1999 Oct;17(10):3188-94.
***Median OS: 6.7 months CT + PC vs. 4. 8 months PC alone (SS)
***Quality of Life: assessed in 134 patients from start of trial to week 6, showed improvement with chemotherapy and deterioration with standard treatment.
**'''2001''' {{PMID|11843243}} — "The benefits of chemotherapy in patient subgroups with unresectable non-small-cell lung cancer." Billingham LJ et al. Ann Oncol. 2001 Dec;12(12):1671-5.
***Subgroup analysis: OS benefit in patients with better performance status; palliation better but no OS benefit with poor performance status
==Anemia==
*'''Canada''' (2001–2003)
**Randomized. ''Stopped early due to unplanned safety analysis''. 70 patients assigned (out of 300 planned). NSCLC unsuitable for curative therapy, baseline Hgb <12.1 g/dL. Arm 1) placebo vs. Arm 2) Epo weekly to maintain Hgb 12-14 g/dL
**'''2007''' {{PMID|17312332}} -- "Randomized, double-blind, placebo-controlled trial of erythropoietin in non-small-cell lung cancer with disease-related anemia." (Wright JR, J Clin Oncol. 2007 Mar 20;25(9):1027-32. Epub 2007 Feb 20.)
***Outcome: at analysis, median OS placebo 4.2 months vs. Epo 2 months (SS)
***Conclusion: Decreased overall survival on unplanned safety analysis
==SBRT in Advanced Disease==
*'''Multi-Institutional MD Anderson; 2019''' {{PMID|31067138}} -- "Local Consolidative Therapy Vs. Maintenance Therapy or Observation for Patients With Oligometastatic Non-Small-Cell Lung Cancer: Long-Term Results of a Multi-Institutional, Phase II, Randomized Study." (Gomez DR, J Clin Oncol. 2019 Jun 20;37(18):1558-1565. doi: 10.1200/JCO.19.00201. Epub 2019 May 8.)
**Phase II randomized trial. Three institutions (MDACC, London Ontario, University of Colorado). 49 patients; trial stopped prematurely due to significant PFS benefit. Stage IV NSCLC, 3+ months of no progression on front-line systemic therapy. Arm 1) maintenance therapy/observation vs Arm 2) Local control with RT or surgery. Median F/U 3.2 years
**Outcome: Trial stopped early due to benefit. PFS observation/maintenance 4.4 months vs local control 14.2 months (SS). Over survival 17 months vs 41 months (SS). Survival after progression 9.4 months vs 38 months (SS).
**Conclusion: In these patients, local therapy prolonged PFS and OS
*'''Colorado; 2009''' (2005–2008) {{PMID|19373699}} -- "Is there a role for consolidative stereotactic body radiation therapy following first-line systemic therapy for metastatic lung cancer? A patterns-of-failure analysis." (Rusthoven KE, Acta Oncol. 2009;48(4):578-83.)
**Retrospective. 64 patients, measurable advanced stage NSCLC, first line systemic chemotherapy, 34 SBRT-eligible.
**Outcome: All patients progression local 64%, distant 9%, both 27%. SBRT-eligible 68%, 14%, 18%. Time to first progression if local 3.0 months vs if distant 5.7 months
**Conclusion: Predominant failure local. Increase in time-to-progression from SBRT could be 3 months
==Patient Preference==
*'''National University Hospital, Singapore; 2008''' {{PMID|19032397}} -- "Patients' preference for radiotherapy fractionation schedule in the palliation of symptomatic unresectable lung cancer." (Tang JI, J Med Imaging Radiat Oncol. 2008 Oct;52(5):497-502.)
**Prospective. 92 patients. Choice of palliative treatment schedule 17/2 vs 39/13. Radiation oncologist made final decision
**Outcome: Short schedule chosen by 45% vs long schedule 55%. Longer schedule chosen for longer survival (90%) and better tumor control (12%). Shorter schedule chosen for shorter duration (80%), cost (61%), and better symptom control (20%). Change of schedule, 56% of short course and 4% of long course had their treatment altered by the radiation oncologist. Nevertheless, 100% patients satisfied with their involvement
**Conclusion: Both schedules useful, nearly half patients felt longer survival not as important as shorter duration and lower cost
jnpfnok9whdr5sov1xxd6oy6ptpnvsl
Radiation Oncology/NSCLC/Locally Advanced Unresectable/RT Only
0
89220
4674807
3427695
2026-10-07T06:04:27Z
Jcb
90773
4674807
wikitext
text/x-wiki
{{:Radiation Oncology/Lung/NSCLC:TOC}}
:''See also:'' [[Radiation Oncology/Lung/NSCLC/Early Stage Inoperable|Early Stage RT alone]] (many of these trials included advanced stage patients also)
:''See also:'' [[Radiation Oncology/Lung/NSCLC/Palliation|Palliation]] section
==RT vs. Placebo==
*'''VA Lung Group (VALG)''' {{PMID|4170866}} -- "The survival of patients with inoperable lung cancer: a large-scale randomized study of radiation therapy versus placebo." (Roswit B, Radiology. 1968 Apr;90(4):688-97.)
**Randomized. 800 patients. Localized but inoperable KPS 80-100 33%, KPS 50-70 55%, Treated with: 1) RT, 2) placebo, 3) chemo
**RT: 90% treated with orthovolatage (200-260 kV), 10% with Cobalt-60. Target dose 40-50 Gy, but 33% received <40 Gy
**Median OS: RT 4.6 months vs. 3.7 months; 1-year survival: RT 18% vs. placebo 14% (p=0.05).
**Long-term survivors (top 25%): RT 10 monts vs. 7.6 months (SS)
**Conclusion: RT does not impact median OS, but improves long-term survival
==Dose and Fields==
*'''RTOG Review''' {{PMID|16015546}} -- "A review of radiation dose escalation trials for non-small cell lung cancer within the Radiation Therapy Oncology Group." (Bradley J, Semin Oncol. 2005 Apr;32(2 Suppl 3):S111-3.)
**Dose 60 Gy "standard" for the past 30 years; insufficient to control local disease
**RT alone: 83.8 Gy using 3D-CRT tolerable, 90.3 Gy excess mortality (from RTOG 93-11)
**RT with chemotherapy: maximum 70-74 Gy
*'''RTOG 93-11''' (1995–2001) -- dose escalation
**Phase I/II dose escalation. 176 patients. Stage I-III NSCLC, SCV LN+ excluded ( Prior chemotherapy allowed, concurrent chemotherapy not allowed. 3D treatment planning . GTV = primary tumor and enlarged LN. No elective nodal irradiation. PTV = GTV + 1 cm minimum; verified on fluoroscopy because of breathing motion. Dose prescribed to ICRU reference point within GTV, 93% isodose line to cover PTV, maximum PTV dose <=107%, no heterogeneity correction. Patients grouped based on V20 value using 2.15 Gy/fx:
***Group 1 (V20 <25%): 70.9/33 -> 77.4/36 -> 83.8/39 -> 90.3/42 (Stage I 53%, Stage III 38%)
***Group 2 (V20 25-36%): 70.9/33 -> 77.4/36 -> 83.8/39 (Stage I 21%, Stage III 75%) (''accrual stopped after 77.4 Gy due to opening of RTOG 0117'')
***Group 3 (V20 >36%): 64.5/30 -> 70.9/33 -> 77.4/36 (''accrual stopped after 2 patients'')
**'''2005''' {{PMID|15667949}} — "Toxicity and outcome results of RTOG 9311: a phase I-II dose-escalation study using three-dimensional conformal radiotherapy in patients with inoperable non-small-cell lung carcinoma." (Bradley J, Int J Radiat Oncol Biol Phys. 2005 Feb 1;61(2):318-28.) Minimum median F/U 13.4 months
***Acute toxicity: minimal. Group 1 had 9% Grade 3 pneumonitis at 90.3 Gy; Group 2 had 8% Grade 3 pneumonitis at 77.4 Gy. '''Acute dose-limiting toxicity not reached'''
***Late toxicity. Predictors for pulmonary toxicity: mean lung dose, V20
****'''Group 1''' had 13% Grade 3-5 lung and 6% Grade 3-5 esophageal toxicity (1 death of hemoptysis, 1 death of tracheoesophageal fistula) at 90.3 Gy; tolerable otherwise. '''Late dose-limiting toxicity at 90.3 Gy level.'''
****'''Group 2''' had 16% Grade 3-4 lung toxicity, and 4% esophagus toxicity. '''Late dose-limiting toxicity not reached.'''
***Outcome: 2-year LR 50-78% (but small individual group sizes); LR sole site 18%, component 38%. Elective nodal failure <10%
***Conclusion: For Group 1 (V20 <25%), 83.8 Gy safe; for Group 2 (V20 25-36%), 77.4 Gy safe using 2.15 Gy/fx
*'''RTOG 73-01''' (1973–78)
**447 pts. Unresectable Stage III (included T3N0). Randomized to 40 Gy split course (20 Gy in one week, 2 weeks rest, then 20 Gy in one week—total 4 weeks), 40 Gy continuous (over 4 weeks), 50 Gy, or 60 Gy. Included tumor + mediastinal + hilar LN. Used spinal cord block to limit dose to cord.
**{{PMID|6991092}}, 1980 (No abstract) — "A prospective randomized study of various irradiation doses and fractionation schedules in the treatment of inoperable non-oat-cell carcinoma of the lung. Preliminary report by the Radiation Therapy Oncology Group." Perez CA et al. Cancer. 1980 Jun 1;45(11):2744-53.
**{{PMID|6998937}}, 1980 (No abstract) — "Patterns of tumor recurrence after definitive irradiation for inoperable non-oat cell carcinoma of the lung." Perez CA et al. Int J Radiat Oncol Biol Phys. 1980 Aug;6(8):987-94.
**Update (1982): {{PMID|6286087}} (no abstract) — "Impact of irradiation technique and tumor extent in tumor control and survival of patients with unresectable non-oat cell carcinoma of the lung: report by the Radiation Therapy Oncology Group." Perez CA et al. Cancer. 1982 Sep 15;50(6):1091-9.
**Update (1987): {{PMID|3032394}} — "Long-term observations of the patterns of failure in patients with unresectable non-oat cell carcinoma of the lung treated with definitive radiotherapy. Report by the Radiation Therapy Oncology Group." Perez CA et al. Cancer. 1987 Jun 1;59(11):1874-81.
***Analysis of RTOG 73-01 and 73-02
**Conclusion: Determined 60 Gy in 2 Gy/fx to be optimal dose.
*'''MGH''' {{PMID|6263449}} 1972-1977 -- "Improved survival of patients with unresectable non-small-cell bronchogenic carcinoma by an innovated high-dose en-bloc radiotherapeutic approach." (Choi NC, Cancer. 1981 Jul 1;48(1):101-9.)
**Retrospective. 162 patients treated with RT. Initially 40-45 Gy small volume (AP/PA POP), evolved into 60-64 Gy large volume (Ap/PA POP plus AP-RPO-LPO) including regional lymphatics
**Survival: Median survival independent of dose and volume, long-term (2-year) survival dose and volume dependent (36% vs. 10%). Local control also dose dependent
**Failure: Squamous cell in primary/regional lymphatics, adeno in brain/bone
'''''Concomitant boost:'''''
*'''RTOG 83-12'''
**Phase I/II, T3-T4 NSCLC. Concomitant boost at 1.8 Gy/fx to 50.4 Gy (elective nodal). Primary tumor to 2.68 Gy/day to total of 75 Gy in 28 fx.
**{{PMID|7860394}} (1995)
==Hypofractionated==
*'''QW vs. QD'''
**150 patients (120 evaluable). Locally advanced. Randomized to 1) 60 Gy at 5 Gy x 12 once a week, or 2) 60 Gy at 2 Gy std fractions. Average f/u 3 years
**'''Final; 1988''' {{PMID|2839442}} -- "Once-a-week vs conventional daily radiation treatment for lung cancer: final report." (Slawson RG, 1: Int J Radiat Oncol Biol Phys. 1988 Jul;15(1):61-8.)
***Comparable OS: 59% QW vs 49% QD at 1 year, 29% QW vs 23% QD at 2 years. No difference in late toxicity
**'''Prelim; 1986''' {{PMID|3519551}} (1982–84) — "A prospective randomized trial comparing once-a-week vs daily radiation therapy for locally-advanced, non-metastatic, lung cancer: a preliminary report." Salazar OM et al. Int J Radiat Oncol Biol Phys. 1986 May;12(5):779-87.
***No difference in outcome.
==Hyperfractionation==
*'''RTOG 81-08''' - feasibility study
**120 pts. 1.2 Gy BID to 50.4 Gy - 74.4 Gy.
**Update: {{PMID|1650526}}, 1991
*'''RTOG 83-11''' (1983–87)
**848 pts. Unresectable Stage II-IV (without distant mets). 1.2 Gy BID to 60.0, 64.8, 69.6 Gy, 74.4 Gy or 79.2 Gy.
**{{PMID|2167952}}, 1990 — "A randomized phase I/II trial of hyperfractionated radiation therapy with total doses of 60.0 Gy to 79.2 Gy: possible survival benefit with greater than or equal to 69.6 Gy in favorable patients with Radiation Therapy Oncology Group stage III non-small-cell lung carcinoma: report of Radiation Therapy Oncology Group 83-11." Cox JD et al. J Clin Oncol. 1990 Sep;8(9):1543-55.
***Among 350 pts with good performance status, there was a dose response above 69.6 Gy (median 13.0 months; 2 yr OS 29%) significantly better than lower doses. No dose response above 69.6 Gy.
*'''Kraków''' (Poland) 1992-1996 {{PMID|10630160}} -- "[Radiotherapy for stage III, inoperable, asymptomatic small cell lung cancer. Final results of a prospective randomized study (240 patients)]" - [Article in French]. (Reinfuss M, Cancer Radiother. 1999 Nov-Dec;3(6):475-9.)
**Randomized. 240 Stage III asymptomatic patients. RT 50/25 vs. split course 20/5 + 20/5 after 4 weeks vs. delayed RT 20/5. No chemo.
**Median survival: 12 months vs. 9 months vs. 6 months (SS)
**Conclusion: conventional schedule best
==CHART==
*'''MRC CHART Trial''' (UK) 1990-1995
**Stage IA-IIIB (60% Stage III)
**Randomized 2:1. 563 patients to 1) 54 Gy in 1.5 Gy/fx TID continuously over 12 days vs 2) conventional 60 Gy in 2 Gy/fx over 30 days. No chemo. All non-operable, Stage III 61%, Stage I 30%. 81% Squamous cell.
**RT: Large volume (tumor, mediastinum, 1 cm margin, ipsilateral hilar LN, paratracheal LN, but not contralateral LN, max AP field 240 cm2) to either 37.5 Gy or 44 Gy, followed by boost (tumor, known LN, 1 cm margin) to 54 Gy or 60 Gy total
**Mature Update '''1999''' {{PMID|10577699}} -- "Continuous, hyperfractionated, accelerated radiotherapy (CHART) versus conventional radiotherapy in non-small cell lung cancer: mature data from the randomised multicentre trial. CHART Steering committee." (Saunders M, Radiother Oncol. 1999 Aug;52(2):137-48.)
***2-year OS: 30% (CHART) vs. 21% (22% reduction in RR, SS), 3-yr OS 20% vs 13%; Local control 2-yr: 23% vs. 16% (21% reduction in RR, SS), 3-yr: 17% vs 12%. 61% of deaths due to primary tumor, 21% of deaths due to mets.
***For squamous cell: 2-year OS: 33% vs. 20% (30% reduction in RR, SS), LC 27% reduction in RR
***No difference in late toxicity
**'''1997:''' {{PMID|9250182}} — "Continuous hyperfractionated accelerated radiotherapy (CHART) versus conventional radiotherapy in non-small-cell lung cancer: a randomised multicentre trial." Saunders M et al. Lancet. 1997 Jul 19;350(9072):161-5.
***Dysphagia occurred earlier in CHART, was more severe, but resolved. Severe dysphagia: 19% (CHART) vs 3%.
**'''1996:''' {{PMID|8664112}} — "Randomised multicentre trials of CHART vs conventional radiotherapy in head and neck and non-small-cell lung cancer: an interim report. CHART Steering Committee." Saunders MI et al. Br J Cancer. 1996 Jun;73(12):1455-62.
**Conclusion: CHART superior to conventional RT in both 2-year OS and local control
gndprvuqrsvvgfpq5v7f5fr0jyxblle
Radiation Oncology/NSCLC/Locally Advanced Unresectable/Induction-Chemo RT
0
91311
4674806
1732327
2026-10-07T06:03:11Z
Jcb
90773
4674806
wikitext
text/x-wiki
{{Radiation Oncology/Lung/NSCLC:TOC}}
*First benefit of chemotherapy in addition to RT was established by CALGB 8433 published in 1990 (Dillman)
*Overall, there appears to be a modest survival benefit with induction chemo followed by RT, in patients with good performance status and no weight loss.
*There is a significantly higher proportion of long term survivors and improved distal failure-free survival, but essentially no impact on local recurrence
*'''CALGB 30105''' -- Induction and concurrent carboplatin/paclitaxel vs. carboplatin/gemcitabine, RT 74 Gy
**Randomized Phase II. ''Closed prematurely after Arm 2 had high Grade 4-5 pulmonary toxicity.'' 69 patients. Stage IIIA-B NSCLC. Arm 1) Induction carboplatin AUC 6 + paclitaxel 225 mg/m2 followed by concurrent RT 74 Gy + carboplatin AUC 2 + paclitaxel 45 mg/m2 vs. Arm 2) carboplatin AUC 5 + gemcitabine 1000 mg/m2
**'''2008''' {{PMID|18487565}} -- "Randomized phase II trial of induction chemotherapy followed by concurrent chemotherapy and dose-escalated thoracic conformal radiotherapy (74 Gy) in stage III non-small-cell lung cancer: CALGB 30105." (Socinski MA, J Clin Oncol. 2008 May 20;26(15):2457-63.)
***Outcome: median OS carbo/taxol 2.0 years vs. carbo/gem 1.0 year; 1-year OS 67% vs. 50%
***Toxicity: grade 4-5 pulmonary toxicity 5% vs. 16% (8% death)
***Conclusion: Carboplatin/paclitaxel arm will be compared with standard RT in Phase III trial
*'''Big Lung Trial, 2005''' (UK) (1995-2001) {{PMID|16094738}} — "A randomised comparison of radical radiotherapy with or without chemotherapy for patients with non-small cell lung cancer: Results from the Big Lung Trial." Fairlamb D et al. Radiother Oncol. 2005;75(2):134-40.
**288 pts. Randomized to radical RT alone or sequential chemotherapy + radical RT. No surgery. Enrolled any pt eligible to receive radical RT (not limited by stage, ~70% III/IV). 3 cycles of chemotherapy q3week. Did not control for details of treatment. Chemotherapy was cisplatin-based, one of 4 types chosen by doctor. Could be given neoadjuvantly or adjuvantly (chosen by doctor, 60% induction, 40% concurrent). RT dose was most commonly 50-55 Gy in 20 fx (2.5-2.75 Gy/fx).
**Median OS: 13 vs. 13.2 months. OS 50% at 1 yr, 30% at 2 yr. No difference in OS or PFS between arms
*'''Seoul, 2002''' (Korea) {{PMID|12040280}} -- "A phase III randomized trial of combined chemoradiotherapy versus radiotherapy alone in locally advanced non-small-cell lung cancer." (Kim TY, Am J Clin Oncol. 2002 Jun;25(3):238-43.)
**Randomized. 89/101 patients unresectable IIIA/IIIB NSCLC. RT 60-65 Gy in 1.8-2Gy/fx +/- induction chemo (PEV - cisplatin, etoposide, vinblastine)
**Median OS: Combined 13.8 months vs. RT alone 8.5 months (NS); nonsquamous histology 14 vs. 3.6 months (SS); stage IIIB 11.1 months vs. 7.2 months (SS). "Low risk" (squamous, IIIA) long survival 18.3 vs. 20.8 months (NS)
**Conclusion: should use prognostic factors (histology, stage) to decide who gets chemo
*'''MIC-1''' (UK) (1988-96)
**446 patients. Inoperable NSCLC (inoperable IIIA/non-bulky IIIB). Randomized to RT +/- MIC chemotherapy (mitomycin, ifosfamide, cisplatin).
**'''2001''' {{PMID|11843243}} — "The benefits of chemotherapy in patient subgroups with unresectable non-small-cell lung cancer." Billingham LJ et al. Ann Oncol. 2001 Dec;12(12):1671-5.
***Subgroup analysis: OS benefit in patients with better performance status; palliation better but no OS benefit with poor performance status
**'''1999''' {{PMID|10506617}} — "Mitomycin, ifosfamide, and cisplatin in unresectable non-small-cell lung cancer: effects on survival and quality of life." Cullen MH et al. J Clin Oncol. 1999 Oct;17(10):3188-94.
***Median OS: 11.7 vs 9.7 months (NS).
***Note: OS benefit in MIC-2, which looked at palliative care +/- MIC in advanced patients
*'''RTOG 88-08/Intergroup''' (1989-92)
**458 pts. Stage II medically inoperable (6%) or unresectable IIIA and IIIB (94%). Randomized to 1) Standard RT (60 Gy), 2) induction cisplatin/vinblastine x2 months followed by standard RT (as in CALGB), or 3) hyperfractionated RT 69.6 Gy in 1.2 Gy BID. KPS >=70, weight loss <5%
**'''1995''' {{PMID|7707407}} — "Radiation Therapy Oncology Group (RTOG) 88-08 and Eastern Cooperative Oncology Group (ECOG) 4588: preliminary results of a phase III trial in regionally advanced, unresectable non-small-cell lung cancer." Sause WT et al. J Natl Cancer Inst. 1995 Feb 1;87(3):198-205.
***Conclusion: chemo/RT arm superior to other 2 arms. Median survival 13.8 months, 60% 1-yr OS vs 11.4m/46% and 12.3m/51%. Confirmed findings from CALGB/Dillman.
**'''2002''' Final results {{PMID|10669675}} [http://www.ncbi.nlm.nih.gov/entrez/utils/lofref.fcgi?PrId=3051&uid=10669675&db=pubmed&url=http://www.chestjournal.org/cgi/pmidlookup?view=long&pmid=10669675 Full text] — "Final results of phase III trial in regionally advanced unresectable non-small cell lung cancer: Radiation Therapy Oncology Group, Eastern Cooperative Oncology Group, and Southwest Oncology Group." Sause W et al. Chest. 2000 Feb;117(2):358-64.
***Median survival and 5-year OS, Std RT (11.4 m / 5%), Chemo/RT (13.2 m / 8%), HF RT(12 m / 6%).
**Failure patterns: {{PMID|9336129}} (1997): less distant mets for chemo/RT
**Trial conclusion: chemo/RT somewhat (SS) better OS; no difference between statndard and HF RT alone
*'''Le Chevalier''' (France) 1983-89
**Randomized. 353 pts, squamous or large cell only (no adeno), medically inoperable Stage I/II (33 pts) or unresectable (320 pts). Arms:
***RT alone (split course). RT dose 65 Gy (40+15+10 Gy; 2.5 Gy/fx)
***Neoadjuvant chemotherapy + RT + adjuvant chemotherapy. 3 cycles of monthly VCPC chemotherapy (vindesine, lomustine, cisplatin, cyclophosphamide), followed by same dose of RT, then 3 additional cycles of VCPC.
**{{PMID|1847977}} [http://jncicancerspectrum.oxfordjournals.org/cgi/content/abstract/jnci;83/6/417 Full text] — "Radiotherapy alone versus combined chemotherapy and radiotherapy in nonresectable non-small-cell lung cancer: first analysis of a randomized trial in 353 patients." Le Chevalier T et al. J Natl Cancer Inst. 1991 Mar 20;83(6):417-23.
***Survival 1-yr (41% RT vs 50% chemo/RT), 2-yr (14% vs 21%), 3-yr (5% vs 11%), trend p=0.08. Decreased risk of distant mets for chemotherapy arm (HR=2.0 for no chemo).
***Distant mets: 67% vs. 45% (SS)
**Update 1994: (Abstract) Lung Cancer, Volume 10 (Suppl 1), March 1994, S239-244.
***2-yr OS 14% vs 21% (S.S.). Decreased distant mets. 1-yr LC poor: 17% and 15%.
**Trial conclusion: No difference in survival. Improved control of distant mets with chemotherapy. No difference in local control.
*'''NCCTG''' (1983-87) {{PMID|1656827}} — "Thoracic radiation therapy alone compared with combined chemoradiotherapy for locally unresectable non-small cell lung cancer. A randomized, phase III trial." Morton RF et al. Ann Intern Med. 1991 Nov 1;115(9):681-6.
**Randomized. 121 pts. Unresectable Stage III. RT to 60 Gy. MACC is methotrexate, doxorubicin, cyclophosphamide, and oral lomustine(CCNU). Randomized:
***1) RT alone
***2) 2 cycles MACC -> RT -> 2 cycles MACC
**No benefit
*'''CALGB 8433 (Dillman)''' (1984-87)
**Randomized. 155 patients. T3 or N2 (Stage III, which is currently IIIA or IIIB). Induction chemo followed by RT vs RT alone. Chemotherapy: cisplatin (100 mg/m2) q28 days x 2, vinblastine weekly x 5. XRT began on day 50 to 60 Gy. KPS >=80, weight loss <5%
**{{PMID|2169587}}, 1990 — "A randomized trial of induction chemotherapy plus high-dose radiation versus radiation alone in stage III non-small-cell lung cancer." Dillman RO et al. N Engl J Med. 1990 Oct 4;323(14):940-5.
***Median survival 13.8 months (chemo + RT) vs 9.7 months (SS). OS 1-year 55% vs 40%, 2-year 26% vs 13%, 3-yr 23% vs 11%
**Update 1996: {{PMID|8780630}} [http://jncicancerspectrum.oxfordjournals.org/cgi/content/abstract/jnci;88/17/1210 Full text] — "Improved survival in stage III non-small-cell lung cancer: seven-year follow-up of cancer and leukemia group B (CALGB) 8433 trial." Dillman RO et al. J Natl Cancer Inst. 1996 Sep 4;88(17):1210-5.
***Median survival 13.7 vs 9.6 months (SS). OS 1-year 54% vs 40%, 2-year 26% vs 13%, 3-yr 24% vs 10%, 5-yr 17% vs 6%, 7-yr 13% vs 6%.
**Trial conclusion: chemo induction + RT increases median survival by 50%, and 5-year survivors x3 compared to RT alone
*'''Finland''' {{PMID|2838288}} — "Inoperable non-small cell lung cancer: radiation with or without chemotherapy." Mattson K et al. Eur J Cancer Clin Oncol. 1988 Mar;24(3):477-82.
**238 pts. Unresectable. RT was split course and consisted of 55 Gy (275 cGy x 20) over 7 weeks with a 3 week break. Chemotherapy was CAP (cyclophosphamide, adriamycin, cisplatin). Randomized:
***1) RT alone
***2) CAP x 2 cycles -> RT (with 1 cycle CAP given during split) -> CAP x 6 cycles
**Conclusion: no significant survival advantage for chemo/RT
a8xqw2ft4swi1a0yz17xg8k3zkx4szl
Radiation Oncology/NSCLC/Locally Advanced Unresectable/Concurrent-Chemo RT
0
91316
4674805
2174449
2026-10-07T06:01:53Z
Jcb
90773
4674805
wikitext
text/x-wiki
{{Radiation Oncology/Lung/NSCLC:TOC}}
<u>'''Concurrent Chemo-RT'''</u>
==Standard RT==
*'''RTOG 94-04''' (1994-1998) {{PMID|11955727}} -- "A phase III comparison of radiation therapy with or without recombinant beta-interferon for poor-risk patients with locally advanced non-small-cell lung cancer (RTOG 93-04)." (Bradley JD, Int J Radiat Oncol Biol Phys. 2002 Apr 1;52(5):1173-9.)
**Randomized. 123 patients, poor status (KPS 50-70, or weight loss >5%). RT 60/30 +/- Betaseron (recombinant human interferon beta). Median F/U 4 years
**Median OS: 9.5 months vs. 10.3 months (NS), 1-year OS: 44% vs. 42% (NS)
**Toxicity: only 76% completed Betaseron arm due, primarily noncompliance for toxicity. Grade 3/4 toxicity (lung, esophagus) worse in betaseron arm (SS), including 1 death
**Conclusion: Failed; same outcome, much worse toxicity with beta interferon
*'''Australia, 1999''' 1989-1995 {{PMID|10577698}} -- "A randomised phase III study of accelerated or standard fraction radiotherapy with or without concurrent carboplatin in inoperable non-small cell lung cancer: final report of an Australian multi-centre trial." (Ball D, Radiother Oncol. 1999 Aug;52(2):129-36.)
**Phase III. 204 with inoperable NSCLC randomized to 1) 60/30 in 6 weeks (R6), 2) 60/30 in 3 weeks (R3), 3) R6 + concurrent carboplatin, or 4) R3 + concurrent carboplatin
**No difference in OS among groups.
**Toxicity: hematologic greater with chemo, esophageal greater with ART (R3)
**Critique {{PMID|11258343}}: underpowered for 2x2 design. ART hazard ratio 0.86 (0.56, 1.30), which is consistent with CHART trial results (0.78, SS). Recommend not sacrificing dose intensification at expense of concurrent chemotherapy
*'''Indiana, 1995''' {{PMID|7751888}} -- "Phase III trial of thoracic irradiation with or without cisplatin for locally advanced unresectable non-small-cell lung cancer: a Hoosier Oncology Group protocol." (Blanke C, J Clin Oncol. 1995 Jun;13(6):1425-9.)
**Randomized. 215/240 patients, Stage III or lower Stage unresectable. Treated 1) RT 60-65 Gy vs. 2) RT + cisplatin 70 mg/m2 q3 weeks x3 cycles concurrent
**Median OS: 10.7 months vs. 11.5 months (NS). 1-year, 2-year, 5-year OS: 43% vs. 45%, 18% vs. 13%, 5% vs. 2% (NS)
**Conclusion: No difference
*'''EORTC'''
**Randomized Phase III. 1) Split-course RT alone (30/10, 3 week rest, 25/10), 2) Split-course RT + 30mg/sqm cisplatin weekly, 3) Split-course RT + 6mg/sqm daily
**'''1992''' {{PMID|1310160}} -- "Effects of concomitant cisplatin and radiotherapy on inoperable non-small-cell lung cancer." (Schaake-Koning C, N Engl J Med. 1992 Feb 20;326(8):524-30.)
***Surival: 1-year RT + daily cisplatin 54% vs. RT alone 46%, 2-years RT + daily cisplatin 26% vs. RT alone 13%, 3-years RT + daily cisplatin 16% vs. RT alone 2%. RT + weekly cisplatin intermediate.
***Benefit due to better local control: 1-year RT + daily cisplatin 59% vs. RT alone 41%, 2-year RT + daily cisplatin 31% vs. RT alone 19%
***Substantial side effects: cisplatin 78% N/V, severe in 28%
***Conclusion: Survival and local control benefit, at cost of severe side-effects
**'''1990''' {{PMID|2170309}} — "Radiotherapy combined with low-dose cis-diammine dichloroplatinum (II) (CDDP) in inoperable nonmetastatic non-small cell lung cancer (NSCLC): a randomized three arm phase II study of the EORTC Lung Cancer and Radiotherapy Cooperative Groups." (Schaake-Koning C et al. Int J Radiat Oncol Biol Phys. 1990 Oct;19(4):967-72.)
***Randomized Phase II. 100 pts. Inoperable. Randomized to 1) Split-course RT alone, 2) Split-course RT with weekly low-dose cisplatin, or 3) Split-course RT with daily cisplatin.
***The 1 and 2-yr OS were 38% and 14% (RT alone), 49% and 17% (weekly cisplatin), and 50% and 32% (daily cisplatin).
***Conclusion: supports the addition of chemotherapy. Study converted to Phase III.
*'''GOCCNE 1992''' (Italy) (1987-1991) {{PMID|1324895}} -- "Radiotherapy versus radiotherapy enhanced by cisplatin in stage III non-small cell lung cancer." (Trovo MG, Int J Radiat Oncol Biol Phys. 1992;24(1):11-5.)
**Randomized. 173 patients. RT 45/15 vs. RT 45/15 + platinum 6mg/m2 daily
**Median OS: 10.3 vs. 10.0, time-to-progression: 10.6 vs. 14.2 months (NS)
**Toxicity: acceptable
**Conclusion: no benefit
*'''Milan 1988''' (1986-1987) {{PMID|2851172}} -- "A randomized clinical trial comparing radiation therapy v radiation therapy plus cis-dichlorodiammine platinum (II) in the treatment of locally advanced non-small cell lung cancer." (Soresi E, Semin Oncol. 1988 Dec;15(6 Suppl 7):20-5.)
**Randomized. 95 patients with IIIA/B to 1) RT 50 Gy vs. 2) RT 50 Gy + platinum 15mg/m2 qw
**Median OS: 11 months vs. 16 months (NS), PFS 7 months vs. 9 months (NS)
**LR rate: 46% vs 27% (SS); platinum seen as RT potentiator
**Mild toxicity
**Conclusion: no benefit
==Hyperfractionated RT==
*'''1996 Kragujevac - Jeremic II''' (Yugoslavia) 1990-1991 {{PMID|8648358}} -- "Hyperfractionated radiation therapy with or without concurrent low-dose daily carboplatin/etoposide for stage III non-small-cell lung cancer: a randomized study." (Jeremic B, J Clin Oncol. 1996 Apr;14(4):1065-70.)
**Randomized. 131 patients with Stage III NSCLC, KPS >=50 treated with 1) Hfx RT 69.6 Gy in 1.2 Gy/fx BID, 2) Hfx RT + carboplatin/etoposide daily
**OS: median 14 months vs. 22 months (SS), 4-year OS: 9% vs. 23% (SS)
**Recurrence: 4-year LR 19% vs. 42% (SS), distant mets comparable
**Toxicity comparable
**Conclusion: combined modality better
*'''1995 Kragujevac - Jeremic I''' {{PMID|7844608}} -- "Randomized trial of hyperfractionated radiation therapy with or without concurrent chemotherapy for stage III non-small-cell lung cancer." (Jeremic B, J Clin Oncol. 1995 Feb;13(2):452-8.)
**Randomized. 169 pts. Stage III NSCLC treated with 1) Hfx RT 64.8 Gy in 1.2 Gy/fx BID, 2) Hfx RT + carboplatin/etoposide weekly, 3) Hfx RT + carboplatin/etoposide every other week
**OS: median 8 months vs. 18 months vs. 13 months. (SS). 3-year OS: 7% vs. 23% vs. 16%
**Recurrence: best in group 2.
**Toxicity: higher in group 2,3 but no deaths
**Conclusion: combination therapy better
*'''2005 Kragujevac''' (Serbia) {{PMID|15718310}} -- "Concurrent hyperfractionated radiotherapy and low-dose daily carboplatin and paclitaxel in patients with stage III non-small-cell lung cancer: long-term results of a phase II study." (Jeremic B, J Clin Oncol. 2005 Feb 20;23(6):1144-51.)
**Phase II. 64 patients treated with Hfx RT (67.6 Gy in 1.3 Gy/fx BID) and concurrent carboplatin + paclitaxel
**Response rate: CR 42%, PR 41%, SD 16%, PD 2%
**Survival: median OS 28 months, 3-year OS 37%, 5-year OS 26%. Local control 3-year 37%, 5-year 33%
**Toxicity (Grade 3+): hematologic 25%, esophageal 17%, pulmonary 13%
**Conclusion: Results among best reported, warrants prospective evaluation
==Dose Escalation==
*'''RTOG 0617 (ongoing)''' - Phase III. 4 arm randomization. 60 Gy vs 74 Gy. Concurrent RT + Carbo/Taxol +/- Cetuximab.
**Arms B and D (the two 74 Gy arms) were closed in 6/2011 after an interim analysis showed the high dose arms crossed a futility boundary. The trial will continue to accrue the 60 Gy arms A and C.
**See details at [[Radiation Oncology/NSCLC/Locally Advanced Unresectable]]
*'''RTOG 0117''' (closed)
**Phase I/II. Stage I-IIIB NSCLC. RT + concurrent paclitaxel 50 mg/m2 + carboplatin AUC 2. Arm I 75.25/35 (17 patients) -> MTD (acute Grade 5 pneumonitis, acute Grade 3 pneumonitis; also late Grade 3 pneumonitis and Grade 4 pain) -> de-escalated to 74/37 + concurrent carbo/taxol.
**See details at [[Radiation_Oncology/NSCLC/Early_Stage_Inoperable#Dose escalation]]
==Chemo Meta-analysis==
*'''Gustave-Roussy'''
**'''2006''' {{PMID|16500915}} -- "Concomitant radio-chemotherapy based on platin compounds in patients with locally advanced non-small cell lung cancer (NSCLC): a meta-analysis of individual data from 1764 patients." (Auperin A, Ann Oncol. 2006 Mar;17(3):473-83.)
***12 trials found, 9 trials data available (1764 patients) comparing RT alone vs RT with concurrent cisplatin or carboplatin. Median f/u 7.2 years
***2-year OS: 4% absolute benefit to CRT (HR 0.89)
***Platin + etoposide more effective than platin alone
**'''2010''' {{PMID|20351327}} -- "Meta-Analysis of Concomitant Versus Sequential Radiochemotherapy in Locally Advanced Non–Small-Cell Lung Cancer." (Auperin A, J Clin Oncol 2010 May 1;28(13):2181-2190.)
***7 trial found, 6 trials data available (1205 patients) comparing concomitant vs sequential chemo/RT.
***OS: benefit for concomitant chemo/RT, 5.7% absolute benefit at 3 years and 4.5% at 5 years (HR 0.84)
***Decreased locoregional progression (HR 0.77). No difference in distant progression.
***Increase in acute gr 3-4 esophageal toxicity from 4% to 18%. No difference in acute lung toxicity
***Conclusion: increased survival with concurrent chemo/RT most likely due to decreased locoregional failure
*'''Non-small Cell Lung Cancer Collaborative Group''' 1995 {{PMID|7580546}} — "Chemotherapy in non-small cell lung cancer: a meta-analysis using updated data on individual patients from 52 randomised clinical trials." BMJ. 1995 Oct 7;311(7010):899-909.
cyjnfzqfg7b382rjb6jop0f7oqu0ti3
Radiation Oncology/NSCLC/Screening
0
97873
4674821
3136467
2026-10-07T08:42:08Z
Jcb
90773
4674821
wikitext
text/x-wiki
{{:Radiation Oncology/Lung/NSCLC:TOC}}
==Screening==
*'''National Lung Screening Trial''' (2002-2004)
**'''2011''' {{PMID|21714641}} [http://www.nejm.org/doi/full/10.1056/NEJMoa1102873 Full Text] -- "Reduced Lung-Cancer Mortality with Low-Dose Computed Tomographic Screening" (NEJM. 2011 Aug 4;365(5):395-409.)
***Randomized. 53,454 persons, between 55 and 74 year of age, at high risk for lung cancer, randomly assigned to undergo three annual screenings with either low-dose CT or single-view posteroanterior chest radiography.
***Outcome: Rate of positive screening tests: 24.2% (low-dose CT) vs. 6.9% (radiography); False positive: 96.4% vs. 94.5%; Diagnosis: 645 cases per 100,000 person-years vs. 572 per 100,000 person-years (rate ratio 1.13, 95%CI: 1.03 to 1.23); 20.0% (SS) relative reduction in mortality from lung cancer with low-dose CT screening.
***Conclusion: Screening with the use of low-dose CT reduces mortality from lung cancer.
**'''2013''' - Incidence -- {{PMID|24004119}} -- "Results of the two incidence screenings in the National Lung Screening Trial." (Aberle DR, N Engl J Med. 2013 Sep 5;369(10):920-31.)
**'''2013''' - Initial LDCT -- {{PMID|23697514}} -- "Results of initial low-dose computed tomographic screening for lung cancer." (National Lung Screening Trial Research Team, N Engl J Med. 2013 May 23;368(21):1980-91.)
***Positive screening test: LDCT 27% vs X-ray 9%; lung cancer diagnosis 1.1% vs 0.7%. Sensitivity and specificity LDCT 94% and 73% vs x-ray 73% and 91%
***Conclusion: Initial screening result suggest reduction in mortality is achievable
*'''Multi-Institutional, 2007''' {{PMID|17341709}} -- "Computed tomography screening and lung cancer outcomes." (Bach PB, JAMA. 2007 Mar 7;297(9):953-61.)
**Retrospective. 3246 asymptomatic current or former smokers, annual CT screening, began in 1998. 3 institutions (Milan, Mayo, Moffitt)
**Outcome: Diagnosis: 144 patients vs. 44 expected (RR 3.2, SS); lung resection 109 vs. expected 11 (RR 10.0, SS); advanced cases 42 vs. expected 33 (NS); deaths 38 vs. expected 39 (NS)
**Conclusion: Screening increases rate of diagnosis and treatment, but may not reduce death from lung cancer
**[http://www.nytimes.com/2007/03/13/science/13lung.html?ex=1184644800&en=4ee8b24fa7429fba&ei=5070 NY Times commentary], -- "How Two Studies on Cancer Screening Led to Two Results" (Welch GH, NY Times, March 13, 2007). Interpretation of these two trials. Significant controversy over this point [http://jco.ascopubs.org/cgi/content/full/25/36/5695 JCO Comment]
*'''The International Early Lung Cancer Action Program (I-ELCAP)''' (1993-2005) - {{PMID|17065637}} — "Survival of Patients with Stage I Lung Cancer Detected on CT Screening." Henschke CI et al. NEJM. 2006 Oct 26;355(17):1763-1771.
**31,567 pts. Screening annually using low-dose CT.
**484 lung cancers detected. 85% had Stage I. Of those Stage I pts, 10-year survival rate was 88% (92% for those who underwent surgical resection).
**Conclusion: Annual CT screening can detect lung cancer that is curable.
**Comment: Interpretation of survival data only in those screened positive. Concern about lead-time and length bias, since those patients diagnosed earlier may live longer (longer survival) but have same death rate nonetheless. Not clear who should be screened.
*'''Dutch Belgian Randomised Lung Cancer Screening Trial (NELSON)''' (2002 - Ongoing) [http://www.trialregister.nl/trialreg/admin/rctview.asp?TC=636 Registry]
**Randomised trial comparing spiral CT screening vs. observation in high risk individuals for decreasing disease specific mortality.
**Results expected 2011
==Work-Up of Pulmonary Nodules==
*'''Mass General Hospital, 2007''' {{PMID|17544146}} -- "Evaluating pulmonary nodules." (Miller JC, J Am Coll Radiol. 2007 Jun;4(6):422-6.)
**Review. Algorithm described:
**Compare current study with old study (CXR or CT). If growth, biopsy
**If no old study, do CT. If benign calcification or fat, no action
**If nodule on CT:
***If immunocompromised or fever, consider short (4-6 week) follow up or biopsy
***If history of malignancy, consider follow-up CT (3, 6, 12 months)
***Otherwise, look at size:
****If <=4mm, repeat CT (timing depends on age). If growth, biopsy
****If 4-8mm, repeat CT (timing depends on age). If growth, biopsy
****If >8mm, biopsy or PET
*'''Indiana University, 2006''' {{PMID|16567482}} -- "The solitary pulmonary nodule." (Winer-Muram HT, Radiology. 2006 Apr;239(1):34-49.)
**Review. Solitary pulmonary nodule defined as round/oval opacity <3cm diameter, surrounded by pulmonary parenchyma, not associated with lymphadenopathy, atelectasis, or pneumonia
**Most lesions: granulomas, hamartomas, or lung cancer
**<u>Size</u>: nodules approaching 3cm likely malignant, nodules <1cm likely benign
**<u>Location</u>: RUL most common location of cancer. 70% of lung CA in upper lobes
**<u>Calcification</u>: typically benign, unless history of bone malignancy
**<u>Fat</u>: typically benign, unless history of renal cell or liposarcoma
**<u>Imaging features</u>: consider attenuation, air bronchograms, margin, and cavitation; however, significant overlap in features
**<u>Growth rate</u>: If no change over 2 years, can consider benign
**<u>PET</u>: Best test to determine malignancy in lesions >1cm
3et7lq08xvb9ops22m2r7lqjrw85ywj
Radiation Oncology/Online tools
0
98655
4674831
4086191
2026-10-07T09:21:41Z
Jcb
90773
4674831
wikitext
text/x-wiki
{{Radiation Oncology:TOC}}
<big>'''Online Tools'''</big>
==Radiobiology==
'''''Linear Quadratic / BED / EQD Calculators:'''''
*[http://kccrc.org/calculator/ 2 Gray Equivalent Calculator] (Kathmandu, Nepal)
**Gives 2 Gy equivalent dose at different α/β.
*Site down: <s><nowiki>http://www.radiotherapy.com/calculate</nowiki> Radiotherapy Dose Calculator (radiotherapy.com)</s> - BED, alpha-beta calculator (Java applet) <!-- Down as of 8/16/2013: domain radiotherapy.com now owned by Novalis Radiosurgery -->
*[http://rbapp.dtsang.ca/ RBApp] - BED, EQD2, alpha-beta calculator (Web App, Android, BlackBerry)
*[http://www.sfjro.fr/ilq/en/ilq.html?checkbox=1 eLQ] - linear quadratic calculator
'''''Brachytherapy:'''''
*See "calculation tools" at: [[Radiation_Oncology/Cervix/Brachytherapy#Equivalent_doses]]
**e.g. HDR vs LDR BED calculations
==Cancer: General==
*[http://www.mskcc.org/mskcc/html/5794.cfm Memorial Sloan Kettering Nomograms]
*[http://www.lerner.ccf.org/qhs/risk_calculator.php Cleveland Clinic Risk Calculators]
*[http://www.adjuvantonline.com/ Adjuvant Online] (account required)
==Cancer: Site Specific==
'''''Bladder Cancer'''''
*[http://www.mskcc.org/mskcc/html/73854.cfm MSKCC Bladder Survival After Surgery]
'''''Breast Cancer'''''
*'''Ipsilateral Breast Tumor Recurrence'''
**'''Invasive Disease'''
***'''IBTR!'''- https://www.tuftsmedicalcenter.org/ibtr/
****10-year prediction of ipsilateral breast cancer recurrence after BCS and axilla evaluation, with and without RT
****'''2010:''' {{PMID|20048188}} -- "Validation of a Web-Based Predictive Nomogram for Ipsilateral Breast Tumor Recurrence After Breast Conserving Therapy." (Sanghani M, JCO)
***'''IBR''' - http://research.nki.nl/ibr/ibr/index.html
****10-yr prediction of ipsilateral breast recurrence free probability for RT w/ or w/o boost.
****'''2011:''' {{PMID|21821304}} -- "Nomogram to predict ipsilateral breast relapse based on pathology review from the EORTC 22881-10882 boost versus no boost trial." (van Werkhoven, RO)
**'''DCIS'''
***'''MSKCC DCIS Recurrence Calculator''' - http://nomograms.mskcc.org/Breast/DuctalCarcinomaInSituRecurrencePage.aspx
****Estimates 5 and 10 yr risks of ipsilateral recurrence after lumpectomy and different adjuvant therapy choices (eg RT, endocrine therapy)
****'''2010:''' {{PMID|20625132}} -- "Nomogram for predicting the risk of local recurrence after breast-conserving surgery for ductal carcinoma in situ." (Rudloff, JCO)
*'''Risk of Positive Nodes'''
**'''Probability of Finding Additional Positive Nodes AFTER Sentinel Lymph Node Biopsy (SLNBx)''':
***'''MSKCC Additional Node Nomogram''' - http://nomograms.mskcc.org/Breast/BreastAdditionalNonSLNMetastasesPage.aspx
****Predicts probability of finding more positive nodes on completion axillary dissection after positive SLNBx.
****'''2003''': {{PMID|14654469}} -- A nomogram for predicting the likelihood of additional nodal metastases in breast cancer patients with a positive sentinel node biopsy." (Van Zee, ASO)
***'''MDACC Additional Nodes WITHOUT Neoadjuvant Chemotherapy''' - http://www3.mdanderson.org/app/medcalc/bc_nomogram2/index.cfm?pagename=nsln
****Predicts probability of finding more nodes on completion axillary dissection after positive SLNBx in patients who have NOT received neoadjuvant chemotherapy.
****'''2010:''' (Mittendorf, SABC)
***'''MDACC Additional Nodes AFTER Neoadjuvant Chemotherapy''' - http://www3.mdanderson.org/app/medcalc/bc_nomogram/index.cfm?pagename=nsln
****Predicts probability of finding more nodes on completion axillary dissection after positive SLNBx in patients who have received neoadjuvant chemotherapy.
****'''2008:''' {{PMID|18442039}} -- "Factors Predicting Additional Disease in the Axilla in Patients with Positive Sentinel Nodes after Neoadjuvant Chemotherapy." (Jeruss, Cancer)
****
*'''Breast Cancer Risk Assessment Tool''' (NCI) - risk of developing breast cancer
**[http://www.cancer.gov/bcrisktool/Default.aspx link]
'''''Cholangiocarcinoma'''''
*[http://skynet.ohsu.edu/nomograms/postrt/ehcc.html Oregon: Extrahepatic cholangiocarcinoma, post-op RT]
'''''Colon Cancer'''''
*[http://www.mskcc.org/mskcc/html/83364.cfm MSKCC Colon Cancer DFS After Surgery]
'''''Glioblastoma'''''
*[http://www.eortc.be/tools/gbmcalculator/ EORTC Calculator]
'''''Gallbladder'''''
*[http://skynet.ohsu.edu/nomograms/postcrt/gallbladder.html Oregon Adjuvant RT]
'''''Lung Cancer'''''
*[http://www.mskcc.org/mskcc/html/12463.cfm MSKCC Lung Cancer Risk After Smoking]
*[http://skynet.ohsu.edu/nomograms/postrt/oral.html Oregon Adjuvant RT for NSCLC]
'''''Oral Cavity Cancer'''''
*[http://rcc.simpal.com/RCEval.cgi?Owner=arrigas@ccf.org&RCName=Oral Cleveland Clinic Locoregional RFS] - probability of 5-year LRRFS after surgery
*[http://skynet.ohsu.edu/nomograms/postrt/oral.html Oregon Post-op RT]
'''''Pancreas'''''
*[http://skynet.ohsu.edu/nomograms/postcrt/pancreatic.html Oregon Adjuvant RT]
'''''Renal Cell'''''
*Please see the [[Radiation_Oncology/Kidney#Nomograms|renal cell carcinoma]] page
'''''Prostate'''''
*[http://www.mskcc.org/mskcc/html/10088.cfm MSKCC Prostate Cancer Nomograms - multiple outcomes]
*PSA doubling time calculator:
**[http://www.rtog.org/ClinicalTrials/CalculationofPSADoublingTimePSADT.aspx RTOG] - opens Excel spreadsheet
**[http://www.medicine.mcgill.ca/epidemiology/joseph/publications/Methodological/bellera.pdf Bellera (PDF)] - graph paper method
*[https://psacalc.sph.umich.edu/ University of Michigan PSACalc] - see {{PMID|19014779}} "Determinants of Change in Prostate-Specific Antigen Over Time and Its Association With Recurrence After External Beam Radiation Therapy for Prostate Cancer in Five Large Cohorts." (Proust-Lima C, Int J Radiat Oncol Biol Phys. 2008 Nov 1;72(3):782-91)
*[http://palpable-prostate.blogspot.com/2007/03/psa-doubling-time-psadt-part-2.html The Palpable Prostate blog] - PSA Doubling Time. Provides a number of links to doubling time calculators
*[http://www.doubling-time.com/compute-PSA-doubling-time.php Doubling Time] - by Roth V. - Graphs (linear) and computes doubling time
*[http://www.prostatecancerwatchfulwaiting.co.za/PSACalculator.xls prostatecancerwatchfulwaiting.co.za] - Excel spreadsheet. PSA Calculator. Graphs semi-log but only graphs PSA values > 1.0.
'''''Sarcoma'''''
*[http://www.mskcc.org/mskcc/html/6181.cfm MSKCC Sarcoma Survival After Surgery]
==Patient information==
'''''Cancer Survivorship'''''
*'''[http://oncolink.org/oncolife/ OncoLife] - University of Pennsylvania'''
**Create individualized survivorship plans of care based on the Institute of Medicine recommendations for cancer survivors.
'''''About Radiation Oncology'''''
*'''[http://www.rtanswers.org RT Answers] - American Society for Radiation Oncology (ASTRO)'''
**Information on radiation therapy written for patients by physicians and other members of the radiation oncology treatment team.
qx5evkz9eoh0p83ukbcb6yfs57krp6i
Wikibooks:Reading room/Technical Assistance
4
112409
4674726
4673447
2026-10-06T13:34:41Z
ShakespeareFan00
46022
Attempting to solve lints - Please ignore the notification this edit generated.
4674726
wikitext
text/x-wiki
__NEWSECTIONLINK__ {{Discussion Rooms}} {{Shortcut|WB:TECH}} {{TOC left}}
{{User:MiszaBot/config
|archive = Wikibooks:Reading room/Archives/%(year)d/%(monthname)s
|algo = old(50d)
|counter = 1
|minthreadstoarchive = 1
|key = bf05448a5bbfa2d2a4efbdad870e68a4
|minthreadsleft = 1
}}
Welcome to the '''Technical Assistance reading room'''. Get assistance on questions related to [[w:MediaWiki|MediaWiki]] markup, CSS, JavaScript, and such as they relate to Wikibooks. '''This is not a general-purpose technical support room'''.
To submit a ''bug notice or feature request'' for the MediaWiki software, visit [[phabricator:|Phabricator]].
To get more information about the ''MediaWiki software'', or to download your own copy, visit [[mw:|MediaWiki]]
There are also two IRC channels for technical help: {{Channel|mediawiki}} for issues about the software, and {{channel|mediawiki-core}} for [[m:WMF|WMF]] server or configuration issues.
{{clear}}
[[Category:Reading room]]
== Examples of the navigation templates. ==
There are several navigation templates. I've used <nowiki>{{Navigation ...}}</nowiki> in [[Oberon|Oberon Computing]]. Someone please point to a few other books where a navigation template is used at the top of pages.
Searching for a string in rendered pages is easy. Can source pages be searched? How?
Thanks, ... [[User:PeterEasthope|PeterEasthope]] ([[User talk:PeterEasthope|discuss]] • [[Special:Contributions/PeterEasthope|contribs]]) 15:44, 6 September 2026 (UTC)
: There is <span class="plainlinks">[https://en.wikibooks.org/wiki/Special:WhatLinksHere?target=Template%3ANavigation Special:WhatLinksHere]</span> for that template. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:47, 10 September 2026 (UTC)
== Chess template help ==
Hello, I have made some changes on the [[Chess/Checkmates]] page. I would like the additions that I have added similar to the format for the other subheadings (e.g. the format of my additions similar to the backrank mate), because I don't really get the syntax for the <nowiki>{{Chess diagram}}</nowiki> template.
Kind regards,
[[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:48, 20 September 2026 (UTC)
:There are instructions for how to [[:Template:Chess diagram]] in the documentation for the page, and a worked example. Basically you use the letter for the piece (r, n, k etc) and whether it is white (l, i.e. light) or black (d, i.e. dark) to represent each piece, and you put it in a field the number of which represents which square it is on the board.
:An alternative is [[:Template:Chess/board]] which works differently and takes different inputs. With this one you can insert a move list (PGN notation) or a board position (FEN notation).
{{Chess diagram|tright
|
|=
|rd| |bd|qd|kd|bd| |rd|=
|pd|pd|pd|pd| |ql|pd|pd|=
| | |nd| | |nd| | |=
| | | | |pd| | | |=
| | |bl| |pl| | | |=
| | | | | | | | |=
|pl|pl|pl|pl| |pl|pl|pl|=
|rl|nl|bl| |kl| |nl|rl|=
}}
:or
:{{chess/board|moves=1. e4 e5 2. Qh5 Nc6 3. Bc4 Nf6 4. Qxf7#|scheme=orange}}
:or
:{{chess/board|fen=r1bqkb1r/pppp1Qpp/2n2n2/4p3/2B1P3/8/PPPP1PPP/RNB1K1NR|scheme=orange}} [[User:JCrue|JCrue]] ([[User talk:JCrue|discuss]] • [[Special:Contributions/JCrue|contribs]]) 14:31, 1 October 2026 (UTC)
a8wv4dvov0b3f5qaht60whhoyn8xpp0
Radiation Oncology/Pacemaker
0
112418
4674840
3098232
2026-10-07T09:30:34Z
Jcb
90773
4674840
wikitext
text/x-wiki
{{Radiation Oncology:TOC}}
'''Treatment of patients with pacemakers and implantable cardioverter-defibrillators (ICDs)'''
==AAPM Task Group 34==
AAPM Report No. 45 ([http://www.aapm.org/pubs/reports/rpt_45.pdf PDF]) - "Management of Radiation Oncology Patients with Implanted Cardiac Pacemakers" (Reprinted from Medical Physics, Vol. 21, Issue 1) (1994)
Recommendations:
# Pacemaker implanted patients should not be treated with a betatron (''okay...'')
# Pacemakers should not be placed in the direct (unshielded) therapy beam. Some accelerator beams can cause transient malfunction.
# The absorbed dose to be received by the pacemaker should be estimated before treatment.
# If the total estimated dose to the pacemaker might > 2 Gy, the pacemaker function should be checked prior to therapy and possibly at the start of each following week of therapy. Since total and abrupt failure of pacemakers has been seen at cumulative doses between 10-30 Gy and significant functional changes have been observed between 2-10 Gy, early changes in pacemaker parameters could signal a failure in the 2-10 Gy region.
# Although transient malfunction from electromagnetic interference is unlikely from contemporary therapy accelerators and cobalt irradiators, the patient should be closely observed during the first treatment with a linear accelerator and during subsequent treatments if magnetron or klystron misfiring (sparking) occurs.
# Studies to date have dealt with linear accelerators, betatrons, and cobalt irradiators only. Use of other radiation therapy machines should be evaluated on an individual basis and approached with caution.
==Articles==
*MD Anderson, '''2015'''
**{{PMID|26181143}} — "Radiotherapy-Induced Malfunction in Contemporary Cardiovascular Implantable Electronic Devices: Clinical Incidence and Predictors." Grant JD et al. JAMA Oncol. 2015 Aug;1(5):624-32.
*Netherlands, '''2012'''
**{{PMID|23176563}} — "Management of radiation oncology patients with a pacemaker or ICD: a new comprehensive practical guideline in The Netherlands. Dutch Society of Radiotherapy and Oncology (NVRO)." Hurkmans CW et al. Radiat Oncol. 2012 Nov 24;7:198.
*Netherlands, '''2005'''
**{{PMID|16019095}} — "Influence of radiotherapy on the latest generation of pacemakers." Hurkmans CW et al. Radiother Oncol. 2005 Jul;76(1):93-8.
**{{PMID|16111598}} — "Influence of radiotherapy on the latest generation of implantable cardioverter-defibrillators." Int J Radiat Oncol Biol Phys. 2005 Sep 1;63(1):282-9.
*U. Pittsburgh, '''2004''' - {{PMID|15183493}} — "Treatment of patients with cardiac pacemakers and implantable cardioverter-defibrillators during radiotherapy." Solan AN et al. Int J Radiat Oncol Biol Phys. 2004 Jul 1;59(3):897-904.
*Royal Marsden, '''1998''' - {{PMID|9534692}} — "Radiotherapy in patients with cardiac pacemakers." Last A et al. Br J Radiol. 1998 Jan;71(841):4-10.
gq2zevuny8qirgq5oldohpqyhc97bqm
Wikibooks:Featured books/Nominations
4
113843
4674770
4655029
2026-10-06T18:23:34Z
Codename Noreste
3441010
/* Wikijunior:The Elements */ move to [[Wikibooks:Featured books/Nominations/Addition/Wikijunior:The Elements#Wikijunior:The Elements]] ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4674770
wikitext
text/x-wiki
{{Discussion Rooms}} __NEWSECTIONLINK__ {{TOC left}} {{Featured books/Nominations/Archives}}[[Category:Wikibooks]]
The goal of this page is to feature those books which are considered among the best of what Wikibooks has to offer, in an effort to raise standards in content development. Criteria for judging books, and rules about discussions, can be found at [[Wikibooks:Good books|Wikibooks:Good books]]. When nominating a book for removal of featured book status, consider adding {{tl|featured book removal}} to the book and notifying the primary or active contributors, as they may be able to address your concerns about the content.
{{clear}}
=Nominations for Removal=
== [[Basic Physics of Nuclear Medicine]] ==
The primary author has stated this book is no longer up to date with standard practice. This fails the [[Wikibooks:Good books]] criteria 4.
<blockquote>Accurate, comprehensive, and concise enough to effectively teach and learn from in its current state.</blockquote>
Unlike their author, I'm not in favor of deleting the book, and would support its reinstatement as a featured book should someone update them. It's a very niche subject though, so I'm unsure if we'll find someone who specializes in it anytime soon. --[[User:Mbrickn|Mbrickn]] ([[User talk:Mbrickn|discuss]] • [[Special:Contributions/Mbrickn|contribs]]) 05:52, 12 November 2021 (UTC)
:please I need the book it seems interesting, I love exploring and [[Special:Contributions/41.116.144.211|41.116.144.211]] ([[User talk:41.116.144.211|discuss]]) 01:03, 15 December 2024 (UTC)
== [[Non-Programmer's Tutorial for Python 2.6]] ==
{{closed|There is consensus to de-list this book from the main page. [[User:Codename Noreste|Codename Noreste]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 17:30, 19 July 2026 (UTC)}}
Hello Wikibooks folks,
I am proposing de-featuring the Python 2 version of this book because [[Non-Programmer's Tutorial for Python 3|the Python 3 version]] has featured status and [https://www.python.org/doc/sunset-python-2/ Python 2 has been end-of-life for several years]. Both the Python 2 and Python 3 versions of this book will rotate through the [[Main Page]]'s featured articles section, and I do not think the Python 2 version is appropriate to promote as a starting point for learning programming anymore.
[[User:Huntertur|huntertur]] ([[User talk:Huntertur|discuss]] • [[Special:Contributions/Huntertur|contribs]]) 01:46, 3 November 2025 (UTC)
:I don't know wikibooks well enough for my thoughts to be any valuable for such discussions but I think if it works as said, it should be denominated [[User:DustDFG|DustDFG]] ([[User talk:DustDFG|discuss]] • [[Special:Contributions/DustDFG|contribs]]) 15:27, 4 November 2025 (UTC)
:{{s}} - these are both essentially the same book, just forked into two versions for Python 2 and Python 3. Having both is fine, but we should only feature it once, under the current version. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 03:35, 5 January 2026 (UTC)
{{end closed}}
=Nominations for Addition=
==[[Minecraft Speedrunning]]==
The book is very well formatted, contains a lot of useful information, and despite game strategies being allowed for quite some time, and quite a few books being made, there are no any featured books in [[Shelf:Electronic games]]. Therefore I think that once we get to the point where some books are really good, like this book is, we should nominate them to serve as an example for others. -[[User:Gifnk dlm 2020|Gifnk dlm 2020]] <span style="color:purple;">From Middle English Wikipedia</span> 📜📖💻 ([[User talk:Gifnk dlm 2020|talk]]) 17:56, 17 January 2022 (UTC)
:I think there are still many improvements to be made .
::'''KIV''' - Supposedly in this Wikibooks page [[Minecraft Speedrunning/Shipwrecks]], it is mentioned there are three chest but assuming that the locations is fixed, it should specify WHERE the chests are. Or better need to add pictures. These are my two cents. In my opinion KIV until the author address this for all pages. [[User:MrAlanKoh|MrAlanKoh]] ([[User talk:MrAlanKoh|discuss]] • [[Special:Contributions/MrAlanKoh|contribs]]) 07:51, 31 July 2022 (UTC)
::The shipwreck issue has been resolved. Though this isn't a book im an expert at (never done a speedrun. I play slowly and just enjoy the ride). <sup> [[User:L10nM4st3r|<span style="color:orange">L10nM4st3r</span>]]</sup> / <sub>[[meta:User_talk:L10nM4st3r|<span tyle="color:#fed8b1">Roar at me</span>]]</sub> 21:16, 7 August 2022 (UTC)
:Therefore I think that once we get to the point where some books are really good, like this book is, we should nominate them to serve as an example for others. -[[User:Gifnk dlm 2020|Gifnk dlm 2020]] From Middle English Wikipedia 📜📖💻 ([[User talk:Gifnk dlm 2020|talk]]) 17:56, 17 January 2022 (UTC)[<nowiki/>[[Wikibooks:Featured books/Nominations|reply]]] [[Special:Contributions/204.157.172.96|204.157.172.96]] ([[User talk:204.157.172.96|discuss]]) 19:35, 15 August 2023 (UTC)
lcz5jxmf3zau1vgigx9pmjz8wlung3d
4674773
4674770
2026-10-06T18:33:30Z
Codename Noreste
3441010
/* Non-Programmer's Tutorial for Python 2.6 */ archive to [[Wikibooks:Featured books/Nominations/Removal/Non-Programmer's Tutorial for Python 2.6#Non-Programmer's Tutorial for Python 2.6]] ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4674773
wikitext
text/x-wiki
{{Discussion Rooms}} __NEWSECTIONLINK__ {{TOC left}} {{Featured books/Nominations/Archives}}[[Category:Wikibooks]]
The goal of this page is to feature those books which are considered among the best of what Wikibooks has to offer, in an effort to raise standards in content development. Criteria for judging books, and rules about discussions, can be found at [[Wikibooks:Good books|Wikibooks:Good books]]. When nominating a book for removal of featured book status, consider adding {{tl|featured book removal}} to the book and notifying the primary or active contributors, as they may be able to address your concerns about the content.
{{clear}}
=Nominations for Removal=
== [[Basic Physics of Nuclear Medicine]] ==
The primary author has stated this book is no longer up to date with standard practice. This fails the [[Wikibooks:Good books]] criteria 4.
<blockquote>Accurate, comprehensive, and concise enough to effectively teach and learn from in its current state.</blockquote>
Unlike their author, I'm not in favor of deleting the book, and would support its reinstatement as a featured book should someone update them. It's a very niche subject though, so I'm unsure if we'll find someone who specializes in it anytime soon. --[[User:Mbrickn|Mbrickn]] ([[User talk:Mbrickn|discuss]] • [[Special:Contributions/Mbrickn|contribs]]) 05:52, 12 November 2021 (UTC)
:please I need the book it seems interesting, I love exploring and [[Special:Contributions/41.116.144.211|41.116.144.211]] ([[User talk:41.116.144.211|discuss]]) 01:03, 15 December 2024 (UTC)
=Nominations for Addition=
==[[Minecraft Speedrunning]]==
The book is very well formatted, contains a lot of useful information, and despite game strategies being allowed for quite some time, and quite a few books being made, there are no any featured books in [[Shelf:Electronic games]]. Therefore I think that once we get to the point where some books are really good, like this book is, we should nominate them to serve as an example for others. -[[User:Gifnk dlm 2020|Gifnk dlm 2020]] <span style="color:purple;">From Middle English Wikipedia</span> 📜📖💻 ([[User talk:Gifnk dlm 2020|talk]]) 17:56, 17 January 2022 (UTC)
:I think there are still many improvements to be made .
::'''KIV''' - Supposedly in this Wikibooks page [[Minecraft Speedrunning/Shipwrecks]], it is mentioned there are three chest but assuming that the locations is fixed, it should specify WHERE the chests are. Or better need to add pictures. These are my two cents. In my opinion KIV until the author address this for all pages. [[User:MrAlanKoh|MrAlanKoh]] ([[User talk:MrAlanKoh|discuss]] • [[Special:Contributions/MrAlanKoh|contribs]]) 07:51, 31 July 2022 (UTC)
::The shipwreck issue has been resolved. Though this isn't a book im an expert at (never done a speedrun. I play slowly and just enjoy the ride). <sup> [[User:L10nM4st3r|<span style="color:orange">L10nM4st3r</span>]]</sup> / <sub>[[meta:User_talk:L10nM4st3r|<span tyle="color:#fed8b1">Roar at me</span>]]</sub> 21:16, 7 August 2022 (UTC)
:Therefore I think that once we get to the point where some books are really good, like this book is, we should nominate them to serve as an example for others. -[[User:Gifnk dlm 2020|Gifnk dlm 2020]] From Middle English Wikipedia 📜📖💻 ([[User talk:Gifnk dlm 2020|talk]]) 17:56, 17 January 2022 (UTC)[<nowiki/>[[Wikibooks:Featured books/Nominations|reply]]] [[Special:Contributions/204.157.172.96|204.157.172.96]] ([[User talk:204.157.172.96|discuss]]) 19:35, 15 August 2023 (UTC)
g706arho6b74xst8qg59xj8g1zmq8nv
Radiation Oncology/NSCLC/PCI
0
114744
4674816
3583519
2026-10-07T08:32:48Z
Jcb
90773
4674816
wikitext
text/x-wiki
{{:Radiation Oncology/Lung/NSCLC:TOC}}
==Prophylactic cranial irradiation (PCI)==
*Currently not considered standard of care due to neurotoxicity of WBRT
*'''RTOG 02-14''' opened (Stage IIIA/B, PCI vs. observation)
'''Randomized'''
*'''Netherlands NVALT-11/DLCRG-02''' (2009 - 2015)
**Randomized. 175 patients, Stage III NSCLC after concurrent/sequential chemoRT with/without surgery, negative brain imaging. Chemo was platinum combo 79%, platinum singlet 16%. Arm 1) observation vs Arm 2) PCI (36/18 or 30/12 or 30/10). Primary outcome symptomatic brain mets
**'''Primary Result; 2018''' {{PMID|29787357}} -- "Prophylactic Cranial Irradiation Versus Observation in Radically Treated Stage III Non-Small-Cell Lung Cancer: A Randomized Phase III NVALT-11/DLCRG-02 Study." (De Ruysscher, J Clin Oncol. 2018 Aug 10;36(23):2366-2377. doi: 10.1200/JCO.2017.77.5817. Epub 2018 May 22.) Median F/U 48 months
***Outcome: Symptomatic brain metastases 27% PCI vs 7% OBS (SS). PCI also increased time to symptomatic mets (HR 0.2, SS). Median OS 22 months vs 24 month (NS)
***Toxicity: At 3 months, PCI worse (SS), with memory impairment (8% vs 30%) and cognitive disturbance (3% vs 19%). But at 6, 12, and 18 months no difference (NS).
***Conclusion: PCI significantly decreased symptomatic brain mets rate, with increase in low-grade toxicity
*'''RTOG 02-14'''
**Stage III randomized after treatment (RT or surgery +/- chemo) without disease progression. PCI 30 Gy in 15 fractions vs observation.
**Closed early due to slow accrual. 356 pts (340 eligible) enrolled out of targeted 1058.
**'''2011''' {{PMID|21135270}} -- "Phase III Comparison of Prophylactic Cranial Irradiation Versus Observation in Patients With Locally Advanced Non–Small-Cell Lung Cancer: Primary Analysis of Radiation Therapy Oncology Group Study RTOG 0214" (Gore EM, J Clin Oncol. 2011 Jan 20;29(3):272-8.)
***1 yr OS 75.6% vs 76.9% (NS), DFS 56.4% vs 51.2% (NS). Decrease brain metastases 7.7% at 1 yr vs 18.0% (OR 2.52).
***Conclusion: PCI decreased the rate of brain metastases but did not improve OS or DFS.
**'''2011; Neurocognitive/QOL''' {{PMID|21135267}} -- "Phase III Trial of Prophylactic Cranial Irradiation Compared With Observation in Patients With Locally Advanced Non–Small-Cell Lung Cancer: Neurocognitive and Quality-of-Life Analysis" (Sun A, J Clin Oncol. 2011 Jan 20;29(3):279-86.)
***No statistically significant differences at 1 yr between the 2 arms for any component of the QOL, MMSE, or ADLS. Trend for greater decline (for PCI) in pt reported cognitive function. In the HVLT, greater decline in immediate and delayed recall.
***Conclusion: Significant decline in memory (HVLT) at 1 yr but no significant differences in global cognitive function (MMSE) or QOL after PCI.
*'''German Multicenter''' (1994-2001)
**''Terminated early due to slow accrual after benefit of adjuvant chemo shown. '' Randomized. 112 patients with operable Stage IIIA NSCLC based on mediastinoscopy staging. Arm 1) primary resection + adjuvant RT 50-60 Gy vs. Arm 2) preoperative chemo (cisplatin/etoposide x3 cycles) + concurrent chemo-RT (cisplatin/etoposide RT 45 Gy in 1.5 Gy BID) + definitive surgery + PCI 30/15
**'''2007''' {{PMID|17971598}} -- "Prophylactic cranial irradiation in operable stage IIIA non small-cell lung cancer treated with neoadjuvant chemoradiotherapy: results from a German multicenter randomized trial." (Pottgen C, J Clin Oncol. 2007 Nov 1;25(31):4987-92.)
***5-year outcome: brain first failure PCI 8% vs no PCI 35% (SS); any brain failure 9% vs. 27% (SS)
***Toxicity: no difference; slightly decreased neurocognition in both groups compared to age-matched controls
***Conclusion: PCI effective in preventing brain mets after trimodality therapy
*'''RTOG 84-03''' (1984-?)
**187 pts. Adeno or large cell. Confined to the chest. Randomized to thoracic RT alone vs thoracic RT + concurrent PCI.
**{{PMID|1651304}}, 1991 — "Prophylactic cranial irradiation for lung cancer patients at high risk for development of cerebral metastasis: results of a prospective randomized trial conducted by the Radiation Therapy Oncology Group." Russell AH et al. Int J Radiat Oncol Biol Phys. 1991 Aug;21(3):637-43.
***PCI did not decrease the incidence of brain mets (9% vs 19%, p=0.10) but did delay their development. No difference in OS.
'''Non-randomized'''
*'''Essen, 1999''' (Germany) {{PMID|10561344}} -- "Prophylactic cranial irradiation in locally advanced non-small-cell lung cancer after multimodality treatment: long-term follow-up and investigations of late neuropsychologic effects." (Stuschke M, J Clin Oncol. 1999 Sep;17(9):2700-9.)
**Phase II, nonrandomized. Trimodality for IIIA/IIIB NSCLC, PCI offered. RT 30/15 starting 1 day after last chemo
**PCI reduced brain mets as first site at 4 years: 30% to 8% (SS), brain mets overall 54% to 13% (SS)
**Effect seen especially in CR/PR group: 23% to 0% (SS) at 4 years
**Toxicity: Late toxicity in both +PCI and -PCI patients. MRI more white matter abnormalities with +PCI
**Conclusion: PCI reasonable in intense protocols for locally advanced NSCLC, especially in favorable prognosis
qvt5e3w5qrjhhel5mhjlyaskb3vumj0
Radiation Oncology/Ovary/Granulosa Cell Tumor
0
115817
4674837
3580824
2026-10-07T09:28:46Z
Jcb
90773
4674837
wikitext
text/x-wiki
{{Radiation Oncology:TOC}}
'''Granulosa Cell Tumor of the Ovary'''
==Epidemiology==
*Uncommon, represents 2-5% of ovarian cancers
*Incidence 1/100,000
*Adult GCT
**95% of cases
**Median age at diagnosis: perimenopausal (50-54)
*Juvenile GCT
**5% of cases
**Usually seen in prepubertal girls and women <30
**Present with isosexual precocious pseudopuberty, or abdominal/pelvic pain due to large mass
**Typically favorable prognosis
*No association with known mutations, including BRCA1/BRCA2
*Typically present with vaginal bleeding due to increased hormones
==Histology==
*Derived from the granulosa cell (estradiol production)
**Convert androstenedione produced in thecal cells to estradiol via aromatase
*Categorized as sex cord-stromal tumor
*Tumor markers
**Estradiol
***Even though granulosa cells produce estradiol, it's not a great marker
***No elevation in ~30% of patients with GCT
**Inhibin
***Useful marker of GCT in pre- and post-menopausal women
***Negative feedback stimulator of FSH
***Levels should be low in post-menopausal women
**Mullerian inhibitory substance (MIS)
***Produced by granulosa cells in developing follicles, and is thus cyclical
***Undecetable in post-menopausal women
==Risk Factors==
*Clinical factors
**Stage most important
*Path factors
**Large tumors (>10-15 cm worse)
**Tumor rupture
**High mitotic index
==Survival==
*Staging uses FIGO System
**Majority present with Stage I disease (80-90%)
{| border="1"
|-
!Stage !! 5-year OS !! 10-year OS
|-
|align="center"| I || align="center"| 95% || align="center"| 90%
|-
|align="center"| II || align="center"| 65% || align="center"| 55%
|-
|align="center"| III/IV || align="center"| 35% || align="center"| 25%
|}
==Treatment Overview==
*Surgery is main initial management
*Patients are typically in the same way as epithelial ovarian CA
**Stage IA: Can consider fertility preservation with unilateral SO and careful staging
**Otherwise: TAH/BSO (2-8% bilateral)
*Perform endometrial biopsy to rule out concomitant uterine CA
*Adjuvant therapy
**Stage I (no RFs): none
**Stage I (high risk):
***Chemotherapy (BEP, EP, CAP, or single agent platinum) or
***RT to whole pelvis or whole abdomen
**Stage II:
***Same as high risk Stage I: chemo or RT
**Stage III/IV:
***Platinum-based chemo
***Whole abdomen RT if optimally debulked Stage III
**Recurrent disease:
***Secondary surgical debulking if feasible
***Abdominal RT
***Platinum-based chemo
***Hormonal approaches (GNRH, tamoxifen, progestins) in selected patients
==Radiation==
*'''MD Anderson, 1999''' (1949-1988) {{PMID|10094877}} -- "Radiation treatment of advanced or recurrent granulosa cell tumor of the ovary." (Wolf JK, Gynecol Oncol. 1999 Apr;73(1):35-41.)
**Retrospective. 14 patients treated with RT for measurable residual or recurrent disease. Median F/U 13 years
**RT: 10/14 moving strip whole abdomen to 27-28 Gy, 4/10 pelvic RT to 45-61 Gy
**Response: 6/14 CR, but 3/6 failed 4-5 years later. 8/14 PD with median survival 12 months
**Conclusion: RT can induce response, with occasional long-term remission
==Review==
*'''Harvard, 2003''' {{PMID|12637488}} -- "Granulosa cell tumor of the ovary." (Schumer ST, J Clin Oncol. 2003 Mar 15;21(6):1180-9.)
9w92ivmsvyrodvc4z12i3280cv0ziiz
Radiation Oncology/NSCLC/Lung Brachytherapy
0
115820
4674808
4585762
2026-10-07T06:56:39Z
Jcb
90773
4674808
wikitext
text/x-wiki
{{:Radiation Oncology/Lung/NSCLC:TOC}}
<big>'''Lung Brachytherapy'''</big>
==Guidelines==
*'''American Brachytherapy Society; 2001''' {{PMID|11301833}} -- "Brachytherapy for carcinoma of the lung." (Nag S, Oncology (Williston Park). 2001 Mar;15(3):371-81.)
==Limited Resection with Intraoperative Brachytherapy==
*'''ACOSOG Z4032''' -- sublobar resection versus sublobar resection + brachytherapy
**Randomized. 222 patients. Median age 71. Surgery versus surgery + brachytherapy. Inclusion criteria: tumor ≤ 3 cm; and high risk (FEV1<50% predicted, DLCO <50% predicted or age >75, exertional dyspnea, borderline PFTs)
**'''2007''' {{PMID|17909906}} -- "Dosimetric evaluation of radiation exposure during I-125 vicryl mesh implants: implications for ACOSOG z4032." (Smith RP, Ann Surg Oncol. 2007 Dec;14(12):3610-3. Epub 2007 Oct 2.)
***Dosimetry. 22 patients. I-125 vicryl mesh implants, 40-60 seeds. Median activity 0.5 mCi per seed, median total activity 23 mCi
***Outcome: median dose to radiation oncologist 1 mrem, surgery 2 mrem, control diode on patient 5.4 mrerm/h
***Conclusion: Very little radiation exposure to physicians and staff during segmentectomy and I-125 vicryl mesh implantation
**'''2014''' {{PMID|24982457}} -- "Impact of Brachytherapy on Local Recurrence Rates After Sublobar Resection: Results From ACOSOG Z4032 (Alliance), a Phase III Randomized Trial for High-Risk Operable Non-Small-Cell Lung Cancer." (Fernando HC, J Clin Oncol. 2014 Aug 10;32(23):2456-62. doi: 10.1200/JCO.2013.53.4115. Epub 2014 Jun 30.). Median F/U 4.4 years
***Outcome: 5-year OS surgery 61% vs surgery + brachytherapy 56% (NS). 5-year LR 14% vs 17% (NS); no difference in time to recurrence or pattern of local recurrence. Local recurrence/death 43% vs 49% (NS)
***Conclusion: Brachytherapy did not reduce local recurrence after sublobar resection
*'''Multi-Institutional; 2005''' {{PMID|15678034}} -- "Lobar and sublobar resection with and without brachytherapy for small stage IA non-small cell lung cancer." (Fernando HC, J Thorac Cardiovasc Surg. 2005 Feb;129(2):261-7.)
**Retrospective. 4 institutions (Pittsburgh, UCLA, City of Hope, Allegheny General). 291 patients with T1N0. Sublobar resection (n=124) compared with lobar resection (n=167). Brachytherapy in 48% of sublobar operations. Sublobar patients older (SS), worse pulmonary function (SS). Mean F/U 2.9 years
**Outcome: Sublobar LR no brachy 17% vs. brachy 3%. No difference in OS in small tumors (<2 cm). Significantly better OS in large tumors (2-3cm) lobar 5.8 years vs. sublobar 4 years (SS)
**Conclusion: Intraop brachy may reduce LR with small tumors
*'''Pittsburgh; 2003''' {{PMID|14605631}} -- "Comparison between sublobar resection and 125Iodine brachytherapy after sublobar resection in high-risk patients with Stage I non-small-cell lung cancer." (Santos R, Surgery. 2003 Oct;134(4):691-7; discussion 697.)
**Retrospective. 203 patients. 102 Stage IA treated 1989-1994 with surgery alone, 101 patients Stage IA-B treated 1997-2002 with surgery + intraoperative I-125 BT. BT mesh placed over staple line
**Recurrence: local - surgery alone 19% vs. surgery + BT 2% (SS), systemic 28% vs. 22% (NS)
**Toxicity: no difference in periop mortality or hospital stay
**Conclusion: Safe, should be considered in compromised patients
*'''Tufts; 2003''' {{PMID|12537222}} -- "Limited resection for non-small cell lung cancer: observed local control with implantation of I-125 brachytherapy seeds." (Lee W, Ann Thorac Surg. 2003 Jan;75(1):237-42; discussion 242-3.)
**Retrospective. 33 patients with 35 NSCLC, limited resection + brachytherapy I-125 seeds. Median F/U 4.2 years
**Outcome: 5-year OS 47%, T1N0 67%, T2N0 39%. Cancer-specific survival 77% and 53%
**Recurrence: overall 29%, local 6%, regional 17%
**Conclusion: Brachytherapy I-125 implantation gives low local recurrence, may prolong survival
'''''Review'''''
*'''Royal Surrey; 2008''' (UK) {{PMID|19056322}} -- "Intraoperative seed placement for thoracic malignancy-A review of technique, indications, and published literature." (Stewart AJ, Brachytherapy. 2008 Dec 2. [Epub ahead of print])
**Summary of methods of brachytherapy seed placement and the published experience of brachytherapy implants within the thorax; radiation safety and postoperative dosimetry also reviewed
'''''Aorta RT Tolerance'''''
*''Please see the [[Radiation_Oncology/Toxicity/Aorta|Aorta Toxicity]] section''
==Definitive Endobronchial Brachytherapy==
*'''MSKCC Experience''' {{PMID|3027826}} -- "Intraoperative radiotherapy in stage I and II lung cancer." (Hilaris B, Seminars in Surgical Oncology. 1987;3(1):22-32.)
**Treated patients with brachy alone from 1950's to 1980's who were unable to tolerate surgical resection.
**Median survival of 2.6 years
**53% local control
==Palliative Endobronchial Brachytherapy==
[[Image:NSCLC_EndobronchialRT_AP.JPG|thumb|right]]
[[Image:Radiation_Endobronchial2.jpg|thumb|right]]
'''''Systematic Review'''''
*'''Cochrane Review; 2008''' {{PMID|18425900}} -- "Palliative endobronchial brachytherapy for non-small cell lung cancer." (Cardona A, Cochrane Database Syst Rev. 2008 Apr 16;(2):CD004284.)
**13 randomized trials; meta-analysis not attempted due to heterogeneity of patients and treatments.
**Outcome: EBRT alone more effective for palliation than EBB alone. No conclusive evidence to recommend EBRT + EBB compared with EBRT alone.
*'''Cancer Care Ontario; 2006''' {{PMID|16864071}} -- "The role of high-dose-rate brachytherapy in the palliation of symptoms in patients with non-small-cell lung cancer: a systematic review." (Ung YC, Brachytherapy. 2006 Jul-Sep;5(3):189-202.)
**29 trials
**Outcome:
***Previously untreated patients: EBRT alone more effective than HDRBT. HDRBT with EBRT seems better symptoms relief than EBRT alone
***Previously treated patients: HDRBT recommended, provided it is technically feasible
**Toxicity: Fatal hemoptysis ranged from 7% to 22%
'''''Retrospective Evidence'''''
*'''Novi Sad, Serbia; 2010''' {{PMID|20439194}} -- "Clinical risk factors for early complications after high-dose-rate endobronchial brachytherapy in the palliative treatment of lung cancer." (Zaric B, Clin Lung Cancer. 2010 May;11(3):182-6.)
**Retrospective. 761 patients, advanced-stage lung cancer, HDRBT as part of multimodality therapy.
**Outcome: Complication rate 5.4%. Predictors for complications: HTN, chronic cardiac arrhythmias, COPD, cardiomyopathy
**Conclusion: Closer monitoring of patients with identified risk factors is advisable
*'''Heidelberg; 2010''' (1987-2005) {{PMID|19836162}} -- "Treatment of recurrent bronchial carcinoma: the role of high-dose-rate endoluminal brachytherapy" (Hauswald H, Int J Radiat Oncol Biol Phys. 2010 Jun 1;77(2):373-7. Epub 2009 Oct 14.)
**Retrospective. 41 patients, prior EBRT (median dose 56 Gy), retreatment with HDRBT for symptomatic recurrence. Median dose 15 Gy (5-29 Gy), median time-to-irradiation 9 months (2-54). Median F/U 7 months
**Outcome: Initial local control 73%; LC 6-months 38%, 1-year 17%. OS 6-months 58%, 1-year 18%. Median LC PFS 4 months
**Toxicity: Fatal hemorrhage 15%; no Grade 3-4 toxicity in patients with locally controlled disease
**Conclusion: Palliative retreatment with HDRBT can be effective, causing only few complications
*'''Poznan, Poland; 2009''' {{PMID|19854525}} -- "HDR endobronchial brachytherapy (HDRBT) in the management of advanced lung cancer--comparison of two different dose schedules." (Skowronek J, Radiother Oncol. 2009 Dec;93(3):436-40. Epub 2009 Oct 23.)
**Retrospective. 648 patients, advanced lung cancer. Palliative HDRBT doses schedules 22.5/3 once/week (47%) or 10/1 (53%)
**Outcome: No difference in survival, similar efficacy in overcoming difficulties in breathing
**Conclusion: Similar efficiency between the two treatment protocols
*'''MD Anderson, 2000''' {{PMID|11020566}} -- "High-Dose-Rate Endobronchial Brachytherapy effectively palliates symptoms due to airway tumors: The 10-year M.D. Anderson Cancer Center Experience." (Kelly, J. Int J Radiat Oncol Biol Phys. 2000;48(3):697-702.)
**175 patients who underwent HDR
**15 Gy at 6mm most common Rx
**66% patients show symptomatic improvement
**2nd look bronchoscopy showed 78% objective response rate
**13% actuarial complication rate at 1 year
*'''Indiana University, 1994''' {{PMID|7509330}} -- "High dose rate afterloading intraluminal brachytherapy in malignant airway obstruction of lung cancer." (Chang, LF. Int J Radiat Oncol Biol Phys. 1994 Feb 1;28(3):589-96.
**76 pts (225 HDR applications); 59 received concurrent external beam, 1pt w/ concurrent xrt
**7 Gy to 1cm; 3 fractions at 2 wk intervals
**87% response rate for dyspnea (28% CR)
**95% response rate for hemoptysis (57% CR)
**4 acute complications (3 massive hemoptysis, 1 mild hemoptysis).
9p4ntvcv7tr0dydgx9h6ft0zpaejiki
Radiation Oncology/NSCLC/LCNEC
0
116918
4674802
1732316
2026-10-07T05:54:52Z
Jcb
90773
4674802
wikitext
text/x-wiki
{{Radiation Oncology/Lung/NSCLC:TOC}}
'''Large Cell Neuroendocrine Carcinoma'''
==Epidemiology==
*Incidence: 2-3.5% in resected lung specimens; probably higher in inoperable patients due to its aggressive nature
*Etiology: Smoking probably causative; 85-95% of patients have history of heavy tobacco use
*Median age at diagnosis: 66 years
*Present predominately in lung periphery (cough, hemoptysis, or post-obstructive PNA are not common presenting symptoms)
==Histology==
*Historically grouped under neuroendocrine tumors of the lung (small cell, atypical carcinoid (LCNEC), typical carcinoid)
*In 1999 reassigned by WHO to Large Cell Carcinoma group, which includes several other unrelated but large cell histologies
*Cell size is typically 3X larger than for small cell CA
*Mitotic index is high, approaching that of small cell CA
*Cells contain neurosecretory granules, and typically stain positive for either neural cell adhesion molecule, chromogranin A, or synaptophysin
*Molecular markers suggest similarity of LCNEC and SCC, and difference from other large cell histologies (Ki-67+, p53+, Rb-)
==Survival==
*5-year OS of resected patients: ~30-40%
*Stage-adjusted survival is significantly worse than NSCLC
==Treatment Overview==
*Most series reported are surgical
*Currently no definitive survival advantage for adjuvant chemotherapy
*Octreotide may have activity, and appears to control metastatic disease
*'''Washington University, 2005''' (1988-2002) {{PMID|15999058}} -- "Large cell neuroendocrine carcinoma: an aggressive form of non-small cell lung cancer." (Battafarano RJ, J Thorac Cardiovasc Surg. 2005 Jul;130(1):166-72.)
**Retrospective. 2099 resected patients in database, 82 (4%) had large cell histology. LCNEC 45 patients, 50% Stage IA
**5-year OS: overall 47%; LCNEC 30%, mixed neuroendocrine 30%, large cell carcinoma 71% (SS). Stage I LCNEC 5-year OS 32%
**Conclusion: LCNEC significantly worse survival after resection, even in Stage I disease
==Review==
*'''2006''' {{PMID|17075564}} -- "Large-cell neuroendocrine carcinoma of the lung." (Fernandez FG, Cancer Control. 2006 Oct;13(4):270-5.)
**Recommend classifying separately from NSCLC as ''Grade III neuroendocrine carcinoma, large-cell type''
2xb52aee1fq38hmrw620315d1b28tl8
Radiation Oncology/Optic Pathway Glioma
0
117634
4674832
2483463
2026-10-07T09:23:22Z
Jcb
90773
4674832
wikitext
text/x-wiki
{{Radiation Oncology:TOC}}
'''Optic Pathway Glioma'''
==Epidemiology==
*Low grade astrocytic tumors
*Prevalence
**2% of cerebral gliomas
**5% of childhood brain tumors
**90% in children <20 years, 75% in <10 year olds; 10% in adults
*Associated with neurofibromatosis
**30% of OPG patients have NF1 stigmata
**Up to 25% of NF1 patients develop OPG (most common CNS tumor in NF1)
*Location
**Anterior (orbital, infracanalicular, prechiasmal) - common in prepubertal children
**Posterior (chiasm, hypothalamus, anterior 3rd ventricle) - common in adolescents
==Treatment==
*Optimal management of optic pathway gliomas is controversial
**Patient age
**Tumor location
**Presence of NF1
*Children should probably be managed with observation and close follow-up, if possible
*Adults should be managed aggressively
*Non-surgical treatment algorithm as per {{PMID|16411210}}
**<3 years or 3-10 with unresectable lesion
***Observe until radiographic or symptomatic progression
***Packer regimen (carboplatin/vincristine); if no progression, observe; if progression, RT
**>10 years
***Proton RT if available, else stereotactic/conformal RT; if no progression, observe; if progression, protocol
===Surgery===
*No consensus regarding optimal timing
*Likely benefit:
**Obstructive hydrocephalus
**Single nerve involvement causing progressive disfiguring proptosis or blindness
*Possible benefit: delaying RT in young children
*Probable contra-indication:
**Diffuse chiasmal involvement/broadly infiltrative disease
**NF patients
===Chemotherapy===
*No consensus; most are treated under Low Grade Glioma guidelines
*UCSF study demonstrated activity of nitrosurea-based chemo (TPDCV)
*George Washington study (Packer) demonstrated good outcomes with carboplatin/vincristine (now the most "standard" chemo)
*French trial showed good long-term control, while avoiding RT
*Children's Oncology Group trial CCG A9952 recently reported(essentially randomizing UCSF and GW protocols)
'''Published'''
*'''CCG A9952''' {{PMID|22665535}} -- "Randomized study of two chemotherapy regimens for treatment of low-grade glioma in young children: a report from the Children's Oncology Group." (Ater JL, J Clin Oncol. 2012 Jul 20;30(21):2641-7.)
**Prospective RCT. 274 patients < 10 years of age with progressive or residual LGG. Randomized to carboplatin and vincristine (CV) or thioguanine, procarbazine, lomustine, and vincristine (TPCV).
**5-year outcomes: EFS 39% (CV) vs. 52% (TPCV) (stratified log-rank test P = .10; cure model analysis P = .007)
**Prognostic factors: younger age and tumor size greater than 3 cm2 (worse EFS and OS), thalamic tumors (worse OS)
**Conclusion: Differences in toxicity may influence treatment decisions.
*'''French Society of Pediatric Oncology, 2003''' (1990-1998) {{PMID|14673044}} -- "Progression-free survival in children with optic pathway tumors: dependence on age and the quality of the response to chemotherapy--results of the first French prospective study for the French Society of Pediatric Oncology." (Laithier V, J Clin Oncol. 2003 Dec 15;21(24):4572-8.)
**Prospective. 85 children with progressive optic pathway tumors. Chemo: alternating procarbazine/carboplatin, etoposide/cisplatin, and vincristine/cyclophosphamide every 3 weeks. At relapse, 2nd line chemo before RT
**5-year outcomes: PFS 34%, OS 89%. RT-free survival 61%
**Prognostic factors: age <1, NF1 associated with disease progression
**Conclusion: RT can be avoided with prolonged chemotherapy, without compromising OS or visual function
*'''Royal Marsden, 2003''' (UK) {{PMID|12892235}} -- "Tolerance of nitrosurea-based multiagent chemotherapy regime for low-grade pediatric gliomas." (Lancaster DL, J Neurooncol. 2003 Jul;63(3):289-94.)
**Prospective. 10 children with low-grade gliomas, initially treated with carboplatin/vincristine, second line with TPCV
**Conclusion: TPCV is appropriate as second line therapy
*'''George Washington, 1997''' {{PMID|9126887}} -- "Carboplatin and vincristine chemotherapy for children with newly diagnosed progressive low-grade gliomas." (Packer RJ, J Neurosurg. 1997 May;86(5):747-54.)
**Prospective. 78 children with progressive low-grade glioma (12 brainstem gliomas). Concurrent carboplatin/vincristine. Median F/U 2.5 years
**3-year PFS: 68%. No difference between NF1+ and NF1-. Objective response 56%
**Prognostic factors: only age (<3 yo 74% vs. >3 yo 39%, SS)
*'''UCSF, 1991''' (1983-1989) {{PMID|1901597}} -- "Management of chiasmal and hypothalamic gliomas of infancy and childhood with chemotherapy." (Petronio J, J Neurosurg. 1991 May;74(5):701-8.)
**Retrospective. 19 children with chiasmal/hypothalamic gliomas. 12 treated immediately for progressive symptoms, 7 deferred. Chemo: [[Radiation_Oncology/Chemotherapy_combinations|TPDCV]]
**Median time to progression: not reached at 20 months. No tumor-related deaths. Initial response/stabilization 15/18 patients
**Salvage: RT
**Conclusion: TPDCV allows RT to be deferred until progression of disease.
==Radiation==
*Most favorable outcomes reported for 45-56 Gy, in 1.8 Gy/fx
*Suggestion that posterior location tumors have worse outcomes
*Proton RT is being explored
*'''Harvard, 2005''' (1992-1998) {{PMID|15667955}} -- "Stereotactic radiotherapy for localized low-grade gliomas in children: final results of a prospective trial." (Marcus K, Int J Radiat Oncol Biol Phys. 2005 Feb 1;61(2):374-9.)
**Prospective. 50 patients with localized low-grade glioma. RT for progression on/after chemo or surgery. Median F/U 6.9 years
**RT: Removable head frame. 2-mm margin. Mean dose 52.2 Gy in 1.8 Gy/fx. Target delineation via CT/MRI fusion
**5-year outcome: PFS 83%, OS 98%; 6 patients with in-field progression, no marginal failures
**Conclusion: stereotactic RT excellent local control, with limited margins
*'''Heidelberg, 2005''' (Germany) (1990-2003) {{PMID|15936565}} -- "Fractionated stereotactic radiotherapy of optic pathway gliomas: tolerance and long-term outcome." (Combs SE, Int J Radiat Oncol Biol Phys. 2005 Jul 1;62(3):814-9.)
**Retrospective. 15 patients. Median dose 52.2 Gy (45.2-57.6) in 1.8 Gy/fx. Median F/U 8 years
**5-year outcome: PFS 72%, OS 90%. No second malignancies
**Conclusion: Good control, normal brain sparing. Longer f/u needed
*'''Institut Curie, 1991''' (1970-1986) {{PMID|1907959}} -- "Chiasmal gliomas: results of irradiation management in 57 patients and review of literature." (Bataini JP, Int J Radiat Oncol Biol Phys. 1991 Aug;21(3):615-23.)
**Retrospective. 57 patients, 37% chiasm, 63% extended to hypothalamus/posteriorly. RT 40-60 Gy. Mean F/U 7.5 years
**5-year (and 10-year) OS: 84%; response: CR 15%, PR 46%, SD 22%
**Conclusion: RT effective in cases of rapidly developing visual, neurological, or endocrine symptoms
*'''Neurological Institute, Columbia University, 1956''' {{PMID|13323290}} -- "The value of radiation therapy in the management of glioma of the optic nerves and chiasm." (Taveras JM, Radiology. 1956 Apr;66(4):518-28.)
**Retrospective. 34 patients treated with RT
**Survival: 23/34 at time of publication
**Landmark study. Results deemed exceptional. Launched RT as a management strategy
==RT Complications==
*'''Manchester/London, 2006''' {{PMID|16735710}} -- "Second primary tumors in neurofibromatosis 1 patients treated for optic glioma: substantial risks after radiotherapy." (Sharif S, J Clin Oncol. 2006 Jun 1;24(16):2570-5.)
**Retrospective. 58/80 NF1 patients with OPG. 18/58 RT alone or in combination. Dose 25-50 Gy
**Second CNS tumor: RT 9/18 (50%) developed 12 second tumors in 308 person-years of F/U; No RT 8/40 (20%) developed 9 second tumors in 721 person-years of F/U. RR 3 (SS). Median time-to-diagnosis 12 years. Risk of [[Radiation_Oncology/MPNST|MPNST]] was increased RR 5.3 (SS) over non-OPG NF1 controls
**Conclusion: Significantly increased 2nd CNS cancer risk in NF1 patients with OPG; RT should be used only if absolutely necessary
*'''Toronto, 1993''' (1971-1990) {{PMID|8315466}} -- "Moyamoya phenomenon after radiation for optic glioma." (Kestle JR, J Neurosurg. 1993 Jul;79(1):32-5.)
**Retrospective. 47 patients with OPG treated.
**Moyamoya phenomenon: 0/19 no RT; 5/28 with RT; 2/23 NF1- vs. 3/5 NF1+ (SS)
**Conclusion: High incidence of moyamoya in patients with NF1 and cranial RT
**Note: [[w:Moyamoya_disease|Moyamoya disease]] is a progressive chronic cerebrovascular disease seen mainly in Asia characterized by bilateral stenosis/occlusion of the arteries in the circle of Willis with an unknown etiology that here used to describe post-radiation changes to the vascular system
==Review==
*'''2006''' {{PMID|16411210}} -- "Optic pathway gliomas." (Jahraus CD, Pediatr Blood Cancer. 2006 May 1;46(5):586-96.)
ly6ux9i48l7wfe7dctyq1gkx4j5n9pm
Wikibooks talk:Featured books/Nominations
5
119107
4674768
4601711
2026-10-06T18:22:52Z
Codename Noreste
3441010
/* Toheeb AYINDE */ delete topic by 105.112.103.114 ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4674768
wikitext
text/x-wiki
{{talk header}}
== Completeness and Formatting ==
I agree with Xania that formatting is relatively minor thing, and that it ''would'' make somewhat of a bias towards books written by those who know more about wiki markup to favor those books with good formatting. Also, I think that if we feel formatting is the ''only'' thing keeping something from becoming a "featured book" then we should collaborate to fix the formatting (for the sake of any authors that do not know how) and then it'd be good to go.
As far as content is concerned, I think that there needs to be ''some'' break-point as far as how in-depth the book goes on a topic, yes I agree with Xania that formatting isn't as important but I would beg to differ about the amount (and, even more importantly, the quality) of the content. I agree that a good book doesn't need to be that long (eg the survival guide, which covers a rather narrow topic but does so well; also chess only has 7 pages I think but they cover the most essential topics regarding the game) but I feel it does need to cover a significant amount of the proposed topic.
I think part of the problem might be that we need to think about whether we want this project to be a list of ''good'' books or a list of ''the best'' books on the project, because it seems to me at least that there's some disagreement of which is which. I'd suggest that perhaps we should develop a more specific set of standards so that we know what we're looking for in content particularly before we vote on something (because we have several guidelines for formatting but only 1-2 very general points as far as content is concerned). I myself would vouch for the ''latter'' since the project is, as far as I can tell, reader-oriented. [[User:Mattb112885|Mattb112885]] <small>([[User talk:Mattb112885|talk]]) </small> 21:00, 20 April 2007 (UTC)
:I'm really trying to put our best books forward, because I think readers will be more impressed by the "cream of the crop" then by a whole bunch of books that are just "good enough". I will entertain criticisms that I am being too myopic. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 21:10, 20 April 2007 (UTC)
:: I agree completely with Whiteknight. It's far better to have a shorter list of truly excellent books than a long list of books that are just ok or even "good" ("good" is a really undescriptive word, and not really that high an accolade). I also don't like how we use the term "good books" in some places and "featured books" in others. Is there a difference? Is one an older naming convention than the other?
:: On Mattb112885's points, I think that both formatting and actual content are equally important. When looking at a textbook, there's nothing more daunting than a huge pile of unformatted text. No matter how thrilling the prose its, it's still just text and you won't learn much from it, in my opinion. On the other hand, substandard content cannot be improved by making it pretty; formatting alone does not a good book make. I believe that we need to require both good content, and good formatting, in order for a book to be featured. These are supposed to be the showcase of the website, and if they're lacking in either area, they're clearly not showing our full potential, or a standard for which to aim.
:: I also agree that we need to set some proper descriptive standards that encompass everything, so that we're all working from roughly the same page when voting.
:: Kind regards, [[User:Celestianpower|Celestianpower]] 22:01, 20 April 2007 (UTC)
::: That is true, it can't be completely UN-formatted, I'm just saying that as long as the basic formatting is there we probably shouldn't look past the book just because it doesn't use fancy templates and what have you, as long as whatever is there does the job. [[User:Mattb112885|Mattb112885]] <small>([[User talk:Mattb112885|talk]]) </small> 21:31, 21 April 2007 (UTC)
::::We also have to ask how much effort, exactly, does it take to properly format a book to a minimum standard? The breaking of different subjects into different headings is one of the most important, and easiest, steps in formatting a book properly. Using bold on keywords, or italics on items that need emphasis are good too, but not always necessary. Other formatting tools such as tables, image captions, definition lists, etc are all nice but certainly not needed (and not always applicable). In the end, the formatting required is very very small, but that minimum level should not be ignored. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 23:21, 22 April 2007 (UTC)
==Removing featured books==
Should books that pass the nominations be removed from the list? [[User:RobinH|RobinH]] 08:48, 23 April 2007 (UTC)
:@[[User:RobinH|RobinH]] [[Special:Contributions/~2025-34457-22|~2025-34457-22]] ([[User talk:~2025-34457-22|talk]]) 19:57, 17 November 2025 (UTC)
==Re-nominations==
[[Marketing]] has been re-nominated. Perhaps there should be some criteria for renomination. I would like to see, as a minimum:
#A link to the original nomination.
#A description of how the concerns raised in the rejection have been addressed.
Marketing is an interesting example for re-nomination because voters suggested changes that would make it eligible for featured book status rather than rejecting outright. [[User:RobinH|RobinH]] 07:55, 2 May 2007 (UTC)
: I agree, this just makes more sense than simply repeatedly posting something and hoping it passes. [[User:Mattb112885|Mattb112885]] <small>([[User talk:Mattb112885|talk]]) </small> 11:19, 2 May 2007 (UTC)
::I changed the text of [[Wikibooks:Good books]] to say that a book may not be renominated for at least one month (which is arbitrary, i know), or until the criticisms from the first nomination have been addressed. Providing a link to the previous nomination, if it can be found in the archives, is a good idea too. The [[Wikibooks:Good books]] page is just a proposal right now, but if we keep doing what it says and nobody objects I think we could just make it into a guideline eventually. --[[User:Whiteknight|Whiteknight]] ([[User talk:Whiteknight|talk]]) 13:37, 2 May 2007 (UTC)
== Algorithms comments ==
I definitely like the idea of an Algorithms book, and I do somewhat enjoy the tone. With respect to Xania's comment, the abbreviations and jargon are explained in the mathematical background, but you might have to wade through them to understand. This book is much more formal/theoretical than it is technical, so there are some inherent limits to how friendly one can make it. Friendliness would be brilliant, of course, but for an algorithms book (as opposed to a programming book), the priority is more to be correct than it is to be understandable. Overall, we can forgive this book for not being completely accessible to the general public. This book is likely suited for students in computer science programmes, and 'practical' computer programmers interested in catching up on their formal training -- [[User:Kowey|Kowey]] 07:33, 4 May 2007 (UTC)
:I am a former computer science student and graduate yet I will not support any book which doesn't aim to be "understandable". The worst thing about computer science today is that jargon and technical language is unnecessarily frightening for unfamiliar users - and it doesn't need to be. [[User:Xania|Xania]] [[Image:Flag_of_Italy.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 20:15, 4 May 2007 (UTC)
::I have to be honest with you Xania, i dont see anything in this book that is particularly complicated or unaccessible. Remember that textbooks are not collections of articles, and that there is an intended reading order. If you start at the beginning of the book, and don't just flip to a random chapter, all the necessary terms and "jargon" are explained. Alot of the algorithms may not be intuitive or obvious, but that's because many of them deal with specific data structures. For instance, you dont need to know algorithms for manipulating a binary tree unless you know what a binary tree is in the first place. --[[User:Whiteknight|Whiteknight]] ([[User talk:Whiteknight|talk]]) 20:28, 4 May 2007 (UTC)
Xania - I'm still trying to decide how to vote on this one. Could you offer some concrete suggestions on how the authors could make this book more accessible? That is, not just "avoid burying the user in jargon and technical language", but specific points that could be made clearer. I would also be willing oppose if you could show a better way; otherwise, I'm leaning towards support.
Also out of curiosity, what kind of computer science did you study? Theoretical computer science with automata and what not, or more practical programming-oriented stuff? -- [[User:Kowey|Kowey]] 08:44, 16 May 2007 (UTC)
::: Apologies for the late reply. I now see the appendix and explanations of terms that I had previously confused me. I'm willing to support this book. I studied 'Computation' which is geared towards a very broad study of all things computer-related, from software programming, statistics, social consequences of computers and modern technology, using computers for learning, computer architecture and software quality. Basically a little of everything. [[User:Xania|Xania]] [[Image:Flag_of_Italy.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 22:44, 16 May 2007 (UTC)
:::: Thanks for that. I think that's why this book seemed a little bit incomprehensible at first; it really does lean towards the theoretical part of computer science (well, it's halfway in between theory and practical, I guess). It will be a useful resource, though -- [[User:Kowey|Kowey]] 06:30, 17 May 2007 (UTC)
== New look ==
I don't like the new look with the table of contents down the middle. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 02:39, 16 July 2010 (UTC)
:Looks like it was the result of deleting a <nowiki>|}</nowiki> by accident. I've fixed it.
::<edit conflict> never mind. [[User:Kayau|Kayau]] ( [[User talk:Kayau|talk]] | [[Special:Emailuser/Kayau|email]] | [[Special:Contributions/Kayau|contribs]] ) 03:38, 16 July 2010 (UTC)
== Archiving this stuff ==
Some of the nominations on the main page are two years old and long closed. I was going to move them to an archive but not sure where. I found a whole page of archives but they are all placed in a page of their own which seems very inconvenient and moving each closed nomination will be too time-consuming. Can we not just archive them as we would archive anything else and have one page for each year of nominations?--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 20:20, 16 March 2013 (UTC)
: Hm. One-to-a-page is the way we archive deletion discussions, too. The advantage, I suppose, is ability to automatically generate a link to it (or to them, if there are multiple nominations). This is an instance where a bit of semi-automation to make the operation easier to do "by hand" would be a big help. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 21:05, 16 March 2013 (UTC)
::Yeah I forgot about the delete discussions. Seems a lot of work for something that almost nobody would ever want to read again. I'll leave it until somebody has the time to move them to their resting place or a bot does the work for us. It would be much simpler if we just moved them all to one page and then copied the main comments and a link to the archive page onto the book's Talk page.--[[User:Xania|ЗAНИA]] [[Image:Flag_of_Estonia.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 21:13, 16 March 2013 (UTC)
::: The other example of this I've seen was on Wikinews, where someone tried to set things up so that requests for privileges would all be filed away neatly in per-request archive pages, and whenever someone requested any sort of a privilege, a complete list of all their past requests for any privilege whatever would automatically pop up. Which makes all kinds of sense for Wikinews because it's quite common for any regular Wikinewsie to have multiple such requests, except that it was going to be too much work to maintain. So there's clearly a market for a tool that would make this sort of per-request archiving easy to do. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 01:24, 17 March 2013 (UTC)
== Drive-bys ==
The most recent comment under the section about nomination for addition of the wikibook on OpenSSH looks like a drive-by and unintended to help the book. It is mostly addressing problems that don't exist and appears trying to change the scope of the book. It looks like the account owner has not read the book introduction even, especially about how the scope matches the title. There aren't even any missing or dead links in the section referred to in the nomination comment. I've looked at the comments that account has left in the book and there's not much on-topic there either. That said, I have tried gleaning what liitle I can from those. What should be done about the apparent drive-by account or its comment in the nominations? [[User:Larsnooden|Larsnooden]] ([[User talk:Larsnooden|discuss]] • [[Special:Contributions/Larsnooden|contribs]]) 11:49, 2 May 2020 (UTC)
: {{ping|Larsnooden}} Are you are referring to the {{plainlinks|{{fullurl:{{PAGENAME}}|diff=prev&oldid=3671062}}|oppose vote}} in the discussion? --12:16, 2 May 2020 (UTC) {{unsigned|Pi zero}}
:: Not so much the vote itself as the erroneous comments accompanying it. [[User:Larsnooden|Larsnooden]] ([[User talk:Larsnooden|discuss]] • [[Special:Contributions/Larsnooden|contribs]]) 12:20, 2 May 2020 (UTC)
::: {{ping|Larsnooden}} There appear to me to be two possible approaches, that call I think for careful weighing before doing either: reversion or reply. I've been thinking about how best to do each of these.
:::* On my own I wouldn't revert because I wouldn't be confident enough of whether this is really vandalism; I'd be interested to know what {{ping|JackPotte}} thinks of this, as someone more familiar than I with the material (and an admin who has dealt with some subversive vandalism). If I were reverting I'd likely use as edit summary a more compact form of the reply I'd most likely write.
:::* The reply I've tentatively considered reads "It's not clear to me that these criticisms are consistent with the book material they're directed at (a concern also [[Wikibooks talk:Featured books/Nominations#Drive-bys|raised]] by Larsnooden)."
::: --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 14:27, 2 May 2020 (UTC)
:::: Thanks. I'll think about it more. [[User:Larsnooden|Larsnooden]] ([[User talk:Larsnooden|discuss]] • [[Special:Contributions/Larsnooden|contribs]]) 14:43, 2 May 2020 (UTC)
::::: It's not a vandal because the critic is skilled and founded, so we shouldn't revert it. I'm going to reply... [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 20:19, 2 May 2020 (UTC)
:::::: I've considered some of the points again. 1) The chapter on Public Key Authentication has been reworked. 2) The chapter on Host-based Authentication has also been reworked. 3) A chapter on Certificate-based authentication has been added. 4) The section on Managing Keys had been reworked slightly but there is not much to say since the main activity there concerns managing files, an activity related to system administration. 5) Automated backup has been touched up ever so slightly. However 6) X-Windows is already covered in the section on Remote Processes, albeit briefly because anyone needing a tutorial to find the -X option is not going to be happy with the latency, so I'm not seeing merit in expanding that. 7) I'd expand on Automated Backup if I can see a way to do it without going off on a tangent and turning it into a shell scripting tutorial. As it is now that chapter seems clear and to the point. [[User:Larsnooden|Larsnooden]] ([[User talk:Larsnooden|discuss]] • [[Special:Contributions/Larsnooden|contribs]]) 09:11, 9 May 2020 (UTC)
What do you mean [[User:Wikivuyo|Wikivuyo]] ([[User talk:Wikivuyo|discuss]] • [[Special:Contributions/Wikivuyo|contribs]]) 19:41, 13 April 2022 (UTC)
hkqyhd8l1ep68aw8oclm3jhgd0cauu1
Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bb5/3...Nf6/4. O-O
0
127223
4674850
4644771
2026-10-07T10:26:35Z
~2026-53810-55
3627800
/* 4. O-O · Rio gambit */ Removed "Rio Gambit" and changed the table reference to "Open variation". I cannot find an original source for the name "Rio gambit". If you think this is in error, make a discussion page with your sources.
4674850
wikitext
text/x-wiki
{{Chess Opening Theory/Position
|Berlin defence
|parent=[[../|Berlin defence]]
}}
== 4. O-O==
Castling is the most common continuation in the Berlin defence. This leaves White's e4 pawn undefended, but gives White's rook access to the centre.
If Black accepts the pawn, [[/4...Nxe4|'''4...Nxe4''']], this is actually a trade because White can take back e5 easily. One line is 5. Re1, bringing another attacker to the e-file and recovering the pawn after the knight is forced to move. One of the reasons this works is because Black's king is still in the centre: 4...Nxe4 5. Re1 Nd6 (threatens to take White's bishop) 6. Nxe5 Nxe5 (Black is not in time to capture the bishop: 6...Nxb5, because the discovered check Nxc6 wins White the queen) 7. Rxe5+ Be7 and White can evacuate the bishop.
5. Re1 is very drawish, and 5. d4 is actually the main line (although as this is the Berlin, 5. d4 is pretty drawish too, and usually leads to [[Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bb5/3...Nf6/4. O-O/4...Nxe4/5. d4/5...Nd6/6. Bxc6/6...dxc6/7. dxe5/7...Nf5/8. Qxd8/8...Kxd8|the Berlin Wall endgame]]). 5...exd4? opens the e-file and lets 6. Re1 pin-and-win Black's knight, so the main reply is 5...Nd6.
[[/4...Bc5|'''4...Bc5''']], the '''Beverwijk variation''', is the main alternative to 4...Nxe4. Black pressures f2 and White's castled king. This is sharp because 5. Re1?! to defend e4 undefends f2 so after 5...Ng4, White finds themselves having to move it back 6. Rf1. (A trap is 6. d4?? Nxd4! 7. Nxd4 Qh4!{{Chess/not|---}}).
White has the choice to capture e5 (5. Nxe5), due to a tactic that arises from the c5 and e5 squares being forkable. More commonly White plays for c3 and d4 instead.
[[/4...Be7|'''4...Be7''']] before taking the pawn shelters Black's king and gets ready to castle. This prevents any mischief around a discovered check. Now the threat of 5...Nxe4 is more severe, as while White can still recover the pawn, they would have to give up the bishop pair to do so (e.g. 5. c3?! Nxe4 6. Re1 Nd6 7. Bxc6 dxc6 8. Nxe5 Bf5). 4...Be7 functionally declines the gambit, as it gives White time to play 5. Re1 and defend the e4 pawn. It is typically a quieter continuation.
[[/4...Ng4|'''4...Ng4?!''']], the '''Fishing pole variation''', invites White to blunder by accepting a sacrificial knight but opening the h-file and exposing themselves to potential checkmate.
==Theory table==
{{Chess Opening Theory/Table}}.
:1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<th></th>
<th align="left"><span style="font-size: small;">4</span></th>
</tr>
<tr>
<th align="right">Open variation</th>
<td><span style="font-size: small;">...<br>[[/4...Nxe4|Nxe4]]</span> </td>
<td>=</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br>[[/4...d6|d6]]</td>
<td>=</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br>[[/4...Bc5|Bc5]]</td>
<td>=</td>
</tr>
<tr>
<th align="right"></th>
<td>...<br>[[/4...Ng4|Ng4]]</td>
<td>=</td>
</tr>
</table>
{{ChessMid}}
==References==
{{reflist}}
=== See also ===
{{wikipedia|Ruy Lopez}}
{{Chess Opening Theory/Footer}}
inhmqdutiney2vjr34wm2ukf52gq2nq
Radiation Oncology/NSCLC/Randomized
0
127249
4674818
4099680
2026-10-07T08:37:08Z
Jcb
90773
4674818
wikitext
text/x-wiki
{{:Radiation Oncology/Lung/NSCLC:TOC}}
'''Non-Small Cell Lung Cancer Randomized'''
<br>In process of being cross-linked ...
==Early Stage Operable NSCLC==
===Primary surgery vs. primary RT===
*'''Medical Research Council/Hammersmith Hospital''' (1954-1958) -- RT vs Surgery
**Randomized. 58 patients, no clinical or radiologic evidence of mediastinal involvement. Biopsy proven carcinoma. Arm 1) RT - using 8 MeV linac, 45 Gy in 4 weeks daily. Target + 2cm + hilar/mediastinal areas; vs. Arm 2) Surgery - pneumonectomy or lobectomy + hilar/mediastinal LND. However 13/30 weren't operable/refused. Histology squamous 64%, adenocarcinoma 3%, small cell/anaplastic 33%
**'''1963''', doi:10.1016/S0140-6736(63)91444-2 --"THE TREATMENT OF CARCINOMA OF THE BRONCHUS A Clinical Trial to Compare Surgery and Supervoltage Radiotherapy" (Morrison R, Lancet. 1963. Mar 30; 281(7283):683-684)
***Outcome: 1-year OS RT 64% vs. Surgery 43%; 2-year OS 14% vs. 27%; 4-year 7% vs. 23% (NS). By histology: squamous 6% vs. 30% (SS); small cell 10% both (NS)
***Conclusion: In squamous cell tumors, surgical resection is significantly better than RT; no difference in small cell.
===Limited resection vs. lobectomy===
*'''North American Lung Cancer Study Group 821''', 1995 (1982-88)- {{PMID|7677489}} — "Randomized trial of lobectomy versus limited resection for T1 N0 non-small cell lung cancer." Ginsberg RJ et al. Ann Thorac Surg. 1995 Sep;60(3):615-22
**Randomized. 247/276 patients with peripheral pT1N0. Treated with limited resection (segmental resection or large wedge with 2cm margin)
**Locoregional recurrence: limited resection 17% vs. lobectomy 6% (SS, 3x higher). Death rate: 39% vs. 30% (NS)
**Tumor volume: lobectomy better, regardless of tumor size (<3 cm3, 3-8 cm3, 8-27 cm3)
**Toxicity: perioperative morbidity, mortality, and late post-op pulmonary function comparable
**Conclusion: Higher LR and death rate, without improved post-op function
===Pre-op RT vs Surgery Alone===
*'''Nijmegen''' (The Netherlands)(1971-1976) -- Pre-op Mediastinal RT vs Surgery Alone
**Randomized, pilot. 33 patients, clinical T1-2N0 NSCLC, mediastinoscopy LN-. Arm 1) Pre-op RT 20/5 to hilar, subcarinal, tracheo-bronchial, and paraesophageal LNs followed by surgery following Monday vs. Arm 2) Surgery alone. Either lobectomy or pneumonectomy
**'''1984''' {{PMID|6378851}} -- "Evaluation of short-course preoperative irradiation in the treatment of resectable bronchus carcinoma: long-term analysis of a randomized pilot-study." (Kazem I, Int J Radiat Oncol Biol Phys. 1984 Jul;10(7):981-5.) Minimum F/U 7 years
***Outcome: 5-year OS pre-op RT 58% vs. surgery alone 43%; 5-year DSS 78% vs. 67% (NS); median OS 6 years vs. 2.5 years. R0 resection in pre-op 57% vs surgery only 28%
***Subgroup analysis: If lobectomy, RT beneficial only during first year, then no difference. If pneumonectomy, RT beneficial during entire follow-up (5-year OS 66% vs. 42%).
***Toxicity: 9% operative mortality (all patients in surgery only arm); delayed wound healing comparable
***Conclusion: Pre-op RT well tolerated, and results are encouraging
*'''Germany'''
**Randomized. 196 operable patients. Arm 1) Pre-op RT 5500 RHD (Co-60) vs. Arm 2) Surgery only
**'''1975''' {{PMID|173257}} -- "[Results of a controlled clinical trial for evaluation of intensive preoperative irradiation in operable bronchial cancer (author's transl)] - [Article in German]" (Eichhorn HJ, Arch Geschwulstforsch. 1975;45(4):376-84.)
***Outcome: No difference in annual survival. Significantly reduced LR rate
***Toxicity: Post-op mortality and complications "a bit more favorable"
***Conclusion: No difference
*'''NCI Trial''' (1963-1966) -- Pre-op RT vs. Surgery only
**Randomized. 17 institutions. 568 patients operable (no carina, no mediastinum/SCV, no chest wall invasion). Arm 1) immediate surgery vs. Arm 2) Pre-op RT, given as >40 Gy supravoltage
**'''1975''' {{PMID|171057}} -- "Preoperative irradiation of cancer of the lung: final report of a therapeutic trial. A collaborative study." (Warram J, Cancer. 1975 Sep;36(3):914-25.)
***Outcome: 5-year OS pre-op RT 13% vs. surgery 16% (NS); 5-year RFS 11% vs. 14% (NS)
***Toxicity: Post-op mortality in surgery alone 11%, not estimated for pre-op RT group
***Conclusion: No difference
===Surgery +/- adjuvant EBRT===
*'''Rome''' (Italy)(1989-1997)
**Randomized. 104 patients with Stage I only. Surgery +/- RT (corrected 50.4/28 to bronchial stump and homolateral hilum; mean treated area 50 cm2)
**'''2002''' {{PMID|11830308}} -- "Adjuvant radiotherapy in non-small cell lung cancer with pathological stage I: definitive results of a phase III randomized trial." (Trodella L, Radiother Oncol. 2002 Jan;62(1):11-9.)
***5-year outcome: OS: RT 67% vs. observation 58% (p=0.048); LR: 2% vs. 23%
***Toxicity: 11% acute toxicity; no long term clinical toxicity, 37% radiographic fibrosis
***Conclusion: RT gave good results in LC, promising OS and DFS
*'''Beijing''' (China) (1982-95)
**Randomized. 366 pts, positive N1 or N2 nodes after surgery. Randomized to RT 60 Gy vs no further therapy. Field included bronchial stump, ipsilateral hilum, and most of the mediastinum; included SCLV for pts with upper mediastinal node involvement; mediastinum down to diaphragm for lower lobe primary.
**'''2000''' {{PMID|10863061}} — "A study of postoperative radiotherapy in patients with non-small-cell lung cancer: a randomized trial." Feng QF et al. Int J Radiat Oncol Biol Phys. 2000 Jul 1;47(4):925-9.
***3-yr OS (51.9% vs 50.2%), 5-yr OS (42.9% vs 40.5%), not S.S. Trend toward improved OS in T3-4 and N1 pts receiving RT.
**Comments: More pts with N2 disease in RT group (45% vs 27%)
*'''GETCB''' (France)(1986-94)
**Randomized. 728 pts (Stage I-III) randomized after resection to RT 60 Gy or observation.
**'''1999''' {{PMID|10421262}} — "A controlled study of postoperative radiotherapy for patients with completely resected nonsmall cell lung carcinoma. Groupe d'Etude et de Traitement des Cancers Bronchiques." Dautzenberg B et al. Cancer. 1999 Jul 15;86(2):265-73.
***5-yr OS 30% (RT) vs 43% (Obs). Excess mortality due to increase in intercurrent deaths (31% vs 8%). More intercurrent deaths for higher dose per fraction. ON subgroup analysis, detrimental effect of RT significant in Stage I-II but not Stage III. No effect on local recurrences or distant mets.
**Critique: included N0 patients, majority treated with Co-60, with fractions up to 2.5 Gy/fx
*'''Graz''' (Austria)(1985-1995)
**Randomized. 155 pts, pT1-3 pN0-2. Randomized to RT 50 Gy (if pN0) or 56 Gy (if pN1-2) vs no further treatment. Treatment included the bronchial stump + 2cm margin, ipsilateral hilum, and mediastinum; SCLV included for apical tumors. 2F AP/PA or 3F with off-cord after 42 Gy
**'''1997''' {{PMID|9377958}} [http://www.chestjournal.org/cgi/reprint/112/4/954 Full text] — "Postoperative radiotherapy in radically resected non-small cell lung cancer." Mayer R et al. Chest. 1997 Oct;112(4):954-9.
***5-yr outcome: OS: RT 30% vs observation 20% (NS). DFS: 20% vs. 16% (NS). LR 6% vs. 24% (SS)
***Conclusion: Significant reduction in local recurrences, tendency to OS benefit
*'''Medical Research Council''' (1986-93)
**Randomized. 308 pts. Were pN1 or pN2. Randomized after surgery +/- RT 40 Gy in 15 fx.
**'''1996''' {{PMID|8761382}} — "The role of post-operative radiotherapy in non-small-cell lung cancer: a multicentre randomised trial in patients with pathologically staged T1-2, N1-2, M0 disease. Medical Research Council Lung Cancer Working Party." Stephens RJ et al. Br J Cancer. 1996 Aug;74(4):632-9.
***Overall, no survival difference. On subgroup analysis, trend to survival benefit for N2 pts (21% vs 36% at 3 yrs, p=0.18). No benefit in N1 pts.
*'''France''' (1985-91)
**Randomized. 163 pts, T2N0. Randomized to RT 60 Gy or no further treatment.
**'''1996''' {{PMID|8784014}} — "Postresection irradiation for T2 N0 M0 non-small cell carcinoma: a prospective, randomized study." Lafitte JJ et al. Ann Thorac Surg. 1996 Sep;62(3):830-4.
***No difference in survival, OS 44.2% (survival figures not given for each arm). No difference in local or distant mets.
*'''Lung Cancer Study Group 773'''
**Randomized. 230 pts. Resected squamous cell carcinoma, Stage II or III. Randomized to +/- RT 50 Gy to mediastinum.
**'''1986''' {{PMID|2877397}} — "Effects of postoperative mediastinal radiation on completely resected stage II and stage III epidermoid cancer of the lung." The Lung Cancer Study Group. N Engl J Med. 1986 Nov 27;315(22):1377-81.
***Local recurrences were reduced: 20% vs 1% local failure, but overall treatment failures were the same.
***Conclusion: Improved LR, but no effect on survival.
*'''Van Houtte''' (1966-1975)
**224 pts. N0. Randomized after resection to RT (60 Gy) vs observation.
***'''1980''' {{PMID|6998936}} — "Postoperative radiation therapy in lung cancer: a controlled trial after resection of curative design." Van Houtte P et al. Int J Radiat Oncol Biol Phys. 1980 Aug;6(8):983-6.
***Survival was worse in the RT group: 5-ys OS 24% vs 43% (NS).
===Surgery +/- adjuvant chemotherapy===
*'''CALGB 9633''' (1996-2003) -- Surgery +/- paclitaxel and carboplatin
**Randomized. ''Stopped early after interim analysis showed survival benefit.'' 344 patients (target 500). NSCLC, T2, pN0 by mediastinoscopy, resected with lobectomy/pneumonectomy. Arm 1) adjuvant paclitaxel 200 mg/m2 + carboplatin AUC 6 Q3W x4 cycles vs. Arm 2) observation. Primary endpoint OS
**'''2008''' {{PMID|18809614}} -- "Adjuvant Paclitaxel Plus Carboplatin Compared With Observation in Stage IB Non-Small-Cell Lung Cancer: CALGB 9633 With the Cancer and Leukemia Group B, Radiation Therapy Oncology Group, and North Central Cancer Treatment Group Study Groups." (Strauss GM, J Clin Oncol. 2008 Sep 22. [Epub ahead of print]) Median F/U 6.2 years
***Outcome: median OS chemo 7.9 years vs. observation 6.5 years (NS); 5-year OS 60% vs. 58% (NS); 5-year DFS 52% vs. 48% (NS). Subgroup analysis: survival difference for tumors >=4cm
***Toxicity: Grade 3/4 neutropenia in 35%
***Conclusion: Negative trial, adjuvant chemo should not be standard of care in Stage IB. Survival advantage for large tumors on subset analysis
*'''International Adjuvant Lung Trial (IALT)''' (1995-2000) -- Surgery +/- cisplatin and vinca alkaloids
**Randomized. ''Terminated early due to slow accrual.'' 1867 patients (target 3300). Stages I-III (Stage I 36%, Stage II 24%, Stage III 40%), complete resection. Arm 1) Adjuvant cisplatin with either etoposide (in 56%) or vinca alkaloid (vinorelbine, vinblastine, vindesine) x3-4 cycles. ~25% also received RT based on institutional preference.
**'''2004''' {{PMID|14736927}} — "Cisplatin-based adjuvant chemotherapy in patients with completely resected non-small-cell lung cancer." Arriagada R et al. N Engl J Med. 2004 Jan 22;350(4):351-60. Median F/U 4.7 years
***Outcome: 5-year OS chemo 44% vs. 40% control (SS); DFS 39% vs. 34% (SS). Also benefit for local control, distant control. However, no OS benefit on Stage I subset analysis (HR 0.95, NS)
***Toxicity: 1% died due to chemo effects
***Conclusion: Cisplatin-based adjuvant chemo improves survival
**'''2006''' {{PMID|16957145}} -- "DNA repair by ERCC1 in non-small-cell lung cancer and cisplatin-based adjuvant chemotherapy." (Olaussen KA, N Engl J Med. 2006 Sep 7;355(10):983-91.)
***Expression of ERCC1. 761 tumors analyzed. 44% positive, 56% negative
***ERCC1 negative: 5-year OS 47% chemo vs. 39% control (SS). Median OS 56 months chemo vs. 40 months control (14 month benefit)
***ERCC1 positive: 5-year OS 40% chemo vs. 46% control (NS). Median OS 50 months chemo vs. 55 months control (NS)
***Conclusion: In completely resected NSCLC, patients with ERCC1- tumors benefit from cispaltin{{typo help inline|reason=similar to cisplatin|date=September 2022}}, while ERCC1+ tumors do not. ERCC1+ tumors have a better overall OS
*'''NCI-Canada JBR.10 / INT''' (1994-2001) -- Surgery +/- cisplatin and vinorelbine
**Randomized. 482 patients with Stage IB-II (T3 excluded), complete resection. Arm 1) Adjuvant cisplatin 50 mg/m2 and vinorelbine 25 mg/m2 Q4W x4 cycles vs Arm 2) observation. No RT given.
**'''5-years; 2005''' {{PMID|15972865}} — "Vinorelbine plus Cisplatin vs. Observation in Resected Non–Small-Cell Lung Cancer." Winton T et al. N Engl J Med. 2005 June 23;352(25):2589-2597. Median F/U 5 years.
***Outcome: Median OS chemo 7.8 years vs 6.1 years (SS); 5-year OS 69% vs 54%. Median RFS 61% vs. 49% (SS). Subgroup analysis showed no benefit for chemotherapy for Stage IB.
**Conclusion: Improvement in overall survival
*'''Adjuvant Navelbine International Trialist Association (ANITA)''' (1994-2000) -- Surgery +/- cisplatin and vinorelbine
**Randomized. 840 patients. Stage IB-IIIA (36% IB, 24% II, 39% IIIA), complete resection. Arm 1) Adjuvant Cisplatin 100mg/m2 + Vinorelbine 30mg/m2 x4 cycles vs Arm 2) observation. Post-op RT not mandatory, and done according to each center's policy (given to 28%)
**'''6-years; 2006''' {{PMID|16945766}} -- "Adjuvant vinorelbine plus cisplatin versus observation in patients with completely resected stage IB-IIIA non-small-cell lung cancer (Adjuvant Navelbine International Trialist Association [ANITA]): a randomised controlled trial." (Douillard JY, Lancet Oncol. 2006 Sep;7(9):719-27.). Median F/U 6.3 years
***Outcome: 5-year OS chemo 51% vs observation 43% (SS); decreased death by 21%. Median OS 5.5 years vs 3.6 years (SS). Median RFS 3.0 years vs 1.7 years (SS). No benefit for Stage IB on subgroup analysis (5-year OS 62% vs 64%, NS). For Stage II, 52% vs. 39%; Stage IIIA 42% vs. 26%. If N0, 58% vs. 61% (NS); if N1 52% vs. 36%; if N2 40% vs. 19%
***Toxicity: neutropenia 92%, febrile neutropenia 9%, toxic deaths 2%
***Conclusion: Adjuvant vinorelbine/cisplatin extends survival
**''See also:'' Radiotherapy from the ANITA trial (discussed under PORT section)
*'''Adjuvant Lung Project Italy (ALPI)''' (1994-1999) -- Surgery +/- MVP
**Randomized, multi-institutional. 1209 patients with Stage I-IIIA. Treated with 1) surgery + adjuvant mitomycinC/vindesine/cisplatin (MVP) vs. 2) Surgery alone. 43% also received RT.
**'''2003''' {{PMID|14519751}} — "Randomized study of adjuvant chemotherapy for completely resected stage I, II, or IIIA non-small-cell Lung cancer." Scagliotti GV et al. J Natl Cancer Inst. 2003 Oct 1;95(19):1453-61. Median F/U 5.4 years
***Median OS: no difference; PFS no difference. Elective RT: Arm 1 65% vs. Arm 2 82%
***Toxicity: only 69% received MVP x3 cycles
***Conclusion: No difference in outcomes
**Critique: MVP not a good regimen, with pulmonary toxicity of Mitomycin C
*'''Japan JLCRG''' (1994-1997) -- Surgery +/- uracil-tegafur (UFT)
**Randomized. 999 patients, pathologic Stage I adenocarcinoma. Arm 1) adjuvant oral uracil-tegafur (tegafur 250 mg/m2) x2 years vs. Arm 2) observation. Primary end point OS
**'''2004''' {{PMID|15102997}} -- "A randomized trial of adjuvant chemotherapy with uracil-tegafur for adenocarcinoma of the lung." (Kato H, N Engl J Med. 2004 Apr 22;350(17):1713-21.) Median F/U 6.1 years
***Outcome: 5-year OS UFT 88% vs. observation 85% (p=0.047). Stage IA 89% vs. 90% (NS), Stage IB 85% vs. 74% (SS).
***Toxicity: Grade 3 in 2%
***Conclusion: Adjuvant chemotherapy improves survival
*'''Rome Tor Vergata''' (1988-1994) -- Surgery +/- cisplatin and etoposide
**Randomized. 140 patients, Stage IB (pT2N0), sublobar (34%) or great resection. Arm 1) Adjuvant cisplatin 100 mg/m2 and etoposide 120 mg/m2 Q4W x6 cycles vs Arm 2) observation. Primary endpoint OS
**'''2006''' {{PMID|16550600}} -- "Postsurgical chemotherapy in stage IB nonsmall cell lung cancer: Long-term survival in a randomized study." (Roselli M, Int J Cancer. 2006 Aug 15;119(4):955-60.) Mean F/U 3.4 years
***Outcome: 5-year OS chemo 62% vs. observation 42% (SS). If anatomic resection, 75% vs. 50% (SS)); if sublobar resection, 40% vs. 39% (NS)
***Toxicity: Grade 3 in 18%
***Conclusion: Adjuvant chemotherapy may improve long-term survival in Stage IB
*'''Big Lung Trial''' (Surgical arm)
**'''2004''' {{PMID|15200998}} — "Chemotherapy for patients with non-small cell lung cancer: the surgical setting of the Big Lung Trial." Waller D et al. Eur J Cardiothorac Surg. 2004 Jul;26(1):173-82.
**Randomized to chemotherapy vs observation. 3 cycles of chemotherapy q3week. Multiple cisplatin-based regimens.
**No survival benefit.
===Adjuvant chemo vs. adjuvant chemo-RT===
*'''CALGB 9734''' - post-op chemo +/- RT
**Randomized. 37/44 patients. Completely resected Stage IIIA. Adjuvant paclitaxel x4 cycles, then 2-4 weeks later +/- RT. ''Closed early due to slow accrual''
**'''2007''' {{PMID|17311692}} -- "A phase III study of surgical resection and paclitaxel/carboplatin chemotherapy with or without adjuvant radiation therapy for resected stage III non-small-cell lung cancer: Cancer and Leukemia Group B 9734." (Perry MC, Clin Lung Cancer. 2007 Jan;8(4):268-72.)
***Outcome: Median DFS RT 1.4 years vs. no RT 2.8 years (NS); 1-year OS 72% vs. 74% (NS)
***Conclusion: Small study, no improvement in outcome
*'''INT 0115''' ECOG EST 3590 / RTOG 91-05 - chemo/RT vs RT
**Randomized. 488 patients. Stage II-IIIA. Cisplatin/etoposide x4 cycles + concurrent RT vs RT alone. Cisplatin 60 mg/m2, etoposide 120 mg/m2. RT 50.4/28
**'''2000''' {{PMID|11071672}} — "A randomized trial of postoperative adjuvant therapy in patients with completely resected stage II or IIIA non-small-cell lung cancer." Keller SM et al. N Engl J Med. 2000 Oct 26;343(17):1217-22.
***Outcome: median OS 3.2 years vs. 3.2 years (NS). In-field recurrence 13% vs. 12% (NS)
***Toxicity: treatment-related mortality RT 1.2% vs. CRT 1.6%
***Conclusion: No difference in recurrence or survival.
==SBRT==
===Set Up===
*'''University of Toronto''' (2008-2009) -- abdominal compression vs Body fix immobilization
**Randomized. 24 patients, 25 lesions (16 upper lobe, 2 middle lobe, 7 lower lobe), medically inoperable Stage I NSCLC or pulmonary mets. All patients underwent 4D-CRT with free breathing, Bodyfix, and abdominal compression plate (ACP). After sim randomized to immobilization with Arm 1) Bodyfix or Arm 2) ACP. CBCT acquired before and after each treatment
**'''2010''' {{PMID|20189669}} -- "A comparison of two immobilization systems for stereotactic body radiation therapy of lung tumors." (Han K, Radiother Oncol. 2010 Feb 26. [Epub ahead of print])
***Outcome: Both Bodyfix and ACP reduced sup-inf (4.6 mm vs 4.0 mm vs 5.3 mm) and overall tumor motion (5.3 mm vs 4.7 mm vs 6.1 mm) compared to free-breathing (SS). ACP further reduced sup-inf (SS) and overall tumor motion (SS) compared to Bodyfix
***Toxicity: ACP faster to set up and more comfortable by patients (SS)
***Conclusion: Abdominal compression superior to Bodyfix in immobilization and patient comfort
==Advanced Stage Operable NSCLC==
===Induction Chemo vs Induction Chemo-RT===
*'''German GLCCG''' (1995-2003) -- Induction cisplatin/etoposide then concurrent chemo-RT then surgery vs. induction cisplatin/etoposide then postop RT
**Randomized. 524 patients with NSCLC Stage IIIA (33%) or resectable IIIB (67%). Arm 1) Induction cisplatin 55 mg/m2 + etoposide 100 mg/m2 x3 cycles, then concurrent RT 45/30 in 1.5 Gy BID with carboplatin 100 mg/m2 + vindesine 3mg, followed by surgery vs. Arm 2) Same induction, followed by surgery, followed by RT (54/30 if R0, 68.4/38. Surgery after 4-6 weeks. Primary endpoint PFS
**'''2008''' {{PMID|18583190}} -- "Effect of preoperative chemoradiation in addition to preoperative chemotherapy: a randomised trial in stage III non-small-cell lung cancer." (Thomas M, Lancet Oncol. 2008 Jul;9(7):636-648. Epub 2008 Jun 24.)
***Outcome: Surgery chemo 59% vs. chemo-RT 59%; mediastinal downstaging 29% vs. 46% (SS). Median PFS (primary endpoint) 10.0 months vs. 9.5 months (NS).
***Toxicity: If pneumonectomy (35% in both groups), worse mortality 14% vs. 6%
***Conclusion: Preop chemo-RT increases mediastinal downstaging, but doesn't improve survival. After induction, pneumonectomy should be avoided
===Prophylactic Cranial Irradiation (PCI)===
*'''German Multicenter''' (1994-2001)
**''Terminated early due to slow accrual after benefit of adjuvant chemo shown. '' Randomized. 112 patients with operable Stage IIIA NSCLC based on mediastinoscopy staging. Arm 1) primary resection + adjuvant RT 50-60 Gy vs. Arm 2) preoperative chemo (cisplatin/etoposide x3 cycles) + concurrent chemo-RT (cisplatin/etoposide RT 45 Gy in 1.5 Gy BID) + definitive surgery + PCI 30/15
**'''2007''' {{PMID|17971598}} -- "Prophylactic cranial irradiation in operable stage IIIA non small-cell lung cancer treated with neoadjuvant chemoradiotherapy: results from a German multicenter randomized trial." (Pottgen C, J Clin Oncol. 2007 Nov 1;25(31):4987-92.)
***5-year outcome: brain first failure PCI 8% vs no PCI 35% (SS); any brain failure 9% vs. 27% (SS)
***Toxicity: no difference; slightly decreased neurocognition in both groups compared to age-matched controls
***Conclusion: PCI effective in preventing brain mets after trimodality therapy
==Unresectable==
===RT vs. Placebo===
*'''VA Lung Group (VALG)''' -- RT vs. placebo vs. chemotherapy
**Randomized, 3 arms. 800 patients. Localized but inoperable (mostly due to bulky disease). KPS 80-100 33%, KPS 50-70 55%. Arm 1) RT vs. Arm 2) placebo (lactose) vs. Arm 3) chemo (not reported here). RT given: orthovolatage in 90% (200-260 kV), Cobalt-60 in 10%. Target dose 40-50 Gy, but 33% received <40 Gy (2/3 died, 1/3 medical complications)
**'''1968''' {{PMID|4170866}} -- "The survival of patients with inoperable lung cancer: a large-scale randomized study of radiation therapy versus placebo." (Roswit B, Radiology. 1968 Apr;90(4):688-97.)
***Outcome: Median OS: RT 4.6 months vs. placebo 3.7 months (NS); 1-year survival: RT 18% vs. placebo 14% (p=0.05).
***Long-term survivors (top 25%): RT 10 monts vs. 7.6 months (SS). Better survival if longer symptomatic prior to diagnosis, suggesting slower rate of growth
***Conclusion: RT does not impact median OS, but improves long-term survival
===Concurrent Chemo-RT +/- Induction Chemo===
*'''CALGB B39801''' (1998-2002) -- Induction carboplatin/paclitaxel -> chemo-RT vs chemo-RT
**Randomized. 366 patients with unresectable Stage III NSCLC. Randomized to Arm 1) Concurrent carboplatin (AUC=2)/paclitaxel (50 mg/sq m) with RT 66 Gy. Arm 2) Induction with carboplatin(AUC=6)/paclitaxel (200 mg/sq m) x2 cycles, then concurrent chemo-RT as Arm 1
**'''2007''' {{PMID|17404369}} -- "Induction chemotherapy followed by chemoradiotherapy compared with chemoradiotherapy alone for regionally advanced unresectable stage III Non-small-cell lung cancer: Cancer and Leukemia Group B." (Vokes EE, J Clin Oncol. 2007 May 1;25(13):1698-704.)
***Outcome: MS induction 12 months vs. no induction 14 months (NS); 2-year OS 29% vs. 31% (NS)
***Toxicity: Induction chemo neutropenia (20% Grade 3-4), no difference between concurrent CRT arms
***Conclusion: Addition of induction chemo added toxicity without survival benefit.
**Comment: Low survival compared to other trials, possibly due to lower chemo dose due to using carboplatin and not cisplatin.
===Chemo-RT +/- chemotherapy consolidation===
*'''Hoosier Oncology Group''' (2002-2006) -- Chemo-RT +/- docetaxel
**Randomized. ''Stopped early due to interim analysis of futility.'' 147/203 patients with stage IIIA-B, FEV1 >=1 L, wt loss <5%. Concurrent RT 59.4 Gy with cisplatin/etoposide, then if no progression Arm 1) docetaxel 75 mg/m2 x3 cycles vs. Arm 2) observation
**'''2008''' {{PMID|19001323}} -- "Phase III study of cisplatin, etoposide, and concurrent chest radiation with or without consolidation docetaxel in patients with inoperable stage III non-small-cell lung cancer: the Hoosier Oncology Group and U.S. Oncology." (Hanna N, J Clin Oncol. 2008 Dec 10;26(35):5755-60. Epub 2008 Nov 10.)
***Outcome: Median OS docetaxel 1.8 years vs. observation 1.9 years (NS)
***Toxicity: Grade 3+ febrile neutropenia 11%, pneumonitis 10%, hospitalization 29% vs. 8%, death 5%
***Conclusion: Consolidation with docetaxel increased toxicity with no impact on survival
*'''SWOG 0023''' (2001-2005) -- Chemo-RT and adjuvant docetaxel +/- adjuvant gefitinib
**Randomized. ''Closed early after worse survival with gefitinib''. 243/672 patients, Stage III NSCLC. Concurrent cisplatin 50 mg/m2 + etoposide 50 mg/m2 + RT 61 Gy, then docetaxel 75 mg/m2 x3 cycles. If no progression, randomized Arm 1) gefitinib 250 mg/d vs. Arm 2) placebo until progression, toxicity or 5 years
**'''2008''' {{PMID|18378568}} -- "Phase III trial of maintenance gefitinib or placebo after concurrent chemoradiotherapy and docetaxel consolidation in inoperable stage III non-small-cell lung cancer: SWOG S0023." (Kelly K, J Clin Oncol. 2008 May 20;26(15):2450-6. Epub 2008 Mar 31.) Median F/U 2.2 years
***Outcome: median OS gefitinib 1.9 years vs. placebo 2.9 years (SS)
***Toxicity: death rate gefitinib 2% vs. placebo 0%
***Conclusion: Gefitinib didn't improve survival; decreased survival result of tumor progression and not gefitinib toxicity
===Radiosensitization===
'''''Metoclopramide'''''
*'''Institute for Cancer Research, Oslo''' (1995-1998) -- observation vs metoclopramide
**'''2010''' {{PMID|20165821}} -- "CT Density in Lung Cancer Patients After Radiotherapy Sensitized by Metoclopramide : A Subgroup Analysis of a Randomized Trial." (Dale E, Strahlenther Onkol. 2010 Feb 22. [Epub ahead of print])
**Randomized. ''Trial stopped prematurely due to financial difficulties.'' 30 patients enrolled, 16 analyzable, NSCLC stage IIIA/IIIB. RT 60/33. Arm 1) observation vs Arm 2) concurrent metoclopramide 2mg/kg TIW. Analysis of CT density
***Outcome: Lung density increased with dose (SS). Patients on metoclopramide less increase in tissue density (SS)
***Conclusion: Metoclopramide and large radiation dose seemed to protect against fibrosis development
==Metastatic==
*'''Japan WJTOG 3405'''
**Randomized. 172 chemo-naive patients, age <=75, Stage IIIB/IV NSCLC or postop recurrence, with EGRF mutation (exon 19 deletion or L858R point mutation). Arm 1) Gefitinib 250 mg QD vs Arm 2) cisplatin 80 mg/m2 and docetaxel 60 mg/m2 Q3W x 3-6 cycles. Primary endpoint PFS
**'''2009''' {{PMID|20022809}} -- "Gefitinib versus cisplatin plus docetaxel in patients with non-small-cell lung cancer harbouring mutations of the epidermal growth factor receptor (WJTOG3405): an open label, randomised phase 3 trial." (Mitsudomi T, Lancet Oncol. 2009 Dec 18. [Epub ahead of print])
***Outcome: Median PFG gefitinib 9 months vs. cisplatin/docetaxel 6 months (SS)
***Toxicity: Myelosuppression, alopecia, and fatigue more frequent in cisplatin/docetaxel group, but skin toxicity, liver dysfunction, and diarrhoea more frequent in the gefitinib group. Two patients (2%) developed interstitial lung disease
***Conclusion: Patients with EGFR mutations have longer PFS on gefitinib than on cisplatin/docetaxel
==Quality of Life==
===Amifostine===
*'''RTOG 9801''' -- Induction -> concurrent chemo-AHFX RT +/- amifostine
**Randomized. 243 patients with unresectable NSCLC (II-IIIB). Induction paclitaxel 225 mg/m2 and carboplatin AUC6 x2 cycles, then concurrent chemo-RT. RT 69.6/58 @ 1.2 GY BID with concurrent paclitaxel 50 mg/m2 and carboplatin AUC2. During chemo-RT Arm 1) placebo vs. Arm 2) amifostine 500 mg IV (72% received it per protocol)
**'''2005''' {{PMID|15800308}} -- "Randomized trial of amifostine in locally advanced non-small-cell lung cancer patients receiving chemotherapy and hyperfractionated radiation: radiation therapy oncology group trial 98-01." (Movsas B, J Clin Oncol. 2005 Apr 1;23(10):2145-54.)
***Outcome: Grade 3+ acute esophagitis AM 30% vs no AM 34% (NS); patient reported dysphagia significantly better with AM (p=0.02). But, AM higher acute nausea (SS), vomiting (SS), CV toxicity (SS), and infection/neutropenia (SS). No difference in QOL
***Survival: AM 17.3 months vs. no AM 17.9 months (NS)
***Conclusion: Amifostine did not significantly reduce grade 3+ esophagitis, though patient self-assessment suggested an advantage
lw8cqimbu5o2ktb42c3o4gblzu1qxom
MediaWiki:Sitenotice
8
135468
4674775
4673510
2026-10-06T19:04:07Z
Codename Noreste
3441010
([[:m:User:Max/MaxEdit.js|MaxEdit]])
4674775
wikitext
text/x-wiki
There is an [[Wikibooks:Reading room/Proposals#Disable (some) page creation by temporary accounts|ongoing discussion]] regarding the page creation requirements.
h3jbcijh1tww3d2p1trx9jbgrnvzst6
Wikibooks:Reading room/Administrative Assistance
4
140081
4674811
4674617
2026-10-07T08:10:39Z
ArchiverBot
1227662
Bot: Archiving 3 threads (older than 14 days) to [[Wikibooks:Reading room/Administrative Assistance/Archives/2026/September]]
4674811
wikitext
text/x-wiki
{{/Header}} {{User:MiszaBot/config
|archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s
|algo = old(14d)
|counter = 1
|minthreadstoarchive = 1
|minthreadsleft = 1
}}
== CU request ==
{{ping|MarcGarver|Xania}} According to [[Special:Diff/4671813]], User:Sisterian ([[Special:Contributions/Sisterian]]) has been using genAI/LLMs for their contributions. User:Pamela Talemwa ([[Special:Contributions/Pamela_Talemwa]]) & User:Sisterian overlap at [[A Young Reader's Guide to a Healthy Environment]] ([https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&diff=prev&oldid=4671755&diffmode=source], [https://en.wikibooks.org/w/index.php?title=A_Young_Reader%27s_Guide_to_a_Healthy_Environment&oldid=4665328]). What do our admins and CUs think about this? [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:11, 23 September 2026 (UTC)
:[[User:Sisterian]] has also created a page in another person's userspace, [[User:Samah2025/sandbox/A Young Girl’s Guide to Menstrual Health and Wellbeing]], so I will add [[User:Samah2025]] to the list. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 04:45, 23 September 2026 (UTC)
:Hello, @[[User:MarcGarver|MarcGarver]], @[[User:Xania|Xania]], @[[User:TechVindicator|TechVindicator]]. I have been supporting a number of trainees with Wikibooks editing and its looks like a lot more was done outside of the guidance I provided. I am going to look into those contributions and rectify the underlying issues. Thank you. [[User:Sisterian|Sisterian]] ([[User talk:Sisterian|discuss]] • [[Special:Contributions/Sisterian|contribs]]) 08:52, 23 September 2026 (UTC)
: OK --[[User:Xania|Xania]] [[Image:Flag_of_Estonia.svg|15px]] [[Image:Flag_of_Ukraine.svg|15px]] [[User talk:Xania|<sup>talk</sup>]] 12:13, 23 September 2026 (UTC)
== DhaanishChennai123 reported by TechVindicator ==
* {{userlinks|DhaanishChennai123}}
Spam <!-- USERREPORTED:/DhaanishChennai123/ --> [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 11:05, 24 September 2026 (UTC)
: {{done}} by Kittycataclysm. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:17, 24 September 2026 (UTC)
== Seobavswellness12390 reported by MathXplore ==
* {{userlinks|Seobavswellness12390}}
Spam <!-- USERREPORTED:/Seobavswellness12390/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:23, 24 September 2026 (UTC)
: {{done}} by Kittycataclysm. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:17, 24 September 2026 (UTC)
== Mango-tree-technology reported by TechVindicator ==
* {{userlinks|Mango-tree-technology}}
Spam <!-- USERREPORTED:/Mango-tree-technology/ --> [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:41, 25 September 2026 (UTC)
:{{done|Blocked}} by Kittycataclysm. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:53, 25 September 2026 (UTC)
== ~2026-51713-42 reported by Morkoz ==
* {{userlinks|~2026-51713-42}}
Spam, see also [[w:hi:special:contribs/~2026-51214-19|~2026-51214-19]]. <!-- USERREPORTED:/~2026-51713-42/ --> --[[User:Morkoz|Morkoz]] ([[User talk:Morkoz|discuss]] • [[Special:Contributions/Morkoz|contribs]]) 15:43, 25 September 2026 (UTC)
: {{done}} by NDKDD (GS). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 22:37, 25 September 2026 (UTC)
== Tunde akinlabi reported by MathXplore ==
* {{userlinks|Tunde akinlabi}}
Spam <!-- USERREPORTED:/Tunde akinlabi/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:18, 1 October 2026 (UTC)
: Page was deleted by another admin. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:11, 2 October 2026 (UTC)
== Barakat isiaka reported by MathXplore ==
* {{userlinks|Barakat isiaka}}
Spam <!-- USERREPORTED:/Barakat isiaka/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:19, 1 October 2026 (UTC)
: Page was deleted by another admin. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:11, 2 October 2026 (UTC)
== Roconpaas01 reported by MathXplore ==
* {{userlinks|Roconpaas01}}
Link spam, [[Special:AbuseLog/315913]] <!-- USERREPORTED:/Roconpaas01/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:19, 2 October 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:10, 2 October 2026 (UTC)
== Diiminstitute reported by MathXplore ==
* {{userlinks|Diiminstitute}}
Link spam, [[Special:AbuseLog/315963]] <!-- USERREPORTED:/Diiminstitute/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 02:34, 4 October 2026 (UTC)
:{{done}} --[[User:SHB|SHB]] ([[User talk:SHB|discuss]] • [[Special:Contributions/SHB|contribs]]) 02:58, 4 October 2026 (UTC)
== ~2026-51118-27 reported by EggRoll97 ==
* {{anonlinks|~2026-51118-27}}
Vandalism <!-- USERREPORTED:/~2026-51118-27/ --> [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 07:28, 4 October 2026 (UTC)
: {{done}} by NDG (GS). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:13, 4 October 2026 (UTC)
== ~2026-53393-86 reported by MathXplore ==
* {{anonlinks|~2026-53393-86}}
Vandalism <!-- USERREPORTED:/~2026-53393-86/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 5 October 2026 (UTC)
:Various contributions deleted—watching to see how this develops. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 19:15, 5 October 2026 (UTC)
== [[CustomChessTheory]] ==
Reason for reporting: Wrong title, renaming needed. [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:45, 5 October 2026 (UTC)
bo39ww3na96r1ipdwwdz97xceti4lrl
Radiation Oncology/NSCLC/RTOG Lung
0
146041
4674820
4413872
2026-10-07T08:41:03Z
Jcb
90773
4674820
wikitext
text/x-wiki
{{Radiation Oncology:TOC}}
*[http://www.rtog.org/ RTOG Website]
*Wikibooks list of [[Radiation_Oncology/RTOG_Trials|RTOG trials]]
{|border=1
|+'''NSCLC: RTOG OPEN TRIALS'''
|''Number''||''Title''
|-
| [http://www.rtog.org/members/protocols/0915/0915.pdf 09-15] || A Randomized Phase II Study Comparing 2 Stereotactic Body Radiation Therapy (SBRT) Schedules For Medically Inoperable Patients With Stage I Peripheral Non-Small Cell Lung Cancer
|-
| [http://www.rtog.org/members/protocols/0813/0813.pdf 08-13] || Seamless Phase I/II Study of Stereotactic Lung Radiotherapy (SBRT) For Early Stage, Centrally Located, Non-Small Cell Lung Cancer (NSCLC) In Medically Inoperable Patients
|-
| [http://www.rtog.org/members/protocols/0618/0618.pdf 06-18] || A Phase II Trial of Stereotactic Body Radiation Therapy (SBRT) in the Treatment of Patients with Operable Stage I/II Non-Small Cell Lung Cancer
|-
| [http://www.rtog.org/members/protocols/0617/0617.pdf 06-17] || A Randomized Phase III Comparison of Standard-Dose (60 Gy) Versus High Dose (74 Gy) Conformal Radiotherapy With Concurrent and Consolidation Carboplatin/Paclitaxel +/- Cetuximab (IND #103444) In Patients With Stage IIIA/IIIB Non-Small Cell Lung Cancer
|-
| [http://www.rtog.org/members/protocols/0229/0229.pdf 02-29] || A Phase II Trial Of Neoadjuvant Therapy With Concurrent Chemotherapy And High Dose Radiotherapy Followed by Surgical Resection And Consolidative Therapy For Locally Advanced Non-Small Cell Lung Carcinoma
|}
{|border=1
|+'''NSCLC: RTOG CLOSED TRIALS'''
|- valign="top"
|''Number''||''Title''||''Publication'' <br><span style="visibility:hidden">PMID XXXXXXXXXX</span> <!-- This is to size the column to prevent wrapping of PMIDs-->
|-
| [http://www.rtog.org/members/protocols/0515/0515.pdf 05-15] || A Comparative Study Of Gross Tumor Volume Definition With Or Without PET Fusion For Patients With Non-Small Cell Lung Carcinoma ||
|-
| [http://rtog.org/members/protocols/0412/0412.pdf 04-12] || ''SWOG S0332'' <br>Phase III Randomized Trial of Preoperative Chemotherapy Versus Preoperative Concurrent Chemotherapy and Thoracic Radiotherapy Followed by Surgical Resection and Consolidation Chemotherapy in Favorable Prognosis Patients with Stage IIIA (N2) Non-Small Cell Lung Cancer
:CLOSED - POOR ACCRUAL
||
|-
| [http://www.rtog.org/members/protocols/0324/0324.pdf 03-24] || A Phase II Study Of Cetuximab (C225) In Combination With Chemoradiation In Patients With Stage IIIA/B Non-Small Cell Lung Cancer (NSCLC) || [[Radiation_Oncology/NSCLC/Locally_Advanced_Unresectable#Chemotherapy_combinations_with_RT | chapter link]] <br>{{PMID|21555682}}
|-
| [http://www.rtog.org/members/protocols/0236/0236.pdf 02-36] || A Phase II Trial of Stereotactic Body Radiation Therapy (SBRT) in the Treatment of Patients with Medically Inoperable Stage I/II Non-Small Cell Lung Cancer ||
|-
| [http://www.acrin.org/TabID/155/Default.aspx 02-35] || Positron Emission Tomography Pre- and Post-treatment Assessment for Locally Advanced Non-small Cell Lung Carcinoma ||
|-
| [http://www.rtog.org/members/protocols/0214/0214.pdf 02-14] || A Phase III Comparison Of Prophylactic Cranial Irradiation Versus Observation In Patients With Locally Advanced Non-Small Cell Lung Cancer ||
|-
| [http://rtog.org/members/protocols/0213/0213.pdf 02-13] || A Phase I/II Trial of A Cox-2 Inhibitor, Celebrex (Celecoxib), with Limited Field Radiation for Intermediate Prognosis Patients with Locally Advanced Non-Small Cell Lung Cancer, with Analysis of Prognostic Factors
:CLOSED - ACCRUAL NOT MET
|
|-
| [[Radiation_Oncology/RTOG_Trials/0117|01-17]] <br>[http://rtog.org/members/protocols/L0117/0117.pdf 01-17] || A Phase I/II Dose Intensification Study using Three Dimensional Conformal Radiation Therapy and Concurrent Chemotherapy for Patients with Inoperable, Non-Small Cell Lung Cancer || {{PMID|20368547}} <br>{{PMID|20457350}}
|-
| [http://rtog.org/members/protocols/L0017/L0017.pdf 00-17] [http://clinicaltrials.gov/ct2/show/NCT00016315 Clinicaltrials.gov] || A Phase I Study Of Gemcitabine, Carboplatin Or Gemcitabine, Paclitaxel And Radiation Therapy Followed By Adjuvant Chemotherapy For Patients With Favorable Prognosis Inoperable Stage IIIA/B Non-Small Cell Lung Cancer (NSCLC) || {{PMID|19096311}}
|-
| [http://swog.org/intergroup/viewprotocol.asp?ProtocolNumber=S9900&AccessCode=32t6q69 00-15] [http://clinicaltrials.gov/ct2/show/NCT00004011 Clinicaltrials.gov] || ''SWOG S9900'' <br>A Randomized Phase III Trial Surgery Alone or Surgery Plus Preoperative Paclitaxel/Carboplatin in Clinical Stage IB (T2N0), II (T1-2N1, T3N0) and Selected IIIA (T3N1) Non Small Cell Lung Cancer (NSCLC) || {{PMID|20231678}}
|-
| [http://rtog.org/members/protocols/99-09/99-09.pdf 99-09] || Phase II Study of Postoperative Adjuvant Immunotherapy and Radiation in Patients with Completely Resected Stage II and Stage IIIA Non-Small Cell Lung Cancer ||
|-
| [http://rtog.org/members/protocols/98-01/98-01.pdf 98-01] [http://clinicaltrials.gov/ct2/show/NCT00003313 Clinicaltrials.gov] || A Phase III Study Of Amifostine Mucosal Protection For Patients With Favorable Prognosis Inoperable Stage II-IIIA/B Non-Small Cell Lung Cancer (NSCLC) Receiving Sequential Induction And Concurrent Hyperfractionated Radiotherapy With Paclitaxel And Carboplatin || {{PMID|15800308}} <br>{{PMID|18501528}} <br>{{PMID|19858383}}
|-
| [http://rtog.org/members/protocols/97-05/pdf.html 97-05] || Phase II Study of Postoperative Adjuvant Therapy in Patients With Completely Resected Stage II and Stage IIIA Non-Small Cell Lung Cancer || {{PMID|15908657}}
|-
| [http://rtog.org/members/protocols/97-01/97-01.pdf 97-01] || Phase III Randomized Trial of Radiation Therapy Alone versus Concurrent Chemotherapy plus Radiation Therapy for Poor-Risk Stage III Non-Small-Cell Lung Carcinoma
:CLOSED - POOR ACCRUAL
||
|-
| [http://rtog.org/members/protocols/96-16/index.html 96-16] || ''CALGB 9633''<br> A Phase III Study of Adjuvant Chemotherapy After Resection for Patients with T2N0 Stage I Non-small Cell Carcinoma of the Lung || {{PMID|18809614}}
|-
|[[Radiation Oncology/RTOG Trials/9511|95-11]]||''CALGB 9334, Intergroup''<br>Sclerois of Pleural Effusions by Talc Thoracoscopy Versus Talc Slurry: A Phase III Study ||
|-
|[[Radiation Oncology/RTOG Trials/9410|94-10]] <br>[http://rtog.org/members/protocols/94-10/pdf.html 94-10]||A Three-Arm Phase III Study of Concomitant Versus Sequential Chemotherapy and Thoracic Radiotherapy for Patients with Locally Advanced Inoperable Non-Small Cell Lung Cancer || [http://www.asco.org/ASCOv2/Meetings/Abstracts?&vmview=abst_detail_view&confID=23&abstractID=102234 ASCO 2003]
|-
|[http://rtog.org/members/protocols/94-09/index.html 94-09] [http://www.ecog.org/rtog/e4592doc.pdf ECOG] || ''ECOG E4592''<br>LABORATORY/CLINICAL CORRELATIVE STUDIES IN NON-SMALL CELL LUNG CANCER. ANCILLARY STUDY TO RTOG 91-05/INT 0115 ||
|-
|[[Radiation Oncology/RTOG Trials/9311|93-11]] <br>[http://rtog.org/members/protocols/93-11/93-11.pdf 93-11] ||A Phase I-II Dose Escalation Study in Patients with Inoperable Non-Small Cell Lung Cancer || {{PMID|15667949}}
|-
|[[Radiation Oncology/RTOG Trials/9309|93-09]] <br>[http://rtog.org/members/protocols/93-09/93-09.pdf 93-09] ||''INT 0139''<br>A Phase III Comparison Between Concurrent Chemotherapy Plus Radiotherapy, and Concurrent Chemotherapy plus Radiotherapy followed by Surgical Resection for Stage IIIA (N2) Non-Small Cell Lung Cancer || {{PMID|19632716}}
|-
|92-04 || || {{PMID|12062596}}
|-
|91-06 <br>[http://www.cancer.gov/clinicaltrials/RTOG-9106 Clinicaltrials.gov] || Phase I/II Study of Chemotherapy with CDDP/Oral VP-16 plus Radiotherapy in Patients with Locally Advanced, Inoperable non-Small Cell Lung Cancer || {{PMID|8648357}}
|-
|[[Radiation Oncology/RTOG Trials/9105|91-05]] <br>[http://www.ecog.org/rtog/e3590doc.pdf 91-05]||''INT 0115, ECOG E3590''<br>Randomized Trial of Postoperative Adjuvant Therapy in Patients with Completely Resected Stages II and IIIa Non-Small Cell Lung Cancer || {{PMID|11071672}}
|-
|[http://rtog.org/members/protocols/91-03/91-03.pdf 91-03] || PULMONARY FUNCTION OF PATIENTS WITH RADIATION THERAPY FOR NON-SMALL LUNG CANCER ||
|-
|89-01 || Phase III study comparing chemotherapy and radiotherapy with preoperative chemotherapy and surgical resection in patients with non-small-cell lung cancer with spread to mediastinal lymph nodes (N2) || {{PMID|12243809}}
|}
<p><br>'''See also:'''</p>
* {{PMID|7635796}} (1995) — "The evolution of Radiation Therapy Oncology Group (RTOG) protocols for nonsmall cell lung cancer." Byhardt RW et al. Int J Radiat Oncol Biol Phys. 1995 Jul 30;32(5):1513-25.
akhevpxsm4chpbxm03vroaqm2odfj33
Editing Wikitext/Making Templates A101
0
154888
4674865
4662817
2026-10-07T11:31:30Z
ShakespeareFan00
46022
4674865
wikitext
text/x-wiki
{{Editing_Wikitext|bd=linen}}
<div style="background:oldlace;{{Text default color}};padding:10px;border:1px solid lightgrey;">
<!--<div style="line-spacing:1.25em;text-align:justify">-->
{| style="margin:0 2em 1em 1em; background:transparent;color:inherit;float:right;" border=0
|- style="vertical-align:top;"
| style="text-align:center; width:300px;" |__TOC__
|-
|}
<big style="font-size:150%;">Introduction</big>
<hr />
This book chapter should be viewed as an introductory text on the making of Wiki templates, and an overview of what templates ''do'' is provided in this first section. First lets get some basic terminology:
*'''''TEMPLATES are just blocks of saved text that have been given names'''''. Some are ordinary text paragraphs and some contain wikitext to make headings, indents, tables, and the like. In a simple case, by typing a template's name in the work, an entire block of text is added to the page with all of its formats and other parts, just as if it had been typed by the user. This behavior can be repeated at any point that the user wants, and almost any work that is found on a wiki page could be placed within a template to do this. The main effort as you might suppose, lies in its initial design.
*'''''NAMES of templates are assigned when they are first saved'''''. The '''name''' must be unique, and it is used when a template is ''called'' for use. Sometimes other text is also used along with the name; it can include any '''options''' and '''parameters'''.
*'''''OPTIONS allow the user to vary the template's usual behavior.'''''. The usual behavior suits most situations but the designer builds-in ways of changing things just in case. Option values are usually limited to a short list so these are described in a template's documentation. For example, option values for an option called ''align'' might include only ''left'', ''right'', or ''center'', and no others. Templates do not ''always'' need options, since their default behavior is often enough.
*'''''DEFAULTS are the values used by a template when the user did not say'''''. Default values are specified in design, and they could apply to formats or to user text inputs. For example, in the alignment example above, if the ''align'' option was not used, the template could use ''left'', provided that ''left'' had been specified in design as its default. In the same way if the user forgets to type a text input, the template could use a pre-planned ''default'' input instead of the missing parameter; sometimes just a code to say something was forgotten.
*'''''PARAMETERS are usually bits of text that a user enters for a template to process'''''. For example, if a template makes text red, it still needs to know the text to color; this text is called a ''parameter'', and the text is included by the user when the template is ''called'' for use. Sometimes parameters contain text like code to insert an image, or even a gallery or a table; it just depends what the template is designed for. A template can even be the parameter of ''another'' template; for example, a template to insert a test paragraph might occupy the parameter space of a template to make a text box. The new paragraph would then appear in a new text box.
*'''''MORE GENERALLY,''''' templates let us do much of the preparation in advance of making a page, and let us insert a block of typing, be it code to make tables, boxes, and other structures, or just a paragraph of text that is used a lot. The remainder of this introduction gives a few examples to ''show'' what templates do on the page, and in the sections that follow will be found what is needed to modify and make new templates for use in writing Wikibooks.
<big>'''In the first example'''</big>, the template '''Caption''' is used. It has two text parameters and no options at all.
This is the code to call the template for use;
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{caption|This is the first parameter's text: | This is the second parameter's text}}</nowiki>}}
The result of doing so is to produce the text:
{{result|fs=1em|{{caption|This is the first parameter's text: | This is the second parameter's text}}}}
Notice that the template has formatted the text, and that each parameter was handled differently. This template is used to make consistently formatted image captions. The source code for the template ''Caption'' features little more than text formatting.
<big>'''In the second example'''</big>, the template '''Drop''' is used. It has one text parameter and several options, none of which are needed here.
This is the code to call the template for use;
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{drop|N}}</nowiki>otice that the template has inserted...}}
The result of doing so can be seen in the paragraph below.
{{drop|N}}otice that the template has inserted a drop capital from the single character used as a parameter. This template can be used to start sections within certain body text. Again, the source code for the template ''Drop'' is largely text formatting.
<big>'''The third example'''</big> uses template '''Dropimage''' to make a drop-box with an image in it. This template has many options, but only two were needed; the ''width'' option, and the ''align'' option. The other options use the defaults. There are two parameters; the top caption ''Press to View'' and the contents, in this case the Wikitext code for an image. The contents in the example can be viewed by clicking the arrow on the box.
This is the code to call the template;
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{dropimage|width=150px|align=center|Press to View|[[image:Flower poster.jpg|600px]]<br>A Flower Poster}}</nowiki>}}
The result of doing so is:
{{dropimage|width=300px|align=center|Press to View|[[image:Flower poster.jpg|600px]]<br>A Flower Poster}}
{{-}}
The template for this example consists of code to build the box structure, and the image code is strictly its parameter, i.e., the item that it processes.
Whereas the ''detailed'' study of this subject is complex, it should become clear that using and making templates like those mentioned above is well within the abilities of most wiki writers. Sadly, it is often the case that a writer sees the advantages of templates only when his work is nearly done, and a bit of effort in recognizing repetitive routine early in the work could save much time. Whenever a routine is repeated often, there is a job for a template.
It is true to say that most templates in the wiki family of projects consist of either the formatting of text paragraphs or the making of boxes of some kind. With this in mind the text below explains the process of template-making for text, boxes, and drop-controls. As preparation, those who intend to make box templates of any kind would benefit from an elementary knowledge of tables, and this knowledge is quickly available in the first few sections of the page [[Editing Wikitext/Tables|'''Tables''']], where an introduction to CSS styles is also to be had.
==Finding and Using Templates==
There are already several thousands of templates within the WikiBooks templates namespace. That is another way of saying that the templates list is already long. At first sight, this may seem to avoid the need for template-making, but things are not so simple.
If the ''name'' of the template is known, then it can be found easily, but if the name is ''not'' known, it can take a long time to find a template similar to the one that you are looking for. Templates have their functions described on their own pages but many do not include notes, so the task of knowing which is which, and what they do even when they are found, becomes doubly difficult.
Templates made in ''Wikipedia'' and ''Wikibooks'' are not interchangeable, since they exist on separate servers. Although the code to make them is identical, this description applies to finding things in Wikibooks.
*To view lists of templates listed ''alphabetically'' within WikiBooks, follow the link to the [http://en.wikibooks.org/w/index.php?title=Special:AllPages&namespace=10 '''All Templates Namespace'''].
*To find templates listed in various template ''categories'', for example, ''drop-control templates'', follow the link to the page [[:Category:Templates]].
*If you ''know'' a template's name, then find the template page by using the search box on any Wiki page. For example, to find ''Dropimage'' just type;
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>Template:Dropimage</nowiki>}}
then ''enter''.
When a template page is found, the code to make the template can be seen by viewing its editing window. Many pages have their documentation on the same page as the template code, isolated from it with <nowiki><noinclude></noinclude></nowiki> tags.
If after searching, you still need to make a template, as many no doubt do, then read on.
===Put it on the Page===
----
Templates are called for use in pages by typing a line of Wikitext, and so the user needs to know the correct spelling of the template's name, options, and parameters. Even when these are known it is all too easy to disrupt a page with a template error, especially during trials, so consider using the [[WB:SB|'''sandbox''']] for testing. Some templates have all of the documentation and details on the same page and this makes them easy to use. See templates [[Template:Plainlist|Plainlist]], and [[Template:Codebits|Codebits]] as examples.
To ''call up'' any template for use in a page, '''the code is typed within double curly brackets'''. <nowiki>{{}}</nowiki>.
Included within the curly brackets is the template '''name''', then, if required, a sequence of '''options''', followed by a sequence of '''parameters'''. '''All entries are separated by ''pipe'' symbols'''. ('''<nowiki>|</nowiki>'''). For example, the general form to use for a template with two ''options'' and one ''parameter'' is as follows:
{{-}}
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{Name|Option1=Value|Option2=value|Parameter1}}</nowiki>}}
{{-}}
and a typical example of its use is:
{{-}}
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{Plainlist|width=250px|background=LightSalmon;{{Text default color}};|The text for the box goes here.}}</nowiki>}}
{{-}}
The above code has only ''one'' parameter; it is numbered '''1''' by default. Parameters are given numbers or names to identify them in their design code, and examples will be seen in the sections that follow. The template-call in the example uses a so-called ''unnamed'' parameter, because it is not preceded by a term like '''1=''' (numbered parameter), or '''content=''' (typical named parameter). When templates have ''several'' parameters then the parameter numbers or names help to make clear to the template which is which. Alternatively, the template can manage with unnamed and unnumbered parameter entries provided that they are in any case listed in their correct number sequence. When in doubt, use names or numbers. At times, especially when the first character of a parameter is a symbol, the use of named or numbered parameters avoids the corruption that would otherwise result with the unnamed entry.
'''The sequence of <u>''options''</u> is ''unimportant''''', since '''all options must be named''' in any case. Using ''named'' values just means adding the name of the option and an equals sign before the option's ''value''. This of course requires a knowledge of the template's details.
'''''Template'' names are sensitive to case except for the first letter''', so a useful convention is to use lower case for template name, parameters, and options all of the time; that way you will never be in doubt.
'''''Parameter'' names are quite sensitive to case in every way''', so a capital letter makes all the difference. As a general rule, do not mix ''unnamed'' and ''named'' parameters in a template call, since the method used by the program to interpret their meaning becomes confused. Either use ''all unnamed'' with special attention to their sequence, or ''all named'' in any order that you like.
===Find Details from Code===
----
Let us assume that a template made by others has been found but that its details are unclear. Even without much knowledge of mark-up, it is usually possible to discern the options and parameters of a template by inspection of its coding. To see how this can be done follow the reasoning below.
The coding and anything else on a template page can be displayed in the sandbox by typing a special code there. The template does not do anything when this is done; it just reveals the text of the template page. That is, it reveals the coding and any documentation. As an example the template code for say, the template '''Tocbox''', can be viewed in the Sandbox by typing:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{msgnw:tocbox}}</nowiki>}}
To save the reader the trouble of doing so here, the template code for '''Tocbox''' is given below.
{{-}}
'''Code for the Template Tocbox'''<br>
<table cellpadding=20px style="font-family:courier;border:1px dashed blue;background:#f9f9f9;{{Text default color}};">
<td align=left>{{#tag:poem|<nowiki>{| class=toccolours style="margin:1em 0 0 0;width:{{{width|300px}}};" align={{{align|left}}}
| align=center style="font-weight:bold;"|{{{Heading|{{{1}}}}}}
|-
| align=left style="font-weight:normal;"|{{{Content|{{{2}}}}}}
|}
<noinclude>
</nowiki>|style="font-family:'Courier New', Courier, monospace; font-size:1.1em;"}}</td>
</table>
{{-}}
The template page itself has a good description for its use, but assume for a moment that the descriptive material was absent. The code at the top of a template page is ''always'' the template source code; consider the example given above. Although it looks complicated, the object here is ''not'' to understand it, but to find the options and parameters from the code itself.
Note that the end of the code is marked with a <nowiki><noinclude></nowiki> tag, to make sure that any text that follows it is not used as a part of the template. In this example, there are ''two'' parameters; they can be recognized as the items with the form:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{{heading|{{{1}}}}}} and {{{content|{{{2}}}}}}</nowiki>}}
These entries identify '''parameters''' ''one'' and ''two'' respectively. It is clear, even without much understanding, that the first parameter is the ''heading'' text and the second parameter is the ''content'' text, and these terms in addition to the numbers could be used as their names . In the event that a user forgets to enter the parameter for say, ''content'', a '''{{{2}}}''' will be displayed on the page as a reminder of what is missing.
All of the '''options''' within this template are recognized from the typical form;
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{{align|left}}}</nowiki>}}
This extract states that there is an option called ''align'' that has the default value of ''left''. The idea of this default is that the value '''left''' would be used for ''align'' if the user does not use that option in the template call. The option could have almost ''any'' name; in fact it has been given the same name as the '''HTML attribute''' associated with it, (the part before the equals sign in the main code block). There are several properties within this code but only two of them have been coded as options; ''align'' and ''width'', and both options have similar bracket formats to that of the above example.
With the options and parameters now understood, test the template on a page as follows:
This is the code:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{tocbox|align=center|width=300px|Heading text|Content paragraphs}}</nowiki>}}
The result is:
{{tocbox|align=center|width=300px|Heading text|Content paragraphs}}
It should by now be clear that despite having no specification for the template in the first instance, it has been possible to obtain information from the coding for its use.
===Modifying a Template===
----
Assume for a moment that a template has been found that is ''nearly'' right, but not quite. Say for example that the background color was the only part that was wrong. The source code for such a template could be changed, by adding a term to modify its background color. Then, the ''modified'' version could be saved as a new template, with a different name. Note that if the modified template were saved with the ''same'' name as before, the existing users who depended on the original colors would experience unwelcome changes in their work.
There is another way that allows the new user to choose colors while the existing users can continue to enjoy the default colors that their work displays. The template can keep the old name if the background property is made into an option, and the original background color made its default. Then, since the old users would not bother to specify the background color, perhaps not even knowing that they now ''could'', they would get the usual color as the default value and would be happy with it. The new users who need a ''different'' color, could simply specify it as an option value when they call the template for use. In this way both parties would be content.
The modifying of a template approaches the difficulty of ''making'' a new one at times, and this process is covered in other sections below. For the background-change case, a suitable '''modified Tocbox''' code module would look like this.
The code is:
<table cellpadding=20px style="font-family:courier;border:1px dashed blue;background:#f9f9f9;{{Text default color}};">
<td align=left><div style="text-align: center;">Code for a Modified Template Tocbox</div><br><syntaxhighlight lang="wikitext" style="font-family:'Courier New', Courier, monospace; font-size:1.1em;">{| class=toccolours style="margin:1em 0 0 0;width:{{{width|300px}}};background:{{{background|#f9f9f9;}}};" align={{{align|left}}}
| align=center style="font-weight:bold;"|{{{Heading|{{{1}}}}}}
|-
| align=left style="font-weight:normal;"|{{{Content|{{{2}}}}}}
|}
<noinclude>
</syntaxhighlight></td>
</table>
{{-}}
In the above code the ''background'' property has been made into an option. In addition, the original background color, '''#f9f9f9;''' , (light gray), has been used for the default. To labor the point, if the user does not bother to specify the background color, he will still get the ''gray'' color as before. Note again that the added option need not have been called ''background'' but could, for example, have been called ''bgc'' or some other name. In that event the template's option code would look like '''<nowiki>background:{{{bgc|#f9f9f9;}}}</nowiki>''', and another color would then be called using say, '''<nowiki>bcg=papayawhip</nowiki>''' on the page.
The real template '''Tocbox''' has not been modified here, though this example provides a reliable demonstration of the method to use for doing so. After the modification above the template could be called by the new users as follows:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{tocbox|align=center|width=250px|background=papayawhip|Heading|Long text paragraphs}}</nowiki>}}
A knowledge of CSS property values allows considerable variation in a template's appearance. Luckily, the subject is well documented. See the external ''W3'' site's '''[http://www.w3schools.com/cssref/index.php CSS Reference List]''' for a comprehensive listing of values and properties. Although the examples on the referenced page are designed for style sheets, the syntax found there is also that used for modifying styles within templates and other in-line styles. In addition, a useful color reference can also be had at [http://en.wikipedia.org/wiki/Web_colors '''Web Colors''']. A drop-box with many of the CSS properties for tables has been provided in the box-making section below. If time is short it could be noted that most of the template work done so far in this project, (WikiBooks that is), could have made do with little more that the CSS properties of text and tables. Study of these two areas is thus rewarding.
CSS reference sources are useful, though styles can also be changed with ''HTML attributes'', (the styles like ''align'' with the ''equals'' signs). Such attributes can be seen in HTML reference texts as opposed to CSS texts, and in the aforementioned drop-box below. It may be of interest to know that some HTML attributes are the only ways to accomplish certain tasks; examples include ''colspan'' (to span table columns), ''rowspan'' (to span table rows), and ''align'', (to align tables to center, something that the CSS ''float'' property cannot do).
==Making Templates==
There are many template types, but those used for inserting and modifying text are the most numerous. Boxes feature next; whether they are ''information boxes'', so-called ''user boxes'', or simple ''text boxes'', they all have common constructs. Some templates have dynamic functions, like drop-controls, though once their basic outlines are clear, they can be shaped for many purposes. At least one example of each will be considered.
Template making consists of writing functional code, Wikitext or HTML, or sometimes a mixture of both. The method is to test the code in the Sandbox, until the function works well. Then the options and the parameters can be assigned to the code. These are tested again, and if all is well, the block of code can be saved as a template.
In saving the template it as well to check whether or not there is an existing template of that name already. The simplest way to save a template is as follows. First, make sure that you are logged-on in a page of '''WikiBooks''', to avoid making a template in the wrong project. Go to the ''search'' box at the left of the WikiBooks page, and enter the wording to find the as-yet unmade template. Assume here that the intended name is to be '''Caption'''. The line to type in the search window is just:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>Template:Caption</nowiki>}}
If the template is found, then the name is already taken, and another is needed. Assuming that the name is not found, then the search results window will state that it was not found and ask whether or not you want to ''make'' the page. Click the link to make the page.
The link opens a template editing page with the name of the template already listed as its address. Copy the code from your work in the sandbox, then paste it into the empty template page. In the line immediately following the last line in the code block, add the tags '''<nowiki><noinclude></noinclude></nowiki>'''. All text not intended to be a part of the template code, must be placed ''between'' these tags, as is the case for the template's description.
Finally, save the page by pressing the ''Save page'' button at the bottom of the page. The template is now made, and can be called into use with its given name. Go to the sandbox and test the features of the template.
===Text Paragraphs===
The code for a template need not start with any special character or symbol. The main consideration is that the code performs the required action, just as if it were typed directly onto the page. At the 'end of the code block, be sure to add the '''<nowiki><noinclude></noinclude></nowiki>''' tags as mentioned above.
All of the existing Wikitext and HTML code that can be used in a page can be used for a text template. The user of a page does not have access to the parts associated with styles, namely the heading of the web page and their style sheets. As a result, users are limited to modifying the parts of the page that ''are'' available, the text within the body of the page. Those familiar with web page design will know that the only remaining available method is to modify the page's text with '''in-line styles'''. Working methods use the '''<nowiki><div></div></nowiki>''' tags and the '''<nowiki><span></span></nowiki>''' tags, thanks to a feature of Wikitext that allows the use of HTML coding within it. CSS, (Cascading Style Sheet), properties and values are used within these tags to modify the text styles that would otherwise apply.
It is as well to point out here the difference in use for '''<nowiki>span</nowiki>''' and '''<nowiki>div</nowiki>''' in text templates. '''<nowiki>Span</nowiki>''' should be used to format text only, noting that any formats applied to the text will not extend beyond the last text character; '''<nowiki>div</nowiki>''', on the other hand, will apply its formats to a rectangular block of text that extends across the page. the significance of this is that '''<nowiki>div</nowiki>''' is neater for changing background colors on the page. A comparative example can be seen in the ''Classes and Styles in Tags'' section of [[Editing Wikitext/Class and Style Notes|'''Class and Style Notes''']].
====The Simplest Case====
Before doing any formatting, consider the method for making a template from a simple block of text. Type a block of text, with all of its formats and page layout in place, then save the block as a template. It is as simple as that. Such blocks of text find use for test text, such as [[Template:Lorem ipsum|'''Lorem Ipsum''']], a well-known text block of fictitious content used by printers and others in laying out their work. To use such a template just type:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{lorem ipsum}}</nowiki>}}
at any convenient place on a page to produce the text block. This block of text is not pre formatted with hard breaks, so it will ''wrap'' within the space where it is typed, and with the ''default'' text styles of the page.
====Adding Styles====
To ''modify'' text styles, for example, for the text '''This is the text''', we first place the text within <syntaxhighlight lang="html" inline><span></span></syntaxhighlight> tags, like this:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<syntaxhighlight lang="html" inline><span>This is the text</span></syntaxhighlight>}}
Then we construct a style statement ''within'' the first tag. This example makes the font ''Garamond'', 20 points, colored red. It looks like this:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<syntaxhighlight lang="html" inline><span style="font-family:Garamond;font-size:20pt;color:red">This is the text</span></syntaxhighlight>}}
and the result will be:
<div style="text-align: center;"><span style="font-family:Garamond;font-size:20pt;color:red">This is the text</span></div>
{{-}}
Notice that there is still a closing arrow for the first tag; it is located at the end of the style statement.
Notice also that there are three style rules in the statement, separated by semi-colons; these are ''font-family:Garamond'' to set the ''face'' of the font, ''font-size:20pt'' to set the ''size'' of the font, and ''color:red'' to set the ''color'' of the text.
The style statement starts with the term ''style='', and the right hand side of the statement is entirely within double quotes.
The individual style rules consist of a ''property''; the left part, and a ''value''; the right part. The two parts are ''separated'' by a full colon. The format of a style statement is strict. If the format has an error within it then the whole statement could fail. Note that Wikitext ''could'' have been used on the text itself; for example, to produce italics, (double quotes), or text that is bold, (triple quotes). Wikitext acts in ''addition'' to the CSS styles, provided that there are no obvious conflicts. Several spans and style statements can be applied to produce quite complex results.
These tag sets can be ''nested''; that is, one set of tags within another set. Beware of nested '''span''' tags, since there can be unexpected results. Say that an overall style is applied to several paragraphs using span tags. Within these paragraphs ''another'' span set is used to format one of the paragraphs differently. When this is viewed, at the point where the ''inside'' span closes, the styles will have reverted to the body text styles described by the style sheet, and not the intended outside style definition. This is perhaps because the first closing tag was wrongly interpreted as the end tag. The problem is '''avoided by using div tags for both''', or at most by '''using span tags for only one of the formats'''.
Many properties exist to modify text. They consist of all of the text styles found in style sheets, namely those for fonts, padding, alignment, margins, borders, text colors, and backgrounds. '''[http://www.w3schools.com/cssref/index.php CSS property lists]''' and other material on [[CSS Programming/Fonts and Text|'''Fonts and Text''']] provide the source material for all such work. Although CSS properties and examples are listed primarily for style sheets, the properties and values ''themselves'' can be used on the page and in templates. The Study Work drop-box contains a useful code module for studying text properties. It contains most of the useful text entries and can be copied for study into the [http://en.wikibooks.org/w/index.php?title=Wikibooks:Sandbox&action=edit '''sandbox'''].
{{-}}
{{dropimage|align=center|cbgc=lightyellow|hbgc=lightyellow|Study Work|'''This module contains most of the useful text properties. Copy it into the sandbox to experiment with text property values.'''<br><syntaxhighlight lang="html"><div style="font-family:lucida handwriting;font-weight:bold;font-style:italic;font-size:12pt;color:blue;background:papayawhip;word-spacing:0pt;letter-spacing:0pt;line-height:1.8em;border:1px solid red;margin:10pt 100pt 10pt 50pt;padding:10pt 20pt 15pt 20pt;text-align:justify;"><div style="text-align: center;">Text Property Notes</div>
Both PADDING and MARGIN style-rule values use the sequence TOP, RIGHT, BOTTOM, then LEFT, i.e. clockwise starting at the top.
BORDER uses the sequence BORDER-WIDTH, BORDER-STYLE, then BORDER-COLOR for all of the four borders at once. Other properties can address the four separately.
PADDING is the space around the text. MARGIN is the space around the text block. BORDER is the line that surrounds the text and its padding.
The code block contains the common text properties.
Experiment with the settings. </div></syntaxhighlight>}}
{{-}}
{{dropimage|hbgc=lightyellow|align=center|Color Values for Study Work|[[image:pastelsRGB.jpg|911px]]<br><br>Color values for CSS properties taking a form such as : Background:RGB(255,202,149)}}
{{-}}
====Parameters====
Now, continue to make use of the ''red-text'' example. Although the code could be saved as a template just as it is, it would not be very useful since it consists only of fixed text. To introduce the notion of ''variable text chosen by the user'', we need to make the text position in the code into a ''parameter''.
Assuming that the basic code works correctly, the ''parameter'' brackets can be added. In the above text example there is only ''one'' parameter, the content to be formatted. Starting with the code above, just replace the text part so that the code line now looks like this:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki><span style="font-family:Garamond;font-size:20pt;color:red">{{{content|{{{1}}}}}}</span></nowiki>}}
Notice that the original text has now been replaced with:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{{content|{{{1}}}}}}</nowiki>}}
The ''digit'' identifies the parameter as number one. It is also the ''name'' of the parameter. The word ''content'' is just a convenient label, though either the number or the label can be used for ''named parameters''. If the user forgets to write any text in a parameter position, then the number of the parameter will appear on the page to remind of it. If the template had ''more'' than one parameter, a similar process could be applied, with a sequence of digits 2,3,4 etc., and adding a suitable label in place of ''content'' for each.
Saving it in the usual way completes such a template. Assuming that the template were to be saved with the name ''BigText'' then the entry to call it for use would be just:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{BigText|1=This is the text to format}}</nowiki>}}
Note that when a template has ''several'' parameters, the ones used can either be entered as ''named parameters'', using the number or label with an equals sign, or as ''unnamed parameters'', by omitting the added names and just entering the text directly. The parameters should be ''all unnamed'' or ''all named'' but not a mixture of the two. If they are ''unnamed'', the correct sequence must be maintained, and if they are ''named'', then ''any'' sequence can be used. Number names and label names ''can'' be mixed without difficulty in a template call.
Although virtually ''any'' tags can be modified by adding a style statement to the leading tag, it is not to say that the work can always be made into a template. There is at least one exception that exists when it comes to making such a template. The '''<pre></pre>''' tags by their very definition cause a template's parameter code to be disregarded, and a different approach is needed. Instead of attempting to make a modified pre-formatted text template consider the use of [[Template:Prettypre|Prettypre]] for a ready-made fancy version of these tags.
That is to say, it is possible to modify the '''<pre></pre>''' tags with inline styles, to make more interesting pre-formatted text, and it is possible to add the tags to text used as a template's parameter, but making a template from text ''bounded'' by pre-formatting tags will prove more difficult.
====Options====
For completeness, we can also add ''options'' to our basic ''red-text'' template example. Say we want to change the color of the text from time to time in our work. We could make another complete template for the new color or we could just add an option to the text coloring code. The new code looks like this:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki><span style="font-family:Garamond;font-size:20pt;color:{{{tint|red}}}">{{{content|{{{1}}}}}}</span></nowiki>}}
Note that the entire property value (applies also to an attribute value), must be enclosed in triple curly brackets. Additionally, the value should be replaced with an ''option name / default value'' combination. In this case, if the user does not specify the color of text, it will be ''red'' in any case. If it is specified, (see the example below), it can be changed to any color using the option ''tint='' within the template call. Assuming that this template's name were ''BigText'' the template call for purple text would be, say:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{BigText|tint=purple|1=My purple text goes here}}</nowiki>}}
Other options could be made in the same way, and similar techniques could be used regardless of the tags used for the template.
A knowledge of the different tags and access to lists of CSS properties allows considerable scope in template design.
===Making Boxes===
----
The following sections ''make'' box or table templates from Wikitext. They can also be made with HTML tables in the same way. When it comes to ''making'' such a template, wikitext is fine but when a table is needed to go ''into'' a template as its parameter, or part of its parameter, an HTML table should be used instead. The WikiBooks text [[../Tables|'''Making Tables''']] touches on HTML table structures, and explains how to use styles. It is assumed that the reader is familiar with these concepts in the text that follows.
====The Box Structure====
Boxes are essentially ''tables'', in fact table cells. The CSS property list to format tables is extensive. Simple boxes make use of the table ''container'', and one or two ''cells'' within it.
Apart from the table container, the other structures of a table include its ''rows'', and ''cells''. In the case below there are two rows, each with only one cell in them. Each part of a table has properties that affect it, and an example of typical table coding can be seen in the listing below.
<table cellpadding=20px style="font-family:courier;border:1px dashed blue;background:#f9f9f9;{{Text default color}};">
<td align=left><poem style="font-family:'Courier New', Courier, monospace; font-size:1.1em;"><nowiki>{|style="background:lightyellow;width:150px;margin:none;border:1px solid lightgrey" align=left
|-
| style= " text-align: center; padding: 5px 0 0 0"|'''Heading'''
|- style="text-align:justify;"
| style="padding:0px 10px 10px 10px;"|Content.
|}
</nowiki></poem></td>
</table>
{{-}}
Running this code in the sandbox produces the following:
{{-}}
{| style="background:lightyellow;{{Text default color}};width:150px;margin:none;border:1px solid lightgrey" align=left
|-
| style= "text-align: center; padding: 5px 0 0 0"|'''Heading'''
|- style= "text-align:justify;"
| style= "padding:0px 10px 10px 10px;"|Content.
|}
{{-}}
If necessary, refer to the WikiBooks text [[../Tables|'''Making Tables''']] or the Wikipedia text [http://en.wikipedia.org/wiki/Help:Table '''Help-Table'''] for detailed advice on making tables. Refer also to the drop-down box below for a listing of the commonly used table properties and their meanings.
{{tablestyles}}
{{-}}
For now, it will suffice to note only that:
*A table is enclosed in these symbols: '''<nowiki>{| |}</nowiki>'''
*A caption placed above the table starts with a '''<nowiki>|+</nowiki>'''.
*A heading cell within the table starts with a '''<nowiki>!</nowiki>'''
*A new row is created with the symbols: '''<nowiki>|-</nowiki>'''
*A data cell within a row is created with the symbol: '''<nowiki>|</nowiki>'''
*Style statements can exist at the table, row, or cell levels.
*An additional pipe symbol separates a cell's styles from its text.''' <nowiki>|</nowiki>'''
*Starting tables, rows and cells on new lines avoids many problems in templates.
Follow the reasoning in this description from the code.
The table container has ''background'', ''width'', ''margin'', and ''border'' properties, and the ''align'' attribute assigned.
*''Background'';sets the background color for the whole table.
*''Width''; sets the overall width of the table.
*''Margin''; removes margins of the table.
*''Border'': Sets the thickness, type, and color of the table border, all in one.
*''Align'': Permits the box to be placed on the page at ''left'', ''right'', or ''center''.
The cell in the first row has ''text-align'',''padding'', and a form of heading text.
*''Text-align'';positions the cell text horizontally at the center.
*''Padding''; sets the padding within the first cell for the box heading text.
*''The Heading Text''; is made bold with Wiki mark-up.
The next row has ''text-align''. This property applies style to all of the cells in the row at once, though not all properties can do this.
*''Text-align'';justifies text in the bottom cell - the main content.
The ''content'' cell has ''padding'', and the content text.
*''Padding'';sets the spacing around the content text.
*''The content text''; is the main text for the box template.
Other properties could be specified for this text box, for example, for the details of the fonts to use, but there is enough here for this example.
====Parameters and Options====
It is intended to provide three ''options'' along with the two ''parameters''. The options are to be ''background'',''width'', and ''align''. The parameter ''names'' are to be ''1'' and ''2'', with the labels ''heading'' and ''content''.
The options and parameters have been added to the code below:
<table cellpadding=20px style="font-family:courier;border:1px dashed blue;background:#f9f9f9;{{Text default color}};">
<td align=left><syntaxhighlight style="font-family:'Courier New', Courier, monospace; font-size:1.1em;" lang="wikitext">{| style="background:{{{background|lightyellow}}};width:{{{width|150px}}};margin:none;border:1px solid lightgrey" align={{{align|left}}}
| style= " text-align: center; padding: 5px 0 0 0"|'''{{{Heading|{{{1}}}}}}'''
|- style="text-align:justify;"
| style="padding:0px 10px 10px 10px;"|{{{Content|{{{2}}}}}}
|}</syntaxhighlight></td>
</table>
{{-}}
'''Parameters''' have been made in place of the ''heading'' and ''content'' text. The formats for parameters one and two are:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{{heading|{{{1}}}}}} and {{{content|{{{2}}}}}}</nowiki>}}
{{-}}
Each parameter format consists of a parameter ''label'',( ''heading'' or ''content''), a ''pipe'', symbol,'''<nowiki>|</nowiki>''', and the true ''name'' of the parameter, (''1'' or ''2''). In each case, both the parameter name ''and'' the entire parameter expression are enclosed in triple curly brackets. '''<nowiki>{{{}}}</nowiki>'''.
'''Options''' have been made for the properties ''background'', ''width'', and ''align''. The formats are :
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>background:{{{background|lightyellow}}} width:{{{width|150px}}} and align={{{align|left}}}</nowiki>}}
{{-}}
Notice that the format of the bracketing is similar to the examples given in the making of text templates, and that the same strict format is used to identify the options and parameters.
'''A parameter can use the ''option'' format too'''. When a parameter does so, it must use the ''named'' parameter style in the template call. The advantage of such a parameter is that it can have ''any'' default value, including an image. The disadvantage of using the ''option'' format for a ''parameter'' is that the highly conspicuous numbered reminder is lost. You will recall that the more formal parameter style gives a parameter number as the default.
The template can be saved in the usual way. Assuming that the template were saved with the name ''Textbox'', then it could be called for use by typing the following:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{textbox|background=lightgrey|width=325px|align=center|Heading text here|Content text here}}</nowiki>}}
The variations in boxes are considerable. By adjusting the table structure, it is possible to add images and other effects. Most of the information boxes within Wikipedia and WikiBooks have a table basis for their construction.
===Making Drop Controls===
----
Drop-boxes save space on the page and can be used for both text and for images. Within Wikibooks these boxes are dynamic, and clicking the link on the heading of such a box drops it box to show the entire contents section. Clicking the link again restores it to its closed state.
Drop-boxes can be created in two ways. In the past, the way to make them was to use the classes ''NavFrame'', ''NavHead'', and ''NavContent''. These days, the ''collapsible'' class can be used for both tables and div boxes, and its simplicity has made it a clear choice. The first section describes briefly the layout for collapsible divs. The remainder of the section is devoted to the version based on the collapsible table; this method is the basis of the ''ready-made'' drop-control template [[Template:Dropimage|'''Dropimage''']].
A ready-made template exists for a quite adaptable drop-box; it is [[Template:Dropimage|'''Dropimage''']], though for those who want the details, they are to be had at [[Editing Wikitext/Tables#Sorting and Hiding|'''Sorting and Hiding''']].
====Collapsible Boxes====
The basic code for drop-boxes is just:
<syntaxhighlight lang="html" style="font-family:'Courier New', Courier, monospace; font-size:1.1em;"><div class="collapsible">
<div class="title">Title</div>
<div class="body">
Hideable content
</div>
</div></syntaxhighlight>
The above code produces a drop-box that is extended across the whole width of the page. ''collapsible'' contains the other two sections, ''title'' refers to the panel with the link, and ''body'' refers to the text box within the drop box itself.
By default, the contents are hidden when the page is loaded; that is to say, the box is closed when the page first opens. To have the contents shown by default, the user adds "selected" to the class declaration. CSS styles could also be added as shown below and the option-brackets and parameter-brackets for template-making have been shown, as was explained in the previous section:
<syntaxhighlight lang="html" style="font-family:'Courier New', Courier, monospace; font-size:1.1em;"><div class="collapsible selected" style="color:{{{color|darkgray}}}; width:{{{width|300px}}}; {{#switch:{{{align|center}}}|center=margin:auto;|left=float:left;|right=float:right;}}">
<div class="title" style="font-weight:{{{bold|bold}}};">{{{Heading|{{{1}}}}}}</div>
<div class="body" style="background-color:{{{background|lightyellow}}};color:{{{color2|black}}}">
{{{Content|{{{2}}}}}}
</div>
</div></syntaxhighlight>
Changes in layout is obtained by changing styles in any of the sections, but the preferred method, using collapsible tables, is described in the next section.
====Collapsible Tables====
(currently being rewritten to update for collapsible tables)
The panel below shows the HTML and Wikitext code versions of a fairly basic drop-box based on the ''collapsible'' box class. The two versions are equivalent, though users who intend to make a template should use the HTML version, since it can have a table as its content without any instability. Nesting tables in Wikitext is problematic.
{{block|ff='Courier New', Courier, monospace|fs=1.1em|ta=left|background=ivory|
'''HTML Collapsible Table Cell'''
<syntaxhighlight lang="html" style="font-family:'Courier New', Courier, monospace; font-size:1.1em;">
<table class="collapsible" style="border:1px solid black; width:300px;" cellpadding="5px">
<tr>
<th style="text-align:center;">Any Heading</th>
</tr>
<tr>
<td>Content cell text, images or HTML tables</td>
</tr>
</table>
</syntaxhighlight>
'''WIKITEXT''' Collapsible Table Cell
<poem style="font-family:'Courier New', Courier, monospace; font-size:1.1em;"><nowiki>
{| class="collapsible" style="border:1px solid black; width:300px;" cellpadding="5px"
|-
! style="text-align:center;" | Any Heading
|-
| Content cell text or images only
|}
</nowiki></poem>
}}
If, instead of the ''collapsed'' state, the ''selected'' state is needed on opening the page, then just add the class ''selected'' as in the line ''class="collapsible selected" ''. The default state is ''collapsed'' which need not be added.
The ''width'' style in the table line sets the ''initial'' width of the table on the page, and with the exception of un-formatted text, the table will expand on opening to accommodate the contents.
The ''float'' and ''align'' attributes should be avoided for tables because browsers may not support table alignment. Tables can be aligned in a way compatible with most browsers by setting the initial width of the table to 100%, and by wrapping the table inside a div box with its width set to the desired width. For left and right alignment use float on the div box. For center alignment use a margin of auto on the div.
{{block|ff='Courier New', Courier, monospace|fs=1.1em|ta=left|background=ivory|
'''HTML Collapsible Table Cell'''
<syntaxhighlight lang="html" style="font-family:'Courier New', Courier, monospace; font-size:1.1em;">
<div style="width:300x; {{#switch:{{{align|center}}}|center=margin:auto;|left=float:left;|right=float:right;}}">
<table class="collapsible" style="border:1px solid black; width:100%;" cellpadding="5px">
<tr>
<th style="text-align:center;">Any Heading</th>
</tr>
<tr>
<td>Content cell text, images or HTML tables</td>
</tr>
</table>
</div>
</syntaxhighlight>
'''WIKITEXT''' Collapsible Table Cell
<syntaxhighlight lang="html" style="font-family:'Courier New', Courier, monospace; font-size:1.1em;">
<div style="width:300x; {{#switch:{{{align|center}}}|center=margin:auto;|left=float:left;|right=float:right;}}">
{| class="collapsible" style="border:1px solid black; width:100%;" cellpadding="5px"
|-
! style="text-align:center;" | Any Heading
|-
| Content cell text or images only
|}
</div>
</syntaxhighlight>
}}
====Parameters and Options====
The parameter and option brackets are shown in the panel below for an HTML version of the drop-box template, and it will be noted that the method is similar to that used for simple tables in an earlier section. It may be of interest to note that the outermost table is there simply to allow centering of the entire structure, since the ''collapsible'' class does not support it.
{{block|ff='Courier New', Courier, monospace|fs=1.1em|ta=left|background=ivory|
'''A Basic Drop-Box Template Coding'''
<syntaxhighlight lang="html" style="font-family:'Courier New', Courier, monospace; font-size:1.1em;">
<table style="border:none; align={{{alignT|left}}}">
<tr><td>
<table class="collapsible" style="border:{{{border|1px solid black}}}; width:{{{width|300px}}}; background:{{{backgroundT|transparent}}};" cellpadding="{{{padding|5px}}}">
<tr>
<th style="background:{{{backgroundH|transparent}}};text-align:center;">{{{heading|{{{1}}}}}}</th>
</tr>
<tr>
<td style="text-align:{{{alignC|left}}};"> {{{content|{{{2}}}}}}</td>
</tr>
</table>
</td></tr>
</table>
<noinclude>
All other template page material goes between these tags.
</noinclude>
</syntaxhighlight>
}}
{{clear}}
The above HTML block of code has been saved as the template ''dropthing'', [[Template:Dropthing|'''Dropthing''']], and it can be called for use on a page by typing something along the lines of the following:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<syntaxhighlight lang="moin">{{dropthing|backgroundT=mistyrose| alignT=center|width=400px| Press to View|[[image:Cerasus blossom.jpg|400px|thumb|center|''Hawthorn in bloom''.]] }}</syntaxhighlight>}}
The drop-box that is produced with this template call is this:
{{dropthing|backgroundT=mistyrose|alignT=center|width=400px| Press to View|[[image:Cerasus blossom.jpg|400px|thumb|center|''Hawthorn in bloom''.]] }}
{{-}}
A more complex ready-made template called [[Template:dropimage|'''Dropimage''']] exists for those who need it. It has a large set of individual options, and the facility to add more properties and classes, the coding for which is described next.
===Advanced Options===
Although the user is always limited by the original template's design, he has some latitude afforded by the pre-planned options. There is a way, however, that allows the user to add classes and CSS properties not considered in the original design. For this method to work the designer of the template must anticipate the possible future need for such a change, and add a few extra keystrokes. It is explained below.
Perhaps surprisingly, both '''class''' and '''style''' declarations are themselves HTML ''attributes'', in the same way as ''align'', ''cellpadding'', and others. As such, these terms can be specified in the same way as other options, with default values of classes and styles. The user can then specify the list of styles or classes that he wants the template to use, or by doing nothing of the kind, the default values of each would apply. Clearly, if the usual values of an existing template were made to be such defaults, it would allow changes without affecting the original users. The example below allows the class ''selected'' to be used for a template whose original author uses only the class called ''collapsible''.
====Add Classes====
To allow user-changes to the classes for the above drop-table template, the class declaration (expression) line needs to modified as follows:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>class="{{{class|collapsible}}}"</nowiki>}}
This has the effect of making a new option ''named'' as '''class''' that has a default value of ''collapsible''; that is, if no '''class''' option is written by the user the default will apply. Now, having modified the class-declaration, the user could add the class ''selected'' or any other suitable class with which he is familiar, (while others still make normal use of the template), as follows:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|<nowiki>{{dropthing|backgroundT=mistyrose|class=collapsible selected| alignT=center|width=200px| Press to View|[[image:Cerasus blossom.jpg|400px|thumb|center|''Hawthorn in bloom''.]] }}</nowiki>}}
The box produced in this way is just:
{{dropthing|backgroundT=mistyrose|class=collapsible selected|alignT=center|width=200px| Press to View|[[image:Cerasus blossom.jpg|400px|thumb|center|''Hawthorn in bloom''.]] }}
The template, for this box only, will be displayed in its open state, since the class ''selected'' has been added as an option. Notice that the intended classes ''all'' need to be declared, and that the quotes were not needed. This entry entirely replaces the default class declaration. Similarly, other classes could be used, though the set of classes available for the automatic formatting of tables could do with some extension.
====More Style Options====
To modify the template to add user-written style expressions, the template's existing style expression in the table line would be replaced as follows:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|ta=left|<syntaxhighlight lang="text">style="{{{mystyleT|border:{{{border|1px solid black}}}; width:{{{width|300px}}}; background:{{{backgroundT|transparent}}} }}}"</syntaxhighlight> }}
Notice that the entire CSS style expression, (but not the attributes that followed it)), are now the default value of the ''mystyleT option''. When this option is used in a template call the quotes for the value expression should not be used.
The typical template call, introducing new properties might then become:
{{block|ff='Courier New', Courier, monospace|fs=1.1em|ta=left|<syntaxhighlight lang="moin">{{dropthing|myclass=collapsible| alignT=center|mystyleT=border:3px solid brown; width:300px; background:mistyrose;color:darkgreen; font-weight:bold|Press to View|[[image:Cerasus blossom.jpg|400px|thumb|center|''Hawthorn in bloom''.]] }}</syntaxhighlight>}}
and the result of making this template call is just:
{{dropthing|myclass=collapsible|alignT=center|mystyleT=border:3px solid brown; width:300px; background:mistyrose;color:darkgreen; font-weight:bold;|Press to View|[[image:Cerasus blossom.jpg|thumb|400px|center|''Hawthorn in bloom''.]]<br>Other text could go here... }}
{{-}}
Notice that the intended new style statement must be rewritten in its entirety, and that now a new CSS property (color of text), not included in the original design, has been added within the option statement.
If the mystyleT option were not used, the individual options could still be used. If ''both'' the expression and the individual values are changed, it would be as well to study the possibility that one will override the other.
The template [[Template:Dropimage|'''Dropimage''']] has been modified to include user modification of class and style.
===Endpiece===
The three example types given in the above sections will hopefully introduce the reader to the making of templates. Bear in mind that there are many aspects of templates not discussed here; for example, the notions of conditional behavior, loops, and defaults that themselves run as templates. Further reading about templates can be found in the links below.
Above all, learn how to use CSS styles in making your templates, and experiment with their effects.
==See also==
*[[WB:SB|Sandbox]]: The Wikibooks editing and test window
*[[Help:Templates]]: Wikibooks main templates article
*[[../Tables|Making Tables]]: Wikitext methods for tables
*[[Help:Tables]]: Wikibooks main tables article
*[http://en.wikibooks.org/w/index.php?title=Special:AllPages&namespace=10 All Templates Namespace] : Wikibooks templates alphabetical list
*[[:Category:Templates|Templates Category]]: Wikibooks templates listed by category
*[[CSS Programming]]: Helpful for CSS context
*[http://www.w3schools.com/css/css_reference.asp CSS Reference List]: An external CSS Properties Reference
*[[w:Web colors|Web Colors]]: A Wikipedia article on web colors
*[[Template:Dropimage]]: A multi-optioned drop-box template
*[[Template:Thetop]]: The most useful of the top section templates, for ''filling the space''.
*[[Template:Lorem ipsum]]: Test paragraph template
*[[../Class and Style Notes|Class and Style Notes]]: About Wikitext classes and styles, as opposed to style sheets
*[[w:Wikipedia:Anatomy of a template|Anatomy of a Template]]: Wikipedia text with notes on templates as defaults, and conditionals.
<!--</div>-->
</div>
{{ewlinks}}
9tfwynkynq6xtzn5zdkjx5ie7l7nn3f
Chess Opening Theory/1. e4/1...b5
0
155073
4674799
4642250
2026-10-07T05:25:50Z
~2026-52240-90
3627108
4674799
wikitext
text/x-wiki
{{Chess Opening Theory/Position
|1...b5?
|eco=[[Chess/ECOB|B00]]
|parent=[[../|King's pawn opening]]
}}
== 1...b5? Poopie Gambit ==
Black gambits a pawn after 1. e4. White, can take the pawn with [[/2. Bxb5|'''2. Bxb5''']]. What White doesn't know that after Bxb5, Black will start attacks on the kingside, in the middlegame.
Having opened the b7 square, Black can fianchetto 2...Bb7 to attack White's centre from afar. (cf. the [[../1...b6|Owen's defence, 1...b6]].) One devious try for Black is to take advantage of having brought White's bishop away from defence of the g2 square. 1. e4 b5?! 2. Bxb5 Bb7 3. Nc3 f5?! 4. exf5 and Black thinks ...Bxg2?! wins the rook in the corner. Unfortunately, Qh5+ and Black's king proves to be too weak.
If White does not accept Poopie Gambit, play may transpose into the [[Chess Opening Theory/1. e4/1...c5/2. Nf3/2...b5|Polish gambit in the Sicilian defence]] after 2...Nf3 3. c5.
The mainline for Poopie Gambit is 1. e4 b5 2. Bxb5 a6 3. Bc4.
White can also decline the gambit by 2. c4, because bxc4 Bxc4 will slightly transpose into the Bishop's Opening, but Black has lost the b pawn in order to develop the queenside bishop.
=== History ===
1...b5? is unheard of in tournament chess and almost never played in online games.<ref>As of September 2025, it has 0 hits in the Lichess Masters database and 2.2 million (0.06%) out of 4 billion games beginning 1. e4 in the Lichess database.</ref> It resembles a [[../../1. b4/1...e5|Polish opening]] in reverse, but Black, moving second, is down a tempo.
==Theory table==
{{Chess Opening Theory/Table}}
:'''1. e4 b5'''
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<th></th>
<th align="left">2</th>
</tr>
<tr>
<th align="right"></th>
<td>[[/2. Bxb5|Bxb5]]
</td>
<td>+/-</td>
</tr>
</table>
{{ChessMid}}
==References==
{{reflist}}
=== See also ===
{{Wikipedia|King's Pawn Game}}
==External links==
* 365Chess. [http://www.365chess.com/opening.php?m=3&n=1037&ms=e4.b5&ns=3.1037]
{{Chess Opening Theory/Footer}}
mkh3nravsso6v1haquqrsfwa3372sja
Wikibooks:Reading room/Proposals
4
155682
4674711
4674676
2026-10-06T13:24:23Z
JJPMaster
3095725
/* FlaggedRevs again */ Reply
4674711
wikitext
text/x-wiki
__NEWSECTIONLINK__ {{Discussion Rooms}} {{Shortcut|WB:RFC|WB:PROPOSALS}} {{TOC left<!--|limit=2-->}}
Welcome to the '''Proposals reading room'''. On this page, Wikibookians are free to talk about suggestions for improving Wikibooks.
{{User:MiszaBot/config
|archive = Wikibooks:Reading room/Proposals/%(year)d/%(monthname)s
|algo = old(120d)
|counter = 1
|key = 1f2adc5eee951900b65c7b981b786191
|minthreadstoarchive = 1
|minthreadsleft = 1
}}
{{clear}}
<!--Take threads to archive below this line-->
<!--Add new threads to bottom of page-->
== New gadget to browse subpages ==
Hi all! I developed a gadget to easily browse subpages through a collapsible menu, that I think might be useful in Wikibooks. Here's a little demo video:
[[File:Subpages_gadget_demo.webm|frameless]]
To test it yourself, add the following to [[Special:MyPage/common.js|your common.js]]:
<syntaxhighlight lang="javascript">
mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );
</syntaxhighlight>
If you find it useful, I can enable it as a gadget to make it generally available from the preferences. Thoughts? Cheers! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 2 July 2026 (UTC)
:Wikibooks relies heavily on subpages, so this is a nice addition. Merci. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 16:43, 2 July 2026 (UTC)
:This could be extremely useful for books here!! I'll note, though, that it doesn't work quite right with the vector legacy skin (what I use). —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:20, 3 July 2026 (UTC)
: @[[User:Sophivorus|Sophivorus]] I will be the one in charge installing this as a gadget since there is no objection, but what dependecies does this gadget need to use? You might also want to read Kittycataclysm's suggestion above. ''Muchos saludos''. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 23:08, 9 July 2026 (UTC)
::@[[User:Codename Noreste|Codename Noreste]] Hi! I just fixed the issue with Vector legacy and also for other skins. Regarding dependencies, this gadget requires <code>mediawiki.api</code> and <code>@wikimedia/codex</code>. If you want to take care of the installation, please do not copy-paste the source code, but rather load the global version using <code>mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );</code>, like other [[mw:Global gadgets|global gadgets]]. Thanks! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 14:22, 22 July 2026 (UTC)
::: I put the code on the gadgets definition page @[[User:Sophivorus|Sophivorus]], but feel free to fix what I placed. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 21:45, 22 July 2026 (UTC)
== Breadcrumbs in the title ==
Hi! I think breadcrumbs would be more intuitive, compact and cleaner if they were integrated into the title rather than below it, like so:
<gallery>
Wikisource breadcrumbs proposal (before).png|Current breadcrumbs
Wikisource breadcrumbs proposal (after).png|Proposed breadcrumbs
</gallery>
What do you think? [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 17 August 2026 (UTC)
:I appreciate the effort, but I don't see a big difference or that one would be more usable than another. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:14, 17 August 2026 (UTC)
== Approve [[Wikibooks:CheckUser]] as a local policy? ==
Some of the text was based off of the global CheckUser policy, but in this case, should we approve [[Wikibooks:CheckUser]] as a local policy? There is a special clause allowing stewards to perform checks even during non-emergency situations (as set in [[Wikibooks:Global rights policy]]). I have yet to include a part where users may request CU checks. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 21:55, 13 September 2026 (UTC)
:I'm somewhat just unsure on what the benefit of making this policy would be. Sure, there's strength in policy, of course. But this seems to be doing fine overall as an information page, no? It doesn't differ very much from the global CU policy, so I'm not sure that a page without any Wikibooks-specific information really benefits from policy status. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:22, 14 September 2026 (UTC)
:I would {{support}} this. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:26, 20 September 2026 (UTC)
== FlaggedRevs again ==
<div class="cd-moveMark">''Moved from [[Wikibooks:Reading room/General#FlaggedRevs again]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:01, 1 October 2026 (UTC)''</div>
Hi all. I already know there were various topics over the years about this subject, but I was considering for the project on whether we should remove this extension from this project, and go back to using MediaWiki's page patrol system.
Currently, there is a backlog of more than 3000 unreviewed edits (some going back as far as a few years ago); that’s why I started this discussion here.
{{collapse top}}
* <code>autoreview</code> and <code>editor</code> would be <code>autopatrolled</code> and <code>patroller</code>, respectively.
* <code>wgUseNPPatrol</code> and <code>wgUseFilePatrol</code> would be re-enabled for English Wikibooks.
* <code>autopatrol</code> and <code>patrol</code> would be re-assigned back to sysops and their respective user groups.
* <code>patroller</code> would also have <code>rollback</code> and <code>suppressredirect</code> and its rate limit untouched.
{{collapse bottom}}
Best, [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:56, 30 September 2026 (UTC)
:{{s}} the removal of FlaggedRevs. Inasmuch as the extension works at all, it works best when it is used selectively on projects like Wikipedia, for individual high-traffic pages with lots of watchers which are subject to vandalism or controversy. Wikibooks is not a good use case for this extension. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 15:51, 1 October 2026 (UTC)
:{{s}} I don't see any way that backlog ever gets cleared, frankly, and if it isn't going to be cleared, we might as well go to something easier, which is the normal page patrol system, which works well off of [[Special:NewPages]] already. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:31, 3 October 2026 (UTC)
:{{neutral}} - Wikibooks is not a good use case for this extension, and with 3000 unreviewed edits with no progress at all, it does make sense to remove it. On the other hand, there could be a WikiProject to review each of these edits. For this reason, I am voting neutral [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:41, 3 October 2026 (UTC)
:: There was the outdated [[Wikibooks:New page patrol]] before this project used FlaggedRevs. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:22, 3 October 2026 (UTC)
:{{support}} the removal of FlaggedRevs from Wikibooks. It's a redundant extension that's not useful in this wiki. --[[User:Agusbou2015|Agusbou2015]] ([[User talk:Agusbou2015|discuss]] • [[Special:Contributions/Agusbou2015|contribs]]) 21:53, 3 October 2026 (UTC)
:{{Support}}. Several years ago I spent hundreds of hours trying to do the first review of every page. I managed to get all the root pages done but only got as far as "E" for the other pages. While I was doing this I stopped reviewing changes - and in that time over a 1,000 out of date pages were in the list. I concluded it was an impossible task unless lots of people joined in the work but that didn't happen and I doubt it ever will. I do think it has value for Wikijunior in showing the last reviewed page rather than the possibly offensively vandalised latest revision, but other than that it's a waste of time. At some point the extension will get fully deprecated and we'll be forced to stop using it anyway. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 09:53, 6 October 2026 (UTC)
:Will <code>patroller</code> be granted automatically? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 13:24, 6 October 2026 (UTC)
== Disable (some) page creation by temporary accounts ==
Creating a new book, or adding a chapter to an existing book, is a significant action, and users performing this action should be available to discuss it. Additionally, in practice, most page creations by temp accounts are out of scope, if not outright vandalism. (See https://en.wikibooks.org/w/index.php?title=Special:Log&type=create for some examples.)
As such, I'd like to propose that the wiki require a registered account to create pages in any non-talk namespace. Temporary accounts will still be able to edit existing pages, or to create talk pages to start discussions. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:48, 1 October 2026 (UTC)
: From a technical point of view, this would require moving <code>createpage</code> from unregistered users (<code><nowiki>*</nowiki></code>) to registered users (<code>user</code>), but that would mean every non-registered user may not be able to create pages in every namespace, but talk pages.
: Another solution would be to add [[mw:Extension:ArticleCreationWorkflow]] to this project, but we don't have a system to create drafts (or similar).
: And a final solution would be to create an edit filter disallowing unregistered users from creating pages in mainspace. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:43, 1 October 2026 (UTC)
:: Just to note, please read the first point of [[m:Limits to configuration changes#Changes that are likely to be declined]] (Disable non-autoconfirmed page creation). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:50, 1 October 2026 (UTC)
:::What I'm proposing is that we require a registered account for page creation, not autoconfirmed. enwiki (as well as a few other wikis) already use this configuration - it's not new. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 19:58, 1 October 2026 (UTC)
:::: Okay, but I provided some alternatives above. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 20:06, 1 October 2026 (UTC)
qh5h9bq2tnni8xzqgiazxat2baq4dqy
4674727
4674711
2026-10-06T13:46:58Z
Codename Noreste
3441010
/* FlaggedRevs again */ reply to JJPMaster ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4674727
wikitext
text/x-wiki
__NEWSECTIONLINK__ {{Discussion Rooms}} {{Shortcut|WB:RFC|WB:PROPOSALS}} {{TOC left<!--|limit=2-->}}
Welcome to the '''Proposals reading room'''. On this page, Wikibookians are free to talk about suggestions for improving Wikibooks.
{{User:MiszaBot/config
|archive = Wikibooks:Reading room/Proposals/%(year)d/%(monthname)s
|algo = old(120d)
|counter = 1
|key = 1f2adc5eee951900b65c7b981b786191
|minthreadstoarchive = 1
|minthreadsleft = 1
}}
{{clear}}
<!--Take threads to archive below this line-->
<!--Add new threads to bottom of page-->
== New gadget to browse subpages ==
Hi all! I developed a gadget to easily browse subpages through a collapsible menu, that I think might be useful in Wikibooks. Here's a little demo video:
[[File:Subpages_gadget_demo.webm|frameless]]
To test it yourself, add the following to [[Special:MyPage/common.js|your common.js]]:
<syntaxhighlight lang="javascript">
mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );
</syntaxhighlight>
If you find it useful, I can enable it as a gadget to make it generally available from the preferences. Thoughts? Cheers! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 2 July 2026 (UTC)
:Wikibooks relies heavily on subpages, so this is a nice addition. Merci. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 16:43, 2 July 2026 (UTC)
:This could be extremely useful for books here!! I'll note, though, that it doesn't work quite right with the vector legacy skin (what I use). —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:20, 3 July 2026 (UTC)
: @[[User:Sophivorus|Sophivorus]] I will be the one in charge installing this as a gadget since there is no objection, but what dependecies does this gadget need to use? You might also want to read Kittycataclysm's suggestion above. ''Muchos saludos''. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 23:08, 9 July 2026 (UTC)
::@[[User:Codename Noreste|Codename Noreste]] Hi! I just fixed the issue with Vector legacy and also for other skins. Regarding dependencies, this gadget requires <code>mediawiki.api</code> and <code>@wikimedia/codex</code>. If you want to take care of the installation, please do not copy-paste the source code, but rather load the global version using <code>mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );</code>, like other [[mw:Global gadgets|global gadgets]]. Thanks! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 14:22, 22 July 2026 (UTC)
::: I put the code on the gadgets definition page @[[User:Sophivorus|Sophivorus]], but feel free to fix what I placed. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 21:45, 22 July 2026 (UTC)
== Breadcrumbs in the title ==
Hi! I think breadcrumbs would be more intuitive, compact and cleaner if they were integrated into the title rather than below it, like so:
<gallery>
Wikisource breadcrumbs proposal (before).png|Current breadcrumbs
Wikisource breadcrumbs proposal (after).png|Proposed breadcrumbs
</gallery>
What do you think? [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 17 August 2026 (UTC)
:I appreciate the effort, but I don't see a big difference or that one would be more usable than another. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:14, 17 August 2026 (UTC)
== Approve [[Wikibooks:CheckUser]] as a local policy? ==
Some of the text was based off of the global CheckUser policy, but in this case, should we approve [[Wikibooks:CheckUser]] as a local policy? There is a special clause allowing stewards to perform checks even during non-emergency situations (as set in [[Wikibooks:Global rights policy]]). I have yet to include a part where users may request CU checks. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 21:55, 13 September 2026 (UTC)
:I'm somewhat just unsure on what the benefit of making this policy would be. Sure, there's strength in policy, of course. But this seems to be doing fine overall as an information page, no? It doesn't differ very much from the global CU policy, so I'm not sure that a page without any Wikibooks-specific information really benefits from policy status. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:22, 14 September 2026 (UTC)
:I would {{support}} this. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:26, 20 September 2026 (UTC)
== FlaggedRevs again ==
<div class="cd-moveMark">''Moved from [[Wikibooks:Reading room/General#FlaggedRevs again]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:01, 1 October 2026 (UTC)''</div>
Hi all. I already know there were various topics over the years about this subject, but I was considering for the project on whether we should remove this extension from this project, and go back to using MediaWiki's page patrol system.
Currently, there is a backlog of more than 3000 unreviewed edits (some going back as far as a few years ago); that’s why I started this discussion here.
{{collapse top}}
* <code>autoreview</code> and <code>editor</code> would be <code>autopatrolled</code> and <code>patroller</code>, respectively.
* <code>wgUseNPPatrol</code> and <code>wgUseFilePatrol</code> would be re-enabled for English Wikibooks.
* <code>autopatrol</code> and <code>patrol</code> would be re-assigned back to sysops and their respective user groups.
* <code>patroller</code> would also have <code>rollback</code> and <code>suppressredirect</code> and its rate limit untouched.
{{collapse bottom}}
Best, [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:56, 30 September 2026 (UTC)
:{{s}} the removal of FlaggedRevs. Inasmuch as the extension works at all, it works best when it is used selectively on projects like Wikipedia, for individual high-traffic pages with lots of watchers which are subject to vandalism or controversy. Wikibooks is not a good use case for this extension. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 15:51, 1 October 2026 (UTC)
:{{s}} I don't see any way that backlog ever gets cleared, frankly, and if it isn't going to be cleared, we might as well go to something easier, which is the normal page patrol system, which works well off of [[Special:NewPages]] already. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:31, 3 October 2026 (UTC)
:{{neutral}} - Wikibooks is not a good use case for this extension, and with 3000 unreviewed edits with no progress at all, it does make sense to remove it. On the other hand, there could be a WikiProject to review each of these edits. For this reason, I am voting neutral [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:41, 3 October 2026 (UTC)
:: There was the outdated [[Wikibooks:New page patrol]] before this project used FlaggedRevs. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:22, 3 October 2026 (UTC)
:{{support}} the removal of FlaggedRevs from Wikibooks. It's a redundant extension that's not useful in this wiki. --[[User:Agusbou2015|Agusbou2015]] ([[User talk:Agusbou2015|discuss]] • [[Special:Contributions/Agusbou2015|contribs]]) 21:53, 3 October 2026 (UTC)
:{{Support}}. Several years ago I spent hundreds of hours trying to do the first review of every page. I managed to get all the root pages done but only got as far as "E" for the other pages. While I was doing this I stopped reviewing changes - and in that time over a 1,000 out of date pages were in the list. I concluded it was an impossible task unless lots of people joined in the work but that didn't happen and I doubt it ever will. I do think it has value for Wikijunior in showing the last reviewed page rather than the possibly offensively vandalised latest revision, but other than that it's a waste of time. At some point the extension will get fully deprecated and we'll be forced to stop using it anyway. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 09:53, 6 October 2026 (UTC)
:Will <code>patroller</code> be granted automatically? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 13:24, 6 October 2026 (UTC)
:: Unfortunately, no. Since we will stop using FlaggedRevs, the patroller user group will not be granted automatically and thus will have to be manually given out by administrators. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 6 October 2026 (UTC)
== Disable (some) page creation by temporary accounts ==
Creating a new book, or adding a chapter to an existing book, is a significant action, and users performing this action should be available to discuss it. Additionally, in practice, most page creations by temp accounts are out of scope, if not outright vandalism. (See https://en.wikibooks.org/w/index.php?title=Special:Log&type=create for some examples.)
As such, I'd like to propose that the wiki require a registered account to create pages in any non-talk namespace. Temporary accounts will still be able to edit existing pages, or to create talk pages to start discussions. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:48, 1 October 2026 (UTC)
: From a technical point of view, this would require moving <code>createpage</code> from unregistered users (<code><nowiki>*</nowiki></code>) to registered users (<code>user</code>), but that would mean every non-registered user may not be able to create pages in every namespace, but talk pages.
: Another solution would be to add [[mw:Extension:ArticleCreationWorkflow]] to this project, but we don't have a system to create drafts (or similar).
: And a final solution would be to create an edit filter disallowing unregistered users from creating pages in mainspace. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:43, 1 October 2026 (UTC)
:: Just to note, please read the first point of [[m:Limits to configuration changes#Changes that are likely to be declined]] (Disable non-autoconfirmed page creation). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:50, 1 October 2026 (UTC)
:::What I'm proposing is that we require a registered account for page creation, not autoconfirmed. enwiki (as well as a few other wikis) already use this configuration - it's not new. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 19:58, 1 October 2026 (UTC)
:::: Okay, but I provided some alternatives above. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 20:06, 1 October 2026 (UTC)
5ck11i2e58nhlrnvj6a8b16doi0tv1e
4674766
4674727
2026-10-06T18:19:38Z
Codename Noreste
3441010
/* FlaggedRevs again */ reply ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4674766
wikitext
text/x-wiki
__NEWSECTIONLINK__ {{Discussion Rooms}} {{Shortcut|WB:RFC|WB:PROPOSALS}} {{TOC left<!--|limit=2-->}}
Welcome to the '''Proposals reading room'''. On this page, Wikibookians are free to talk about suggestions for improving Wikibooks.
{{User:MiszaBot/config
|archive = Wikibooks:Reading room/Proposals/%(year)d/%(monthname)s
|algo = old(120d)
|counter = 1
|key = 1f2adc5eee951900b65c7b981b786191
|minthreadstoarchive = 1
|minthreadsleft = 1
}}
{{clear}}
<!--Take threads to archive below this line-->
<!--Add new threads to bottom of page-->
== New gadget to browse subpages ==
Hi all! I developed a gadget to easily browse subpages through a collapsible menu, that I think might be useful in Wikibooks. Here's a little demo video:
[[File:Subpages_gadget_demo.webm|frameless]]
To test it yourself, add the following to [[Special:MyPage/common.js|your common.js]]:
<syntaxhighlight lang="javascript">
mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );
</syntaxhighlight>
If you find it useful, I can enable it as a gadget to make it generally available from the preferences. Thoughts? Cheers! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 2 July 2026 (UTC)
:Wikibooks relies heavily on subpages, so this is a nice addition. Merci. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 16:43, 2 July 2026 (UTC)
:This could be extremely useful for books here!! I'll note, though, that it doesn't work quite right with the vector legacy skin (what I use). —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:20, 3 July 2026 (UTC)
: @[[User:Sophivorus|Sophivorus]] I will be the one in charge installing this as a gadget since there is no objection, but what dependecies does this gadget need to use? You might also want to read Kittycataclysm's suggestion above. ''Muchos saludos''. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 23:08, 9 July 2026 (UTC)
::@[[User:Codename Noreste|Codename Noreste]] Hi! I just fixed the issue with Vector legacy and also for other skins. Regarding dependencies, this gadget requires <code>mediawiki.api</code> and <code>@wikimedia/codex</code>. If you want to take care of the installation, please do not copy-paste the source code, but rather load the global version using <code>mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );</code>, like other [[mw:Global gadgets|global gadgets]]. Thanks! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 14:22, 22 July 2026 (UTC)
::: I put the code on the gadgets definition page @[[User:Sophivorus|Sophivorus]], but feel free to fix what I placed. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 21:45, 22 July 2026 (UTC)
== Breadcrumbs in the title ==
Hi! I think breadcrumbs would be more intuitive, compact and cleaner if they were integrated into the title rather than below it, like so:
<gallery>
Wikisource breadcrumbs proposal (before).png|Current breadcrumbs
Wikisource breadcrumbs proposal (after).png|Proposed breadcrumbs
</gallery>
What do you think? [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 17 August 2026 (UTC)
:I appreciate the effort, but I don't see a big difference or that one would be more usable than another. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:14, 17 August 2026 (UTC)
== Approve [[Wikibooks:CheckUser]] as a local policy? ==
Some of the text was based off of the global CheckUser policy, but in this case, should we approve [[Wikibooks:CheckUser]] as a local policy? There is a special clause allowing stewards to perform checks even during non-emergency situations (as set in [[Wikibooks:Global rights policy]]). I have yet to include a part where users may request CU checks. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 21:55, 13 September 2026 (UTC)
:I'm somewhat just unsure on what the benefit of making this policy would be. Sure, there's strength in policy, of course. But this seems to be doing fine overall as an information page, no? It doesn't differ very much from the global CU policy, so I'm not sure that a page without any Wikibooks-specific information really benefits from policy status. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:22, 14 September 2026 (UTC)
:I would {{support}} this. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:26, 20 September 2026 (UTC)
== FlaggedRevs again ==
<div class="cd-moveMark">''Moved from [[Wikibooks:Reading room/General#FlaggedRevs again]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:01, 1 October 2026 (UTC)''</div>
Hi all. I already know there were various topics over the years about this subject, but I was considering for the project on whether we should remove this extension from this project, and go back to using MediaWiki's page patrol system.
Currently, there is a backlog of more than 3000 unreviewed edits (some going back as far as a few years ago); that’s why I started this discussion here.
{{collapse top}}
* <code>autoreview</code> and <code>editor</code> would be <code>autopatrolled</code> and <code>patroller</code>, respectively.
* <code>wgUseNPPatrol</code> and <code>wgUseFilePatrol</code> would be re-enabled for English Wikibooks.
* <code>autopatrol</code> and <code>patrol</code> would be re-assigned back to sysops and their respective user groups.
* <code>patroller</code> would also have <code>rollback</code> and <code>suppressredirect</code> and its rate limit untouched.
{{collapse bottom}}
Best, [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:56, 30 September 2026 (UTC)
:{{s}} the removal of FlaggedRevs. Inasmuch as the extension works at all, it works best when it is used selectively on projects like Wikipedia, for individual high-traffic pages with lots of watchers which are subject to vandalism or controversy. Wikibooks is not a good use case for this extension. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 15:51, 1 October 2026 (UTC)
:{{s}} I don't see any way that backlog ever gets cleared, frankly, and if it isn't going to be cleared, we might as well go to something easier, which is the normal page patrol system, which works well off of [[Special:NewPages]] already. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:31, 3 October 2026 (UTC)
:{{neutral}} - Wikibooks is not a good use case for this extension, and with 3000 unreviewed edits with no progress at all, it does make sense to remove it. On the other hand, there could be a WikiProject to review each of these edits. For this reason, I am voting neutral [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:41, 3 October 2026 (UTC)
:: There was the outdated [[Wikibooks:New page patrol]] before this project used FlaggedRevs. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:22, 3 October 2026 (UTC)
:{{support}} the removal of FlaggedRevs from Wikibooks. It's a redundant extension that's not useful in this wiki. --[[User:Agusbou2015|Agusbou2015]] ([[User talk:Agusbou2015|discuss]] • [[Special:Contributions/Agusbou2015|contribs]]) 21:53, 3 October 2026 (UTC)
:{{Support}}. Several years ago I spent hundreds of hours trying to do the first review of every page. I managed to get all the root pages done but only got as far as "E" for the other pages. While I was doing this I stopped reviewing changes - and in that time over a 1,000 out of date pages were in the list. I concluded it was an impossible task unless lots of people joined in the work but that didn't happen and I doubt it ever will. I do think it has value for Wikijunior in showing the last reviewed page rather than the possibly offensively vandalised latest revision, but other than that it's a waste of time. At some point the extension will get fully deprecated and we'll be forced to stop using it anyway. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 09:53, 6 October 2026 (UTC)
:Will <code>patroller</code> be granted automatically? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 13:24, 6 October 2026 (UTC)
:: Unfortunately, no. Since we will stop using FlaggedRevs, the patroller user group will not be granted automatically and thus will have to be manually given out by administrators. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 6 October 2026 (UTC)
: If you take a look at the extended content, I also included what I also proposed too. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:19, 6 October 2026 (UTC)
== Disable (some) page creation by temporary accounts ==
Creating a new book, or adding a chapter to an existing book, is a significant action, and users performing this action should be available to discuss it. Additionally, in practice, most page creations by temp accounts are out of scope, if not outright vandalism. (See https://en.wikibooks.org/w/index.php?title=Special:Log&type=create for some examples.)
As such, I'd like to propose that the wiki require a registered account to create pages in any non-talk namespace. Temporary accounts will still be able to edit existing pages, or to create talk pages to start discussions. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:48, 1 October 2026 (UTC)
: From a technical point of view, this would require moving <code>createpage</code> from unregistered users (<code><nowiki>*</nowiki></code>) to registered users (<code>user</code>), but that would mean every non-registered user may not be able to create pages in every namespace, but talk pages.
: Another solution would be to add [[mw:Extension:ArticleCreationWorkflow]] to this project, but we don't have a system to create drafts (or similar).
: And a final solution would be to create an edit filter disallowing unregistered users from creating pages in mainspace. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:43, 1 October 2026 (UTC)
:: Just to note, please read the first point of [[m:Limits to configuration changes#Changes that are likely to be declined]] (Disable non-autoconfirmed page creation). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:50, 1 October 2026 (UTC)
:::What I'm proposing is that we require a registered account for page creation, not autoconfirmed. enwiki (as well as a few other wikis) already use this configuration - it's not new. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 19:58, 1 October 2026 (UTC)
:::: Okay, but I provided some alternatives above. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 20:06, 1 October 2026 (UTC)
dedl9zwznsancssxftfozoze3gntpxe
4674774
4674766
2026-10-06T19:03:14Z
Codename Noreste
3441010
/* Disable (some) page creation by temporary accounts */ reply: In that case, I have no objections here. (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4674774
wikitext
text/x-wiki
__NEWSECTIONLINK__ {{Discussion Rooms}} {{Shortcut|WB:RFC|WB:PROPOSALS}} {{TOC left<!--|limit=2-->}}
Welcome to the '''Proposals reading room'''. On this page, Wikibookians are free to talk about suggestions for improving Wikibooks.
{{User:MiszaBot/config
|archive = Wikibooks:Reading room/Proposals/%(year)d/%(monthname)s
|algo = old(120d)
|counter = 1
|key = 1f2adc5eee951900b65c7b981b786191
|minthreadstoarchive = 1
|minthreadsleft = 1
}}
{{clear}}
<!--Take threads to archive below this line-->
<!--Add new threads to bottom of page-->
== New gadget to browse subpages ==
Hi all! I developed a gadget to easily browse subpages through a collapsible menu, that I think might be useful in Wikibooks. Here's a little demo video:
[[File:Subpages_gadget_demo.webm|frameless]]
To test it yourself, add the following to [[Special:MyPage/common.js|your common.js]]:
<syntaxhighlight lang="javascript">
mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );
</syntaxhighlight>
If you find it useful, I can enable it as a gadget to make it generally available from the preferences. Thoughts? Cheers! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 2 July 2026 (UTC)
:Wikibooks relies heavily on subpages, so this is a nice addition. Merci. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 16:43, 2 July 2026 (UTC)
:This could be extremely useful for books here!! I'll note, though, that it doesn't work quite right with the vector legacy skin (what I use). —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 01:20, 3 July 2026 (UTC)
: @[[User:Sophivorus|Sophivorus]] I will be the one in charge installing this as a gadget since there is no objection, but what dependecies does this gadget need to use? You might also want to read Kittycataclysm's suggestion above. ''Muchos saludos''. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 23:08, 9 July 2026 (UTC)
::@[[User:Codename Noreste|Codename Noreste]] Hi! I just fixed the issue with Vector legacy and also for other skins. Regarding dependencies, this gadget requires <code>mediawiki.api</code> and <code>@wikimedia/codex</code>. If you want to take care of the installation, please do not copy-paste the source code, but rather load the global version using <code>mw.loader.load( '//www.mediawiki.org/w/load.php?modules=ext.gadget.Global-Subpages' );</code>, like other [[mw:Global gadgets|global gadgets]]. Thanks! [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 14:22, 22 July 2026 (UTC)
::: I put the code on the gadgets definition page @[[User:Sophivorus|Sophivorus]], but feel free to fix what I placed. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 21:45, 22 July 2026 (UTC)
== Breadcrumbs in the title ==
Hi! I think breadcrumbs would be more intuitive, compact and cleaner if they were integrated into the title rather than below it, like so:
<gallery>
Wikisource breadcrumbs proposal (before).png|Current breadcrumbs
Wikisource breadcrumbs proposal (after).png|Proposed breadcrumbs
</gallery>
What do you think? [[User:Sophivorus|Sophivorus]] ([[User talk:Sophivorus|discuss]] • [[Special:Contributions/Sophivorus|contribs]]) 16:02, 17 August 2026 (UTC)
:I appreciate the effort, but I don't see a big difference or that one would be more usable than another. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:14, 17 August 2026 (UTC)
== Approve [[Wikibooks:CheckUser]] as a local policy? ==
Some of the text was based off of the global CheckUser policy, but in this case, should we approve [[Wikibooks:CheckUser]] as a local policy? There is a special clause allowing stewards to perform checks even during non-emergency situations (as set in [[Wikibooks:Global rights policy]]). I have yet to include a part where users may request CU checks. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 21:55, 13 September 2026 (UTC)
:I'm somewhat just unsure on what the benefit of making this policy would be. Sure, there's strength in policy, of course. But this seems to be doing fine overall as an information page, no? It doesn't differ very much from the global CU policy, so I'm not sure that a page without any Wikibooks-specific information really benefits from policy status. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:22, 14 September 2026 (UTC)
:I would {{support}} this. [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 00:26, 20 September 2026 (UTC)
== FlaggedRevs again ==
<div class="cd-moveMark">''Moved from [[Wikibooks:Reading room/General#FlaggedRevs again]]. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:01, 1 October 2026 (UTC)''</div>
Hi all. I already know there were various topics over the years about this subject, but I was considering for the project on whether we should remove this extension from this project, and go back to using MediaWiki's page patrol system.
Currently, there is a backlog of more than 3000 unreviewed edits (some going back as far as a few years ago); that’s why I started this discussion here.
{{collapse top}}
* <code>autoreview</code> and <code>editor</code> would be <code>autopatrolled</code> and <code>patroller</code>, respectively.
* <code>wgUseNPPatrol</code> and <code>wgUseFilePatrol</code> would be re-enabled for English Wikibooks.
* <code>autopatrol</code> and <code>patrol</code> would be re-assigned back to sysops and their respective user groups.
* <code>patroller</code> would also have <code>rollback</code> and <code>suppressredirect</code> and its rate limit untouched.
{{collapse bottom}}
Best, [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 12:56, 30 September 2026 (UTC)
:{{s}} the removal of FlaggedRevs. Inasmuch as the extension works at all, it works best when it is used selectively on projects like Wikipedia, for individual high-traffic pages with lots of watchers which are subject to vandalism or controversy. Wikibooks is not a good use case for this extension. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 15:51, 1 October 2026 (UTC)
:{{s}} I don't see any way that backlog ever gets cleared, frankly, and if it isn't going to be cleared, we might as well go to something easier, which is the normal page patrol system, which works well off of [[Special:NewPages]] already. [[User:EggRoll97|EggRoll97]] ([[User talk:EggRoll97|discuss]] • [[Special:Contributions/EggRoll97|contribs]]) 00:31, 3 October 2026 (UTC)
:{{neutral}} - Wikibooks is not a good use case for this extension, and with 3000 unreviewed edits with no progress at all, it does make sense to remove it. On the other hand, there could be a WikiProject to review each of these edits. For this reason, I am voting neutral [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 13:41, 3 October 2026 (UTC)
:: There was the outdated [[Wikibooks:New page patrol]] before this project used FlaggedRevs. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:22, 3 October 2026 (UTC)
:{{support}} the removal of FlaggedRevs from Wikibooks. It's a redundant extension that's not useful in this wiki. --[[User:Agusbou2015|Agusbou2015]] ([[User talk:Agusbou2015|discuss]] • [[Special:Contributions/Agusbou2015|contribs]]) 21:53, 3 October 2026 (UTC)
:{{Support}}. Several years ago I spent hundreds of hours trying to do the first review of every page. I managed to get all the root pages done but only got as far as "E" for the other pages. While I was doing this I stopped reviewing changes - and in that time over a 1,000 out of date pages were in the list. I concluded it was an impossible task unless lots of people joined in the work but that didn't happen and I doubt it ever will. I do think it has value for Wikijunior in showing the last reviewed page rather than the possibly offensively vandalised latest revision, but other than that it's a waste of time. At some point the extension will get fully deprecated and we'll be forced to stop using it anyway. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 09:53, 6 October 2026 (UTC)
:Will <code>patroller</code> be granted automatically? [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 13:24, 6 October 2026 (UTC)
:: Unfortunately, no. Since we will stop using FlaggedRevs, the patroller user group will not be granted automatically and thus will have to be manually given out by administrators. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 6 October 2026 (UTC)
: If you take a look at the extended content, I also included what I also proposed too. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 18:19, 6 October 2026 (UTC)
== Disable (some) page creation by temporary accounts ==
Creating a new book, or adding a chapter to an existing book, is a significant action, and users performing this action should be available to discuss it. Additionally, in practice, most page creations by temp accounts are out of scope, if not outright vandalism. (See https://en.wikibooks.org/w/index.php?title=Special:Log&type=create for some examples.)
As such, I'd like to propose that the wiki require a registered account to create pages in any non-talk namespace. Temporary accounts will still be able to edit existing pages, or to create talk pages to start discussions. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 18:48, 1 October 2026 (UTC)
: From a technical point of view, this would require moving <code>createpage</code> from unregistered users (<code><nowiki>*</nowiki></code>) to registered users (<code>user</code>), but that would mean every non-registered user may not be able to create pages in every namespace, but talk pages.
: Another solution would be to add [[mw:Extension:ArticleCreationWorkflow]] to this project, but we don't have a system to create drafts (or similar).
: And a final solution would be to create an edit filter disallowing unregistered users from creating pages in mainspace. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:43, 1 October 2026 (UTC)
:: Just to note, please read the first point of [[m:Limits to configuration changes#Changes that are likely to be declined]] (Disable non-autoconfirmed page creation). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:50, 1 October 2026 (UTC)
:::What I'm proposing is that we require a registered account for page creation, not autoconfirmed. enwiki (as well as a few other wikis) already use this configuration - it's not new. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 19:58, 1 October 2026 (UTC)
:::: Okay, but I provided some alternatives above. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 20:06, 1 October 2026 (UTC)
: In that case, I have no objections here. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:03, 6 October 2026 (UTC)
6q6uhel1pl8bv1ziwmjlbcq1qq15o2s
Radiation Oncology/NSCLC/Protons
0
161475
4674817
1921370
2026-10-07T08:34:55Z
Jcb
90773
4674817
wikitext
text/x-wiki
{{:Radiation Oncology/Lung/NSCLC:TOC}}
<big>'''Proton Therapy in NSCLC'''</big>
==Clinical Literature==
*'''Hyogo Ion Beam; 2010''' (2003-2007) {{PMID|20225229}} -- "High-dose proton therapy and carbon-ion therapy for stage I nonsmall cell lung cancer." (Iwata H, Cancer. 2010 Mar 11. [Epub ahead of print])
**Retrospective. 80 patients, Stage I NSCLC. Proton (n=57) or carbon ion (n=23) RT. Inoperable 46%, refused surgery 54%. T1 52%, T2 48%. Three protocols: protons 80/20, protons 60/10, carbon 52.8/4. Since 2005, both carbon and proton plan made and the superior adopted. Median F/U 3 years
**Outcome: 3-year OS 75% (IA 74%, IB 76%), 3-years CSS 86% (84%, 88%), 3-year local control 82% (87%, 77%)
**Toxicity: Grade 3 in 1 patient
**Conclusion: Particle therapy safe and effective for Stage I NSCLC
*'''Tsukuba'''
**'''2010''' (2001-2008) {{PMID|20056349}} -- Proton Beam Therapy for Patients with Medically Inoperable Stage I Non-Small-Cell Lung Cancer at the University of Tsukuba." (Nakayama H, Int J Radiat Oncol Biol Phys. 2010 Jan 5. [Epub ahead of print])
***Retrospective. 55 inoperable Stage I NSCLC, 58 tumors. Proton therapy. T1 52%, T2 48%. Peripheral tumors 66/10, central tumors 72.6/22
***Outcome: 2-year local control 97%, 2-year OS 98%. No difference between T1 and T2
***Toxicity: Grade 3 pneumonitis 4%, deterioration in pulmonary function 4%
***Conclusion: Proton beam therapy effective and well tolerated
**'''2007''' {{PMID|17379439}} -- "Hypofractionated high-dose proton beam therapy for stage I non-small-cell lung cancer: preliminary results of a phase I/II clinical study." (Hata M, Int J Radiat Oncol Biol Phys. 2007 Jul 1;68(3):786-93. Epub 2007 Mar 26.)
***Retrospective. 21 patients, Stage I NSCLC (Stage IA 11, Stage IB 10). Median tumor size 2.5 cm. PT 50/10 (n=3) and 60/10 (n=18). Median F/U 2.1 years
***Outcome: 2-year OS 74%, CSS 86%, LC 95%, local DFS 79% (new lung lesions outside treated volume)
***Toxicity: No Grade 3+
***Conclusion: Hypofractionated proton beam therapy feasible and effective for Stage I
**'''2003''' (1983-2000) {{PMID|12694818}} -- "Clinical evaluation of proton radiotherapy for non-small-cell lung cancer." (Shioyama Y, Int J Radiat Oncol Biol Phys. 2003 May 1;56(1):7-13.)
***Retrospective. 51 patients with NSCLC (Stage I 28, Stage II 9, Stage III 8, Stage IV 1, recurrent 5). Median dose 76 Gy (49.0-93.0), median fraction 3.0 Gy/fx (2.0-6.0)
***Outcome: 5-year OS Stage IA 70%, Stage IB 16%, overall 29%. 5-year LC Stage IA 89%, Stage IB 39%
***Toxicity: Acute Grade 2 in 6%, Grade 3 in 2%, no Grade 4-5; minimal late
***Conclusion: Proton therapy safe and effective, especially for early stage
**'''1998''' {{PMID|9645836}} -- "Proton irradiation for non-small cell lung cancer." (Satoh H, Arch Intern Med. 1998 Jun 22;158(12):1379-80.)
**'''1993''' (1983-1990) {{PMID|8380147}} -- "Clinical results of fractionated proton therapy." (Tsujii H, Int J Radiat Oncol Biol Phys. 1993 Jan;25(1):49-60.)
***Preliminary review of Tsukuba experience. 147 patients
***Conclusion: Proton therapy has potential advantage in lung, esophagus, liver, cervix, prostate, and H&N
*'''Chiba; 2006''' (1999-2003) {{PMID|16458447}} -- "High-dose proton beam therapy for Stage I non-small-cell lung cancer." (Nihei K, Int J Radiat Oncol Biol Phys. 2006 May 1;65(1):107-11. Epub 2006 Feb 3.)
**Dose escalation, then retrospective. 37 patients, clinical Stage I, tumor size <=5cm. Initial 10 patients dose escalation, 3 per level. RT 70/20 (n=3), 80/20 (n=17), 88/20 (n=16), 94/20 (n=1). Median F/U 2 years
**Dose escalation: Stopped at 94/20, as first patient developed symptomatic pneumonitis. Subsequent 27 patients treated at 88/20 or 80/20 if poor pulmonary function
**Outcome: 2-year LC 80%, LRC Stage IA 79%, LRC Stage IB 60%, OS 84%
**Toxicity: Late pulmonary G2 in 8%, G3 in 8% (5/6 patients had Stage IB disease)
**Conclusion: Proton beam therapy promising, though locoregional relapse and late pulmonary toxicity substantial in Stage IB
*'''Loma Linda'''
**'''2004''' {{PMID|15486383}} -- "Hypofractionated proton beam radiotherapy for stage I lung cancer." (Bush DA, Chest. 2004 Oct;126(4):1198-203.)
***Phase II. 68 patients with Stage I NSCLC. Initial 22 patients 51 CGE/10, then 46 patients 60 CGE/10. Median F/U 2.5 years
***Outcome: 3-year LC 74%, DSS 72%. T1 tumors 87% vs. T2 tumors 49%
***Toxicity: No symptomatic pneumonitis, or late esophageal or cardiac toxicity
***Conclusion: Safe; local control improved compared to conventional RT
**'''2001''' {{PMID|11742905}} -- "Effects of proton and combined proton/photon beam radiation on pulmonary function in patients with resectable but medically inoperable non-small cell lung cancer." (Bonnet RB, Chest. 2001 Dec;120(6):1803-10.)
***Prospective. 25 patients with NSCLC. Protocol 1) Stage I-II (n=10), FEV1 <=1.0 L, given protons 51/10. Protocol 2) Stage I-III, FEV1 >1.0 L, given 45 Gy photons + 28.8 proton boost.
***Outcome: Protocol 1 patients - no change in pulmonary function. Protocol 2 patients - DLCO declined from 61% to 45% (SS), TLC 114% to 95% (SS), airway resistance increased 3.8 to 5.2 mmH20/L/S (SS). No change in VC, FEV1 or PaO2
***Conclusion: Feasible to apply higher-than-conventional RT, without excess pulmonary toxicity
**'''1999''' (1994-1998) {{PMID|10559093}} -- "Proton-beam radiotherapy for early-stage lung cancer." (Bush DA, Chest. 1999 Nov;116(5):1313-9.)
***Retrospective. 37 patients with Stage I-IIIA NSCLC (Stage I 27, II 2, IIIA 8). Photons 45/25 + concurrent proton boost 28.8 CGE/16, total dose 73.8 CGE (n=18). If poor cardiopulmonary function, protons only 51 CGE/10 (n=19)
***Outcome: 2-year DFS 63%; Stage I DFS 86%. LC 87%
***Conclusion: PT can be used safely; DFS and LC appear good
**'''1999''' {{PMID|10063871}} -- "Pulmonary injury from proton and conventional radiotherapy as revealed by CT." (Bush DA, AJR Am J Roentgenol. 1999 Mar;172(3):735-9.)
***Comparison of pulmonary injury by CT in patients with limited volume proton therapy vs. larger volume combined photon/proton therapy
***Conclusion: Proton RT associated with lower frequency of pulmonary injury
==Dosimetry==
*'''Southern Tohoku PTC, Japan; 2010''' {{PMID|20732759}} -- "Dose-Volume Comparison of Proton Radiotherapy and Stereotactic Body Radiotherapy for Non-Small-Cell Lung Cancer." (Kadoya N, Int J Radiat Oncol Biol Phys. 2010 Aug 21. [Epub ahead of print])
**Plan comparison. 21 patients, Stage I NSCLC, peripheral. Dose 66/10. SBRT vs proton therapy.
**Outcome: Dosimetric values lower with PT. Correlation between volume parameters and PTV
**Conclusion: PT may be more advantageous for large PTV or several tumors
*'''Tsukuba; 2009''' {{PMID|19370425}} -- "Comparisons of dose-volume histograms for proton-beam versus 3-D conformal x-ray therapy in patients with stage I non-small cell lung cancer." (Wang C, Strahlenther Onkol. 2009 Apr;185(4):231-4. Epub 2009 Apr 16.)
**Planning comparison. 24 patients, Stage I NSCLC, treated with PT. 3DCRT plans developed. Prescribed 66 Gy at isocenter.
**Outcome: 90% isodose line covered >99% of CTV in both PT and 3DCRT. 95% isodose line covered PT 86% and 3DCRT 43% of CTV (SS).
**NTCP: Lung V5 PT 10% vs 3DCRT 26%, V10 8% vs 14%, V20 5% vs 7%, mean lung dose 2.6 Gy vs 4.6 Gy. Heart, esophagus, and spinal cord also lower
**Conslusion: PBT reduces doses to lung, heart, esophagus, and spinal cord over 3D-CRT
*'''Mayo Clinic; 2009''' {{PMID|19801106}} -- "Proton beam radiotherapy versus three-dimensional conformal stereotactic body radiotherapy in primary peripheral, early-stage non-small-cell lung carcinoma: a comparative dosimetric analysis." (Macdonald OK, Int J Radiat Oncol Biol Phys. 2009 Nov 1;75(3):950-8.)
**Treatment comparison. 8 patients treated with non-corrected SBRT. Replanned using corrected SBRT and proton beams
**Outcome: Comparable PTV coverage. For lung volume, PT resulted in higher high dose but lower low dose. V20 and V13 comparable
**Conclusion: Clinical significance remains to be determined
*'''Purdue University'''
**'''2008''' {{PMID|18523345}} -- "Dosimetric impact of intrafraction motion for compensator-based proton therapy of lung cancer." (Zhao L, Phys Med Biol. 2008 Jun 21;53(12):3343-64. Epub 2008 Jun 3.)
***Use of MIP images for designing patient-specific composite compensators
**'''2008''' {{PMID|18274078}} -- "Patient-specific margins for proton therapy of lung." (Zhao L, Australas Phys Eng Sci Med. 2007 Dec;30(4):344-8.)
***MIP method compared with end-of-inhale and middle-of-exhale plans
***Conclusion: MIP method provides superior tumor dose distribution
*'''MD Anderson'''
**'''2009''' {{PMID|19660879}} -- "Intensity-Modulated Proton Therapy Reduces the Dose to Normal Tissue Compared with Intensity-Modulated Radiation Therapy or Passive Scattering Proton Therapy and Enables Individualized Radical Radiotherapy for Extensive Stage IIIB Non-Small-Cell Lung Cancer: A Virtual Clinical Study." (Zhang X, Int J Radiat Oncol Biol Phys. 2009 Aug 4. [Epub ahead of print])
***Planning comparison. 10 patients, bulky Stage IIIB NSCLC. IMRT 60-63 Gy, passive scatter PT and IMPT at 74 Gy. Constraints lung V20 <35%, mean lung <20 Gy, cord <45 Gy.
***Outcome: IMPT spared more lung, heart, spinal cord, and esophagus than IMRT; allowed dose escalation to 83.5 Gy
***Conclusion: IMPT spared more normal tissues compared with IMRT, and allowed dose escalation
**'''2008''' {{PMID|18486357}} -- "Effects of Interfractional Motion and Anatomic Changes on Proton Therapy Dose Distribution in Lung Cancer." (Hui Z, Int J Radiat Oncol Biol Phys. 2008 May 15. [Epub ahead of print])
***8 patients treated with IMRT for mobile Stage III NSCLC. Weekly 4D-CT scans acquired. Conformal proton passive scattering plan designed for each patient. dose distributions recalculated on each weekly 4D-CT scan, using bone registration
***Outcome: CTV coverage compromised in 1/8 patients (99% to 91%); remaining 7/8 sufficient CTV coverage (99% to 98%).
***Toxicity: 8/8 patients mean 4% increase in contralateral lung V5, and mean spinal cord max increase 4.4 Gy
***Conclusion: For most patients, CTV coverage is adequate if tumor motion is taken into consideration in the original plan
**'''2007''' {{PMID|17293240}} -- "4D Proton treatment planning strategy for mobile lung tumors." (Kang Y, Int J Radiat Oncol Biol Phys. 2007 Mar 1;67(3):906-14.)
***Strategies for designing compensator-based 3D proton treatment plans for mobile lung tumors using 4D-CT. Used Average CT, Free-breathing CT, MIP CT, and modified Average CT with IGTV constant density voxels (AVE_RIGHTV)
***Conclusion: AVE_RIGHTV effective strategy for mobile lung tumors
**'''2006''' {{PMID|16682145}} -- "Significant reduction of normal tissue dose by proton radiotherapy compared with three-dimensional conformal or intensity-modulated radiation therapy in Stage I or Stage III non-small-cell lung cancer." (Chang JY, Int J Radiat Oncol Biol Phys. 2006 Jul 15;65(4):1087-96. Epub 2006 May 6.)
***Comparison of 3D-CRT, IMRT, and proton plans. 15 plants. Stage I (66 Gy and 87.5 Gy) and Stage III (60-63 Gy and 74 Gy)
***Conclusion: Proton therapy reduced normal tissu dose compared with 3D-CRT or IMRT, even with dose escalation
***Comment and author reply ({{PMID|17637400}}): Discussion of conformality index
**'''2006''' {{PMID|16580508}} -- "Four-dimensional proton treatment planning for lung tumors." (Engelsman M, Int J Radiat Oncol Biol Phys. 2006 Apr 1;64(5):1589-95.)
***Planning comparison for 4D-CT
***Outcome: 4D-CT decreased mean lung dose by up to 16%, and V20 by up to 15%
***Conclusion: 4D-CT guarantees delivery of prescribed dose throughout respiratory cycle
**'''2005''' {{PMID|16475753}} -- "Target volume dose considerations in proton beam treatment planning for lung tumors." (Engelsman M, Med Phys. 2005 Dec;32(12):3549-57.)
***Treatment planning study to evaluate effect of setup error and breathing motion
*'''Tubingen; 2008''' (Germany) {{PMID|18491552}} -- "Comparison of fixed-beam IMRT, helical tomotherapy, and IMPT for selected cases." (Muzik J, Med Phys. 2008 Apr;35(4):1580-92.)
**Comparison of static MLC, dynamic MLC, conventional IMRT, helical tomotherapy, and spot-scanning proton therapy. Monte Carlo dose computation. Five cases: prostate, pediatric case, H&N case, lung tumor, and optical neurinoma
**Conclusion: Each technique excels for certain classes of highly complex cases, and the modalities should be viewed as complementary
*'''Vienna; 2008''' {{PMID|18405986}} -- "Can protons improve SBRT for lung lesions? Dosimetric considerations." (Georg D, Radiother Oncol. 2008 Apr 9. [Epub ahead of print])
**Treatment plan comparison for 12 SBRT patients: scattered protons (SPT), intensity modulated protons (IMPT), and 3D-CRT. RT 45/3 prescribed at 65% isodose
**Conclusion: Only small dosimetric differences between photons and protons for SBRT
*'''Insbruck; 2007''' (Austria) {{PMID|18166995}} -- "Photons or protons: precision radiotherapy of lung cancer" (Auberger T, Strahlenther Onkol. 2007 Dec;183 Spec No 2:3-6.)
**Treatment plan comparison, 6 patients (3 Stage I, 3 Stage III). 3D-CRT vs. IMRT vs. passive PT
**Outcome: No difference between IMRT and passive PT for tumor coverage; passive PT better for OAR (lung, esophagus, heart). 3D-CRT worse.
*'''Harvard; 2007''' {{PMID|17879790}} -- "A respiratory-gated treatment system for proton therapy." (Lu HM, Med Phys. 2007 Aug;34(8):3273-8.)
**Description of a gating system
*'''Wisconsin; 2003''' {{PMID|12602558}} -- "What can we expect from dose escalation using proton beams?" (Fowler JF, Clin Oncol (R Coll Radiol). 2003 Feb;15(1):S10-5.)
**Review of dose escalation potential in prostate and NSCLC
*'''Loma Linda; 2001''' {{PMID|11286851}} -- "Methodologies and tools for proton beam design for lung tumors." (Moyers MF, Int J Radiat Oncol Biol Phys. 2001 Apr 1;49(5):1429-38.)
**Evaluation of planning strategies
*'''Surrey; 1999''' (UK) {{PMID|10700825}} -- "Comparison of proton therapy and conformal X-ray therapy in non-small cell lung cancer (NSCLC)." (Lee CH, Br J Radiol. 1999 Nov;72(863):1078-84.)
**Treatment plan comparison. Proton and four x-ray plans
**Conclusion: Proton plan superior, diferent performance among photon plans
==Animal Models==
*'''Groningen; 2005''' (Netherlands) {{PMID|16061627}} -- "Radiation damage to the heart enhances early radiation-induced lung function loss." (van Luijk P, Cancer Res. 2005 Aug 1;65(15):6509-11.)
**Rate model. Dependence of lung tolerance on heart dose. 50% lung irradiated, including or excluding the heart, using proton beam. Lung toxicity scored using breathing rate assay
**Conclusion: Concomitant RT of the heart severely reduces tolerance of the lung
*'''South Africa; 2000''' {{PMID|10863078}} -- "Proton relative biological effectiveness (RBE) for survival in mice after thoracic irradiation with fractionated doses." (Gueulette J, Int J Radiat Oncol Biol Phys. 2000 Jul 1;47(4):1051-8.)
**Evaluation of "clinical RBE" using 200 MeV proton beam. Selective irradiation of thorax in mice (n=1008). Control gamma irradiation.
**Outcome: RBEs did not vary significantly with fractionation (2-20 Gy). They increase with time: 180 days 1.00; 210 days 1.08; 240 days 1.14; 270 days 1.25. Alpha/beta similar for protons and gamma rays (~2.3). Control crypt irradiation RBE 1.14, same as previously
**Conclusion: No need to raise clinical RBE of protons
==Economics==
*Also please see the [[Radiation_Oncology/Protons/Economics|general proton economics]] page
*'''MAASTRO; 2010''' {{PMID|20303217}} -- "The cost-effectiveness of particle therapy in non-small cell lung cancer: Exploring decision uncertainty and areas for future research." (Grutters JP, Cancer Treat Rev. 2010 Mar 17. [Epub ahead of print])
**Markov model. Comparative treatments carbon-ion, protons, conventional RT, and SBRT for Stage I NSCLC
**Outcome: For inoperable NSCLC, Carbon cost euro 67,257 per QALY compared to SBRT; both carbon and SBRT dominated protons and conventional RT. For operable NSCLC, SBRT dominated carbon ion. Considerable uncertainity in estimates
**Conclusion: It is recommended not to adopt particle therapy in Stage I NSCLC until more evidence is available
*'''Malmo; 2005''' (Sweden) {{PMID|16332596}} -- "The potential of proton beam radiation therapy in lung cancer (including mesothelioma)." (Bjelkengren G, Acta Oncol. 2005;44(8):881-3.)
**Estimate ~350 patients with lung cancer and ~20 patients with mesothelioma annually may benefit from proton beam therapy
==Meta-Analysis==
*'''Maastricht, The Netherlands'''
**'''Systematic review; 2008''' {{PMID|18226466}} -- "Particle therapy in lung cancer: Where do we stand?" (Pijls-Johannesma, Cancer Treat Rev. 2008 May;34(3):259-67. Epub 2008 Jan 15.)
***Review. 10 reports. No phase III trials. Mainly Stage I.
***Outcome: 2-year OS 31-74%, 5-year OS ~23%
***Toxicity: 10%
***Conclusion: Results seem promising; particle therapy safe and feasible, but more evidence required
**'''Systematic review; 2010''' {{PMID|20067947}} -- "Do we have enough evidence to implement particle therapy as standard treatment in lung cancer? A systematic literature review." (Pijls-Johannesma M, Oncologist. 2010;15(1):93-103. Epub 2010 Jan 12.)
***Literature review update. 11 studies. No phase III trials. Mainly Stage I
***Outcome: local control 57%-87%. 2-year CSS 58%-86%; 5-year CSS 46%. 2-year OS 31%-74%, 5-year OS 23%. For carbon ion, overall local control 77%, but 95% when hypofractionated
***Toxicity: radiation induced pneumonitis ~10%
***Conclusion: Results are promising, but for now charged particle therapy should be considered experimental
**'''Meta-analysis; 2010''' {{PMID|19733410}} -- "Comparison of the effectiveness of radiotherapy with photons, protons and carbon-ions for non-small cell lung cancer: a meta-analysis." (Grutters JP, Radiother Oncol. 2010 Apr;95(1):32-40. Epub 2009 Sep 3.)
***Meta-analysis, conventional RT, SBRT, chemo-RT, proton therapy and carbon ion therapy.
***Outcome: Inoperable STage I NSCLC 5-year OS conventional RT 20%, SBRT 42%, protons 40%, carbon ion 42%. Limited number of patients and limited follow up
***Conclusion: Survival rates for particle therapy similar to SBRT for Stage I. Particle therapy may be more beneficial in Stage III
*'''Trento; 2008''' (Italy) {{PMID|18241945}} -- "Proton therapy in lung cancer: clinical outcomes and technical issues. A systematic review." (Widesott L, Radiother Oncol. 2008 Feb;86(2):154-64. Epub 2008 Jan 31.)
**Review. 17 reports, 214 patients. None prospective. Mostly related to stage I-II
**Outcome: Results comparable to surgery, without significant toxicity. 2 dosimetric studies showing potential for dose escalation, 6 dosimetric studies underlying difficulties
**Conclusion: Outcomes good, but limited data available, and technical challenges significant
*'''MD Anderson; 2005''' {{PMID|15946583}} -- "Intensity modulated radiation therapy and proton radiotherapy for non-small cell lung cancer." (Chang JY, Curr Oncol Rep. 2005 Jul;7(4):255-9.)
**Preliminary data reviewed
==Heavy Ions==
*'''HIMAC Chiba'''
**'''Elderly; 2008''' (1999-2003) {{PMID|18762351}} -- "Carbon ion radiotherapy for elderly patients 80 years and older with stage I non-small cell lung cancer." (Sugane T, Lung Cancer. 2008 Aug 30. [Epub ahead of print])
***Retrospective. 28 patients, Stage I NSCLC, age >=80. Treated with carbon ion radiotherapy
***Outcome: 5-year LC 96%; 5-year OS 31%. No patients started home O2 or had decreased ADL
***Conclusion: Carbon ion RT effective in treating elderly
**'''Dosimetry; 2007''' {{PMID|17917408}} -- "Dosimetric factors used for thoracic X-ray radiotherapy are not predictive of the occurrence of radiation pneumonitis after carbon-ion radiotherapy." (Koto M, Tohoku J Exp Med. 2007 Oct;213(2):149-56.)
***Retrospective. 80 patients on dose escalation protocols
***Outcome: V4, V20, V30, and mean lung dose not predictive for developing radiation pneumonitis after carbon-ion therapy
***Conclusion: Dosimetric factors used for XRT not applicable for carbon ion therapy
**'''Protocol 0001; 2007''' (2000-2003) {{PMID|17909354}} -- "Carbon ion radiotherapy for stage I non-small cell lung cancer using a regimen of four fractions during 1 week." (Miyamoto T, J Thorac Oncol. 2007 Oct;2(10):916-26.)
***Phase II. 79 patients, 80 primary lesions. Average age 75 years. Stage IA using carbon ion 52.8/4 and Stage IB 60/4 delivered in 1 week. Median F/U 3.2 years (minimum 3 years or death)
***Outcome: 5-year LC 90% (T1 98%, T2 80%). 5-year CSS 68% (87%, 42%). 5-year OS 45% (62%, 25%).
***Toxicity: No Grade 4-5 toxicity
***Conclusion: Carbon ion given 4 fractions over 1 week valid alternative to surgery for Stage I NSCLC, especially for elderly patients
**'''Protocol 9802; 2007''' (1999-2000) {{PMID|17293232}} -- "Curative treatment of Stage I non-small-cell lung cancer with carbon ion beams using a hypofractionated regimen." (Miyamoto T, Int J Radiat Oncol Biol Phys. 2007 Mar 1;67(3):750-8.)
***Phase II. 50 patients, 51 primary lesions. Peripheral Stage I NSCLC (T1 59%, T2 41%), medically inoperable 66%. RT 72/9 over 3 weeks. Median F/U 5 years
***Outcome: 5-year LC 95%; 5-year CSS 76% (IA 89%, IB 55%); 5-year OS 50% (IA 55%, IB 43%)
***Late Toxicity: Grade 3-4 pulmonary 0%; Grade 3-4 skin 2%
***Conclusion: Carbon ion therapy is a valid alternative to surgery for Stage I NSCLC
**'''Chromosome Aberrations; 2004''' {{PMID|15304960}} -- "Chromosomal aberrations in lymphocytes of lung cancer patients treated with carbon ions." (Lee R, J Radiat Res (Tokyo). 2004 Jun;45(2):195-9.)
***Retrospective. 22 patients. FISH evaluation of aberrations in peripheral blood lymphocytes in chromosome 2 and 4
***Outcome: Fraction of aberrant cells no correlation with total tumor dose, but significant (and linear) correlation with clinical target volume. Median increase from 0.8% to 2.6%
***Conclusion: Chromosomal aberrations dependent on target volume size
**'''Local control; 2004''' {{PMID|15110447}} -- "Local control and recurrence of stage I non-small cell lung cancer after carbon ion radiotherapy." (Koto M, Radiother Oncol. 2004 May;71(2):147-56.)
***Retrospective. Two Phase I dose-escalation protocols (9303 and 9701) analyzed
***Outcome: LR 23%. Patterns of failure analyzed
***Conclusion: Local control shows dose-dependence
**'''Protocol 9303 and Protocol 9701; 2003''' (1994-1999) {{PMID|12648784}} -- "Carbon ion radiotherapy for stage I non-small cell lung cancer." (Miyamoto T, Radiother Oncol. 2003 Feb;66(2):127-40.)
***Protocol 9303: Phase I. 1994-1998. 48 lesions. Carbon ion dose escalation 59.4/18 - 64.8/18 - 72.0/18 - 79.2/18 - 86.4/18 - 90.0/18 - 95.4/18 (tentative MTD, 2/3 patients developed Grade II pneumonitis)
***Protocol 9701: Phase I/II. 34 lesions. Dose escalation. 68.4/9 - 72.0/9 - 75.6/9 - 79.2/9 (tentative MTD, 3/5 patients developed Grade II pneumonitis)
***Outcome: 5-year OS 42%, 5-year CSS 60%. If dose >86.4/18 and >72/9, LC 90% and 95%
***Toxicity: Grade III pneumonitis in 3/81 (4%), but not dose-limiting
***Conclusion: Optimum safety and efficacy dose of carbon ion beams determined
**'''Radiographic changes; 2003''' {{PMID|12605963}} -- "Radiographic pulmonary and pleural changes after carbon ion irradiation." (Nishimura H, Int J Radiat Oncol Biol Phys. 2003 Mar 15;55(4):861-6.)
***Retrospective. 43 patients on dose-escalating protocol
***Outcome: median appearance of pulmonary reactions 3 months; maximum 6 months. Severity correlated with V20 and V40 GyE
***Conclusion: Lung damage observed in parenchyma and pleura; severity correlated with dose-volume factors
**'''Pulmonary function; 2002''' {{PMID|12475828}} -- "Effect of heavy-ion radiotherapy on pulmonary function in stage I non-small cell lung cancer patients." (Kadono K, Chest. 2002 Dec;122(6):1925-32.)
***Retrospective. 52/81 patients treated 1994-1999 who had repeat PFTs
***Outcome: Significant decrease in FEV1 and TLC at 6 and 12 months; no change in other PFT indices
***Conclusion: Heavy ion RT is feasible without a severe loss of pulmonary function
7p3226vo52e3tauekx1ksvubp5wibdc
Radiation Oncology/NSCLC/Special Situations
0
170993
4674822
2408146
2026-10-07T08:42:48Z
Jcb
90773
4674822
wikitext
text/x-wiki
{{:Radiation_Oncology:TOC}}
<big>'''Special Treatment Situations in NSCLC'''</big>
==Superior Sulcus Tumors==
*Arise in apex of lung and invade apical chest wall structures
*Classic description of Pancoast syndrome: "pain in the eighth cervical and first and second thoracic trunk distribution, wasting of the muscles of the hand, and Horner's syndrome (Pancoast KH, JAMA 99:1391, 1932)
*Modern description: 1) shoulder pain, 2) sensory/motor deficits and wasting of muscles of the hand due to brachial plexus involvement, 3) Horner's syndrome due to [[w:Stellate_ganglion|stellate ganglion]] involvement, and 4) arm edema due to compression of blood vessels
*With improved radiographic imaging, any invasion of apical structures can be classified as Pancoast tumor, including ribs/periosteum, lower nerve roots of brachial plexus, sympathetic chain, or subclavian vessels. Pain radiating down the arm no longer required
*Work-up should be treated like for any other potentially resectable lung tumor, including surgical staging of the mediastinum
*Treatment with RT alone results in ~5% long-term survivors, although in series with potentially curable tumors, long-term survival is ~20%
*Pre-op RT followed by resection results in 5-year survival ~30%, but R0 resection can be typically achieved in only 2/3 of patients. Majority of recurrences were in tumor bed. This was the standard of care from 1950's to 1990's
*Induction chemoradiation based on SWOG 9416 allows R0 resection in 75%, good local control, and 5-year survival 44%
'''''Anatomy:'''''
*'''MDACC; 2008''' -- Imaging of non-small cell lung cancer of the superior sulcus (parts 1+2)
**{{PMID|18349457}} [http://radiographics.rsna.org/content/28/2/551.long Full text] -- "part 1: anatomy, clinical manifestations, and management." (Bruzzi JF, Radiographics. 2008 Mar-Apr;28(2):551-60.)
**{{PMID|18349458}} [http://radiographics.rsna.org/content/28/2/561.long Full text] -- "part 2: initial staging and assessment of resectability and therapeutic response." (Bruzzi JF, Radiographics. 2008 Mar-Apr;28(2):561-72.)
'''''Guidelines:'''''
*ACCP 2nd edition guideline ({{PMID|17873175}}):
#Tissue diagnosis should be obtained prior to initiation of therapy
#If considered for curative resection, MRI should be performed to further evaluate resectability
#If considered for curative resection, invasive mediastinal staging and extra-thoracic staging are recommended. Involvement of mediastinal nodes is a contra-indication to resection
#If subclavian vessels or vertebral column involved, resection should be performed only at a specialized center
#If potentially resectable, pre-operative concurrent chemoradiotherapy is recommended
#If surgery performed, every effort should be made for complete resection
#If surgery performed, recommend a lobectomy over wedge resection, and resection of involved chest wall structures
#Regardles of resection status (R0 vs R1-2), post-operative RT not recommended because of lack of survival benefit
#If unresectable but non-metastatic tumor, definitive concurrent chemoradiation is recommended
#If not candidate for curative intention, palliative radiotherapy is recommended
'''''Trials:'''''
*'''SWOG 9416''' (1995-1999) -- Induction chemo-RT, surgery, adjuvant chemo
**Prospective. 110 patients, solitary T3-T4 N0-N1 superior sulcus NSCLC. Induction chemo-RT (cisplatin 50 mg/m2 and etoposide 50 mg/m2 + RT 45/25 to primary tumor and ipsilateral SCV but not mediastinum/hilum.) Restaging 2-4 weeks later for surgery (lobectomy or pneumonectomy, with en-block resection of tumor, and mediastinal dissection). Thereafter adjuvant cisplatin/etoposide x2 cycles. No adjuvant RT
**'''4-years; 2007''' {{PMID|17235046}} -- "Induction chemoradiation and surgical resection for superior sulcus non-small-cell lung carcinomas: long-term results of Southwest Oncology Group Trial 9416 (Intergroup Trial 0160)." (Rusch VW, J Clin Oncol. 2007 Jan 20;25(3):313-8.) Median F/U 3.7 years
***Compliance: induction completed by 95%, thoracotomy in 80%, R0 resection in 76% (94% of those going to surgery), pCR in 29% (36% of those going to surgery). PCR or microscopic residual disease was seen in 56% of the patients. Postop mortality 2%
***Outcome: median OS 2.7 years, if R0 resection 7.8 years. 5-year OS 44%, if R0 resection 54%. No difference between T3 and T4. LR 17%, LR+DM 12%, DM 67% (~50% brain only)
***Conclusion: Combined modality approach feasible, LC and OS seem improved relative to prior studies. Complete resection necessary for good outcome
*'''University of Maryland; 2005''' (1993-2003) {{PMID|15942564}} -- "High-dose radiotherapy in trimodality treatment of Pancoast tumors results in high pathologic complete response rates and excellent long-term survival." (Kwong KF, J Thorac Cardiovasc Surg. 2005 Jun;129(6):1250-7.)
**Retrospective. 36 patients with Pancoast tumors (Stage IIB 50%, IIIA 22%, IIIB 17%, IV with solitary brain mets 14%). Induction chemo-RT followed by surgery. RT mean dose 56.9 Gy
**Outcome: pCR 40%. Median OS 2.6 years; if pCR 7.8 years. For failures, 50% in brain.
**Conclusion: Surgical resection after high-dose RT and chemotherapy is feasible
==Practice Guidelines==
*'''ACCP 2nd edition; 2007''' {{PMID|17873175}} -- "Special treatment issues in lung cancer: ACCP evidence-based clinical practice guidelines (2nd edition)." (Shen KR, Chest. 2007 Sep;132(3 Suppl):290S-305S.)
**Guideline: Pancoast tumors, T4N0-1, satellite nodules, synchronous/metachronous multiple primaries, solitary brain/adrenal metastases, chest wall involvement
1xkh79bkgflqhthxg03se6hd9c2hf6z
Chess Opening Theory/1. d4/1...Nf6/2. Nc3/2...d5
0
177408
4674859
4673679
2026-10-07T11:01:48Z
JCrue
2226064
4674859
wikitext
text/x-wiki
{{Chess Opening Theory/Position
|name=Chigorin variation
|eco=[[Chess/ECOA|A00]]
|parent=<br>
* [[Chess Opening Theory/1. d4/1...d5|Closed game]] → [[../|Chigorin variation]] → '''2...Nf6'''
* [[Chess Opening Theory/1. d4/1...Nf6|Indian defence]] → [[../|2. Nc3]] → '''2...d5'''
}}
== 2...d5 ==
This position is commonly reached from either of move orders 1. d4 d5 2. Nc3 Nf6 or 1. d4 Nf6 2. Nc3 d5. Black now controls the e4 square with their knight and pawn.
White's two main options from this position are both ways to develop their bishop.
[[/3. Bf4|'''3. Bf4''']] is the '''Rapport-Jobava London system'''. From f4 the bishop pressures c7, and White has ideas around making an attack with Nb5. How Black deals with this threat steers the opening of the game. 3...e6 4. Nb5 Na6 with is one line, with the idea to later play ...c6 (kicking White's knight back) and ...Qb6 (to answer Bxa6 without doubling their pawns). Another approach is ...a6 (either immediately, 3...a6, or 3...c5 4. e3 cxd4 5. exd4 a6) which allows Black to develop their knight towards the centre of the board instead.
[[/3. Bg5|'''3. Bg5''']] is the '''Richter-Veresov attack'''. If Black allows it, as after the traditional move 3...Bf5, White's usual idea is to trade bishop for knight and play against doubled pawns, 4. Bxf6 exf6, and they also have ideas of f3 and e4, Qd2 and O-O-O. The main move today is 3...Nd7: this removes the incentive to trade minor pieces because Black can recapture with the knight instead. 3...e6 defends the knight with the queen, but Black has to happy with transposing into a French defence after 4. e5.
Black controls e4 twice and White once, so if White plays [[/3. e4|'''3. e4?!''']] anyway, it is a gambit of a pawn: the '''Hübsch gambit''', which may transpose to the Blackmar-Diemer gambit after 3...dxe4.
[[/3. f3|'''3. f3?!''']] prepares to play 4. e4 and keep the pawn there. Black can counterattack White's loose d4-pawn with 3...c5 or 3...e6 4. e4 c5.
==Theory table==
{{Chess Opening Theory/Table}}
:'''1.d4 Nf6 2.Nc3 d5'''
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<th></th>
<th align="left">3</th>
<th align="left">4</th>
<th align="left">5</th>
<th align="left">6</th>
<th align="left">7</th>
</tr>
<tr>
<th align="right">Richter-Veresov Attack</th>
<td>[[/3. Bg5|Bg5]]<br>Nbd7</td>
<td></td>
</tr>
<tr>
<th align="right">Jobava London</th>
<td>[[/3. Bf4|Bf4]]<br></td>
<td></td>
</tr>
<tr>
<th align="right">Hübsch Gambit</th>
<td>[[/3. e4|e4]]<br>Nxe4</td>
<td></td>
</tr>
<tr>
<th align="right">Queen's Pawn opening, Chigorin Variation</th>
<td>Nf3<br>a6</td>
<td>e3<br>c5</td>
<td>Bd3<br>Bg4</td>
<td>Be2<br>c4</td>
<td>Ne5<br>Bxe2</td>
<td>Nxe2<br>e6</td>
<td>Nf4<br>Bb4+</td>
<td>c3<br>Bd6</td>
<td>0-0<br>Nbd7</td>
<td>=+</td>
</tr>
<tr>
<th align="right"></th>
<td>[[Chess Opening Theory/1. d4/1...d5/2. Nc3/2...Nf6/3. Nf3|Nf3]]<br>g6</td>
<td>Bf4<br>Bg7</td>
<td>e3<br>Nh5</td>
<td>Bg3<br>Nxg3</td>
<td>hxg3<br>Nc6</td>
<td>Bd3<br>Bg4</td>
<td>Qd2<br>Qd7</td>
<td>0-0-0<br>a6</td>
<td>Rde1<br>b5</td>
<td>=+</td>
</tr>
</table>
{{ChessMid}}
==References==
{{Wikipedia|Richter-Veresov Attack}}
{{reflist}}
{{ChessFooter}}
i68xigi9mhxk4xd9a0phzmikv7dfs85
Nuclear Medicine/Nuclear Cardiology
0
207516
4674824
3558764
2026-10-07T08:43:54Z
Jcb
90773
4674824
wikitext
text/x-wiki
<big>'''Nuclear Cardiology'''</big>
=EKG stress testing=
==Indications==
*(Please add info)
==Guidelines for EKG Stress Testing==
===Blood Pressure===
*If the systolic BP is >200 or the diastolic >110 before exercise, the exercise test should '''''not''''' be done.{{ref|Henzlova}}
*In normal individuals, systolic BP can raise 160 to 220 mmHg. However, diastolic BP may not raise at all because the body is trying to open up the peripheral vessels to allow for the increased flow of blood rich with oxygen.{{ref|Tavel}}
*If systolic BP ''falls'' by more than 10mmHg or if systolic BP does not exceed 130mmHg then this would be suggestive of myocardial damage.{{ref|Tavel}} If the BP does indeed fall more than 10mmHg then the test should then be stopped if there is also other indications of ischemia.{{ref|Henzlova}}
*In any patient, if the systolic BP goes >250 or diastolic >115 then the test should be stopped.{{ref|Henzlova}}
*In normal individuals, exercise will raise blood pressure in order to supply extra oxygen to tissues. After exercise, the normal individual's blood pressure (BP) will quickly drop back down as the need goes away. However, in some individuals with ischemia, their BP will not drop rapidly. If at 3 minutes post-exercise the BP remains at approximately 90% of the maximum BP during exercise, this is a sensitive (>80%) but not specific indication of ischemia.{{ref|Tavel}}
===Heart Rate===
*More than a few things can cause excessive tachycardia during treadmill stress testing. However, at this time research has not outlined an objective quantitative prognostic value for what would be considered an abnormally high chronotropic response.
===ST Depression{{ref|Lauer}}===
*The more coronary artery disease the patient has, the greater the sensitivity of ST depression in diagnosing ischemia.
*The "location" of the ischemia on EKG does not truly localize the area affected, with the slight exception of lead V1 (this assumes the leads were placed correctly).
*ST depression in ''contiguous'' leads (like V4-V5-V6) is more likely to be true ischemia.
*ST depression at maximal stress that ''corrects quickly'' after cessation of exercise is more likely to be a false positive. However, if ST depression continues long after exercise (more than 8 minutes), it is more likely a true positive.
*T wave inversion that happens with ST depression is indicative of true ischemia.
*If ST depression comes after exercise (>2-3min) it is likely a false positive.
*True ischemia usually has an onset at a given rate and then goes away at the same rate.
*Chest pain that happens ''with'' ST depression is likely to be true ischemia.
*False positivity is more likely to happen in women, perhaps because women are ''less'' likely to have chest pain that is caused by cardiac ischemia.
*More than 1mm of ''"downsloping"'' or ''"horizontal"'' ST depression is more likely to be true ischemia.
*Upsloping ST depression, in general, is less likely to be a true event. However, if there is upsloping ST depression that is 1.5mm '''at''' or '''after''' 80ms (two small bars) from the J point, it is ''more'' likely to be ''true'' ischemia.
===ST Elevation===
(Please Insert Info)
==Pharmacologic Stress Testing==
*Medications such as '''Dipyridamole''', '''Adenosine''', and '''Regadenoson'''(Lexiscan) are used instead of exercise stress testing because they have the ability to "mimic" the hemodynamic state of the heart during normal stress. The primary mechanism of action is to dilate the cardiac vessels in general, thereby unmasking defects in vessels that may not be able to dilate and/or have blockage by atherosclerosis or plaque/embolus. See more detailed descriptions below.
*'''Dobutamine''''s mechanism of action is to directly produce stress by beta agonism and increasing chronotropic and inotropic activity in the heart. See more detailed descriptions below.
===Regadenoson (Lexiscan){{ref|Cerqueira}}{{ref|Henzlova}}===
*A new medication that can be used instead of Adenosine for pharmacologic stress testing. It is "selective" for A2A receptors with lower affinity for receptors that cause unwanted side effects (A2B, A3, A1) It is reputed to be better tolerated by patients and has is a non-inferior stress agent to Adenosine.
*Indications - pharmacologic stress agent for patients that either cannot tolerate exercise portion entirely or has attempted exercise stress and is unable to reach optimal stress. There is a new suggestion that Lexiscan can be used as a primary agent without the need to fail the exercise portion first.
*Administration - 5mL quick bolus after a saline flush; wait 10 to 20 seconds then give stress radiotracer. All of these injections may go through the same IV access.
*Absolute Contraindications
**Second or third degree AV block or sinus note dysfunction (with the exception of patients that have a working pacemaker)
**Bronchospasm - patients with COPD or asthma should not use this med
**Systolic BP less than 90mmHg
**Dipyridamole use within 48 hrs.
**Aminophylline use within 24 hrs.
**Caffeine use within 12 hrs.
**Any known hypersensitivity to Regadenoson
*Relative Contraindications
**Sinus bradycardia less than 40 beats per minute.
*Advantages over Adenosine
**Reduced chance of error with single bolus dose of 0.4 mg of medication in a 5mL syringe for all patients and does not require a pump infusion.
**Lower side-effect profile
**Less activity in receptors that cause adverse side effects (A2B, A3, A1)
**Less flushing 16% vs 25%
**Less 1st degree block than Adenosine (3% vs 7%)
**Less 2nd degree block (0.1% vs 1%)
*Disadvantages from Adenosine
**Dyspnea - Reputed to cause ''more'' dyspnea than Adenosine, especially in patients with COPD but not necessarily an increase in bronchoconstriction.
**Headache - causes more headache than Adenosine (26% vs. 17%)
**Adenosine can be easily cut off by stopping infusion at any time. The half life of Lexiscan is much longer and if there are severe or prolonged side effects, the patient must receive IV Aminophylline to reverse the effects.
*When to give Aminophylline to halt side effects:
**Hypotension with SBP less than 80 BPM
**2nd degree heart block that does not go away and is symptomatic '''or''' 3rd degree heart block.
**Chest pain '''with''' >2mm ST depression
**If patient asks to halt the test
===Dobutamine{{ref|Cerqueira}}===
*Quality of images compared to Adenosine and Dipyridamole are ''inferior'' because it does not create as large of a difference in blood flow in ischemic vs normal myocardium. Also, it is not as studied as the more traditional stress agents.
*Mechanism - Beta agonist of the Beta 1 and Beta 2 receptors to create increased chronotropic and inotropic stress on the heart.
*Indications
**For patients that cannot tolerate Adenosine, Regadenoson, or Dipyridamole because of a contraindication.
*Contraindications
**MI within last week.
**Pharmacologic Beta-Blockade
**Aortic dissection or sizeable aortic aneurism
**History of ventricular tachycardia
**Atrial tachyarrhythmias with uncontrolled ventricular response.
**Aortic stenosis that is severe
**Left ventricular outflow obstruction such as Hocm obstruction seen in hypertrophic cardiomyopathy.
**SBP >200 or DBP>110
*Main side effects
**Chest pain - 31%
**Palpitations - 29%
**Headache/flushing - 14% each
*When to terminate infusion and reverse with beta blocker
Please see reasons to terminate any exercise test.
**Ventricular tachicardia
**Of note: the likelihood of any ST depression is greater with dobutamine.
=MUGA=
==Ejection Fraction Monitoring with Doxorubicin==
*[http://en.wikipedia.org/wiki/Doxorubicin Adriamycin (Doxorubicin)] is a chemotherapeutic agent used in treating various cancers. It has been shown to cause significant impairment of cardiac function. The drug's effect can be measured well by the MUGA scan which is very accurate.
*Heart failure has been shown to develop in some patients at a cumulative dose of >500 mg/m², and the risk increases with even higher doses.
*It is shown that a decrease in EF will precede irreversible heart failure.
*Two factors are important in monitoring these patients, the absolute EF and the change in EF.
**If there is a >10% fall in EF below 50% '''or'''
**If there is an absolute EF of 40% '''or'''
**If there is a fall of >20% in EF at ''any time'' '''then''' there is said to be an impact by doxorubicin and the cessation of the medication should be considered based upon the given clinical scenario.
=Attenuation Correction=
*There is some controversy about the accuracy of attenuation correction.
*It is commonly done with either a CT attenuation map or by gadolinium-153 source rods.
*
**{{note|Tavel}}{{PMID|11243976}} -- "Stress testing in cardiac evaluation : current concepts with emphasis on the ECG." (Tavel ME. Chest. 2001 Mar;119(3):907-25.)
**{{note|Lauer}}{{PMID|15998671}} -- "Exercise testing in asymptomatic adults: a statement for professionals from the American Heart Association Council on Clinical Cardiology, Subcommittee on Exercise, Cardiac Rehabilitation, and Prevention." (Lauer M, Froelicher ES, Williams M, Kligfield P. Circulation. 2005 Aug 2;112(5):771-6. Epub 2005 Jul 5.)
**{{note|Henzlova}}{{PMID|17174798}} -- "Stress protocols and tracers." (Henzlova MJ, Cerqueira MD, Mahmarian JJ, Yao SS; Quality Assurance Committee of the American Society of Nuclear Cardiology. J Nucl Cardiol. 2006 Nov;13(6):e80-90.)
**{{note|Cerqueira}}{{PMID|19356442}} -- "Effects of age, gender, obesity, and diabetes on the efficacy and safety of the selective A2A agonist regadenoson versus adenosine in myocardial perfusion imaging integrated ADVANCE-MPI trial results." (Cerqueira MD, Nguyen P, Staehr P, Underwood SR, Iskandrian AE; ADVANCE-MPI Trial Investigators. JACC Cardiovasc Imaging. 2008 May;1(3):317-20.)
**{{note|Ziessman}}{{ISBN|0-323-02946-9 --}} "Nuclear Medicine: The Requisites, Third Edition (Requisites in Radiology)." (Harvey A. Ziessman, Janis P. O'Malley MD, James H. Thrall MD. 2006. Mosby, Inc.)
BP - Blood Pressure
BPM - Beats Per Minute
DPB - Diastolic Blood Pressure
EF - Ejection Fraction
MI - Myocardial Infarction
SBP - Systolic Blood Pressure
----
'''Acronyms used:'''
{{BookCat}}
7fhewg75geojaw52rr5xpmscugu9n5w
Radiation Oncology/Palliation/Brain Metastases/Guidelines
0
214058
4674842
2631253
2026-10-07T09:34:28Z
Jcb
90773
4674842
wikitext
text/x-wiki
{{:Radiation_Oncology:TOC}}
<big>'''Brain Metastases Official Guidelines'''</big>
'''National Comprehensive Cancer Network (NCCN)'''
*[http://www.nccn.org/professionals/physician_gls/PDF/cns.pdf CNS Cancers]
'''American College of Radiology (ACR)'''
*'''Pre-Irradiation Evaluation of Brain Metastases''' [http://www.acr.org/~/media/ACR/Documents/AppCriteria/Oncology/PreIrradiationEvaluationBrainMetastases.pdf]
*'''Single Brain Metastasis''' [http://www.acr.org/~/media/ACR/Documents/AppCriteria/Oncology/SingleBrainMetastasis.pdf]
*'''Multiple Brain Metastasis''' [http://www.acr.org/~/media/ACR/Documents/AppCriteria/Oncology/MultipleBrainMetastases.pdf]
**'''2009''' {{PMID|19857783}} -- "American College of Radiology appropriateness criteria on multiple brain metastases." (Videtic GM, Int J Radiat Oncol Biol Phys. 2009 Nov 15;75(4):961-5.)
*'''Follow up and Retreatment of Brain Metastases''' [http://www.acr.org/~/media/ACR/Documents/AppCriteria/Oncology/FollowupAndRetreatmentBrainMetastases.pdf]
'''American Association of Neurologic Surgeons (AANS) / Congress of Neurologic Surgeons (CNS)'''
*'''Steroids; 2010''' {{PMID|19957014}} -- "The role of steroids in the management of brain metastases: a systematic review and evidence-based clinical practice guideline." (Ryken TC, J Neurooncol. 2010 Jan;96(1):103-14. Epub 2009 Dec 3.)
*'''Anticonvulsants; 2010''' {{PMID|19957015}} -- "The role of prophylactic anticonvulsants in the management of brain metastases: a systematic review and evidence-based clinical practice guideline." (Mikkelsen T, J Neurooncol. 2010 Jan;96(1):97-102. Epub 2009 Dec 3.)
*'''Surgery; 2010''' {{PMID|19960230}} -- "The role of surgical resection in the management of newly diagnosed brain metastases: a systematic review and evidence-based clinical practice guideline." (Kalkanis SN, J Neurooncol. 2010 Jan;96(1):33-43. Epub 2009 Dec 4.)
*'''WBRT; 2010''' {{PMID|19960231}} -- "The role of whole brain radiation therapy in the management of newly diagnosed brain metastases: a systematic review and evidence-based clinical practice guideline." (Gaspar LE, J Neurooncol. 2010 Jan;96(1):17-32. Epub 2009 Dec 4.)
*'''SRS; 2010''' {{PMID|19960227}} -- "The role of stereotactic radiosurgery in the management of patients with newly diagnosed brain metastases: a systematic review and evidence-based clinical practice guideline." (Linskey ME, J Neurooncol. 2010 Jan;96(1):45-68. Epub 2009 Dec 4.)
*'''Chemotherapy; 2010''' {{PMID|19960229}} -- "The role of chemotherapy in the management of newly diagnosed brain metastases: a systematic review and evidence-based clinical practice guideline." (Mehta MP, J Neurooncol. 2010 Jan;96(1):71-83. Epub 2009 Dec 4. Review.)
*'''Retreatment; 2010''' {{PMID|19957016}} -- "The role of retreatment in the management of recurrent/progressive brain metastases: a systematic review and evidence-based clinical practice guideline." (Ammirati M, J Neurooncol. 2010 Jan;96(1):85-96. Epub 2009 Dec 3.)
*'''Investigational therapies; 2010''' {{PMID|19957013}} -- "The role of emerging and investigational therapies for metastatic brain tumors: a systematic review and evidence-based clinical practice guideline of selected topics." (Olson JJ, J Neurooncol. 2010 Jan;96(1):115-42. Epub 2009 Dec 3.)
'''American Society for Radiation Oncology (ASTRO)'''
*'''2012''' [http://download.journals.elsevierhealth.com/pdfs/journals/1879-8500/PIIS1879850011003808.pdf] [https://www.astro.org/Clinical-Practice/Guidelines/Brain-metastases.aspx] -- "Radiotherapeutic and surgical management for newly diagnosed brain metastasis/es: An American Society for Radiation Oncology evidence-based guideline (2012)" (Tsao M, Practical Radiation Oncology 2012 -- online before print)
*'''2005 (Review)''' - {{PMID|16111570}} — "The American Society for Therapeutic Radiology and Oncology (ASTRO) evidence-based review of the role of radiosurgery for brain metastases." Mehta MP et al. Int J Radiat Oncol Biol Phys. 2005 Sep 1;63(1):37-46.
'''Cancer Care Ontario'''
*[http://www.cancercare.on.ca/pdf/pebc9-1s.pdf Single Brain Metastasis]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=34399 Management of Brain Metastases]
**'''2005''' {{PMID|15807895}} [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1090562/?tool=pubmed Full text] -- "Clinical practice guideline on the optimal radiotherapeutic management of brain metastases." (Tsao MN, BMC Cancer. 2005 Apr 4;5:34.)
'''European Federation of Neurological Societies (EFNS)'''
*[http://www.efns.org/fileadmin/user_upload/guidline_papers/EFNS_guideline_2006_diagnosis_and_treatment_of_brain_metastases.pdf Diagnosis and Treatment of Brain Metastases]
**'''2006''' {{PMID|16834697}} -- "EFNS Guidelines on diagnosis and treatment of brain metastases: report of an EFNS Task Force." (Soffietti R, Eur J Neurol. 2006 Jul;13(7):674-81.)
'''International RadioSurgery Association (IRSA)'''
*[http://www.irsa.org/Metastatic%20Guideline.pdf Stereotactic Radiosurgery for Patients with Metastatic Brain Tumors (2008)]
'''German Society of Radiation Oncology (DEGRO)'''
*'''Brain Metastases and Leptomeningeal Carcinomatosis (2010)''' {{PMID|20127222}} -- "DEGRO Practical Guidelines for Palliative Radiotherapy of Breast Cancer Patients: Brain Metastases and Leptomeningeal Carcinomatosis." (Feyer P, Strahlenther Onkol. 2010 Feb;186(2):63-69. Epub 2010 Jan 26.)
**Conclusion: RT is an effective tool for palliative treatment of brain metastases and leptomeningeal carcinomatosis
'''''Driving Restrictions:'''''
*'''Neurosurgical Society of Australasia (NSA)'''
**[https://www.nsa.org.au/documents/item/47 Brain Tumors and Driving: A guide for patients and carers]
**[http://www.nsa.org.au/documents/item/48 Brain Tumors and Driving: A guide for clinicians]
**See also: '''NSWOG''' - NSW (New South Wales) Oncology Working Group: Neuro-oncology [http://www.cancerinstitute.org.au/supporting-best-practice/nsw-oncology-groups/neuro-oncology link]
73772mmnfitzv58qqi0t4n19cdhndsi
Radiation Oncology/NSCLC/Guidelines
0
215086
4674801
3185232
2026-10-07T05:54:11Z
Jcb
90773
4674801
wikitext
text/x-wiki
{{:Radiation_Oncology:TOC}}
<big>'''NSCLC Guidelines'''</big>
:see also: [[Radiation Oncology/Palliation/Lung tumor/Guidelines | Palliative Lung Guidelines]]
'''National Comprehensive Cancer Network (NCCN)'''
*[http://www.nccn.org/professionals/physician_gls/PDF/nscl.pdf Clinical Practice Guidelines]
'''National Cancer Institute (NCI)'''
*[http://www.cancer.gov/cancertopics/pdq/treatment/non-small-cell-lung/healthprofessional Health Professional PDQ]
'''U.S. Preventive Services Task Force'''
*[http://www.ahrq.gov/clinic/uspstf/uspslung.htm Screening recommendations (2004)]
'''American College of Radiology (ACR)'''
*[http://www.guideline.gov/summary/summary.aspx?doc_id=10606&nbr=005548&string=lung+AND+cancer Hemoptysis]
*[http://www.acr.org/SecondaryMainMenuCategories/quality_safety/app_criteria/pdf/ExpertPanelonInterventionalRadiology/NeedleBiopsyintheThoraxUpdateinProgressDoc3.aspx Needle Biopsy in the Thorax]
*[http://www.acr.org/SecondaryMainMenuCategories/quality_safety/app_criteria/pdf/ExpertPanelonRadiationOncologyLungWorkGroup/StagingofBronchogenicCarcinomaDoc6.aspx Staging]
*[http://www.acr.org/SecondaryMainMenuCategories/quality_safety/app_criteria/pdf/ExpertPanelonRadiationOncologyLungWorkGroup/PostoperativeAdjuvantTherapyinNonSmallCellLungCancerDoc5.aspx Postoperative Adjuvant Therapy]
*[http://www.acr.org/SecondaryMainMenuCategories/quality_safety/app_criteria/pdf/ExpertPanelonRadiationOncologyLungWorkGroup/InductionandAdjuvantTherapyforN2NonSmallCellLungCancerDoc2.aspx Induction and Adjuvant Therapy for N2 Disease]
*[http://www.acr.org/SecondaryMainMenuCategories/quality_safety/app_criteria/pdf/ExpertPanelonRadiationOncologyLungWorkGroup/NonsurgicalAggressiveTherapyforNonSmallCellLungCancerDoc4.aspx Nonsurgical Aggressive Therapy]
*[http://www.acr.org/SecondaryMainMenuCategories/quality_safety/app_criteria/pdf/ExpertPanelonRadiationOncologyLungWorkGroup/NonaggressiveNonsurgicalTreatmentofInoperableNonSmallCellLungCancerUpdateinProgressDoc3.aspx Nonsurgical Poor Performance or Palliative Care]
*[http://www.guideline.gov/summary/summary.aspx?doc_id=8329&nbr=004661&string=lung+AND+cancer Follow-Up]
*[http://www.acr.org/SecondaryMainMenuCategories/quality_safety/app_criteria/pdf/ExpertPanelonThoracicImaging/ScreeningforPulmonaryMetastasesDoc9.aspx Screening for Pulmonary Metastases]
'''American Brachytherapy Society (ABS)'''
*'''2001''' {{PMID|11301833}} -- "Brachytherapy for carcinoma of the lung." (Nag S, Oncology (Williston Park). 2001 Mar;15(3):371-81.)
'''American College of Chest Physicians (ACCP)'''
*[http://chestjournal.chestpubs.org/content/132/3_suppl/56S.full.pdf+html Chemoprevention]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/69S.full.pdf+html Screening]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/78S.full.pdf+html Diagnostic Surgical Pathology]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/108S.full.pdf+html Evaluation of Pulmonary Nodules]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/94S.full.pdf+html Treatment of Pulmonary Nodules]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/149S.full.pdf+html Initial Evaluation of Signs and Symptoms]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/131S.full.pdf+html Initial Diagnosis]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/161S.full.pdf+html Physiologic Evaluation]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/178S.full.pdf+html Noninvasive Staging]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/202S.full.pdf+html Invasive Mediastinal Staging]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/221S.full.pdf+html Bronchial Intraepithelial Neoplasia]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/234S.full.pdf+html Treatment of Stage I and Stage II]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/243S.full.pdf+html Treatment of Stage IIIA]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/266S.full.pdf+html Treatment of Stage IIIB]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/277S.full.pdf+html Treatment of Stage IV]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/290S.full.pdf+html Special Treatment Issues] (e.g. Pancoast, T4N0, solitary mets, etc)
*[http://chestjournal.chestpubs.org/content/132/3_suppl/306S.full.pdf+html Bronchioloalveolar Lung Cancer]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/340S.full.pdf+html Complementary Therapies]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/368S.full.pdf+html Palliative Care]
*[http://chestjournal.chestpubs.org/content/132/3_suppl/404S.full.pdf+html Quality of Life, Bereavement]
*[http://www.guideline.gov/summary/summary.aspx?doc_id=8663&nbr=004828&string=lung+AND+cancer Chronic Cough Due to Lung Tumors]
*[http://www.guideline.gov/summary/summary.aspx?doc_id=10856&nbr=005669&string=lung+AND+cancer Pulmonary Rehabilitation]
'''American Society of Clinical Oncology (ASCO)'''
*[http://www.asco.org/ASCOv2/Practice+%26+Guidelines/Guidelines/Clinical+Practice+Guidelines/Lung+Cancer/Cancer+Care+Ontario+and+the+American+Society+of+Clinical+Oncology+Guideline+for+Adjuvant+Chemotherapy+and+Adjuvant+Radiation+Therapy+for+Stages+I-IIIA+Resectable+Non-Small+Cell+Lung+Cancer Adjuvant Chemotherapy and Adjuvant Radiotherapy for Resectable Stage I-IIIA] ([http://jco.ascopubs.org/cgi/reprint/JCO.2007.14.1226v1.pdf PDF])
*[http://www.asco.org/ASCOv2/Practice+%26+Guidelines/Guidelines/Clinical+Practice+Guidelines/Lung+Cancer/American+Society+of+Clinical+Oncology+Clinical+Practice+Guideline+Update+on+Chemotherapy+for+Stage+IV+Non-Small+Cell+Lung+Cancer Chemotherapy for Stage IV] ([http://www.asco.org/ASCO/Downloads/Cancer%20Policy%20and%20Clinical%20Affairs/Clinical%20Affairs%20(derivative%20products)/NSCLC/NSCLC%20Unabridged%2011.16.09.pdf PDF])({{PMID|19917871}})
'''American Society for Radiation Oncology (ASTRO)'''
*'''2015: Adjuvant''' {{PMID|25957185}} -- "Adjuvant radiation therapy in locally advanced non-small cell lung cancer: Executive summary of an American Society for Radiation Oncology (ASTRO) evidence-based clinical practice guideline." (Rodrigues G, Pract Radiat Oncol. 2015 May-Jun;5(3):149-55.)
*'''2015: Definitive RT / Loc Adv''' {{PMID|25957184}} -- "Definitive radiation therapy in locally advanced non-small cell lung cancer: Executive summary of an American Society for Radiation Oncology (ASTRO) evidence-based clinical practice guideline." (Rodrigues G, Pract Radiat Oncol. 2015 May-Jun;5(3):141-8.)
*'''2011: Palliative''' {{PMID|25740118}} -- "Palliative thoracic radiotherapy in lung cancer: An American Society for Radiation Oncology evidence-based clinical practice guideline." (Rodrigues G, Pract Radiat Oncol. 2011 Apr-Jun;1(2):60-71.)
'''EORTC'''
*'''2010''' {{PMID|21079134}} -- "European Organisation for Research and Treatment of Cancer recommendations for planning and delivery of high-dose, high-precision radiotherapy for lung cancer." (De Ruysscher D, J Clin Oncol. 2010 Dec 20;28(36):5301-10. Epub 2010 Nov 15.)
'''Cancer Care Ontario'''
*[http://www.cancercare.on.ca/pdf/pebcdilungf.pdf Cross-sectional Imaging]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=14200 Role of PET in Diagnosis]; [http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=34341 Evidence-Based Series]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=14158 Postoperative RT in Stage II-IIIA]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=14166 Postoperative Chemotherapy +/- RT in Completely Resected Lung Cancer]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=34359 Preoperative Chemotherapy +/- Postoperative RT in Technically Resectable Lung Cancer]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=14206 Management of Unresectable Stage III]; [http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=14204 Evidence-Based Series]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=14170 Altered Fractionation in Unresectable Lung Cancer]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=14192 Role of Brachytherapy in Palliation]; [http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=34351 Evidence-Based Series]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=14190 Role of Photodynamic Therapy]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=34361 Chemotherapy in Stage IV]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=45735 First-Line Chemotherapy in Stage IV]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=14198 Second-Line of Progressive Chemotherapy]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=34357 Role of Taxanes in Advanced Stage]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=34355 Use of Gemcitabine]
*[http://www.cancercare.on.ca/common/pages/UserFile.aspx?fileId=14214 Use of EGFR Inhibitors]
'''National Institute for Clinical Excellence (NICE)'''
*[http://www.nice.org.uk/nicemedia/pdf/cg024fullguideline.pdf Full Guideline (2005)]
*[http://www.nice.org.uk/nicemedia/pdf/ip/IPG137guidance.pdf Photodynamic Therapy for Inorperable Endobronichial Cancer (2005)]
*[http://www.nice.org.uk/nicemedia/pdf/TA124Guidance.pdf Pemetrexed (2007)]
*[http://www.nice.org.uk/nicemedia/pdf/TA148Advice.pdf Bevacizumab (2008))]
*[http://www.nice.org.uk/nicemedia/pdf/TA162Guidance.pdf Erlotinib (2008)]
'''Scottish Intercollegiate Guidelines Network (SIGN)'''
*[http://www.sign.ac.uk/pdf/sign80.pdf Management of patients with lung cancer (2005)]
'''British Thoracic Society'''
*[http://www.brit-thoracic.org.uk/Portals/0/Clinical%20Information/Lung%20Cancer/Guidelines/lungcancersurgery.pdf Selection of Patients for Surgery (2001)]
'''All-Ireland Lung Cancer Group'''
*[http://www.imj.ie/Archive/Lung_Cancer_Guidelines.pdf Guidelines for Clinical Management (2004)]
sdq1o2d352544moxsj63dx0ab8y484t
Radiation Oncology/NSCLC/Staging
0
215371
4674823
3379031
2026-10-07T08:43:27Z
Jcb
90773
4674823
wikitext
text/x-wiki
{{:Radiation_Oncology:TOC}}
<big>'''Lung Cancer Staging'''</big>
'''AJCC 8th edition (2017)'''
* To be used for staging beginning Jan 1, 2018.
Source: [http://onlinelibrary.wiley.com/doi/10.3322/caac.21390/full]
<br>''Primary Tumor:''
*TX - primary tumor cannot be assessed, or tumor proven by malignant cells in sputum or bronchial washings but not visualized by imaging or bronchoscopy
*Tis - Carcinoma in situ:
**Tis (AIS): adenocarcinoma
**Tis (SCIS): squamous cell carcinoma
*T1 - 3 cm or less, surrounded by lung or visceral pleura, not invading into a main bronchus
**(the uncommon superficial spreading tumor of any size with its invasive component limited to the bronchial wall, which may extend proximal to the main bronchus, is also classified as T1a)
**T1mi - minimally invasive adenocarcinoma
**T1a - tumor 1 cm or less
**T1b - >1 cm but ≤ 2 cm
**T1c - >2 cm but ≤ 3 cm
*T2 - tumor >3 cm but ≤ 5 cm; or tumor with any of the following
*#
*#involves main bronchus (regardless of distance to the carina, but without invading the carina)
*#invades visceral pleura (PL1 or PL2)
*#associated with atelectasis or obstructive pneumonitis that extends to the hilar region, either involving part of the lung or the entire lung
*:''(T2 tumors with these features are classified T2a if 4 cm or less and as T2b if >4 cm but ≤ 5 cm)''
**T2a - >3 cm but ≤ 4 cm (also includes T2 tumors smaller than 4 cm)
**T2b - >4 cm but ≤ 5 cm
*T3 - tumor >5 cm but ≤ 7 cm; or tumor that directly invades one of the following: parietal pleura (PL3), chest wall, phrenic nerve, parietal pericardium; or separate tumor nodules in the same lobe
*T4 - > 7 cm, or tumor invades: diaphragm, mediastinum, heart, great vessels, trachea, recurrent laryngeal nerve, esophagus, vertebral body, carina; or separate tumor nodule(s) in a different ipsilateral lobe
<br>
*''Note:'' Great vessels include aorta, superior vena cava, inferior vena cava, main pulmonary A, intrapericardial segments of the trunk of the R and L pulmonary A, intrapericardial segments of the R and L pulmonary V.
''Regional Lymph Nodes:''
*N0 - no nodes
*N1 - ipsilateral peribronchial and/or ipsilateral hilar lymph nodes or intrapulmonary nodes
*N2 - ipsilateral mediastinal and/or subcarinal nodes
*N3 - contralateral mediastinal, contralateral hilar, ipsilateral or contralateral scalene or supraclavicular nodes
''Distant Metastases:''
*M0 - none
*M1
**M1a - separate tumor nodule(s) in a contralateral lobe; tumor with pleural nodules or malignant pleural or pericardial effusion
**M1b - single extrathoracic metastasis in a single organ and involvement of a single distant (nonregional) node
**M1c - multiple extrathoracic metastases in one or several organs
''Stage Grouping:''
*IA1 - T1mi or T1a, N0
*IA2 - T1b N0
*IA3 - T1c N0
*IB - T2a N0
*IIA - T2b N0
*IIB - T1 N1; T2 N1; T3 N0
*IIIA - T1-2 N2; T3 N1; T4 N0-1
*IIIB - T1-2 N3; T3-4 N2
*IIIC - T3-4 N3
*IVA - M1a or M1b
*IVB - M1c
''Classification of situations not covered by TNM descriptors:''
* paralysis of recurrent laryngeal nerve, SVC obstructions, and compression of trachea or esophagus related to direct extension of the primary tumor are classified as T4 but would be classified as N2 if caused by ipsilateral mediastinal nodal disease
* Pancoast (superior sulcus) tumors are classified as T4 if there is evidence of invasion of the vertebral body or spinal canal, encasement of the subclavian vessels, or unequivocal involvement of the superior branches of the brachial plexus (C8 or above) but as T3 if these situations are not present
* direct invasion of an adjacent lobe, across the fissure or indirectly if the fissure is incomplete, is classified as T2a
* invasion of the phrenic nerve is T3, but invasion of the recurrent laryngeal nerve is T4
* invasion into hilar fat is classified as T2a
* direct extension to visceral pericardium and invasion into the mediastinal fat are T4
* involvement of the great vessels, ie, aorta, SVC, IVC, main pulmonary artery (pulmonary trunk), intrapericardial portions of the superior and inferior right and left pulmonary veins, is T4
* discontinuous tumor nodules in the ipsilateral parietal or visceral pleura are classified as M1a; but, if the tumor nodules are outside the parietal pleura in the chest wall or in the diaphragm, they are classified as M1b, if single, or M1c, if multiple
==Older staging editions==
'''AJCC 7th Edition (2009)'''
*corresponds with IASLC staging - published: {{PMID|19584208}} (Chest 2009 Jul;136(1):260-71.)
*[http://www.iaslc.org/staging_project.asp IASLC document (PDF)]
<br>''Primary Tumor:''
*T1 - 3 cm or less, surrounded by lung or visceral pleura, not invading into a main bronchus
**T1a - tumor 2 cm or less
**T1b - > 2 cm but <= 3 cm
*T2 - tumor >3 cm but <= 7 cm; or tumor with any of the following: involves main bronchus (2cm or more distal to the carina), invades visceral pleura (PL1 or PL2); associated with atelectasis or obstructive pneumonitis that extends to the hilar region but does not involve the entire lung
**T2a - >3 cm but <= 5 cm (also includes T2 tumors smaller than 3 cm)
**T2b - >5 cm but <= 7 cm
*T3 - tumor > 7 cm; or tumor that directly invades one of the following: parietal pleura (PL3), chest wall, diaphragm, phrenic nerve, mediastinal pleura, parietal pericardium; or tumor in the main bronchus less than 2 cm distal to the carina; or associated atelectasis or obstructive pneumonitis of the entire lung; or separate tumor nodules in the same lobe
*T4 - tumor invades: mediastinum, heart, great vessels, trachea, recurrent laryngeal nerve, esophagus, vertebral body, carina; or separate tumor nodule(s) in a different ipsilateral lobe
<br>
*''Note:'' Great vessels include aorta, superior vena cava, inferior vena cava, main pulmonary A, intrapericardial segments of the trunk of the R and L pulmonary A, intrapericardial segments of the R and L pulmonary V.
''Regional Lymph Nodes:''
*N0 - no nodes
*N1 - ipsilateral peribronchial and/or ipsilateral hilar lymph nodes or intrapulmonary nodes
*N2 - ipsilateral mediastinal and/or subcarinal nodes
*N3 - contralateral mediastinal, contralateral hilar, ipsilateral or contralateral scalene or supraclavicular nodes
''Distant Metastases:''
*M0 - none
*M1
**M1a - separate tumor nodule(s) in a contralateral lobe; tumor with pleural nodules or malignant pleural or pericardial effusion
**M1b - distant metastases
''Stage Grouping:''
*IA - T1(a or b) N0
*IB - T2a N0
*IIA - T1(a or b) N1, T2a N1, T2b N0
*IIB - T2b N1, T3 N0
*IIIA - T3 N1, T1-3 N2, T4 N0-1
*IIIB - N3 any, T4 N2-3
*IV - M1a or M1b
''Pleural Invasion:''
*Uses modification of Hammar classification -- see {{PMID|19057261}} (Travis WD, "Visceral pleural invasion: pathologic criteria and use of elastic stains: proposal for the 7th edition of the TNM classification for lung cancer." J Thorac Oncol. 2008 Dec;3(12):1384-90.)
*PL0 - Tumor within the subpleural parenchyma or, invading superficially into the pleural connective tissue below the elastic layer.
*PL1 - Tumor invades beyond the elastic layer.
*PL2 - Tumor invades to visceral pleural surface.
*PL3 - Tumor invades the parietal pleura.
''Note:''
*The 7th Edition recommended that AJCC staging be applied to Small Cell Lung Cancer and Pulmonary Carcinoid Tumors
'''AJCC 6th Edition (2002)''' <br>
''Primary Tumor:''
*T1 - 3 cm or less, surrounded by lung or visceral pleura, not invading into a main bronchus
*T2 - Any of the following: 1) more than 3 cm, 2) involves main bronchus, 2 cm or more distal to the carina, 3) invades the visceral pleura, 4) associated with atelectasis or obstructive pneumonitis that extends to the hilar region but does not involve the entire lung
*T3 - Tumor of any size that invades any of the following: 1) chest wall, 2) diaphragm, 3) mediastinal pleura, 4) parietal pericardium; or 5) tumor in the main bronchus less than 2 cm distal to the carina but without involvement of the carina; or 6) associated atelectasis or obstructive pneumonitis of the entire lung
*T4 - Tumor of any size that invades any of the following:
**1) mediastinum, 2) heart, 3) great vessels, 4) trachea, 5) esophagus, 6) vertebral body, or 7) carina;
**8) separate tumor nodules in the same lobe;
**9) malignant pleural effusion
''Regional Lymph Nodes:''
*N0 - no nodes
*N1 - ipsilateral peribronchial and/or ipsilateral hilar lymph nodes or intrapulmonary nodes
*N2 - ipsilateral mediastinal and/or subcarinal nodes
*N3 - contralateral mediastinal, contralateral hilar, ipsilateral or contralateral scalene or supraclavicular nodes
''Distant Metastases:''
*M0 - no
*M1 - yes
**includes separate tumor nodules in a different lobe (ipsilateral or contralateral)
''Stage Grouping:''
*IA - T1 N0
*IB - T2 N0
*IIA - T1 N1
*IIB - T2 N1, T3 N0
*IIIA - T3 N1, T1-3 N2
*IIIB - N3 or T4
**T4 N0-1 (invasive but potentially resectable; includes upstaged to T4 due to satellite lesions)
**T4 N0-1 (upstaged to T4 because of pleural/pericardial effusion; unresectable)
**T4 N2-3 (invasive and mediastinal+ LNs; unresectable)
**T1-3 N3 (possibly smaller but contralateral LNs; unresectable)
*IV - M1
<br>NOTE: the 1997 AJCC Staging System moved T3,N0 from Stage III to IIB, complicating the interpretation of older trials of Stage III patients which would have had better prognosis.
7ap4zo676q43o6d6qcblg3ifosa4db3
Radiation Oncology/Ovary/Overview
0
224891
4674839
4315822
2026-10-07T09:29:30Z
Jcb
90773
4674839
wikitext
text/x-wiki
{{:Radiation_Oncology:TOC}}
<big>'''Ovarian Cancer Overview'''</big>
==Epidemiology==
*Median age 60's, peak incidence 80's
*22K cases per year in US; 4th most common cancer in women
*14K deaths per year in US; 5th most common cause of cancer death in women
==Risk factors==
*Genetics
**One first-degree relative: 4-5% lifetime risk
**Two first-degree relatives: 25-50% lifetime risk
**BRCA1/BRCA2
**[[Radiation_Oncology/Cancer_Syndromes#Lynch_syndrome.2C_Hereditary_nonpolyposis_colorectal_cancer_.28HNPCC.29|HNPCC]]
*Hormone exposure: nulliparity, early menarche, late menopause, hormone replacement
*Ovarian trauma, including multiple cycles of ovulation
*Environmental: endometriosis, obesity, smoking, diet
==Screening==
*'''Prostate, Lung, Colorectal, and Ovarian Screening Trial''' (1993-2001)
**Randomized. 34,261 women in the screening arm. General population, age 55-74. Transvaginal ultrasound and CA-125. Screening compliance 83% to 78%
**'''2009''' {{PMID|19305319}} -- "Results from four rounds of ovarian cancer screening in a randomized trial." (Partridge E, Obstet Gynecol. 2009 Apr;113(4):775-82.)
***Outcome: Data from first 4 annual screens. Positive screen ~5% (about 2/3 TVU and 1/3 CA-125). Ratio of surgery to cancer detection 20:1. Overall yield ~5/10,000 screened. Majority (72%) late stage.
***Conclusion: Ratio of surgeries to screen-detected cancers high, and most were late stage
==Presentation==
*Generally present with ill-defined symptoms and diagnosis may be delayed
**Abdominal pain, nausea, anorexia, early satiety or constipation.
**Irregular vaginal bleeding
**Dyspareunia
**Urinary symptoms
*Palpable adnexal mass
**Pre-menopausal: 5% risk of malignancy
**Post-menopausal: 30-60% risk of malignancy
*Paraneoplastic presentation (rare):
**[[w:Leser-Trelat_sign|Leser-Trelat Sign]] – Sudden multiple seborrheic keratoses
**[[w:Trousseau%27s_sign_of_malignancy|Trousseau’s Syn]] – Migratory thrombophlebitis
*Hormonal effects – Germ Cell Tumors
**Precocious puberty, amenorrhea, virilization
*[[w:Meig%27s_syndrome|Meigs' syndrome]] - Ascites, an ovarian tumor, and right-sided pleural effusion
*80% have spread beyond the ovary at presentation.
==Anatomy==
*Located in lateral pelvis, beneath external illiac artery and in front of internal illiac artery
*Attached to the uterus by ovarian ligament and the body wall by suspensory ligament; within the broad ligament
*There are 3 major tissue types in the ovary, which give rise to different types of tumors:
**Surface: covered by ovarian epithelium
**Stroma:
***Soft tissue consisting of spindle-shaped cells (regarded by some anatomists as unspited muscle cells and others as connective-tissue cells)
***On the surface of the ovary, this tissue is much condensed, and forms a layer (tunica albuginea) composed of short connective-tissue fibers, with fusiform cells between them
**Follicle:
***Single oocyte
***Granulosa cells surround the oocyte and respond to FSH and LH
***Theca is the surrounding protective layer
==Work Up==
*Transvaginal ultrasonography (TVU) is more sensitive compared to CT
**Classic TVU finding is a “complex” cyst, defined as containing both solid and cystic components
**"Simple" cyst, defined as having thin walls, fluid-filled, without a mass component, septations, or internal echogenicity is frequently benign but workup must be individualized
*Percutaneous biopsy should be avoided due to risk of cyst rupture and seeding into peritoneal cavity
*Surgery
**Exploratory laparotomy performed to 1) confirm pathology, 2) stage patient, and 3) perform maximum cyto-reduction (residual disease <1cm)
**Should be performed by a GYN Oncologist
**Ascites or peritoneal washings
**Inspection of serosal surfaces with biopsy of any suspicious lesions
**Inspect stomach, small bowel, large bowel, peritoneum, mesentery, and solid organs
**TAH/BSO
**Infracolic omentectomy
**Pelvic and paraortic LN sampling
**Peritoneal biopsies
**Pelvic cul-de-sac biopsy
**Bladder
**Bil Sidewalls
**Bil Paracolic gutters
**Diaphragm
===Ovarian-Adnexal Reporting & Data System (O-RADS™)===
*O-RADS™ is an acronym for an Ovarian-Adnexal Imaging-Reporting-Data System which will function as a quality assurance tool and clinical support system for the standardized description of ovarian/adnexal pathology and its management.
*A uniform vocabulary using the most predictive internationally agreed upon lexicon descriptors for describing the imaging characteristics of ovarian/adnexal masses has been applied to a data-based risk stratification classification for consistent interpretations leading to appropriate management in clinical practice.
*The system’s goal is to optimize ovarian cancer outcomes while minimizing unnecessary surgery in patients at low risk of malignancy.
*Rochelle F Andreotti et al. O-RADS US Risk Stratification and Management System: A Consensus Guideline from the ACR Ovarian-Adnexal Reporting and Data System Committee. Radiology. 2020 Jan;294(1):168-185. ({{PMID|31687921}})
*Elizabeth A Sadowski et al. O-RADS MRI Risk Stratification System: Guide for Assessing Adnexal Lesions from the ACR O-RADS Committee. Radiology. 2022 Apr;303(1):35-47. ({{PMID|35040672}})
==Pathology==
[[Image:Ovarian_surface_papillary_serous_tumor_submerged_in_water.jpg|thumb|right]]
[[Image:Ovarian_serous_adenocarcinoma_%282%29.jpg|thumb|right]]
*'''[[Radiation_Oncology/Ovary/Epithelial_ovarian|Epithelial tumors]]''' - most common, 65%
**Serous tumors: 25% of ovarian tumors, 40% of epithelial tumors
***Benign (60%): Serous cystadenoma, cystadenofibroma
***Borderline (15%): Serous borderline tumors, microinvasive serous carcinoma
***Malignant (25%): Serous cystadenocarcinoma, serous carcinoma, serous micropapillary carcinoma, serous psammomacarcinoma
**Mucinous tumors: 15% of ovarian tumors, 25% of epithelial tumors
***Benign (80%): Mucinous cystadenoma, mucinous adenofibroma
***Borderline (10%): Mucinous borderline tumors, microinvasive mucinous carcinoma
***Malignant (10%): Mucinous cystadenocarcinoma, mucinous carcinoma
**Endometrioid tumors: 20% of ovarian tumors, 35% of epithelial tumors
***Benign: Endometrioid cystadenoma, endometrioid adenofibroma
***Borderline: Endometrioid borderline tumors
***Malignant (Majority): Endometrioid carcinoma
**Brenner tumors (benign, borderline, or malignant) - composed of urothelial-like cells
**Other: Clear cell adenocarcinoma, urothelial carcinoma (transitional cell), mixed epithelial-papillary cystadenoma of borderline malignancy of mullerian type
*'''Sex cord - stromal tumors''' - 8%
**Stromal cells: fibroblasts, theca cells, Leydig cells
**Primitive sex cords: granulosa cells, Sertoli cells
**Are hormonally active. Affect all age groups. 70% are Stage I at diagnosis (unlike epithelial tumors which are usually Stage III-IV).
*'''Germ cell tumors''' - 15%
**Benign: mature teratoma
**Malignant: 90% of malignant tumors are epithelial: dysgerminoma, immature teratoma, yolk sac tumor (endodermal sinus tumor), embryonal carcinoma
*Note: Borderline tumors (tumors of Low Malignant Potential; LMP) have absence of stromal invasion
==Epithelial Ovarian Cancer==
*Please see the [[Radiation_Oncology/Ovary/Epithelial_ovarian|epithelial ovarian cancer]] page
==Sex cord-stromal tumors==
*[[Radiation_Oncology/Ovary/Granulosa_Cell_Tumor|Granulosa cell tumors]]
**About 5% of malignant ovarian tumors. The most common malignant sex cord-stromal tumor
**More common in post-menopausal women
**Present with vaginal bleeding (due to hormone)
**May be associated with endometrial hyperplasia, endometrial polyps, or endometrial carcinoma
**Most patients have an excellent prognosis, 90% 10-year survival
**May have late recurrence, 10-20 years after treatment
*Fibroma, Fibrothecoma, and Thecoma
**4% of ovarian tumors
**These 3 tumors form a spectrum of benign tumors
**Occur in pre- and post-menopausal women
**Fibroma is most common sex cord tumor
**Thecomas are active (as compared to fibromas) and can have estrogenic activity
*Sertoli-Leydig cell tumor
**Very rare (<0.5% of ovarian tumors)
**Young women
**Symptoms are related to virilizing hormones
**Most behave in a benign fashion but can act malignant
**Recur relatively soon after treatment
*Treatment approach includes surgery, and adjuvant platinum-based chemotherapy for high risk Stage I and Stage II-IV
==Germ cell tumors==
*30% of ovarian tumors, but only 1-3% of malignant ovarian tumors
*More common in younger women and also more likely to be malignant (up to 1/3)
*Symptoms
**Due to rapid growth of tumor, resulting in stretching of the ovarian capsule; leads to early diagnosis
**Abdominal pain, distension, pelvic fullness, and urinary symptoms
*Histology:
**Dysgerminoma (counterpart to seminoma)
**Nondysgerminoma
*Serum levels
**Endodermal sinus tumor (yolk sac tumor): AFP elevated
**Embryonal carcinoma: AFP and bHCG elevated
**Choriocarcinoma: bHCG elevated
**Pure immature teratoma: normal AFP and bHCG; though AFP may be elevated in 30%
**Mature cystic teratoma (dermoid cyst): normal AFP and bHCG
*Most common malignant germ cell tumor is dysgerminoma which occur most commonly in adolescence
*Stage I 60-70%
*Surgery: Principles of management similar to epithelial ovarian CA, except fertility can be preserved with ipsilateral salpingo-oopherectomy
*Adjuvant chemotherapy:
**Adjuvant BEP for 3-4 cycles
**Stage I disgerminoma can be observed (DeVita, 8th ed.) if fertility preservation is important, with 15-20% recurrence rate. Salvage with chemotherapy is high
*Role for RT limited, due to excellent chemo responsiveness and impact on fertility
66r98l4tr27e2p2kh6x1y9eyck7rsyj
Radiation Oncology/Ovary/Epithelial ovarian
0
224893
4674835
3451781
2026-10-07T09:28:17Z
Jcb
90773
4674835
wikitext
text/x-wiki
{{:Radiation_Oncology:TOC}}
<big>'''Epithelial Ovarian Cancer'''</big>
==Epidemiology==
*CA-125 elevated in >80% of patients (though can be also elevated in endometriosis, pelvic inflammatory disease, or pregnancy)
*Hereditary: 5-10% (majority due to BRCA1/BRCA2 mutations, some HNPCC)
**Lifetime risk BRCA1: 20-60%
**Lifetime risk BRCA2: 10-35%
*Stage I-II in ~30%
==BRCA Mutations==
:See also page at [[Radiation Oncology/Breast/Breast overview#BRCA Mutations]]
'''''Impact of oophorectomy:'''''
*'''Toronto'''
**'''2014''' {{PMID|24567435}} -- "Impact of Oophorectomy on Cancer Incidence and Mortality in Women With a BRCA1 or BRCA2 Mutation." (Finch AP, J Clin Oncol. 2014 Feb 24. [Epub ahead of print])
***5,783 pts from international registry with BRCA1 or BRCA2 mutations.
***Average f/u 5.6 yrs. 186 women developed either ovarian (n = 132), fallopian (n = 22), or peritoneal (n = 32) cancer, of whom 68 have died. Bilateral oophorectomy associated with HR 0.20 for development of cancer, HR 0.23 for all-cause mortality.
***Conclusion: "Preventive oophorectomy was associated with an 80% reduction in the risk of ovarian, fallopian tube, or peritoneal cancer in BRCA1 or BRCA2 carriers and a 77% reduction in all-cause mortality."
==Pathology==
*Most likely arise from the surface epithelium covering the ovary (contiguous with peritoneal mesothelium)
*Malignant transformation likely occurs within epithelium that becomes trapped within ovarian inclusion cysts during ovulation
*Mutations: p53 in ~50%, her2 in 8%
==Patterns of Spread==
*Intraperitoneal Spread
**Cells exfoliate from the ovarian surface, and spread into peritonum
**Papillary serous has highest predilection
*Direct extension
**Bladder or rectosigmoid
*Lymphatics
**10-15% of Stage I patients are LN+
**Along blood supply through infundibulopelvic ligmanent to para-aorticl LNs
**Through broad ligament to pelvic sidewall LNs (including external illiac, and obturator)
**Rarely along round ligament to inguinal LNs
**Paraortic and Pelvic LNs
**Occasionally Inguinal LNs via round ligament
*Hematogenous (2-3%)
**Lung and Liver
'''''Serous Tumors'''''
*'''Harvard; 2008''' {{PMID|18854563}} -- "New insights into the pathogenesis of serous ovarian cancer and its clinical impact." (Levanon K, J Clin Oncol. 2008 Nov 10;26(32):5284-93. Epub 2008 Oct 14.)
**Review. Fallopian tube fimbria as origin for high-grade ovarian serous carcinomas
==Overall Survival==
{| class="wikitable"
!Stage !! 5-year OS
|-
| Stage IA - IB || align="center" | 90%
|-
| Stage IC - II || align="center" | 70-80%
|-
|Stage IIIA || align="center" | 60%
|-
|Stage IIIB || align="center" | 40%
|-
|Stage IIIC || align="center" | 30%
|-
|Stage IV || align="center" | <20%
|}
==Treatment Overview==
*Surgical resection and staging with TAH/BSO is the first step; goal is maximum cytoreduction (<1cm)
*NCCN Guidelines (v2.2010)
{| class="wikitable"
!Stage !! Adjuvant Therapy
|-
| Stage IA - IB G1 || Observe
|-
| Stage IA - IB G2 || Observe or IV taxane/carboplatin 3-6 cycles
|-
| Stage IC or G3 || IV taxane/carboplatin 3-6 cycles
|-
|Stage II-IV || IV taxane/carboplatin 6-8 cycles '''or''' IP chemo in optimally debulked Stage II and Stage III
|}
*Role for adjuvant radiation therapy appears minimal at this time
*Whole abdominal RT was removed as a treatment option from NCCN guidelines in the 2007 version
*Typical role for RT is in palliative care
==Whole Abdomen Irradiation (WAI)==
*Several randomized trials generally found that WAI was less effective and/or more toxic than chemotherapy, particularly platinum-containing regimens
*As a result, adjuvant RT is no longer routinely used for patients with high-risk, early stage ovarian cancer
===Adjuvant treatment===
====WAI vs. Chemo====
*'''GONA''' (Italy)(1985-1989) -- adjuvant WAI vs. cyclophosphamide
**Randomized. ''Closed prematurely due to poor compliance.'' 70 patients, high-risk Stage I-II. Arm 1) chemo cisplatin 50 mg/m2 + cyclophosphamide 600 mg/m2 x6 courses vs. Arm 2) WAI open field 30.2 Gy upper abdomen and 43.2/24 pelvis
**'''5-years; 1994''' {{PMID|8311013}} -- "High-risk early-stage ovarian cancer. Randomized clinical trial comparing cisplatin plus cyclophosphamide versus whole abdominal radiotherapy." (Chiara S, Am J Clin Oncol. 1994 Feb;17(1):72-6.)
***Outcome: 5-year RFS chemo 74% vs. WAI 50% (p=0.07); OS 71% vs. 53% (NS)
***Toxicity: WAI Grade 3-4 diarrhea 28%, late GI toxicity requiring surgery in 1 patient
***Conclusion: No difference, but chemotherapy appears safe in comparison with WAI
*'''West Midlands; UK''' (1981-1987) -- adjuvant WAI vs. cisplatin
**Randomized. 40 patients, surgery, with no macroscopic residual disease. Treated with Arm 1) cisplatin vs. Arm 2) WAI moving strip
**'''5-years; 1993''' {{PMID|8424908}} -- "The West Midlands epithelial ovarian cancer adjuvant therapy trial." (Redman CW, Clin Oncol (R Coll Radiol). 1993;5(1):1-5.)
***Outcome: 5-year OS 58% vs 62% (NS)
***Toxicity: 11% long-term disability
***Conclusion: No difference between chemo and WAI
*'''MD Anderson''' -- adjuvant WAI vs. melphalan
**'''2-years; 1975''' {{PMID|1234631}} -- "Postoperative treatment of early cancer of the ovary: a random trial between postoperative irradiation and chemotherapy." (Smith JP, Natl Cancer Inst Monogr. 1975 Oct;42:149-53.)
**Randomized. 149 patients, Stage I-II. Arm 1) WAI vs. Arm 2) melphalan. RT technique moving strip
***Outcome: Stage I RFS 85% vs. 90% (NS); Stage II 55% vs. 58% (NS)
***Toxicity: melphalan well tolerated, WAI 7 patients with GI toxicity requiring surgery
***Conclusion: Significant toxicity for moving-strip WAI, no outcome difference
====WAI vs. Pelvic RT + chemo====
*'''Denmark''' (1981-1987) -- WAI vs. pelvic RT + cyclophosphamide
**Randomized. 118 patients, Stage IB-IIC epithelial ovarian CA. Arm 1) WAI vs. Arm 2) pelvic RT + cyclophosphamide
**'''4-years; 1990''' {{PMID|2351321}} -- "Randomized study of whole-abdomen irradiation versus pelvic irradiation plus cyclophosphamide in treatment of early ovarian cancer." (Sell A, Gynecol Oncol. 1990 Jun;37(3):367-73.)
***Outcome: 4-year OS: 63% (NS), RFS 55% (NS)
***Toxicity: in pelvic RT + cyclophosphamide arm, 25% hemorrhagic cystis; 8% late GI toxicity requiring surgery
***Conclusion: No difference
*'''NCIC Canada''' (1975-1984)
**Randomized. ''Arm C discontinued early due to toxicity.'' 257 patients, Stage I-III ovarian, surgery + whole pelvis RT 45/20, then Arm A) WAI 22.5/20 vs. Arm B) melphalan 8 mg/m2/d vs. Arm C) intraperitoneal chromic phosphate 10-20 mCi
**'''5-years; 1988''' {{PMID|3045264}} -- "Early stage ovarian cancer: a randomized clinical trial comparing whole abdominal radiotherapy, melphalan, and intraperitoneal chromic phosphate: a National Cancer Institute of Canada Clinical Trials Group report." (Klaasen D, J Clin Oncol. 1988 Aug;6(8):1254-63.) Median F/U 8 years
***Outcome: 5-year OS 62% vs. 61% vs. 66% (NS); marginally better DFS with melphalan over WAI
***Toxicity: melphalan - 4 patients developed MDS/AML
***Conclusion: No difference
*'''Princess Margaret''' -- WAI vs. pelvic RT + chlorambucil
**Randomized. 190 patients, TAH/BSO, Stage IB-III. Arm 1) WAI vs. Arm 2) pelvic RT alone vs. Arm 3) pelvic RT + chlorambucil
**'''10-years; 1979''' {{PMID|463982}} -- "Ovarian carcinoma: improved survival following abdominopelvic irradiation in patients with a completed pelvic operation." (Dembo AJ, Am J Obstet Gynecol. 1979 Aug 1;134(7):793-800.)
***Outcome: 10-year RFS WAI 64% vs. pelvic RT +/- C 40% (SS); chlorambucil delayed time to treatment failure but not number of treatment failures
***Failure patterns: 20-25% pelvis regardless of RT, 0% abdomen alone in WAI vs. 25% abdomen alone in pelvic RT
***Conclusion: Whole abdomen RT superior to pelvic RT with/without chlorambucil
====Dose Evaluation====
*'''Princess Margaret''' (1981-1990) -- 22.5 Gy vs. 27.5 Gy abdomen
**Randomized. 125 patients, optimally debulked Stage I-III. Arm 1) whole pelvis 22.5/10 + WART 22.5/22 vs. Arm 2) whole pelvis 22.5/10 + WART 27.5/27
**RT technique: most superior diaphragm excursion + 1-1.5cm margin; lateral peritoneum; pelvic floor + 1.5cm margin. Pelvic field at L5/S1 and 1.5 cm bony pelvis lateral margin. Renal dose <20 Gy.
**'''5-years; 1998''' {{PMID|9635700}} -- "A randomized study of two doses of abdominopelvic radiation therapy for patients with optimally debulked Stage I (n=43), II (n=71), and III (n=11) ovarian cancer." (Fyles AW, Int J Radiat Oncol Biol Phys. 1998 Jun 1;41(3):543-9.). Median F/U 6.6 years
***5-year outcome: OS: low-dose 83% vs. high-dose 72% (NS); DFS 74% vs. 67% (NS)
***Sites of failure: pelvis alone 39%, abdomen alone 18%, pelvis+abdomen 15%, distant 28%
***Toxicity: no difference, GI Grade 3 2%, Bladder Grade 3 2%
***Conclusion: No difference in outcome, no benefit to higher WART dose
===Consolidative treatment===
*'''Swedish-Norwegian OCSG''' (1988-1993) -- WAI vs. cisplatin + doxorubicin/epirubicin vs. observation
**Randomized. 172 patients, Stage III, primary surgery, then cisplatin 50 mg/m2 + doxorubicin 50 mg/m2 or epirubicin 60 mg/m2, followed by second look surgery. Randomized to Arm 1) WAI vs. Arm 2) same chemo consolidation x6 cycles vs. Arm 3) no further treatment. WAI 20/20 + pelvic boost to L3/L4 20.4/12
**'''5-years; 2003''' {{PMID|12801256}} -- "Consolidation treatment of advanced (FIGO stage III) ovarian carcinoma in complete surgical remission after induction chemotherapy: a randomized, controlled, clinical trial comparing whole abdominal radiotherapy, chemotherapy, and no further treatment." (Sorbe B, Int J Gynecol Cancer. 2003 May-Jun;13(3):278-86.)
***Outcome: 5-year PFS WAI 56% vs. chemo 36% vs. control 35% (SS)
***Subset analysis: If microscopic residual disease, no difference between groups
***Toxicity: 10% late GI in WAI group
***Conclusion: WAI may be beneficial in consolidative setting, if pCR after chemo
*'''North Thames''' (UK) -- consolidative WAI vs. carboplatin
**Randomized. 254 patients, Stage IIB-IV, surgery followed by carboplatin 400 mg/m2. If residual disease <2cm at second look surgery, randomized to Arm 1) carboplatin 400 mg/m2 x5 courses vs. Arm 2) WAI 24 Gy
**'''2-years; 1993''' {{PMID|8445418}} -- "A randomized trial comparing single-agent carboplatin with carboplatin followed by radiotherapy for advanced ovarian cancer: a North Thames Ovary Group study." (Lambert HE, J Clin Oncol. 1993 Mar;11(3):440-8.)
***Outcome: Median OS 2 years, no OS or DFS difference between groups
***Toxicity: Chemo well tolerated. WAI reasonably well tolerated, but one treatment-related death from fecal fistulae
***Conclusion: No advantage to WAI over more chemo
*'''West Midlands Trial II''' (UK) -- consolidative WAI vs. chlorambucil
**Randomized. 109 patients, ovarian cancer, treated with surgery, cisplatin 100 mg/m2 x5 courses, and second look laparotomy. Then randomized to Arm 1) WAI moving strip vs. Arm 2) chlorambucil x1 year
**'''2-years; 1990''' {{PMID|2261388}} -- "A randomized trial comparing whole abdominal radiotherapy with chemotherapy following cisplatinum cytoreduction in epithelial ovarian cancer. West Midlands Ovarian Cancer Group Trial II." (Lawton F, Clin Oncol (R Coll Radiol). 1990 Jan;2(1):4-9.)
***Outcome: 2-year OS 35%, no difference between arms
***Toxicity: considerable, ~50% unable to complete treatment in both arms
***Conclusion: No indication for consolidation with WAI or chlorambucil after primary surgery and cisplatin
*'''GONA''' (Italy) -- consolidative WAI vs. chemo(type?)
**Randomized. ''Stopped early due to poor outcome in WAI arm.'' 41 patients, treated with surgery, chemotherapy, and second look laparotomy. Randomized to Arm 1) more chemotherapy vs. Arm 2) WAI
**'''1990''' {{PMID|2227553}} -- "Chemotherapy versus radiotherapy in the management of ovarian cancer patients with pathological complete response or minimal residual disease at second look." (Bruzzone M, Gynecol Oncol. 1990 Sep;38(3):392-5.) Median F/U 1.8 years
***Outcome: progression WAI 55% vs. chemo 29% (SS), death 45% vs. 14%
***Conclusion: Significant advantage for chemo over WAI
===RT Technique===
*There are multiple techniques, but typically Whole Abdomen RT is given to 22.5-25 Gy, followed by boost to PA LNs and whole pelvis to 45-50.4 Gy
*Dose: 22.5-25Gy in 130-150cGy/fx.
*Simulation: Supine with Alpha cradle.
*Fields: AP/PA single fields or 4-field technique
*Blocks:
**Kidneys – 50% transmission block or block after 15Gy.
**Liver – Block at 25Gy. Block not used by some institutions.
<table>
<tr>
<td>[[Image:Radiation_WholeAbdomen1.jpg|left|thumb]]</td>
<td>Example of a AP whole abdomen/pelvis radiation therapy treatment field used at Tufts/Brown residency program. Actual patient contours should guide field design.
*Superior border: Above the top of the diaphragm
*Inferior border: Inferior edge of pubic ramus
*Lateral borders: Lateral to peritoneal reflection
*Red: cervix; Blue: uterus; Khaki: bladder; Brown: rectum & liver; Teal: kidney; Light Blue: peritoneal reflection
*Orange: common illiac LNs; Yellow: external illiac LNs; Light Green: obturator LNs; Purple: internal illiac LNs; Dark Green: presacral LNs
</tr>
<tr>
<td>[[Image:Radiation_WholeAbdomen2.jpg|left|thumb]]</td>
<td>Example of a PA whole abdomen/pelvis radiation therapy treatment field used at Tufts/Brown residency program. Actual patient contours should guide field design.
*Superior border: Above the top of the diaphragm
*Inferior border: Inferior edge of pubic ramus
*Lateral borders: Lateral to peritoneal reflection
*Red: cervix; Blue: uterus; Khaki: bladder; Brown: rectum & liver; Teal: kidney; Light Blue: peritoneal reflection
*Orange: common illiac LNs; Yellow: external illiac LNs; Light Green: obturator LNs; Purple: internal illiac LNs; Dark Green: presacral LNs
</td>
</tr>
</table>
==Chemotherapy==
*'''AGO-Ovar/AIO & EBMT'''
**Randomized. 149 patients, untreated ovarian CA, s/p debulking surgery. Arm 1) standard combination chemo vs. Arm 2) HD chemo with stem cell rescue. Median F/U 3.2 years
**'''2007''' 17698804 -- "Phase III trial of high-dose sequential chemotherapy with peripheral blood stem cell support compared with standard dose chemotherapy for first-line treatment of advanced ovarian cancer: intergroup trial of the AGO-Ovar/AIO and EBMT." (Mobus V, J Clin Oncol. 2007 Sep 20;25(27):4187-93.)
***Outcome: Median OS standard chemo 5.2 years vs. HD chemo 4.5 years (NS)
***Conclusion: No benefit to HD chemo with stem cell rescue
p0epwcru51i3dteef40dk8067sxfl6t
Talk:English as an Additional Language/The English alphabet
1
231385
4674765
4304828
2026-10-06T18:18:18Z
~2026-53916-93
3627756
/* A */ new section
4674765
wikitext
text/x-wiki
{{WikiProject Languages|priority=low}}
== A ==
men [[Special:Contributions/~2026-53916-93|~2026-53916-93]] ([[User talk:~2026-53916-93|talk]]) 18:18, 6 October 2026 (UTC)
p8hcf0wxkat17qd98x0ka2dsyy28xna
4674767
4674765
2026-10-06T18:22:13Z
Codename Noreste
3441010
[[WB:REVERT|Reverted]] edit by [[Special:Contributions/~2026-53916-93|~2026-53916-93]] ([[User talk:~2026-53916-93|talk]]) to last version by Wolverine X-eye
4304828
wikitext
text/x-wiki
{{WikiProject Languages|priority=low}}
dm41ycku23q4eihf8ilogxffpg87769
Aros/User/Applications
0
237399
4674860
4674567
2026-10-07T11:11:42Z
Jeff1138
301139
4674860
wikitext
text/x-wiki
==Introduction==
[[#Graphical Image Editing Art]]
[[#Office Application]]
[[#Audio]]
[[#Misc Application]]
[[#Games & Emulation]]
[[#Application Guides]]
[[#top|...to the top]]
[[#top|...to the top]]
Most apps can be opened on the Workbench (aka publicscreen pubscreen) which is the default display option but can offer a custom one set to your configurations (aka custom screen mode promotion). These custom ones tend to stack so the possible use of A-M/A-N method of switching between full screens and the ability to pull down screens as well
If you are interested in creating or porting new software, see [http://en.wikibooks.org/wiki/Aros/Developer/Docs here]
{| class="wikitable sortable"
|-
!width:30%;|Internet Applications
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Web Online Browser [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=network/browser Amelinium], Odyssey 2.0, [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0], [],
|<!--Amiga OS-->[https://juen.in/ Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, [https://github.com/zapek/Voyager Voyager], [https://github.com/amigazen/aweb3/ AWeb 3.6 src], [https://github.com/matjam/aweb AWeb Src], [http://aminet.net/package/comm/www/NetSurf-m68k-sources Netsurf], [],
|<!--AmigaOS4-->[ Odyssey OWB], [ Timberwolf (Firefox port 2011)], [http://amigaworld.net/modules/newbb/viewtopic.php?forum=32&topic_id=32847 OWB-mui], [http://strohmayer.org/owb/ OWB-Reaction], IBrowse*, [http://os4depot.net/index.php?function=showfile&file=network/browser/aweb.lha AWeb], Voyager, [http://www.os4depot.net/index.php?function=browse&cat=network/browser Netsurf],
|<!--MorphOS-->Wayfarer, [http://fabportnawak.free.fr/owb/ Odyssey OWB], [ Netsurf], IBrowse*, AWeb, [],
|-
|<!--Sub Menu-->YouTube, Dailymotion website downloading videos audio [https://github.com/yt-dlp/yt-dlp yt-dlp], [https://clipgrab.org/ clipgrab],
|<!--AROS-->[], [https://blog.alb42.de/amitube/ Amitube],
|<!--Amiga OS-->[https://blog.alb42.de/amitube/ Amitube], [ smtube],
|<!--AmigaOS4-->[https://blog.alb42.de/amitube/ Amitube], getVideo, Tubexx, [https://github.com/walkero-gr/aiostreams aiostreams],
|<!--MorphOS-->[ ytsearch], [https://blog.alb42.de/amitube/ Amitube], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 getVideo], Tubexx
|-
|<!--Sub Menu-->Old style E-mailing SMTP POP3 IMAP based
|<!--AROS-->Emailinium, [http://archives.arosworld.org/index.php?function=browse&cat=network/email SimpleMail], [http://sourceforge.net/projects/simplemail/files/ src], [https://github.com/jens-maus/yam YAM]
|<!--Amiga OS-->Emailinium, [http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC, ICB,
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/chat WookieChat], [https://sourceforge.net/projects/wookiechat/ Wookiechat src], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat AiRcOS], Jabberwocky,
|<!--Amiga OS-->[https://github.com/charabaruk/WookieChat Wookiechat], AmIRC
|<!--AmigaOS4-->Wookiechat
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=5 Wookiechat], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 AmIRC],
|-
|<!--Sub Menu-->Instant Messaging IM like [https://github.com/BlitterStudio/amidon Hollywood lang based Mastodon client], BlueSky AT protocol, Facebook(TM), Twitter X (TM), Bitlbee IRC Gateway and others
|<!--AROS-->[https://github.com/kaffeine1/telegram-amiga telegram-amiga], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat jabberwocky],
|<!--Amiga OS-->[http://amitwitter.sourceforge.net/ AmiTwitter], CLIMM, SabreMSN, [https://sourceforge.net/projects/ajabberwocky/ jabberwocky],
|<!--AmigaOS4-->[http://amitwitter.sourceforge.net/ AmiTwitter], SabreMSN,
|<!--MorphOS-->[http://amitwitter.sourceforge.net/ AmiTwitter], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 PolyglotNG], SabreMSN,
|-
|<!--Sub Menu-->Torrents
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/p2p ArTorr],
|<!--Amiga OS-->
|<!--AmigaOS4-->CTorrent, Transmission
|<!--MorphOS-->MLDonkey, Beehive, [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Transmission], CTorrent,
|-
|<!--Sub Menu-->FTP
|<!--AROS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], MarranoFTP, [https://aminet.net/package/comm/tcp/wput-0.3.4c.i386-aros wput i386 c src]
|<!--Amiga OS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP, [https://aminet.net/package/comm/tcp/sana2-tftpclient sana2 tftpclient c src]
|<!--AmigaOS4-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|<!--MorphOS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Pftp], [http://aminet.net/package/comm/tcp/AmiFTP-1.935-OS4 AmiFTP],
|-
|<!--Sub Menu-->WYSIWYG Web Site Editor
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Internet Radio Streaming Audio [http://www.gnu.org/software/gnump3d/ gnump3d], [http://www.icecast.org/ Icecast2] Server (Broadcast) and Client (Listen), [ mpd], [http://darkice.sourceforge.net/ DarkIce], [http://www.dyne.org/software/muse/ Muse],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc], Mplayer (Icecast Client only),
|<!--Amiga OS-->[https://github.com/sandlbn/TuneFinder TuneFinder C Src], [https://github.com/sandlbn/TuneFinderMUI TuneFinderMUI], [http://amigazeux.net/anr/ AmiNetRadio], [https://github.com/boingball/MintAMP MintAMP], [],
|<!--AmigaOS4-->[http://www.tunenet.co.uk/ Tunenet],
|<!--MorphOS-->Mplayer, AmiNetRadio,
|-
|<!--Sub Menu-->VoIP (Voice over IP) with SIP Client (Session Initiation Protocol) or Asterisk IAX2 Clients Softphone (skype like)
|<!--AROS-->
|<!--Amiga OS-->AmiPhone with Speak Freely,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Weather Forecast
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ WeatherBar], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench AWeather], []
|<!--Amiga OS-->[http://amigazeux.net/wetter/ Wetter], [https://github.com/emartisoft/AmiWeatherForecasts AmiWeatherForecasts src],
|<!--AmigaOS4-->[http://os4depot.net/?function=showfile&file=utility/workbench/flipclock.lha FlipClock],
|<!--MorphOS-->[http://amigazeux.net/wetter/ Wetter],
|-
|<!--Sub Menu-->Street Road Maps Route Planning GPS Tracking
|<!--AROS-->[https://blog.alb42.de/programs/muimapparium/ MuiMapparium] [https://build.alb42.de/ Build of MuiMapp versions],
|<!--Amiga OS-->AmiAtlas*, UKRoutePlus*, [http://blog.alb42.de/ AmOSM],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://blog.alb42.de/programs/mapparium/ Mapparium],
|-
|<!--Sub Menu-->Clock and Date setting from the internet by network time protocol (NTP) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ old standard NIST Internet Time Servers],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync], [https://archives.arosworld.org/?function=showfile&file=utility/workbench/amitimekeeper.i386-aros.lha amitimekeeper with c src], [PiNTP], [],
|<!--Amiga OS-->ntpsync, [http://aminet.net/package/util/cdity/AmiTimeKeeper amitimekeeper], [http://aminet.net/comm/misc/netclock netclock], [https://aminet.net/package/comm/net/sntp sntp], [http://aminet.net/package/util/time/ScreenTime ScreenTime],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->RSS
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/Team-Boingo/AmiRSS AmiRSS src]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->AI
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/murinsel/AmigaAI Claude], [https://github.com/geekychris/amiga_mcp AI on host machine], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->BBS
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Graphical Image Editing Art==
{| class="wikitable sortable"
|-
!width:30%;|Image Editing
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Pixel Raster Artwork [https://github.com/LibreSprite/LibreSprite LibreSprite based on GPL aseprite], [https://github.com/abetusk/hsvhero hsvhero], [],
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/ZunePaint/ ZunePaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit LunaPaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit GrafX2], [ LodePaint needs OpenGL],
|<!--Amiga OS-->[http://www.amigaforever.com/classic/download.html PPaint], GrafX2, [https://github.com/grovdata/Amiga_Sources/blob/master/software.md DeluxePaint], [http://www.amiforce.de/perfectpaint/perfectpaint.php PerfectPaint], Zoetrope, Brilliance2*,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/edit LodePaint], GrafX2,
|<!--MorphOS-->Sketch, Pixel*, GrafX2, [http://morphos.lukysoft.cz/en/vypis.php?kat=3 LunaPaint]
|-
|<!--Sub Menu-->Image viewing
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LookHere], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LoView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer PicShow] , [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--Amiga OS-->PicShow, PicView, Photoalbum,
|<!--AmigaOS4-->WarpView, PicShow, flPhoto, Thumbs, [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album]
|-
|<!--Sub Menu-->Photography retouching / Image Manipulation like Photoshop(tm)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOEffects],
|<!--Amiga OS-->[ Tecsoft Video Paint aka TVPaint], Photogenics*, ArtEffect*, ImageFX*, XiPaint, fxPaint, ImageMasterRT, Opalpaint,
|<!--AmigaOS4-->WarpView, flPhoto, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit Photocrop]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], ImageFX*,
|-
|<!--Sub Menu-->Manage RAW picture folder galleries like Darktable, RAWtherapy, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Graphic Format Converter - ICC profile support sRGB, Adobe RGB, XYZ and linear RGB
|<!--AROS-->
|<!--Amiga OS-->GraphicsConverter, ImageStudio, [http://www.coplabs.org/artpro.html ArtPro]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Thumbnail Generator [],
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=utility/shell Thumbnail Generator]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Icon Editor
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/iconedit Archives], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench Icon Toolbox],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/iconedit IconEditor]
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Pixel Art Animation
|<!--AROS-->Lunapaint
|<!--Amiga OS-->PPaint, AnimatED, Scala*, GoldDisk MovieSetter*, Walt Disney's Animation Studio*, ProDAD*, [https://github.com/historicalsource/DeluxePaint DeluxePaint src], Brilliance
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 Titler]
|-
|<!--Sub Menu-->2D SVG based MovieSetter type
|<!--AROS-->
|<!--Amiga OS-->MovieSetter*, Fantavision*
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Morphing
|<!--AROS-->[ GLMorph]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Cad (qcad->LibreCAD, etc.)
|<!--AROS-->
|<!--Amiga OS-->Xcad, MaxonCAD
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Cad like FreeCad, BRL-CAD, OpenSCAD, AvoCADo, etc. using dxf, obj (vertices), blend,
|<!--AROS-->
|<!--Amiga OS-->XCad3d*, DynaCADD*, [https://aminet.net/package/gfx/3d/Cycas178_EN Cycas]*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Model Rendering of glft (json) gbl (png jpg), usdz (USD files with materials, textures, and animations), FBX Filmbox is a proprietary Autodesk format,
|<!--AROS-->POV-Ray
|<!--Amiga OS-->[http://www.discreetfx.com./amigaproducts.html CINEMA 4D]*, POV-Ray, Lightwave3D*, Real3D*, Caligari24*, Reflections/Monzoom*, [https://github.com/privatosan/RayStorm Raystorm src], Tornado 3D, [https://github.com/AlphaPixel/Eric-Graham-1987-Juggler-Raytracer-1.0 Eric-Graham-1987-Juggler-Raytracer-1.0]
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=graphics/convert/ 3doc.i386-aros], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen grabbing display
|<!--AROS-->[ Screengrabber], [http://archives.arosworld.org/index.php?function=browse&cat=utility/misc snapit], [http://archives.arosworld.org/index.php?function=browse&cat=video/record screen recorder], []
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Grab graphics music from apps [https://github.com/Malvineous/ripper6 ripper6], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Manage metadata of images [https://github.com/exiv2/exiv2 exiv2], [ EXIF/IPTC/XMP metadata manipulation], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Office Application==
{| class="wikitable sortable"
|-
!width:30%;|Office
!width:10%;|AROS (x86)
!width:10%;|[http://en.wikipedia.org/wiki/Amiga_software Commodore-Amiga OS 3.1] (68k)
!width:10%;|[http://en.wikipedia.org/wiki/AmigaOS_4 Hyperion OS4] (PPC)
!width:10%;|[http://en.wikipedia.org/wiki/MorphOS MorphOS] (PPC)
|-
|<!--Sub Menu-->Office Suite
|<!--AROS-->
|<!--Amiga OS-->[ Softwood Final Office], [ Wordworth Office], [ Digita Office], [ The Works!], [ Europress Mini Office], [], [ Papyrus Office Demo],
|<!--AmigaOS4-->
|<!--MorphOS-->[ Papyrus Office],
|-
|<!--Sub Menu-->Word-processing
|<!--AROS-->[https://finalwriter.godaddysites.com/ Final Writer 7*], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1995&rowstart=20&pid=12668#post_12668 Slovo], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [],
|<!--AmigaOS-->[ Softwood FinalCopy II*], Haage AmigaWriter*, Digita WordWorth*, Softwood FinalWriter*, Micro-Systems Excellence 3*, Arnor Protext, Rashumon, [ InterWord], [ KindWords], [WordPerfect], [ New Horizons Flow], [ CygnusEd Pro], [ Micro-systems Scribble],
|<!--AmigaOS4-->AbiWord, [ CinnamonWriter],
|<!--MorphOS-->[ Cinnamon Writer], [http://www.meta-morphos.org/viewtopic.php?topic=1246&forum=53 scriba], [http://morphos.lukysoft.cz/en/index.php Papyrus Office],
|-
|<!--Sub Menu-->Spreadsheets
|<!--AROS-->[https://blog.alb42.de/programs/leu/ Leu], [https://archives.arosworld.org/index.php?function=browse&cat=office/spreadsheet ],
|<!--AmigaOS-->[https://aminet.net/package/biz/spread/ignition-src Ignition Src 1.3], [MaxiPlan 500 Plus], [OXXI Plan/IT v2.0 Speadsheet], [ Superplan], [ Creative Developments TurboCalc], [ ProCalc], [ InterSpread], [Digita DGCalc], [ Gold Disk Advantage], [ Micro-systems Analyze!]
|<!--AmigaOS4-->Gnumeric, [https://ignition-amiga.sourceforge.net/ Ignition],
|<!--MorphOS-->[ ignition], [http://morphos.lukysoft.cz/en/vypis.php Papyrus Office],
|-
|<!--Sub Menu-->Presentations
|<!--AROS-->[http://www.hollywoood-mal.com/ Hollywood]*,
|<!--Amiga OS-->[http://www.hollywoood-mal.com/ Hollywood]*, [https://github.com/evaneykelen/mediapoint-amiga MediaPoint C and asm], PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, [https://sourceforge.net/projects/beebase/ BeeBase], Datastore, FinalData*, AmigaBase, Fiasco, Twist2*, [Digita DGBase], [],
|<!--AmigaOS4-->BeeBase, SQLite,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=6 BeeBase],
|-
|<!--Sub Menu-->PDF Viewing, editing and digital signatures
|<!--AROS-->[https://github.com/tomaszstaniak/aros-foliopdf folio version of mupdf], [http://sourceforge.net/projects/arospdf/ ArosPDF via splash xpdf], [https://github.com/wattoc/AROS-vpdf vpdf],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Note Taking markdown support like Obsidian like, joplin, OneNote, EverNotes, xournalpp, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Study and analyse, collect, organize, annotate, cite, and share
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PIM Personal Information Manager - Day Diary Planner Calendar App Filofax like
|<!--AROS-->[ ], [ ], [ ],
|<!--Amiga OS-->Digita Organiser*, On The Ball, Everyday Organiser, [ Contact Manager],
|<!--AmigaOS4-->AOrganiser,
|<!--MorphOS-->[http://polymere.free.fr/orga_en.html PolyOrga],
|-
|<!--Sub Menu-->Accounting
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/misc ETB], LoanCalc, [ ], [ ], [ ],
|[ Digita Home Accounts2], Accountant, Small Business Accounts, Account Master, [ Amigabok],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Project Management Research
|<!--AROS-->
|<!--Amiga OS-->SuperGantt, SuperPlan,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Desktop
|<!--AROS-->Wanderer, Scalos, Workbook, DOpus5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[https://github.com/zapek/Ambient Ambient Src]
|-
|<!--Sub Menu-->System Wide Search
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility/filetool Finder], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Wide Dictionary - multilingual [http://sourceforge.net/projects/babiloo/ Babiloo], [http://code.google.com/p/stardict-3/ StarDict],
|<!--AROS-->[ ],
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System wide Thesaurus - multi lingual
|<!--AROS-->[ ],
|Kuma K-Roget*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Sticky Desktop Notes (post it type)
|<!--AROS-->[http://aminet.net/package/util/wb/amimemos.i386-aros AmiMemos], [https://aminet.net/package/util/wb/amimemos.src-aros AmiMemos Src], [],
|<!--Amiga OS-->[http://aminet.net/package/util/wb/StickIt-2.00 StickIt v2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DTP Desktop Publishing
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOPublisher],
|<!--Amiga OS-->[http://pagestream.org/ Pagestream]*, Professional Pro Page*, Saxon Publisher, Pagesetter, PenPal,
|<!--AmigaOS4-->[http://pagestream.org/ Pagestream]*
|<!--MorphOS-->[http://pagestream.org/ Pagestream]*
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers, [https://github.com/bohunamiga/MintPRINT MintPRINT AirPrint IPP], [ Ghostscript], [],
|<!--Amiga OS-->[https://github.com/boingball/MintPRINT MintPRINT IPP], [https://github.com/Andiweli/AmiAirprint AmiAirprint], [http://www.irseesoft.de/tp_what.htm TurboPrint]*, [ GutenPrint], [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR], [], [],
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included, [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR],
|-
|<!--Sub Menu-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*, [https://github.com/boingball/MintSCAN MintSCAN],
|<!--AmigaOS4-->SCANdal (Sane)
|<!--MorphOS-->SCANdal
|-
|<!--Sub Menu-->OCR
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/convert gOCR]
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos-files.net/categories/office/text Tesseract]
|-
|<!--Sub Menu-->Text Editing
|<!--AROS-->Jano Editor (already installed as Editor), [http://archives.arosworld.org/index.php?function=browse&cat=development/edit EdiSyn], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate], [https://archives.arosworld.org/index.php?function=browse&cat=development/edit Vim], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd] [https://github.com/vidarh/FrexxEd src], [ NoWinEd],
|<!--Amiga OS-->[https://aminet.net/package/text/edit/TurboText20 TurboText20 ttx], Annotate, MicroGoldED/CubicIDE*, CygnusED*, Protext*, NoWinED,
|<!--AmigaOS4-->Notepad, Annotate, CygnusED*, NoWinED,
|<!--MorphOS-->MorphOS ED, NoWinED, GoldED/CubicIDE*, CygnusED*, Annotate,
|-
|<!--Sub Menu-->Office Fonts [http://sourceforge.net/projects/fontforge/files/fontforge-source/ Font Designer]
|<!--AROS-->[ ], [ ],
|<!--Amiga OS-->TypeSmith*, SaxonScript (GetFont Adobe Type 1),
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Drawing Vector
|<!--AROS-->[http://sourceforge.net/projects/amifig/ ZuneFIG previously AmiFIG], [https://github.com/serk118/designworks-aros designworks aros 64bit]
|<!--Amiga OS-->Drawstudio*, ProVector*, ArtExpression*, Professional Draw*, AmiFIG, MetaView, [https://gitlab.com/amigasourcecodepreservation/designworks Design Works Src], [],
|<!--AmigaOS4-->MindSpace, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit amifig],
|<!--MorphOS-->SteamDraw, [http://aminet.net/package/gfx/edit/amifig amiFIG],
|-
|<!--Sub Menu-->video conferencing (jitsi)
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->source code hosting
|<!--AROS-->Gitlab,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Remote Desktop (server)
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/VNC_Server ArosVNCServer],
|<!--Amiga OS-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC], [http://dspach.free.fr/amiga/avnc/index.html AVNC]
|<!--AmigaOS4-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC]
|MorphVNC, vncserver
|-
|<!--Sub Menu-->Remote Desktop (client) login and connect to another machine
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/VNC_Client/ ArosVNC], [http://archives.arosworld.org/index.php?function=browse&cat=network/misc rdesktop],
|<!--Amiga OS-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://dspach.free.fr/amiga/vva/index.html VVA], [http://www.hd-zone.com/ RDesktop]
|<!--AmigaOS4-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|-
|<!--Sub Menu-->notifications
|<!--AROS-->
|<!--Amiga OS-->Ranchero
|<!--AmigaOS4-->Ringhio
|<!--MorphOS-->MagicBeacon
|-
|<!--Sub Menu-->Biometric facial logins and fingerprint security features
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Audio==
{| class="wikitable sortable"
|-
!width:30%;|Audio
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing playback Audio like MP3, [https://github.com/chrg127/gmplayer NSF], [https://github.com/kode54/lazyusf miniusf .usflib] [https://gitlab.com/kode54/psflib with pfslib], [], [], etc
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ HarmonyPlayer hp], [http://www.a500.org/downloads/audio/index.xhtml playcdda] CDs, [ WildMidi Player], [https://bszili.morphos.me/ UADE mod player], [], [ RNOTunes], [ mp3Player], [],
|<!--Amiga OS-->AmiNetRadio, AmigaAmp, playOGG, [https://codeberg.org/tygre/amimodradio amimodradio]
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX], [ Samplitude],
|<!--AmigaOS4-->[https://sourceforge.net/projects/hd-rec/ HD-Rec], AmiSoundED, [http://os4depot.net/?function=showfile&file=audio/record/audioevolution4.lha Audio Evolution 4]
|[http://www.hd-rec.de/HD-Rec/index.php?site=home HD-Rec],
|-
|<!--Sub Menu-->Editing Tracker Music
|<!--AROS-->[https://github.com/hitchhikr/protrekkr Protrekkr], [ Schism Tracker], [http://archives.arosworld.org/index.php?function=browse&cat=audio/tracker MilkyTracker], [http://www.hivelytracker.com/ HivelyTracker], [ Radium in AROS already], [http://www.a500.org/downloads/development/index.xhtml libMikMod],
|<!--Amiga OS-->MilkyTracker, HivelyTracker, DigiBooster, Octamed SoundStudio, [https://github.com/elindstrom/soundtracker soundtracker],
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and musical notes on manuscript [https://github.com/ratchov/midish midish] midi sequencer
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes], [], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction Set DMCS2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src] [https://github.com/kas1e/midi-sequencer-amigaos/tree/master/HornyGCC HornyGCC OS4 src] [https://github.com/capehill/midi-sequencer-amigaos Horny OS4 fork src] [https://www.amigans.net/modules/newbb/viewtopic.php?start=0&topic_id=8143&order=ASC&status=&mode=0 OS4 thread], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator], [https://github.com/royaltm/Amiga-midiIn Amiga-midiIn], [ Aegis Sonix 2.0]
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [https://github.com/gooofy/freeaction Horny OS4 src fork], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[ Advanced AHI Recorder all], [https://archives.arosworld.org/index.php?function=browse&cat=audio/record Audio Evolution 4], [http://www.imica.net/SitePortalPage.aspx?siteid=1&did=162 Quick Record], [https://archives.arosworld.org/index.php?function=browse&cat=audio/misc SOX to get AIFF 16bit files], [https://github.com/aros-development-team/AROS/tree/master/workbench/tools/AHIRecord AHIRecord],
|<!--Amiga OS-->[https://aminet.net/package/mus/edit/AudioEvolution3_src Audio Evolution 3 c src], [ Samplitude]*, Audiomaster IV*,
|<!--AmigaOS4-->[https://github.com/timoinutilis/phonolith-amigaos phonolith c src], HD-Rec, Audio Evolution 4,
|<!--MorphOS-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Audio Evolution 4,
|-
|<!--Sub Menu-->Audio Processing like easyeffects so having limiter, compressor, convolver, equalizer and auto volume and many other plugins
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility IsoTools], [https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [ MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|<!--MorphOS-->[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|<!--AROS-->Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|<!--MorphOS-->Lame,
|-
|<!--Sub Menu-->MP3 v1 and v2 Tagger
|<!--AROS-->id3ren (v1), [http://archives.arosworld.org/index.php?function=browse&cat=audio/edit mp3info],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|
|-
|<!--Sub Menu-->Audio Convert
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc Sox], [],
|<!--Amiga OS-->[http://aminet.net/package/mus/misc/SoundBox SoundBox], [http://aminet.net/package/mus/misc/SoundBoxKey SoundBox Key], [http://aminet.net/package/mus/edit/SampleE SampleE], sox
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DJ mixing jamming
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/djh0ffman/PT1210 Hoffman PT1210 DJ tracker], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Radio Automation Software [http://www.rivendellaudio.org/ Rivendell], [http://code.campware.org/projects/livesupport/report/3 Campware LiveSupport], [http://www.sourcefabric.org/en/airtime/ SourceFabric AirTime], [http://www.ohloh.net/p/mediabox404 MediaBox404],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speakers Audio Sonos Mains AC networked wired controlled
*2005 ZP100 with ZP80
*2008 Zoneplayer ZP120 (multi-room wireless amp) ZP90 receiver only with CR100 controller,
*2009 ZonePlayer S5,
*2010 BR100 wireless Bridge (no support),
*2011 Play:3
*2013 Bridge (no support), Play:1,
*2016 Arc, Play:1,
*Beam (Gen 2), Playbar, Ray, Era 100, Era 300, Roam, Move 2,
*Sub (Gen 3), Sub Mini, Five, Amp S2
|<!--AROS-->SonosController
|<!--Amiga OS-->SonosController
|<!--AmigaOS4-->SonosController
|<!--MorphOS-->SonosController
|-
|<!--Sub Menu-->Smart Speakers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Video Creativity and Production==
{| class="wikitable sortable"
|-
!width:30%;|Video
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing Video
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ VAMP], [http://www.a500.org/downloads/video/index.xhtml CDXL player], [http://www.a500.org/downloads/video/index.xhtml IffAnimPlay], [],
|<!--Amiga OS-->Frogger*, AMP2, MPlayer, RiVA*, MooViD*,
|<!--AmigaOS4-->DvPlayer, MPlayer
|<!--MorphOS-->MPlayer, Frogger, AMP2, VLC
|-
|<!--Sub Menu-->Streaming Video and game streaming like OBS studio, Parsec, [https://github.com/lizardbyte/sunshine sunshine], [https://github.com/moonlight-stream/moonlight-qt moonlight], etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Playing DVD
|<!--AROS-->[http://a-mc.biz/ AMC]*, Mplayer
|<!--Amiga OS-->AMP2, Frogger
|<!--AmigaOS4-->[http://a-mc.biz/ AMC]*, DvPlayer*, AMP2,
|<!--MorphOS-->Mplayer
|-
|<!--Sub Menu-->Screen Recording
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/record Screenrecorder], [ ], [ ], [ ], [ ],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Screenrecorder,
|-
|<!--Sub Menu-->Create Edit Individual Video - Amiga like OSs have no pro NLE
|<!--AROS-->[ Mencoder], [ Quick Videos], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit AVIbuild], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/misc FrameBuild], FFMPEG,
|<!--Amiga OS-->[ MainConcept Mainactor Broadcast*], [http://en.wikipedia.org/wiki/Video_Toaster Video Toaster*] with [https://discreetfx.com/openvideotoaster.html some c src], MacroSystem MovieShop 4.3*, proDAD Adorage*, [ IOSpirit VHI studio]*, [Gold Disk ShowMaker], [],
|<!--AmigaOS4-->FFMpeg/GUI
|<!--MorphOS-->Blender, Mencoder, FFmpeg
|-
|<!--Sub Menu-->Subtitle editor
|<!--AROS-->[https://aminet.net/package/text/edit/Slarti_Arosx86ABIv0 Slarti_Arosx86ABIv0], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->IP-based video production workflows with High Dynamic Range (HDR), 10-bit color collaborative NDI,
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Blogging like Lemmy or kbin
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR face recognition for Vtubers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting Live2D models with Cubism type editor or [https://github.com/AyagamiDev/ayagami ayagami] like with zipped moc3 with model metadata (model3, cdi3)
<pre>
Model data (cmo3)
Basic motions (can3)
Background image (png)
Set of files for embedding (runtime folder)
• Model data (moc3)
• Motion data (motion3.json)
• Model settings file (model3.json)
• Physics settings file (physics3.json)
• Display auxiliary file (cdi3.json)
</pre>
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting chatters .VRML models - standardized 3D file format for VR avatars
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->V-tubers V-tubing like Vseeface with Openseeface tracker or Vpuppr (virtual puppet project) for online live 2d / 3d art models rigging rigged LIV
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Misc Application==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->File Management
|<!--AROS-->DOpus4, [https://github.com/BlitterStudio/dopus5 DOpus Magellan aka DOpus 5], [ Scalos], [ FileMaster],
|<!--Amiga OS-->DOpus2, DOpus 4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], ClassAction, FileMaster, DirWork 2*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], Filer, AmiDisk
|<!--MorphOS-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->[https://arosarchives.os4depot.net/index.php?function=browse&cat=utility md5sum], [https://arosarchives.os4depot.net/index.php?function=browse&cat=utility/filetool asum], [http://archives.arosworld.org/index.php?function=browse&cat=utility/filetool workpar2] (PAR2), [http://zakalwe.fi/~shd/foss/cksfv/files/ compile cksfv from website],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Par2,
|-
|<!--Sub Menu-->Package Application Installer
|<!--AROS-->[https://github.com/tomaszstaniak?tab=repositories Pkg manager], [https://aros-pkg.azurewebsites.net/search?arch=x86_64 Pkg], [ InstallerNG],
|<!--Amiga OS-->InstallerNG, Grunch,
|<!--AmigaOS4-->Jack
|<!--MorphOS-->Jack
|-
|<!--Sub Menu-->Compression archiver [https://github.com/FS-make-simple/paq9a paq9a], [],
|<!--AROS-->XAD system is a toolkit designed for handling various file and disk archiver
|<!--Amiga OS-->
|<!--AmigaOS4-->[https://aminet.net/package/util/pack/decrunchmania_os4 Crunchmania CrM2 depacker],
|<!--MorphOS-->
|-
|<!--Sub Menu-->Binary Hexadecimal Editor
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/edit Zaphod], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter Disk Management
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [ HDToolBox]
|<!--Amiga OS-->[https://github.com/stefanskotte/hdpart hdpart], [https://github.com/ChuckyGang/AmiPart AmiPart],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair and backups
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS-->[https://aminet.net/package/disk/bakup/quarterback_src Quarterback Tools C and asm src], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Disk check, integrity and history [https://github.com/smartmontools/smartmontools smart tools], [],
|<!--AROS-->
|<!--Amiga OS-->[],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Multiple File renaming
|<!--AROS-->DOpus 4 or 5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Anti Virus
|<!--AROS-->
|<!--Amiga OS-->VChecker,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Random Wallpaper Desktop changer [ DOpus5], [ Scalos],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Alarm Clock, Timer, Stopwatch, Countdown
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench DClock], [http://aminet.net/util/time/AlarmClockAROS.lha AlarmClock], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 2==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->C/C++ IDE Integrated Development
|<!--AROS-->[https://sourceforge.net/projects/aidea/ AIDEa], [ Murks], [],
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, [ StormC], [https://github.com/jens-maus/amide amide], [],
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*,
|-
|<!--Sub Menu-->C/C++ Text Editors
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate] with [https://www.onyxsoft.se/files/annotate_src.lha src],
|<!--Amiga OS-->[ Protext], [ CED], [],
|<!--AmigaOS4-->
|<!--MorphOS-->[https://www.onyxsoft.se/annotate.html Annotate],
|-
|<!--Sub Menu-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->BASIC Computer Language
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/language Basic4SDL], [ Ace Basic], [ X-AMOS], [SDLBasic], [ Alvyn],
|<!--Amiga OS-->[http://www.amiforce.de/main.php Amiblitz 3] with [https://github.com/AmiBlitz/AmiBlitz3 Asm src], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro] with [https://github.com/AmiDARK/AmosProfessionalUnity-Official-Releases Asm src], [http://aminet.net/package/dev/basic/ace24dist ACE Basic], [https://github.com/gooofy/aqb aqb], [],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/], [https://github.com/kermitfrog/Amiga-Re-Engineering Rust, Ghidra and FS-UAE],
|<!--AROS-->
|<!--Amiga OS-->[https://bitbucket.org/rhinoid/convert68000toc/src/main/ convert m68k seka asm-one to c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Gui Creators
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/guitool MuiBuilder],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[ MuiBuilder],
|-
|<!--Sub Menu-->Catalog .cd .ct Custom App Language Editors
|<!--AROS-->FlexCat, [https://archives.arosworld.org/index.php?function=browse&cat=utility Flexcat GUI], [],
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|<!--MorphOS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->Cross Development
|<!--AROS-->[], [],
|<!--Amiga OS-->[https://github.com/geekychris/amiga_mcp amiga_mcp], [https://github.com/mbergmann-sh/AmigaED4-IDE AmigaED4-IDE], [https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/ Turbo Rascal], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Misc Application 3==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Terminals Shells CLIs
|<!--AROS-->[https://github.com/tomaszstaniak/limpet limpet], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->OSK On Screen Keyboard
|<!--AROS-->[],
|<!--Amiga OS-->[https://aminet.net/util/wb/OSK.lha OSK]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Magnifier Magnifying Glass Magnification
|<!--AROS-->[http://www.onyxsoft.se/files/zoomit.lha ZoomIT],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Comic Book CBR CBZ format reader viewer
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comics], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comicon], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Reader
|<!--AROS-->[https://blog.alb42.de/programs/#legadon Legadon EPUB],[]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Converter
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Text to Speech tts [https://github.com/JonathanFly/bark-installer Bark], [],
|<!--AROS-->[ Echo " " >SPEAK:A1 inbuilt], [http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator], [https://github.com/sidick/narrator.wyoming narrator.wyoming], [],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=search&tool=simple FLite]
|<!--MorphOS-->[http://se.aminet.net/pub/aminet/mus/misc/ FLite]
|-
|<!--Sub Menu-->Speech Voice Recognition Dictation - [http://sourceforge.net/projects/cmusphinx/files/ CMU Sphinx], [http://julius.sourceforge.jp/en_index.php?q=en/index.html Julius], [http://www.isip.piconepress.com/projects/speech/index.html ISIP],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speech Voice Changer [], [], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Display Blanker screensaver
|<!--AROS-->Blanker Commodity (built in), [https://archives.arosworld.org/index.php?function=browse&cat=graphics/screenblanker GarshneBlanker], [http://sourceforge.net/projects/gblanker/ GBlanker Src], [],
|<!--Amiga OS-->MultiCX,
|<!--AmigaOS4-->
|<!--MorphOS-->ModernArt Blanker,
|-
|<!--Sub Menu-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 4==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Fractals mandelbrot, etc
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/misc],
|<!--Amiga OS-->ZoneXplorer,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Landscape Rendering
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/raytrace WCS World Construction Set],
|<!--Amiga OS-->[ Vista Pro], [http://en.wikipedia.org/wiki/World_Construction_Set World Construction Set]
|<!--AmigaOS4-->[ WCS World Construction Set],
|<!--MorphOS-->[ WCS World Construction Set],
|-
|<!--Sub Menu-->Astronomy [https://sourceforge.net/projects/skychart/ skychart freepascal], [], [],
|<!--AROS-->[ Digital Almanac (ABIv0 only)],
|<!--Amiga OS-->[http://aminet.net/search?query=planetarium Aminet search], [http://aminet.net/misc/sci/DA3V56ISO.zip Digital Almanac], [https://aminet.net/package/misc/sci/da3sourceV58 Src c V58], [ Galileo renamed to Distant Suns]*, [],
|<!--AmigaOS4-->[http://sourceforge.net/projects/digital-almanac/ Digital Almanac], Distant Suns*, [http://www.digitaluniverse.org.uk/ Digital Universe]*,
|<!--MorphOS-->[http://www.aminet.net/misc/sci/da3.lha Digital Almanac], [http://www.aminet.net/package/misc/sci/da3-mos-src Src c V56],
|-
|<!--Sub Menu-->Astrology [https://sourceforge.net/projects/skylendar/ skylendar], [https://github.com/CruiserOne/Astrolog Astrolog], [https://www.astrolog.org/astrolog/astfile.htm Astrology alt site], [https://saravali.github.io/download.html Maitreya], [https://github.com/alamahant/Asteria Asteria],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Genealogy History Family Tree Ancestry Records (FreeBMD, FreeREG, and FreeCEN file formats or GEDCOM GenTree)
|<!--AROS-->
|<!--Amiga OS--> [ Origins], [ Your Family Tree], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Languages
|<!--AROS-->
|<!--Amiga OS-->Fun School,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Mathematics ([http://www-fourier.ujf-grenoble.fr/~parisse/install_en.html Xcas], etc.),
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/scientific mathX]
|<!--Amiga OS-->Maple V, mathX, Fun School, GCSE Maths, [ ], [ ], [ ],
|<!--AmigaOS4-->Yacas
|<!--MorphOS-->Yacas
|-
|<!--Sub Menu-->Maths Graph Function Plotting
|<!--AROS-->[https://blog.alb42.de/programs/#MUIPlot MUIPlot],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->App Utility Launcher Dock toolbar
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/docky BoingBar], [],
|<!--Amiga OS-->[https://github.com/adkennan/DockBot Dockbot],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Printer [https://github.com/OrcaSlicer/OrcaSlicer OrcaSlicer]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CNC control with laser and vinyl cutting
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->HAM radio, amateur radio, packet radio, [], [], [], [https://cemaxecuter.com/ Dragon OS], [https://github.com/km4ack/73Linux with 73 link update], [https://www.youtube.com/watch?v=YAL5KNePRSg video for],
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/punktniklas/NiKom NiKom], [https://www.amigarealm.com/amiga/amicomms/comm4.htm Comm4], [https://www.amigarealm.com/archives/comms/aarug/ TNC Terminal Node Controller with packets over serial connections on Yaesu or Woxum handheld], [https://aminet.net/comm/misc AmiCom], [ with 7Plus file encoder/decoder], [ mksstv], [ RTTYam],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->modern smart home network like Home Assistant Automation Yellow, Green, Mosquitto, EMQX,
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/evil4dmin/ami2ha HA], [https://github.com/sidick/midge mtqq.lib], [https://aminet.net/package/comm/tcp/AmiHomeassist-0.7 AmiHomeassist],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Teaching classroom learning training [https://github.com/moodle/moodle moodle], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
<nowiki>*</nowiki> Commercial product.
==Games & Emulation==
Some emulators/games require OpenGL to function and to adjust ahi prefs channels, frequency and unit0 and unit1 and
[http://aros.sourceforge.net/documentation/users/shell/changetaskpri.php changetaskpri -1]
Rom patching https://www.marcrobledo.com/RomPatcher.js/ https://www.romhacking.net/patch/ (ips, ups, bps, etc) and this other site supports the latter formats https://hack64.net/tools/patcher.php
Free public domain roms for use with emulators can be found [http://www.pdroms.de/ here] as most of the rest are covered by copyright rules. If you like to read about old games see [http://retrogamingtimes.com/ here] and [http://www.armchairarcade.com/neo/ here] and a [http://www.vintagecomputing.com/ blog] about old computers. Possibly some of the [http://www.answers.com/topic/list-of-best-selling-computer-and-video-games best selling] of all time. [http://en.wikipedia.org/wiki/List_of_computer_system_emulators Wiki] with emulated systems list.
[https://archive.gamehistory.org/ Archive of VGHF], [https://library.gamehistory.org/ Video Game History Foundation Library search]
{| class="wikitable sortable"
|-
!width:10%;|Games [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Emulation]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Games Emulation Amstrad CPC
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [ Caprice32 (OpenGL & pure SDL)], [ Arnold], [https://retroshowcase.gr/cpcbox-master/],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2],
|-
|<!--Sub Menu-->Games Emulation Apple2 and 2GS
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Arcade
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Mame], [ SI Emu (ABIv0 only)],
|<!--Amiga OS-->Mame,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem xmame], amiarcadia,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 Mame],
|-
|<!--Sub Menu-->Games Emulation Atari 2600 [], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Stella],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 5200 [https://github.com/wavemotion-dave/A5200DS A5200DS], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 7800
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 400 800 130XL [https://github.com/wavemotion-dave/A8DS A8DS], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Atari800],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Lynx
|<!--AROS-->[http://myfreefilehosting.com/f/6366e11bdf_1.93MB Handy (ABIv0 only)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Jaguar
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Bandai Wonderswan
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation BBC Micro and Acorn Electron [http://beehttps://bem-unix.bbcmicro.com/download.html BeebEm], [http://b-em.bbcmicro.com/ B-Em], [http://elkulator.acornelectron.co.uk/ Elkulator], [http://electrem.emuunlim.com/ ElectrEm],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Dragon 32 and Tandy CoCo [http://www.6809.org.uk/xroar/ xroar], [],
|<!--AROS-->[], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C16 Plus4
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C64
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Vice (ABIv0 only)], [],
|<!--Amiga OS-->Frodo,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem viceplus],
|<!--MorphOS-->Vice,
|-
|<!--Sub Menu-->Games Emulation Commodore Amiga
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Janus UAE], Emumiga,
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer UAE],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 UAE],
|-
|<!--Sub Menu-->Games Emulation Japanese MSX MSX2
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Intelivision
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Colecovision and Adam
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Milton Bradley (MB) Vectrex [ Vectrex OpenGL],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation PICO8 Pico-8 fantasy video game console [https://github.com/egordorichev/pemsa-sdl/ pemsa-sdl], [https://github.com/jtothebell/fake-08 fake-08], [https://github.com/Epicpkmn11/fake-08/tree/wip fake-08 fork],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo Gameboy
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem vba no sound], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem vba]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo NES
|<!--AROS-->[ EmiNES], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Fceu], [https://github.com/takahirox/nes-js?tab=readme-ov-file nes-js], [https://github.com/bfirsh/jsnes jsnes], [https://github.com/angelo-wf/NesJs NesJs],
|<!--Amiga OS-->AmiNES, [http://www.dridus.com/~nyef/darcnes/ darcNES],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem amines]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo SNES
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Zsnes],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem warpsnes]
|<!--MorphOS-->[http://fabportnawak.free.fr/snes/ Snes9x],
|-
|<!--Sub Menu-->Games Emulation Nintendo N64
*HLE and plugins [ mupen64], [https://github.com/ares-emulator/ares ares], [https://github.com/N64Recomp/N64Recomp N64Recomp], [https://github.com/rt64/rt64 rt64], [https://github.com/simple64/simple64 Simple64],
*LLE [],
|<!--AROS-->[http://code.google.com/p/mupen64plus/ Mupen64+],
|<!--Amiga OS-->[http://code.google.com/p/mupen64plus/ Mupen64+], [http://aminet.net/package/misc/emu/tr-981125_src TR64],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Gamecube Wii]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Wii U]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/yuzu-emu Nintendo Switch]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation NEC PC Engine
|<!--AROS-->[], [], [https://github.com/yhzmr442/jspce js-pce],
|[http://www.hugo.fr.fm/ Hugo], [http://mednafen.sourceforge.net/ Mednafen],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem tgemu]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Master System (SMS)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Dega], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem sms],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem osmose]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Genesis/Megadrive
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem gp no sound], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem DGen],
|<!--Amiga OS-->[http://code.google.com/p/genplus-gx/ Genplus],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem genesisplus]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Saturn
*HLE [https://mednafen.github.io/ mednafen], [http://yabause.org/ yabause], [],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->[http://yabause.org/ Yabause],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Dreamcast
*HLE [https://github.com/flyinghead/flycast flycast], [https://code.google.com/archive/p/nulldc/downloads NullDC],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair ZX80 and ZX81
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair Spectrum
|[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Fuse (crackly sound)], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer SimCoupe], [ FBZX slow], [https://jsspeccy.zxdemo.org/ jsspeccy], [http://torinak.com/qaop/games qaop],
|<!--Amiga OS-->[http://www.zophar.net/sinclair.html Speculator], [http://www.worldofspectrum.org/x128/index.html X128],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair QL
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/QDOS4amiga1 QDOS4amiga]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation SNK NeoGeo Pocket
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem gngeo], NeoPop,
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sony PlayStation
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem FPSE],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem FPSE]
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS2]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS3]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://vita3k.org/ Sony Vita]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/shadps4-emu/shadPS4 PS4]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation [http://en.wikipedia.org/wiki/Tangerine_Computer_Systems Tangerine] Oric and Atmos
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Oricutron]
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem Oricutron]
|<!--MorphOS-->[http://aminet.net/package/misc/emu/oricutron Oricutron]
|-
|<!--Sub Menu-->Games Emulation TI 99/4 99/4A [https://github.com/wavemotion-dave/DS994a DS994a], [], [https://js99er.net/#/ js99er], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation HP 38G 40GS 48 49G/50G Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation TI 58 83 84 85 86 - 89 92 Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games emulation Ms-Dos Dosbox type
|<!--AROS-->[https://github.com/tomaszstaniak/aros-boxerapp Boxer]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
{| class="wikitable sortable"
|-
!width:10%;|Games [https://www.rockpapershotgun.com/ General]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|- style="background:lightgrey;{{text default color}}; text-align:center; font-weight:bold;"
| Games [https://www.trackawesomelist.com/michelpereira/awesome-open-source-games/ Open Source and others] || AROS || Amiga OS || Amiga OS4 || Morphos
|-
|<!--Sub Menu-->Games Action like [https://github.com/opentomb/OpenTomb opentomb], [https://github.com/LostArtefacts/TRX TRX formerly Tomb1Main], [https://github.com/TombEngine TombEngine], [http://archives.arosworld.org/index.php?function=browse&cat=game/action Thrust], [https://github.com/fragglet/sdl-sopwith sdl sopwith],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/action], [https://archives.arosworld.org/index.php?function=browse&cat=game/action BOH], [],
|<!--Amiga OS-->[https://github.com/BSzili/OpenLara/tree/amiga/src source of openlara SDL2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Adventure like [http://dotg.sourceforge.net/ DMJ], [https://github.com/kromenak/gengine Gabriel Knight 3], [http://www.sarien.net/ Sierra Sarien], [https://github.com/klembot/twinejs twine js], [https://github.com/QSPFoundation/qspgui Quest Soft Player QSP], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/adventure dmagnetic], [https://archives.arosworld.org/?function=browse&cat=emulation/misc ScummVM], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying frotz infocom], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Board like [https://github.com/aperture-software/colditz-escape escape from colditz], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/board], [http://amigan.1emu.net/releases Africa]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Cards
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/card], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12934#post_12934 Balatro],
|<!--AmigaOS-->[http://home.arcor.de/amigasolitaire/e/welcome.html Reko], [https://github.com/samskivert/beschei-en beschei Src],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Misc [https://github.com/michelpereira/awesome-open-source-games Awesome open], [https://github.com/bobeff/open-source-games General Open Source], [https://github.com/SAT-R/sa2 Sonic Advance 2], [https://github.com/velorek1/cwordle Wordle type],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/misc], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games FPS like [https://aminet.net/package/game/shoot/D1X_Rebirth_AGA Descent D1X src], [https://github.com/DescentDevelopers/Descent3 Descent 3], [https://github.com/Fewnity/Counter-Strike-Nintendo-DS Counter-Strike-Nintendo-DS], [https://github.com/Aleph-One-Marathon/alephone Bungie Marathon 1994], [https://zdoom.org/downloads UzDoom opengl 3.3], [https://github.com/ZDoom/gzdoom gzdoom opengl 3+], [https://zdoom.org/downloads LZDoom opengl 2.1], [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray], [https://staniks.github.io/articles/serious-engine-networking-analysis/ Serious Sam] [https://github.com/Croteam-official/Serious-Engine Serious Engine 1]
|<!--AROS-->Doom, Quake, [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Quake 3 Arena (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Assault Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube 2 Sauerbraten (OpenGL)], [http://fodquake.net/test/ FodQuake QuakeWorld], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Duke Nukem 3D], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Darkplaces Nexuiz Xonotic], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Doom 3 SDL (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Hexenworld and Hexen 2], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Aliens vs Predator Gold 2000 avp (openGL)], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Odamex (openGL doom)], [https://archives.arosworld.org/?function=showfile&file=game/fps/ zgloom], [], [https://archives.arosworld.org/?function=showfile&file=game/fps/ ab3dhd], [],
|<!--Amiga OS-->Doom, Quake, AB3D, Fears, Breathless, Gloom,
|<!--AmigaOS4-->Doom, Quake,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12 Doom], Quake, Quake 3 Arena,
|-
|<!--Sub Menu-->Games MMORG like
|<!--AROS-->[ Eternal Lands (OpenGL)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Platform like
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/platform], [ Maze of Galious], [ Gish]*(openGL), [ Mega Mario], [https://archives.arosworld.org/?function=showfile&file=game/platform/ thextech SMBX], [http://www.gianas-return.de/ Giana's Return], [http://www.sqrxz.de/ Sqrxz], [www.sqrxz2.de/ Sqrxz 2], [http://www.sqrxz.de/sqrxz-3/ Sqrxz 3], [http://www.sqrxz.de/sqrxz-4/ Sqrxz 4], [http://archives.arosworld.org/index.php?function=browse&cat=game/platform Cave Story], [https://bszili.morphos.me/ Frogatto], [https://bszili.morphos.me/ OpenJazz], [https://archives.arosworld.org/?function=showfile&file=game/platform/ pekkakana2], [ Aquaria], [https://archives.arosworld.org/?function=showfile&file=game/platform/ sonic CD], [],
|<!--Amiga OS-->[ Giana Sisters], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Puzzle [https://github.com/mariopartyrd/marioparty4/tree/port Party], [https://github.com/mdodis/OpenSolomonsKey OpenSolomonsKey], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle], [ Cubosphere (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle Candy Crisis], [http://bszili.morphos.me/ TailTale],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Racing [ Trigger Rally], [ VDrift], [http://www.ultimatestunts.nl/index.php?page=2&lang=en Ultimate Stunts], [http://maniadrive.raydium.org/ Mania Drive], [https://github.com/plowteam/donut Simpsons Hit and Run], [],
|<!--AROS-->[ Super Tux Kart (OpenGL)], [http://www.dusabledanslherbe.eu/AROSPage/F1Spirit.30.html F1 Spirit (OpenGL)], [http://bszili.morphos.me/index.html MultiRacer], [https://bszili.morphos.me/ Speed Dreams], [https://archives.arosworld.org/?function=showfile&file=game/driving/dethrace-0.10.1.x86_64-aros-v11.zip Carmageddon dethrace 64bit], [http://maniadrive.raydium.org/index.php?downloads=yes maniadrive like trackmania],
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://bszili.morphos.me/index.html Speed Dreams],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12], [http://bszili.morphos.me/index.html TORCS],
|-
|<!--Sub Menu-->Games 1st first person DRPG [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/OpenEnroth/OpenEnroth OpenEnroth MM], []
|<!--AROS-->[https://github.com/BSzili/aros-stuff Arx Libertatis], [http://www.playfuljs.com/a-first-person-engine-in-265-lines/ js raycaster], [https://github.com/Dorthu/es6-crpg webgl], [https://github.com/sonountaleban/AmiShockolate System Shock], [], [],
|<!--AmigaOS-->Phantasie, Faery Tale, Dungeon Master,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 3rd third person action CRPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/alexbatalov/fallout1-ce fallout ce], [https://github.com/rwengine/openrw gta3], [https://github.com/gta-reversed/gta-reversed gta3 sa], [https://github.com/mrxenginner/reVC gta3 vc revc], [https://github.com/jakobharder/burntime/tree/main Burntime],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=game/strategy/ fheroes2 homm2], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ breakhack], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ devilutionx diablo 1 hellfire], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ fallout 1], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ stratagus], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ hostile-takeover], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games isometric RPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/topics/dungeon?l=javascript Dungeon], [], [https://github.com/clintbellanger/heroine-dusk JS Dusk],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying nethack], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying GemRB], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games card based RPG [https://github.com/open-duelyst/duelyst Duelyst], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games turn based tactics RPG [], [], [], [], [], [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/strategy UFO AI], [http://play.freeciv.org/ FreeCiv], [https://juen.in Aveterna online civ], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Strategy [http://rtsgus.org/ RTSgus], [http://stargus.sourceforge.net/ Stargus], [https://github.com/KD-lab-Open-Source/Perimeter Perimeter], [https://matty77.itch.io/conflict-3049 conflict-3049], [https://github.com/ZeroK-RTS/Zero-K Zero-K multi player rts lua],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/strategy MegaGlest (OpenGL)], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ signus], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=140&pid=12446#post_12446 Wargus warcraft 2 setup],
|<!--Amiga OS-->[https://aminet.net/package/game/strat/OpenDUNE_RTG OpenDUNE_RTG src]
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Rhythm, Beat, Step [], [], [https://clonehero.net/ clonehero], [https://github.com/MatteoGodzilla/Dj-Engine Dj-Engine],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/misc Frets on Fire], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Shoot Em Ups [http://www.mhgames.org/oldies/formido/ Formido], [http://code.google.com/p/violetland/ Violetland],
||<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/action Open Tyrian], [http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ Alien Blaster], [https://github.com/OpenFodder/openfodder OpenFodder], [https://archives.arosworld.org/?function=showfile&file=game/action/ tbftss The Battle for the Solar System: the Pandora War]
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ The Battle for the Solar System: the Pandora War]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Simulations [http://scp.indiegames.us/ Freespace 2], [http://www.heptargon.de/gl-117/gl-117.html GL117], [http://code.google.com/p/corsix-th/ Theme Hospital], [http://code.google.com/p/freerct/ Rollercoaster Tycoon], [http://hedgewars.org/ Hedgewars], [https://github.com/raceintospace/raceintospace raceintospace], [https://github.com/Return-To-The-Roots RTTR Settlers 2], [https://github.com/OoliteProject/oolite oolite elite], [https://github.com/fesh0r/newkind newkind elite], [https://github.com/bohemiainteractive/cwr Arma Cold War Src], [https://github.com/endless-sky/endless-sky endless-sky], [https://github.com/pioneerspacesim/pioneer pioneer space command],
|<!--AROS-->[https://github.com/tomaszstaniak/aros-micropolis micropolis]
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park, [https://github.com/angree/openttd_amiga_68k openttd amiga_68k],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Life Sim [https://github.com/ACreTeam/forest Animal Crossing], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Horror [https://github.com/Mikompilation/MikuPan Fatal Frame], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Sandbox Voxel Open World Exploration [https://github.com/ClassiCube/ Classicube],[http://www.michaelfogleman.com/craft/ Craft], [https://github.com/tothpaul/DelphiCraft DelphiCraft],[https://www.minetest.net/ Luanti formerly Minetest], [ infiniminer],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Battle Royale [https://bruh.io/ Play.Bruh.io], [https://www.coolmathgames.com/0-copter Copter Royale], [https://surviv.io/ Surviv.io], [https://nuggetroyale.io/#Ketchup Nugget Royale], [https://miniroyale2.io/ Miniroyale2.io],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Tower Defense [https://chriscourses.github.io/tower-defense/ HTML5], [https://github.com/SBardak/Tower-Defense-Game TD C++], [https://github.com/bdoms/love_defense LUA and LOVE], [https://github.com/HyOsori/Osori-WebGame HTML5], [https://github.com/PascalCorpsman/ConfigTD ConfigTD Pascal], [https://github.com/GloriousEggroll/wine-ge-custom Wine], []
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12871#post_12871 Plants vs Zombies PvZ],
|<!--Amiga OS-->[https://github.com/boingball/miggy-tower-defense miggy-tower-defense],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/diane1f0cd/VisualNovelTemplate Visual Novel Template], [https://github.com/Kirilllive/tuesday-js Tuesday JS], [https://github.com/tejasnayak25/vnsutra vnsutra], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [https://github.com/NathanGuilhot/VNES-Raylib https://github.com/NathanGuilhot/VNES VNES in Raylib], [https://www.renpy.org/latest.html renpy ren'py python based],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Reality VR [https://gitlab.com/madsbuvi/openmw openmw vr], [https://github.com/Team-Beef-Studios/BeefRaiderXR BeefRaiderXR],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Table Top VTT [ Roll20], [https://www.owlbear.rodeo/ owlbear rodeo], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Computer assisted TableTop TTRPG OSR [https://www.rpgsolo.com/play.php RPGSolo], [https://github.com/fpsvogel/solo-ttrpgs Solo TTRPG], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 2D 3D Engines [https://github.com/fegennari/3DWorld 3DWorld], [https://github.com/GarageGames/Torque3D Torque3D], [https://github.com/gameplay3d/GamePlay GamePlay 3D], [https://www.babylonjs.com/ BabylonJS ], [ Godot], [ Ogre], [ Crystal Space], [https://github.com/JacobHess03/ Dragon-Quest like], [https://github.com/bjornbytes/lovr Lua LOVE for 2D LOVR for 3D], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->[https://github.com/alpyre/Sevgi_Engine Sevgi Engine], [], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games C based game frameworks [https://github.com/orangeduck/Corange Corange], [https://github.com/scottcgi/Mojoc Mojoc], [https://orx-project.org/ Orx], [https://github.com/ioquake/ioq3 Quake 3], [https://www.mapeditor.org/ Tiled], [https://www.raylib.com/ 2d Raylib], [https://github.com/Rabios/awesome-raylib other raylib], [https://github.com/MrFrenik/gunslinger Gunslinger], [https://o3de.org/ o3d], [http://archives.aros-exec.org/index.php?function=browse&cat=development/library GLFW], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/library Raylib 5],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games RPGMaker MV/MZ-compatible projects [https://github.com/Psychronic-Games/RPGReactor RPGReactor js],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games unpack unarc [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
==Application Guides==
[[#top|...to the top]]
===Web Browser===
OWB is now at version 2.0 (which got an engine refresh, from July 2015 to February 2019) and 3.0.
This latest version has a good support for many/most web sites, even YouTube web page now works. [https://www.bilibili.tv/en/search untested]
This improved compatibility comes at the expense of higher RAM usage (now 1GB RAM is the absolute minimum).
Also, keep in mind that the lack of a JIT (Just-In-Time) JS compiler on the 32 bit version, makes the web surfing a bit slow.
Only the 64 bit version of OWB 2.0 will have JIT enabled, thus benefitting of more speed. There are tooltypes that can be added to the icon to provide further features JIT, MSE etc
Certificates from [https://curl.se/docs/caextract.html ca certs],
DNS tracking blocking with [https://easylist.to/easylist/easylist.txt easylist.txt] in PROGDIR:Conf before starting browser with enabled AdBlock [https://github.com/easylist/easylist/tree/master easylist], [https://gitlab.com/eyeo anti abp], [https://firebog.net/ big blocklist], [https://github.com/StevenBlack/hosts Steves], [], [],
This can be enabled with OWB Odyssey with Windows -> Content Blocking and Windows -> Messages and enter
https://www.youtube.com/api/stats/ads*
https://www.youtube.com/pagead/adview*
https://www.youtube.com#@##player-ads*
into your custom filters
Element blocker browser extension might be needed for [https://github.com/easylist/easylist/wiki/Youtube-Issues youtube], [ mid roll], [ pre roll], [ ],
OWB speed is much better when running from RAM Disk, the best way is to add the below into your S:User-Startup which copies OWB drawer from Extras:Internet/OWB to RAM Disk:
So add this :
<pre>
copy Extras:Internet/OWB Ram:OWB/ ALL CLONE >NIL:
copy Extras:Internet/OWB.info Ram: >NIL:
</pre>
Open RAM Disk and open OWB drawer and double click on OWB icon so that the above icon tooltypes are activated
Problems are that the copy time is long (around 20 seconds added in the background), but we can make it faster if we delete useless files from the OWB drawer (docs, …)
If you don’t copy the drawer back onto the HD, you won’t save your cache, cookies, passwords… So you need a script for it.
copy Extras:Internet/Amelinium/#? Ram:Amelinium/ ALL CLONE >NIL:
Error messages
SSL error "cant verify with ca-certificates", check bios clock time date is correct
Error 6, try checking networking prefs settings and Save / Use preferences again or a '''few times''' otherwise the network chipset may not be compatible with Aros
[https://www.google.com/search?q=%s&udm=14 Google search without AI overview]
[ DuckDuckGo]
[ Ecosia]
[ Qwant]
[ Swisscows]
[ Mojeek]
[ Brave Search]
[ PreSearch]
[ Startpage]
===E-mail===
Emailinium is now available for IMAP and POP3 based accounts
YAM does not support SSL and most mail providers now switched to encrypted SMTP/POP3 connections
====SimpleMail====
SimpleMail supports IMAP and appears to work with GMail, but it's never been reliable enough, it can crash with large mailboxes.
Please read more on this [http://www.freelists.org/list/simplemail-usr User list]
GMail
Be sure to activate the pop3 usage in your gmail account setup / configuration first.
pop3:
pop.gmail.com
Use SSL: Yes
Port: 995
smtp:
smtp.gmail.com (with authentication)
Use Authentication: Yes
Use SSL: Yes
Port: 465 or 587
Hotmail/MSN/outlook/Microsoft Mail mid-2017, all outlook.com accounts will be migrated to Office 365 / Exchange
Most users are currently on POP which does not allow showing folders and many other features (technical limitations of POP3). With Microsoft IMAP you will get folders, sync read/unread, and show flags. You still won't get push though, as Microsoft has not turned on the IMAP Idle command as at Sept 2013.
If you want to try it, you need to first remove (you can't edit) your pop account (long-press the account on the accounts screen, delete account). Then set it up this way:
1. Email/Password
2. Manual
3. IMAP
4.
* Incoming: imap-mail.outlook.com, port 993, SSL/TLS should be checked
* Outgoing: smtp-mail.outlook.com, port 587, SSL/TLS should be checked
* POP server name pop-mail.outlook.com, port 995, POP encryption method SSL
Yahoo Mail
On April 24, 2002 Yahoo ceased to offer POP access to its free mail service. Introducing instead a yearly payment feature, allowing users POP3 and IMAP server support, along with such benefits as larger file attachment sizes and no adverts.
Sorry to see Yahoo leaving its users to cough up for the privilege of accessing their mail. Understandable, when competing against rivals such as Gmail and Hotmail who hold a large majority of users and were hacked in 2014 as well.
Incoming Mail (IMAP) Server
* Server - imap.mail.yahoo.com
* Port - 993
* Requires SSL - Yes
Outgoing Mail (SMTP) Server
* Server - smtp.mail.yahoo.com
* Port - 465 or 587
* Requires SSL - Yes
* Requires authentication - Yes
Your login info
* Email address - Your full email address (name@domain.com)
* Password - Your account's password
* Requires authentication - Yes
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a subscription subs fee to have access to SMTP and POP3
* Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
* “Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
* “Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
* “Password” – Your Yahoo Mail password.
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
* Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
====YAM Yet Another Mailer====
YAM does not support SSL and most mail providers have now switched to encrypted SMTP/POP3 connections
This email client is POP3 only if the SSL library is available [http://www.freelists.org/list/yam YAM Freelists]
One of the downsides of using a POP3 mailer unfortunately - you have to set an option not to delete the mail if you want it left on the server. IMAP keeps all the emails on the server.
Possible issues
Sending mail issues is probably a matter of using your ISP's SMTP server, though it could also be an SSL issue.
getting a "Couldn't initialise TLSv1 / SSL error
Use of on-line e-mail accounts with this email client is not possible as it lacks the OpenSSL AmiSSl v3 compatible library
GMail
Incoming Mail (POP3) Server - requires SSL: pop.gmail.com
Use SSL: Yes
Port: 995
Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587
Account Name: your Gmail username (including '@gmail.com')
Email Address: your full Gmail email address (username@gmail.com)
Password: your Gmail password
Anyway, the SMTP is pop.gmail.com port 465 and it uses SSLLv3 Authentication. The POP3 settings are for the same server (pop.gmail.com), only on port 995 instead.
Outlook.com access
<pre >
Outlook.com SMTP server address: smtp.live.com
Outlook.com SMTP user name: Your full Outlook.com email address (not an alias)
Outlook.com SMTP password: Your Outlook.com password
Outlook.com SMTP port: 587
Outlook.com SMTP TLS/SSL encryption required: yes
</pre >
Yahoo Mail
<pre >
“POP3 Server” – Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
“SMTP Server” – Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
“Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
“Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
“Password” – Your Yahoo Mail password.
</pre >
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a monthly fee to have access to SMTP and POP3
Microsoft Outlook Express Mail
1. Get the files to your PC.
By whatever method get the files off your Amiga onto your PC. In the YAM folder you have a number of different folders, one for each of your folders in YAM. Inside that is a file usually some numbers such as 332423.283. YAM created a new file for every single email you received.
2. Open up a brand new Outlook Express. Just configure the account to use 127.0.0.1 as mail servers. It doesn't really matter. You will need to manually create any subfolders you used in YAM.
3. You will need to do a mass rename on all your email files from YAM. Just add a .eml to the end of it. Amazing how PCs still rely mostly on the file name so it knows what sort of file it is rather than just looking at it! There are a number of multiple renamers online to download and free too.
4. Go into each of your folders, inbox, sent items etc. And do a select all then drag the files into Outlook Express (to the relevant folder obviously) Amazingly the file format that YAM used is very compatible with .eml standard and viola your emails appear. With correct dates and working attachments.
5. If you want your email into Microsoft Outlook. Open that up and create a new profile and a new blank PST file. Then go into File Import and choose to import from Outlook Express. And the mail will go into there. And viola.. you have your old email from your Amiga in a more modern day format.
===FTP===
Magellan has a great FTP module. It allows transferring files from/to a FTP server over the Internet or the local network and, even if FTP is perceived as a "thing of the past", its usability is all inside the client. The FTP thing has a nice side effect too, since every Icaros machine can be a FTP server as well, and our files can be easily transferred from an Icaros machine to another with a little configuration effort.
First of all, we need to know the 'server' IP address. Server is the Icaros machine with the file we are about to download on another Icaros machine, that we're going to call 'client'. To do that, move on the server machine and 1) run Prefs/Services to be sure "FTP file transfer" is enabled (if not, enable it and restart Icaros); 2) run a shell and enter this command:
ifconfig -a
Make a note of the IP address for the network interface used by the local area network. For cabled devices, it usually is net0:. Now go on the client machine and run Magellan:
Perform these actions: 1) click on FTP; 2) click on ADDRESS BOOK; 3) click on "New".
You can now add a new entry for your Icaros server machine:
1) Choose a name for your server, in order to spot it immediately in the address book. Enter the IP address you got before.
2) click on Custom Options:
1) go to Miscellaneous in the left menu;
2) Ensure "Passive Transfers" is NOT selected;
3) click on Use. We need to deactivate Passive Transfers because YAFS, the FTP server included in Icaros, only allows active transfers at the current stage. Now, we can finally connect to our new file source:
1) Look into the address book for the newly introduced server, be sure that name and IP address are right, and
2) click on Connect. A new lister with server's "MyWorkspace" contents will appear. You can now transfer files over the network choosing a destination among your local (client's) volumes.
Can be adapted to any FTP client on any platform of your choice, just be sure your client allows Active Transfers as well.
===IRC Internet Relay Chat===
Jabberwocky is ideal for one-to-one social media communication, use IRC if you require one to many.
Just type a message in ''lowercase''' letters and it will be posted to all in the [ AROS irc channel]. Please do not use UPPER CASE as it is a sign of SHOUTING which is annoying.
Other things to type in - replace <message> with a line of text and <nick> with a person's name
<pre>
/help
/list
/who
/whois <nick>
/msg <nick> <message>
/query <nick>
<message>s
/query
/away <message>
/away
/quit <going away message>
</pre>
[http://irchelp.org/irchelp/new2irc.html#smiley Intro guide here]. IRC Primer can be found here in [http://www.irchelp.org/irchelp/ircprimer.html html], [http://www.irchelp.org/irchelp/text/ircprimer.txt TXT], [http://www.kei.com/irc/IRCprimer1.1.ps PostScript].
Issue the command /me <text> where <text> is the text that should follow your nickname.
Example: /me slaps ajk around a bit with a large trout
/nick <newNick>
/nickserv register <password> <email address>
/ns instead of /nickserv, while others might need /msg nickserv
/nickserv identify <password>
Alternatives:
/ns identify <password>
/msg nickserv identify <password>
==== IRC WookieChat ====
WookieChat is the most complete internet client for communication across the IRC Network. WookieChat allows you to swap ideas and communicate in real-time, you can also exchange Files, Documents, Images and everything else using the application's DCC capabilities.
add smilies drawer/directory
run wookiechat from the shell and set stack to 1000000 e.g. wookiechat stack 1000000
select a server / server window
* nickname
* user name
* real name - optional
Once you configure the client with your preferred screen name, you'll want to find a channel to talk in.
servers
* New Server - click on this to add / add extra - change details in section below this click box
* New Group
* Delete Entry
* Connect to server
* connect in new tab
* perform on connect
Change details
* Servername - change text in this box to one of the below Server:
* Port number - no need to change
* Server password
* Channel - add #channel from below
* auto join - can click this
* nick registration password,
Click Connect to server button above
<pre>
Server: irc.freenode.net
Channel: #aros
</pre>
irc://irc.freenode.net/aros
<pre>
Server: chat.amigaworld.net
Channel: #amigaworld or #amigans
</pre>
<pre>
On Sunday evenings USA time usually starting around 3PM EDT (1900 UTC)
Server:irc.superhosts.net
Channel #team*amiga
</pre>
<pre>
BitlBee and Minbif are IRCd-like gateways to multiple IM networks
Server: im.bitlbee.org
Port 6667
Seems to be most useful on WookieChat as you can be connected to several servers at once. One for Bitlbee and any messages that might come through that. One for your normal IRC chat server.
</pre>
[http://www.bitlbee.org/main.php/servers.html Other servers],
<pre>
#Amiga.org - irc.synirc.net eu.synirc.net dissonance.nl.eu.synirc.net (IPv6: 2002:5511:1356:0:216:17ff:fe84:68a)
twilight.de.eu.synirc.net zero.dk.eu.synirc.net us.synirc.net avarice.az.us.synirc.net envy.il.us.synirc.net harpy.mi.us.synirc.net
liberty.nj.us.synirc.net snowball.mo.us.synirc.net - Ports 6660-6669 7001 (SSL)
</pre>
<pre>
Multiple server support
"Perform on connect" scripts and channel auto-joins
Automatic Nickserv login
Tabs for channels and private conversations
CTCP PING, TIME, VERSION, SOUND
Incoming and Outgoing DCC SEND file transfers
Colours for different events
Logging and automatic reloading of logs
mIRC colour code filters
Configurable timestamps
GUI for changing channel modes easily
Configurable highlight keywords
URL Grabber window
Optional outgoing swear word filter
Event sounds for tabs opening, highlighted words, and private messages
DCC CHAT support
Doubleclickable URL's
Support for multiple languages using LOCALE
Clone detection
Auto reconnection to Servers upon disconnection
Command aliases
Chat display can be toggled between AmIRC and mIRC style
Counter for Unread messages
Graphical nicklist and graphical smileys with a popup chooser
</pre>
====IRC Aircos ====
Double click on Aircos icon in Extras:Networking/Apps/Aircos. It has been set up with a guest account for trial purposes. Though ideally, choose a nickname and password for frequent use of irc.
====IRC and XMPP Jabberwocky====
Servers are setup and close down at random
You sign up to a server that someone else has setup and access chat services through them.
The two ways to access chat from jabberwocky
<pre >
Jabberwocky -> Server -> XMPP -> open and ad-free
Jabberwocky -> Server -> Transports (Gateways) -> Proprietary closed systems
</pre >
The Jabber.org service connects with all IM services that use XMPP, the open standard for instant messaging and presence over the Internet. The services we connect with include Google Talk (closed), Live Journal Talk, Nimbuzz, Ovi, and thousands more. However, you can not connect from Jabber.org to proprietary services like AIM, ICQ, MSN, Skype, or Yahoo because they don’t yet use XMPP components (XEP-0114) '''but''' you can use Jabber.com's servers and IM gateways (MSN, ICQ, Yahoo etc.) instead.
The best way to use jabberwocky is in conjunction with a public jabber server with '''transports''' to your favorite services, like gtalk, Facebook, yahoo, ICQ, AIM, etc.
You have to register with one of the servers, [https://list.jabber.at/ this list] or [http://www.jabberes.org/servers/ another list], [http://xmpp.net/ this security XMPP list],
Unfortunately jabberwocky can only connect to one server at a time so it is best to check what services each server offers. If you set it up with separate Facebook and google talk accounts, for example, sometimes you'll only get one or the other.
Jabberwocky open a window where the Jabber server part is typed in as well as your Nickname and Password.
Jabber ID (JID) identifies you to the server and other users.
Once registered the next step is to goto Jabberwocky's "Windows" menu and select the "Agents" option. The "Agents List" window will open.
Roster (contacts list)
[http://search.wensley.org.uk/ Chatrooms] (MUC) are available
File Transfer - can send and receive files through the Jabber service but not with other services like IRC, ICQ, AIM or Yahoo. All you need is an installed webbrowser and OpenURL.
Clickable URLs - The message window uses Mailtext.mcc and you can set a URL action in the MUI mailtext prefs like SYS:Utils/OpenURL %s NEWWIN.
There is no consistent Skype like (H.323 VoIP) video conferencing available over Jabber. The move from xmpp to Jingle should help but no support on any amiga-like systems at the moment. [http://aminet.net/package/dev/src/AmiPhoneSrc192 AmiPhone] and [http://www.lysator.liu.se/%28frame,faq,nobg,useframes%29/ahi/v4-site/ Speak Freely] was an early attempt voice only contact. SIP and Asterisk are other PBX options.
Facebook
If you're using the XMPP transport provided by Facebook themselves, chat.facebook.com, it looks like they're now requiring SSL transport. This means jabberwocky method below will no longer work. The best thing to do is to create an ID on a public jabber server which has a Facebook gateway.
<pre >
1. launch jabberwocky
2. if the login window doesn't appear on launch, select 'account' from the jabberwocky menu
3. your jabber ID will be user@chat.facebook.com where user is your user ID
4. your password is your normal facebook password
5. to save this for next time, click the popup gadget next to the ID field
6. click the 'add' button
7. click the 'close' button
8. click the 'connect' button
</pre >
you're done. you can also click the 'save as default account' button if you want. jabberwocky configured to auto-connect when launching the program, but you can configure as you like. there is amigaguide documentation included with jabberwocky.
[http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=37085&forum=32 Read more here]
for Facebook users, you can log-in directly to Facebook with jabberwocky. just sign in as @chat.facebook.com with your Facebook password as the password
Twitter
For a few years, there has been added a twitter transport. Servers include [http://jabber.hot-chilli.net/ jabber.hot-chili.net], and .
An [http://jabber.hot-chilli.net/tag/how-tos/ How-to]
:Read [http://jabber.hot-chilli.net/2010/05/09/twitter-transport-working/ more]
Instagram
no support at the moment best to use a web browser based client
ICQ
The new version (beta) of StriCQ uses a newer ICQ protocol. Most of the ICQ Jabber Transports still use an older ICQ protocol. You can only talk one-way to StriCQ using the older Transports. Only the newer ICQv7 Transport lets you talk both ways to StriCQ. Look at the server lists in the first section to check.
Register on a Jabber server, e.g. this one works: http://www.jabber.de/
Then login into Jabberwocky with the following login data e.g. xxx@jabber.de / Password: xxx Now add your ICQ account under the window->Agents->"Register". Now Jabberwocky connects via the Jabber.de server with your ICQ account.
Yahoo Messenger
although yahoo! does not use xmpp protocol, you should be able to use the transport methods to gain access and post your replies
MSN
early months of 2013 Microsoft will ditch MSN Messenger client and force everyone to use Skype...but MSN protocol and servers will keep working as usual for quite a long time....
Occasionally the Messenger servers have been experiencing problems signing in. You may need to sign in at www.outlook.com and then try again. It may also take multiple tries to sign in. (This also affects you if you’re using Skype.)
You have to check each servers' Agents List to see what transports (MSN protocol, ICQ protocol, etc.) are supported or use the list address' provided in the section above. Then register with each transport (IRC, MSN, ICQ, etc.) to which you need access. After registering you can Connect to start chatting.
msn.jabber.com/registered should appear in the window.
From this [http://tech.dir.groups.yahoo.com/group/amiga-jabberwocky/message/1378 JW group] guide which helps with this process in a clear, step by step procedure.
1. Sign up on MSN's site for a passport account. This typically involves getting a Hotmail address.
2. Log on to the Jabber server of your choice and do the following:
* Select the "Windows/Agents" menu option in Jabberwocky.
* Select the MSN Agent from the list presented by the server.
* Click the Register button to open a new window asking for:
**Username = passort account email address, typically your hotmail address.
**Nick = Screen name to be shown to anyone you add to your buddy list.
**Password = Password for your passport account/hotmail address.
* Click the Register button at the bottom of the new window.
3. If all goes well, you will see the MSN Gateway added to your buddy list. If not, repeat part 2 on another server. Some servers may show MSN in their list of available agents, but have not updated their software for the latest protocols used by MSN.
4. Once you are registered, you can now add people to your buddy list. Note that you need to include the '''msn.''' ahead of the servername so that it knows what gateway agent to use. Some servers may use a slight variation and require '''msg.gate.''' before the server name, so try both to see what works.
If my friend's msn was amiga@hotmail.co.uk and my jabber server was @jabber.meta.net.nz..
then amiga'''%'''hotmail.com@'''msn.'''jabber.meta.net.nz
or another the trick to import MSN contacts is that you don't type the hotmail URL but the passport URL... e.g. Instead of: goodvibe%hotmail.com@msn.jabber.com You type: goodvibe%passport.com@msn.jabber.com
And the thing about importing contacts I'm afraid you'll have to do it by hand, one at the time...
Google Talk
any XMPP server will work, but you have to add your contacts manually. a google talk user is typically either @gmail.com or @talk.google.com. a true gtalk transport is nice because it brings your contacts to you and (can) also support file transfers to/from google talk users.
implement Jingle a set of extensions to the IETF's Extensible Messaging and Presence Protocol (XMPP)
support ended early 2014 as Google moved to Google+ Hangouts which uses it own proprietary format
===Video Player MPlayer===
Many of the menu features (such as doubling) do not work with the current version of mplayer but using
4:3
mplayer -vf scale=800:600 file.avi
16:9
mplayer -vf scale=854:480 file.avi
if you want gui use;
mplayer -gui 1 <other params> file.avi
<pre >
stack 1000000
; using AspireOS 1.xx
; copy FROM SYS:Extras/Multimedia/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 1.x
; copy FROM SYS:Tools/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 2.x
; copy FROM SYS:Utilities/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
cd RAM:MPlayer
run MPlayer -gui > Nil:
;run MPlayer -gui -ao ahi_dev -playlist http://www.radio-paralax.de/listen.pls > Nil:
</pre >
$ mplayer rtsp://127.0.0.1:554/sample_300kbit.mp4
MPlayer supports multicast streaming, and rtp/rtsp protocols (it might require [http://www.live555.com/openRTSP/ live555 library] to work with some streams). But you might have to build it where it's disabled. Also, multicast won't work with some AmiTCP-likes. MIAMI supported it, though.
AROS supports IPv4 (old but works) and this includes the needed address space for RTP.
If you mean multicast via RTP - mplayer handles it. You can even force UDP over TCP
-rtsp-stream-over-tcp
If the rtsp Real Time Streaming Protocol server needs authentification:
-user -passwd
MPlayer - Menu - Open Playlist and load already downloaded .pls or .m3u file - auto starts around 4 percent cache
MPlayer - Menu - Open Stream and copy one of the .pls lines below into space allowed, press OK and press play button on main gui interface
Old 8bit 16bit remixes chip tune game music
http://www.radio-paralax.de/listen.pls
http://scenesat.com/
http://www.shoutcast.com/radio/Amiga
http://www.theoldcomputer.com/retro_radio/RetroRadio_Main.htm
http://www.kohina.com/
http://www.remix64.com/
http://retrogamer.net/forum/
http://retroasylum.podomatic.com/rss2.xml
http://retrogamesquad.com/
http://www.retronauts.com/
http://monsterfeet.com/noquarter/
http://www.retrogamingradio.com/
http://www.radiofeeds.co.uk/mp3.asp
[[#top|...to the top]]
====ZunePaint====
simplified typical workflow
* importing and organizing and photo management
* making global and regional local correction(s) - recalculation is necessary after each adjustment as it is not in real-time
* exporting your images in the best format available with the preservation of metadata
Whilst achieving 80% of a great photo with just a filter, the remaining 20% comes from a manual fine-tuning of specific image attributes.
For photojournalism, documentary, and event coverage, minimal touching is recommended. Stick to Camera Raw for such shots, and limit changes to level adjustment, sharpness, noise reduction, and white balance correction.
For fashion or portrait shoots, a large amount of adjustment is allowed and usually ends up far from the original. Skin smoothing, blemish removal, eye touch-ups, etc. are common. Might alter the background a bit to emphasize the subject.
Product photography usually requires a lot of sharpening, spot removal, and focus stacking.
For landscape shots, best results are achieved by doing the maximum amount of preparation before/while taking the shot. No amount of processing can match timing, proper lighting, correct gear, optimal settings, etc. Excessive post-processing might give you a dramatic shot but best avoided in the long term.
* White Balance - Left Amiga or F12 and K and under "Misc color effects" tab with a pull down for White Balance - color temperature also known as AKA tint (movies) or tones (painting) - warm temp raise red reduce green blue - cool raise blue lower red green
* Exposure - exposure compensation, highlight/shadow recovery
* Noise Reduction - during RAW development or using external software
* Lens Corrections - distortion, vignetting, chromatic aberrations
* Detail - capture sharpening and local contrast enhancement
* Contrast - black point, levels (sliders) and curves tools (F12 and K)
* Framing - straighten () and crop (F12 and F)
* Refinements - color adjustments and selective enhancements - Left Amiga or F12 and K for RGB and YUV histogram tabs -
* Resizing - enlarge for a print or downsize for the web or email (F12 and D)
* Output Sharpening - customized for your subject matter and print/screen size
White Balance - F12 and K
scan your image for a shade which was meant to be white (neutral with each RGB value being equal) like paper or plastic which is in the same light as the subject of the picture. Use the dropper tool to select this color, similar colours will shift and you will have selected the perfect white balance for your part of the image - for the whole picture make sure RAZ or CLR button at the bottom is pressed before applying to the image above.
Exposure correction
F12 and K - YUV Y luminosity - RGB extra red tint - move red curve slightly down and move blue green curves slightly up
Workflows in practice
* Undo - Right AROS key or F12 and Z
* Redo - Right AROS key or F12 and R
First flatten your image (if necessary) and then do a rotation until the picture looks level.
* Crop the picture. Click the selection button and drag a box over the area of the picture you want to keep. Press the crop button and the rest of the photo will be gone.
* Adjust your saturation, exposure, hue levels, etc., (right AROS Key and K for color correction) until you are happy with the photo. Make sure you zoom in all of the way to 100% and look the photo over, zoom back out and move around. Look for obvious problems with the picture.
* After coloring and exposure do a sharpen (Right AROS key and E for Convolution and select drop down option needed), e.g. set the matrix to 5x5 (roughly equivalent Amount to 60%) and set the Radius to 1.0. Click OK.
And save your picture
Implemented or would like to see for simplification and ease of use
basic filters (presets) like black and white, monochrome, edge detection (sobel), motion/gaussian blur,
* negative, sepiatone, retro vintage, night vision, colour tint, color gradient, color temperature, glows, fire, lightning, lens flare, emboss, filmic, pixelate mezzotint, antialias, etc.
adjust / cosmetic tools such as crop,
* reshaping tools, straighten, smear, smooth, perspective, liquify, bloat, pucker, push pixels in any direction, dispersion, transform like warp, blending with soft light, page-curl, whirl, ripple, fisheye, neon, etc.
* red eye fixing, blemish remover, skin smoothing, teeth whitener, make eyes look brighter, desaturate,
effects like oil paint, cartoon, pencil sketch, charcoal, noise/matrix like sharpen/unsharpen, (right AROS key with A for Artistic effects)
* blend two image, gradient blend, masking blend, explode, implode, custom collage, surreal painting, comic book style, needlepoint, stained glass, watercolor, mosaic, stencil/outline, crayon, chalk, etc.
borders such as
* dropshadow, rounded, blurred, color tint, picture frame, film strip polaroid, bevelled edge, etc.
brushes e.g.
* frost, smoke, etc.
and manual control of
fix lens issues including vignetting (darkening), color fringing and barrel distortion, and chromatic and geometric aberration - lens and body profiles
perspective correction
levels - directly modify the levels of the tone-values of an image, by using sliders for highlights, midtones and shadows
curves - Color Adjustment and Brightness/Contrast
color balance
one single color transparent (alpha channel (color information/selections) for masking and/or blending ) for backgrounds, etc.
Threshold indicates how much other colors will be considered mixture of the removed color and non-removed colors
decompose layer into a set of layers with each holding a different type of pattern that is visible within the image
any selection using any selecting tools like lasso tool, marquee tool etc. the selection will temporarily be save to alpha
If you create your image without transparency then the Alpha channel is not present, but you can add later.
File formats like .psd (Photoshop file has layers, masks etc. contains edited sensor data. The original sensor data is no longer available) .xcf .raw .hdr
Image Picture Formats
* low dynamic range (JPEG, PNG, TIFF 8-bit), 16-bit (PPM, TIFF), typically as a 16-bit TIFF in either ProPhoto or AdobeRGB colorspace - TIFF files are also fairly universal – although, if they contain proprietary data, such as Photoshop Adjustment Layers or Smart Filters, then they can only be opened by Photoshop making them proprietary.
* linear high dynamic range (HDR) images (PFM, [http://www.openexr.com/ ILM .EXR], jpg, [http://aminet.net/util/dtype cr2] (canon tiff based), hdr, NEF, CRW, ARW, MRW, ORF, RAF (Fuji), PEF, DCR, SRF, ERF, DNG files are RAW converted to an Adobe proprietary format - a container that can embed the raw file as well as the information needed to open it)
An old version of [http://archives.aros-exec.org/index.php?function=browse&cat=graphics/convert dcraw]
There is no single RAW file format. Each camera manufacturer has one or more unique RAW formats. RAW files contain the brightness levels data captured by the camera sensor. This data cannot be modified. A second smaller file, separate XML file, or within a database with instructions for the RAW processor to change exposure, saturation etc. The extra data can be changed but the original sensor data is still there. RAW is technically least compatible.
A raw file is high-bit (usually 12 or 14 bits of information) but a camera-generated TIFF file will be usually converted by the camera (compressed, downsampled) to 8 bits. The raw file has no embedded color balance or color space, but the TIFF has both. These three things (smaller bit depth, embedded color balance, and embedded color space) make it so that the TIFF will lose quality more quickly with image adjustments than the raw file. The camera-generated TIFF image is much more like a camera processed JPEG than a raw file. A strong advantage goes to the raw file. The power of RAW files, such as the ability to set any color temperature non-destructively and will contain more tonal values.
The principle of preserving the maximum amount of information to as late as possible in the process. The final conversion - which will always effectively represent a "downsampling" - should prevent as much loss as possible.
Once you save it as TIFF, you throw away some of that data irretrievably. When saving in the lossy JPEG format, you get tremendous file size savings, but you've irreversibly thrown away a lot of image data. As long as you have the RAW file, original or otherwise, you have access to all of the image data as captured.
Keyboard equivalence with Photoshop(tm) would help
File
PHOTOSHOP SHORTCUT GIMP
New Ctrl+n New
Open Ctrl+o Open
Close Ctrl+w Close
Save Ctrl+s Save
Save as Shift+Ctrl+s Save as
Revert F12 Revert
Print Ctrl+p Print
Exit Ctrl+q Quit
Edit
PHOTOSHOP SHORTCUT GIMP
Undo/Redo (1 level) Ctrl+z Undo (Redo is Shift+Ctrl+z)
Cut Ctrl+x Cut
Copy Ctrl+c Copy
Paste Ctrl+v Paste
Paste Into Shift+Ctrl+v Paste Into
Fill with FG color Alt+Backspace Fill with FG color
Fill with BG color Control+Backspace Fill with BG color
Image/Colors
PHOTOSHOP SHORTCUT GIMP
Levels Ctrl+l Levels
Auto Contrast Shift+Ctrl+Alt+l Stretch Contrast (same?)
Curves Ctrl+m Curves
Color Balance Ctrl+b Color Balance
Hue/Saturation Ctrl+u Hue-Saturation
Desaturate Shift+Ctrl+u Desaturate
Invert Ctrl+i Invert
Default Colors d Default Colors
Switch Colors x Switch Colors
Layer
PHOTOSHOP SHORTCUT GIMP
New Layer Shift+Ctrl+n New Layer
Layer via Copy Ctrl+j Duplicate Layer
Bring (layer) to Front Shift+Ctrl+] Layer to Top
Send (layer) to Back Shift+Ctrl+[ Layer to Bottom
Bring (layer) Forward Ctrl+] Raise Layer
Send (layer) Backward Ctrl+[ Lower Layer
Select Top Layer Shift+Alt+] Select Top Layer
Select Bottom Layer Shift+Alt+[ Select Bottom Layer
Select One Layer Forward Alt+] Select Previous Layer
Select One Layer Backward Alt+[ Select Next Layer
Merge Down Ctrl+e Merge Down
Merge Visible Shift+Ctrl+e Merge Visible
Preserve Transparency / Keep Transparency
Cycle Modes Forwards Shift+= Next Layer Mode
Cycle Modes Backwards Shift+- Previous Layer Mode
Select
PHOTOSHOP SHORTCUT GIMP
Select All Ctrl+a Select All
Deselect Ctrl+d Select None
Inverse Shift+Ctrl+i Invert
Feather Ctrl+Alt+d Feather
View
PHOTOSHOP SHORTCUT GIMP
Zoom In Ctrl+= Zoom In
Zoom Out Ctrl+- Zoom Out
Fit on Screen Ctrl+0 Zoom to Fit Window
Actual Pixels Ctrl+Alt+0 Zoom 1:1
Show/Hide Extras Ctrl+h Toggle Show Selection (close enough?)
Show/Hide Guides Ctrl+' Toggle Show Guides
Show/Hide Grid Ctrl+Alt+' Toggle Show Grid
Show/Hide Rulers Ctrl+r Toggle Show Rulers
Snap Ctrl+; Snap to Guides
Scroll View Up Page Up Scroll Page Up
Scroll View Down Page Down Scroll Page Down
Scroll View Left Ctrl+Page Up Scroll Page Left
Scroll View Right Ctrl+Page Down Scroll Page Right
Window/Dialogs
PHOTOSHOP SHORTCUT GIMP
? F5 Tools Dialog
Color Tab F6 Colors Dialog
Layers Tab F7 Layers Dialog
Info Tab F8 Image Information
Tools
PHOTOSHOP SHORTCUT GIMP
Rectangular Marquee Tool m Rect Select Tool
Elliptical Marquee Tool Shift+m Ellipse Select Tool
*This is a toggle between 'Elliptical Marquee Tool' and 'Rectangular Marquee Tool' in Photoshop
Move Tool v Move Tool
Lasso Tool l Free Select Tool
Magic Wand Tool w Fuzzy Select Tool
Crop Tool c Crop & Resize Tool
Airbrush Tool j Airbrush Tool
Paintbrush Tool b Paintbrush Tool
Clone Stamp Tool s Clone Stamp Tool
Eraser Tool e Eraser Tool
Gradient Tool g Blend Tool
Paint Bucket Tool Shift+g Bucket Fill Tool
*This is a toggle between 'Paint Bucket Tool' and 'Gradient Tool' in Photoshop
Blur Tool r Convolve Tool
Dodge Tool o DodgeBurn Tool
Type Tool t Text Tool
Pen Tool p Bezier Select Tool
Eye Dropper Tool i Color Picker Tool
Zoom Tool z Magnify Tool
Previous Brush , Previous Brush
Next Brush . Next Brush
First Brush Shift+< First Brush
Last Brush Shift+> Last Brush
Decrease Brush Size [ Decrease Brush Size
Increase Brush Size ] Increase Brush Size
Decrease Brush Hardness { Decrease Brush Hardness
Increase Brush Hardness } Increase Brush Hardness
Help
PHOTOSHOP SHORTCUT GIMP
Help F1 Help
Context Help Shift+F1 Context Help
Misc.
PHOTOSHOP SHORTCUT GIMP
Last Filter Ctrl+f Repeat Last Filter
? Shift+Ctrl+f Reshow Last Filter
Preferences Ctrl+k Preferences
Liquify Shift+Ctrl+x IWarp (close enough?)
Toggle Quick Mask q Toggle Quick Mask
Spotlights - triangle of white opaque shape
Cutting out and/or replacing unwanted background or features - select large areas with the selection option like the Magic Wand tool (aka Color Range) or the Lasso (quick and fast) with feather 2 to soften edge or the pen tool which adds points/lines/Bézier curves (better control but slower), hold down the shift button as you click to add extra points/areas of the subject matter to remove. Increase the tolerance to cover more areas. To subtract from your selection hold down alt as you're clicking.
* Layer masks are a better way of working than Erase they clip (black hides/hidden white visible/reveal). Clone Stamp can be simulated by and brushes for other areas.
* Leave the fine details like hair, fur, etc. to later with lasso and the shift key to draw a line all the way around your subject. Gradient Mapping - Inverse - Mask. i.e. Refine your selected image with edge detection and using the radius and edge options / adjuster (increase/decrease contrast) so that you will capture more fine detail from the background allowing easier removal.
Remove fringe/halo
saving image as png rather than jpg/jpeg to keep transparency background intact.
Implemented [http://colorizer.org/ colour model representations] [http://paulbourke.net/texture_colour/colourspace/ Mathematical approach] - Photo stills are spatially 2d (h and w), but are colorimetrically 3d (r g and b, or H L S, or Y U V etc.) as well.
* RGB - split cubed mapped color model for photos and computer graphics hardware using the light spectrum (adding and subtracting)
* YUV - Y-Lightness U-blue/yellow V-red/cyan (similar to YPbPr and YCbCr) used in the PAL, NTSC, and SECAM composite digital TV color [http://crewofone.com/2012/chroma-subsampling-and-transcoding/#comment-7299 video]
Histograms
White balanced (neutral) if the spike happens in the same place in each channel of the RGB graphs. If not, you're not balanced.
If you have sky you'll see the blue channel further off to the right.
RGB is best one to change colours. These elements RGB is a 3-channel format containing data for Red, Green, and Blue in your photo scale between 0 and 255. The area in a picture that appears to be brighter/whiter contains more red color as compared to the area which is relatively darker. Similarly in the green channel the area that appears to be darker contains less amount of green color as compared to the area that appears to be brighter. Similarly in the blue channel the area appears to be darker contains less amount of blue color as compared to the area that appears to be brighter. Brightness luminance histogram also matches the green histogram more than any other color - human eye interprets green better e.g. RGB rough ratio 15/55/30%
RGBA (RGB+A, A means alpha channel) . The alpha channel is used for "alpha compositing", which can mostly be associated as "opacity". AROS deals in RGB with two digits for every color (red, green, blue), in ARGB you have two additional hex digits for the alpha channel.
The shadows are represented by the left third of the graph. The highlights are represented by the right third. And the midtones are, of course, in the middle. The higher the black peaks in the graph, the more pixels are concentrated in that tonal range (total black area).
By moving the black endpoint, which identifies the shadows (darkness) and a white light endpoint (brightness) up and down either sides of the graph, colors are adjusted based on these points.
By dragging the central one, can increased the midtones and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
RGB Curves
* Move left endpoint (black point) up or right endpoint (white point) up brightens
* Move left endpoint down or right endpoint down darkens
Color Curves
* Dragging up on the Red Curve increases the intensity of the reds in the image but
* Dragging down on the Red Curve decreases the intensity of the reds and thus increases the apparent intensity of its complimentary color, cyan. Green’s complimentary color is magenta, and blue’s is yellow.
<pre>
Red <-> Cyan
Green <->Magenta
Blue <->Yellow
</pre>
YUV Best option to analyse and pull out statistical elements of any picture (i.e. separate luminance data from color data). The line in Y luma tone box represents the brightness of the image with the point in the bottom left been black, and the point in the top right as white. A low-contrast image has a concentrated clump of values nearer to the center of the graph. By comparison, a high-contrast image has a wider distribution of values across the entire width of the Histogram. A histogram that is skewed to the right would indicate a picture that is a bit overexposed because most of the color data is on the lighter side (increase exposure with higher value F), while a histogram with the curve on the left shows a picture that is underexposed. This is good information to have when using post-processing software because it shows you not only where the color data exists for a given picture, but also where any data has been clipped (extremes on edges of either side): that is, it does not exist and, therefore, cannot be edited. By dragging the endpoints of the line and as well as the central one, can increased the dark/shadows, midtones and light/bright parts and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
The U and V chroma parts show color difference components of the image. It’s useful for checking whether or not the overall chroma is too high, and also whether it’s being limited too much
Can be used to create a negative image but also
With U (Cb), the higher value you are, the more you're on the blue primary color. If you go to the low values then you're on blue complementary color, i.e. yellow.
With V (Cr), this is the same principle but with Red and Cyan.
e.g. If you push U full blue and V full red, you get magenta. If you push U full yellow and V full Cyan then you get green.
YUV simultaneously adds to one side of the color equation while subtracting from the other.
using YUV to do color correction can be very problematic because each curve alters the result of each other: the mutual influence between U and V often makes things tricky. You may also be careful in what you do to avoid the raise of noise (which happens very easily). Best results are obtained with little adjustments
sunset that looks uninspiring and needs some color pop especially for the rays over the hill, a subtle contrast raise while setting luma values back to the legal range without hard clipping.
====Lunapaint====
Pixel based drawing app with onion-skin animation function
Blocking, Shading, Coloring, adding detail
<pre>
b BRUSH
e ERASER
alt eyedropper
v layer tool
z ZOOM / MAGNIFY < > n
spc panning
m marque
q lasso
w same color selection / region
</pre>
<pre>
, LM RM
v
V
f filter
F
. size
p
, pick color
[] last / next color
</pre>
There is not much missing in Lunapaint to be as good as FlipBook and then you have to take into account that Flipbook is considered to be amongst the best and easiest to use animation software out there. Ok to be honest Flipbook has some nice features that require more heavy work but those aren't so much needed right away, things like camera effects, sound, smart fill, export to different movie file formats etc.
Tried Flipbook with my tablet and compared it to Luna. The feeling is the same when sketching. LunaPaint is very responsive/fluent to draw with. Just as Flipbook is, and that responsiveness is something its users have mentioned as one of the positive sides of said software.
author was learning MUI. Some parts just have to be rewritten with proper MUI classes before new features can be added.
* add [Frame Add] / [Frame Del]
* whole animation feature is impossible to use. If you draw 2 color maybe but if you start coloring your cells then you get in trouble
* pickup the entire image as a brush, not just a selection ? And consequently remove the brush from memory when one doesn't need it anymore. can pick up a brush and put it onto a new image but cropping isn't possible, nor to load/save brushes.
* Undo is something I longed for ages in Lunapaint.
* to import into the current layer, other types of images (e.g. JPEG) besides RAW64.
* implement graphic tablet features support
**GENERAL DRAWING**
Miss it very much:
UNDO
ERASER
COLORPICKER - has to show on palette too which color got picked.
BACKGROUND COLOR -Possibility to select from "New project screen"
Miss it somewhat:
ICON for UNDO
ICON for ERASER
ICON for CLEAR SCREEN ( What can I say? I start over from scratch very often )
BRUSH - possibility to cut out as brush not just copy off image to brush
**ANIMATING**
Miss it very much:
NUMBER OF CELLS - Possibity to change total no. of cells during project
ANIM BRUSH - Possibility to pick up a selected part of cells into an animbrush
Miss it somewhat:
ADD/REMOVE FRAMES: Add/remove single frame
In general LunaPaint is really well done and it feels like a new DeluxePaint version. It works with my tablet. Sure there's much missing of course but things can always be added over time. So there is great potential in LunaPaint that's for sure. Animations could be made in it and maybe put together in QuickVideo, saving in .gif or .mng etc some day.
LAYERS
-Layers names don't get saved globally in animation frames
-Layers order don't change globally in an animation (perhaps as default?).
EXPORTING IMAGES
-Exporting frames to JPG/PNG gives problems with colors. (wrong colors. See my animatiopn --> My robot was blue now it's "gold" ) I think this only happens if you have layers.
-Trying to flatten the layers before export doesn't work if you have animation frames only the one you have visible will flatten properly all other frames are destroyed. (Only one of the layers are visible on them)
-Exporting images filenames should be for example e.g. file0001, file0002...file0010 instead as of now file1, file2...file10
LOAD/SAVE (Preferences)
-Make a setting for the default "Work" folder.
* Destroyed colors if exported image/frame has layers
* mystic color cycling of the selected color while stepping frames back/forth (annoying)
<pre>
Deluxe Paint II enhanced key shortcuts
NOTE: @ denotes the ALT key
[Technique]
F1 - Paint
F2 - Single Colour
F3 - Replace
F4 - Smear
F5 - Shade
F6 - Cycle
F7 - Smooth
M - Colour Cycle
[Brush]
B - Restore
O - Outline
h - Halve brush size
H - Double brush size
x - Flip brush on X axis
X - Double brush size on X axis only
y - Flip on Y
Y - Double on Y
z - Rotate brush 90 degrees
Z - Stretch
[Stencil]
` - Stencil On
[Miscellaneous]
F9 - Info Bar
F10 - Selection Bar
@o - Co-Ordinates
@a - Anti-alias
@r - Colourise
@t - Translucent
TAB - Colour Cycle
[Picture]
L - Load
S - Save
j - Page to Spare(Flip)
J - Page to Spare(Copy)
V - View Page
Q - Quit
[General Keys]
m - Magnify
< - Zoom In
> - Zoom Out
[ - Palette Colour Up
] - Palette Colour Down
( - Palette Colour Left
) - Palette Colour Right
, - Eye Dropper
. - Pixel / Brush Toggle
/ - Symmetry
| - Co-Ordinates
INS - Perspective Control
+/- - Brush Size (Fine Control)
w - Unfilled Polygon
W - Filled Polygon
e - Unfilled Ellipse
E - Filled Ellipse
r - Unfilled Rectangle
R - Filled Rectangle
t - Type/text tool
a - Select Font
u/U - Undo
d - Brush
D - Filled Non-Uniform Polygon
f/F - Fill Options
g/G - Grid
h/H - Brush Size (Coarse Control)
K - Clear
c - Unfilled Circle
C - Filled Circle
v - Line
b - Scissor Select and Toggle
B - Brush
{,} - Toggle between two background colours
</pre>
====Lodepaint====
Pixel based painting artwork app
====Grafx2====
Pixel based painting artwork app aesprite like
[https://www.youtube.com/watch?v=59Y6OTzNrhk aesprite workflow keys and tablet use], [],
====Vector Graphics ZuneFIG====
Vector Image Editing of files .svg .ps .eps
*Objects - raise lower rotate flip aligning snapping
*Path - unify subtract intersect exclude divide
*Colour - fill stroke
*Stroke - size
*Brushes -
*Layers -
*Effects - gaussian bevels glows shadows
*Text -
*Transform -
AmiFIG ([http://epb.lbl.gov/xfig/frm_introduction.html xfig manual])
[[File:MyScreen.png|thumb|left|alt=Showing all Windows open in AmiFIG.|All windows available to AmiFIG.]]
for drawing simple to intermediate vector graphic images for scientific and technical uses and for illustration purposes for those with talent
;Menu options
* Load - fig format but import(s) SVG
* Save - fig format but export(s) eps, ps, pdf, svg and png
* PAN = Ctrl + Arrow keys
* Deselect all points
There is no selected object until you apply the tool, and the selected object is not highlighted.
;Metrics - to set up page and styles - first window to open on new drawings
;Tools - Drawing Primitives - set Attributes window first before clicking any Tools button(s)
* Shapes - circles, ellipses, arcs, splines, boxes, polygon
* Lines - polylines
* Text "T" button
* Photos - bitmaps
* Compound - Glue, Break, Scale
* POINTs - Move, Add, Remove
* Objects - Move, Copy, Delete, Mirror, Rotate, Paste
use right mouse button to stop extra lines, shapes being formed and the left mouse to select/deselect tools button(s)
* Rotate - moves in 90 degree turns centered on clicked POINT of a polygon or square
;Attributes which provide change(s) to the above primitives
* Color
* Line Width
* Line Style
* arrowheads
;Modes
Choose from freehand, charts, figures, magnet, etc.
;Library - allows .fig clip-art to be stored
* compound tools to add .fig(s) together
;FIG 3.2 [http://epb.lbl.gov/xfig/fig-format.html Format] as produced by xfig version 3.2.5
<pre>
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
4 0 0 50 -1 0 12 0.0000 4 135 1050 1050 2475 This is a test.01
</pre>
# change the text alignment within the textbox. I can choose left, center, or right aligned by either changing the integer in the second column from 0 (left) to 1 or 2 (center, or right).
# The third integer in the row specifies fontcolor. For instance, 0 is black, but blue is 1 and Green3 is 13.
# The sixth integer in the bottom row specifies fontface. 0 is Times-Roman, but 16 is Helvetica (a MATLAB default).
# The seventh number is fontsize. 12 represents a 12pt fontsize. Changing the fontsize of an item really is as easy as changing that number to 20.
# The next number is the counter-clockwise angle of the text. Notice that I have changed the angle to .7854 (pi/4 rounded to four digits=45 degrees).
# twelfth number is the position according to the standard “x-axis” in Xfig units from the left. Note that 1200 Xfig units is equivalent to once inch.
# thirteenth number is the “y-position” from the top using the same unit convention as before.
* The nested text string is what you entered into the textbox.
* The “01″ present at the end of that line in the .fig file is the closing tag. For instance, a change to \100 appends a @ symbol at the end of the period of that sentence.
; Just to note there are no layers, no 3d functions, no shading, no transparency, no animation
[[#top|...to the top]]
===Audio===
# AHI uses linear panning/balance, which means that in the center, you will get -6dB. If an app uses panning, this is what you will get. Note that apps like Audio Evolution need panning, so they will have this problem.
# When using AHI Hifi modes, mixing is done in 32-bit and sent as 32-bit data to the driver. The Envy24HT driver uses that to output at 24-bit (always).
# For the Envy24/Envy24HT, I've made 16-bit and 24-bit inputs (called Line-in 16-bit, Line-in 24-bit etc.). There is unfortunately no app that can handle 24-bit recording.
====Music Mods====
Digital module (mods) trackers are music creation software using samples and sometimes soundfonts, audio plugins (VST, AU or RTAS), MIDI.
Generally, MODs are similar to MIDI in that they contain note on/off and other sequence messages that control the mod player. Unlike (most) midi files, however, they also contain sound samples that the sequence information actually plays. MOD files can have many channels (classic amiga mods have 4, corresponding to the inbuilt sound channels), but unlike MIDI, each channel can typically play only one note at once. However, since that note might be a sample of a chord, a drumloop or other complex sound, this is not as limiting as it sounds.
Like MIDI, notes will play indefinitely if they're not instructed to end. Most trackers record this information automatically if you play your music in live. If you're using manual note entry, you can enter a note-off command with a keyboard shortcut - usually Caps Lock.
In fact when considering file size MOD is not always the best option. Even a dummy song wastes few kilobytes for nothing when a simple SID tune could be few hundreds bytes and not bigger than 64kB. AHX is another small format, AHX tunes are never larger than 64kB excluding comments.
[https://www.youtube.com/watch?v=rXXsZfwgil Protrekkr] (previously aka [w:Juan_Antonio_Arguelles_Rius|NoiseTrekkr])
If Protrekkr does not start, please check if the Unit 0 has been setup in the AHI prefs and still not, go to the directory utilities/protrekkr and double click on the Protrekkr icon
*Sample
*Note - Effect
*Track (column) - Pattern - Order
It all starts with the Sample which is used to create Note(s) in a Track (column of a tracker)
The Note can be changed with an Effect. A Track of Note(s) can be collected into a Pattern (section of a song) and these can be given Order to create the whole song.
Patience (notes have to be entered one at a time) or playing the bassline on a midi controller (faster - see midi section above). Best approach is to wait until a melody popped into your head.
*Up-tempo means the track should be reasonably fast, but not super-fast.
*Groovy and funky imply the track should have some sort of "swing" feel, with plenty of syncopation or off beat emphasis and a recognizable, melodic bass line.
*Sweet and happy mean upbeat melodies, a major key and avoiding harsh sounds.
*Moody - minor key
First, create a quick bass sound, which is basically a sine wave, but can be hand drawn for a little more variance. It could also work for the melody part, too.
This is usually a bass guitar or some kind of synthesizer bass. The bass line is often forgotten by inexperienced composers, but it plays an important role in a musical piece. Together with the rhythm section the bass line forms the groove of a song. It's the glue between the rhythm section and the melodic layer of a song.
The drums are just pink noise samples, played at different frequencies to get a slightly different sound for the kick, snare, and hihats.
Instruments that fall into the rhythm category are bass drums, snares, hi-hats, toms, cymbals, congas, tambourines, shakers, etc. Any percussive instrument can be used to form part of the rhythm section.
The lead is the instrument that plays the main melody, on top of the chords. There are many instruments that can play a lead section, like a guitar, a piano, a saxophone or a flute. The list is almost endless. There is a lot of overlap with instruments that play chords. Often in one piece an instrument serves both roles. The lead melody is often played at a higher pitch than the chords.
Listened back to what was produced so far, and a counter-melody can be imagined, which can be added with a triangle wave.
To give the ends of phrases some life, you can add a solo part with a crunchy synth. By hitting random notes in the key of G, then edited a few of them.
For the climax of the song, filled out the texture with a gentle high-pitch pad… …and a grungy bass synth.
The arrow at A points at the pattern order list. As you see, the patterns don't have to be in numerical order. This song starts with pattern "00", then pattern "02", then "03", then "01", etcetera. Patterns may be repeated throughout a song.
The B arrow points at the song title. Below it are the global BPM and speed parameters. These determine the tempo of the song, unless the tempo is altered through effect commands during the song.
The C arrow points at the list of instruments. An instrument may consist of multiple samples. Which sample will be played depends on the note. This can be set in the Instrument Editing screen. Most instruments will consist of just one sample, though. The sample list for the selected instrument can be found under arrow D.
Here's a part of the main editing screen. This is where you put in actual notes. Up to 32 channels can be used, meaning 32 sounds can play simultaneously. The first six channels of pattern "03" at order "02" are shown here. The arrow at A points at the row number. The B arrow points at the note to play, in this case a C4. The column pointed at by the C arrow tells us which instrument is associated with that note, in this case instrument #1 "Kick".
The column at D is used (mainly) for volume commands. In this case it is left empty which means the instrument should play at its default volume. You can see the volume column being used in channel #6.
The E column tells us which effect to use and any parameters for that effect. In this case it holds the "F" effect, which is a tempo command. The "04" means it should play at tempo 4 (a smaller number means faster).
Base pattern
When I create a new track I start with what I call the base pattern. It is worthwhile to spend some time polishing it as a lot of the ideas in the base pattern will be copied and used in other patterns. At least, that's how I work. Every musician will have his own way of working. In "Wild Bunnies" the base pattern is pattern "03" at order "02".
In the section about selecting samples I talked about the four different categories of instruments: drums, bass, chords and leads. That's also how I usually go about making the base pattern. I start by making a drum pattern, then add a bass line, place some chords and top it off with a lead. This forms the base pattern from which the rest of the song will grow.
Drums
Here's a screenshot of the first four rows of the base pattern. I usually reserve the first four channels or so for the drum instruments. Right away there are a couple of tricks shown here. In the first channel the kick, or bass drum, plays some notes. Note the alternating F04 and F02 commands. The "F" command alters the tempo of the song and by quickly alternating the tempo; the song will get some kind of "swing" feel.
In the second channel the closed hi-hat plays a fairly simple pattern. Further down in the channel, not shown here, some open hi-hat notes are added for a bit of variation.
In the third and fourth channel the snare sample plays. The "8" command is for panning. One note is panned hard to the left and the other hard to the right. One sample is played a semitone lower than the other. This results in a cool flanging effect. It makes the snare stand out a little more in the mix.
Bass line
There are two different instruments used for the bass line. Instrument #6 is a pretty standard synthesized bass sound. Instrument #A sounds a bit like a slap bass when used with a quick fade out. By using two different instruments the bass line sounds a bit more ”human”. The volume command is used to cut off the notes. However, it is never set to zero. Setting the volume to a very small value will result in a reverb-like effect. This makes the song sound more "live".
The bass line hints at the chords that will be played and the key the song will be in. In this case the key of the song is D-major, a positive and happy key.
Chords
The D major chords that are being played here are chords stabs; short sounds with a quick decay (fade out). Two different instruments (#8 and #9) are used to form the chords. These instruments are quite similar, but have a slightly different sound, panning and volume decay. Again, the reason for this is to make the sound more human. The volume command is used on some chords to simulate a delay, to achieve more of a live feel. The chords are placed off-beat making for a funky rhythm.
Lead
Finally the lead melody is added. The other instruments are invaluable in holding the track together, but the lead melody is usually what catches people's attention.
A lot of notes and commands are used here, but it looks more complex than it is. A stepwise ascending melody plays in channel 13. Channel 14 and 15 copy this melody, but play it a few rows later at a lower volume. This creates an echo effect. A bit of panning is used on the notes to create some stereo depth. Like with the bass line, instead of cutting off notes the volume is set to low values for a reverb effect. The "461" effect adds a little vibrato to the note, which sounds nice on sustained notes.
Those paying close attention may notice the instrument used here for the lead melody is the same as the one used for the bass line (#6 "Square"), except played two or three octaves higher. This instrument is a looped square wave sample. Each type of wave has its own quirks, but the square wave (shown below) is a really versatile wave form.
Song structure
Good, catchy songs are often carefully structured into sections, some of which are repeated throughout the song with small variations.
A typical pop-song structure is: Intro - Verse - Chorus - Verse - Chorus - Bridge - Chorus.
Other single sectional song structures are
<pre>
Strophic or AAA Song Form - oldest story telling with refrain (often title of the song) repeated in every verse section melody
AABA Song Form - early popular, jazz and gospel fading during the 1960s
AB or Verse/Chorus Song Form - songwriting format of choice for modern popular music since the 1960s
Verse/Chorus/Bridge Song Form
ABAB Song Form
ABAC Song Form
ABCD Song Form
AAB 12-Bar Song Form - three four-bar lines or sub-sections
8-Bar Song Form
16-Bar Song Form
Hybrid / Compound Song Forms
</pre>
The most common building blocks are:
#INTRODUCTION(INTRO)
#VERSE
#REFRAIN
#PRE-CHORUS / RISE / CLIMB
#CHORUS
#BRIDGE
#MIDDLE EIGHT
#SOLO / INSTRUMENTAL BREAK
#COLLISION
#CODA / OUTRO
#AD LIB (OFTEN IN CODA / OUTRO)
The chorus usually has more energy than the verse and often has a memorable melody line. As the chorus is repeated the most often during the song, it will be the part that people will remember.
The bridge often marks a change of direction in the song. It is not uncommon to change keys in the bridge, or at least to use a different chord sequence. The bridge is used to build up tension towards the big finale, the last repetition of chorus.
Playing
RCTRL: Play song from row 0.
LSHIFT + RCTRL: Play song from current row.
RALT: Play pattern from row 0.
LSHIFT + RALT: Play pattern from current row.
Left mouse on '>': Play song from row 0.
Right mouse on '>': Play song from current row.
Left mouse on '|>': Play pattern from row 0.
Right mouse on '|>': Play pattern from current row.
Left mouse on 'Edit/Record': Edit mode on/off.
Right mouse on 'Edit/Record': Record mode on/off.
Editing
LSHIFT + ESCAPE: Switch large patterns view on/off
TAB: Go to next track
LSHIFT + TAB: Go to prev. track
LCTRL + TAB: Go to next note in track
LCTRL + LSHIFT + TAB: Go to prev. note in track
SPACE: Toggle Edit mode On & Off
(Also stop if the song is being played)
SHIFT SPACE: Toggle Record mode On & Off
(Wait for a key note to be pressed
or a midi in message to be received)
DOWN ARROW: 1 Line down
UP ARROW: 1 Line up
LEFT ARROW: 1 Row left
RIGHT ARROW: 1 Row right
PREV. PAGE: 16 Arrows Up
NEXT PAGE: 16 Arrows Down
HOME / END: Top left / Bottom right of pattern
LCTRL + HOME / END: First / last track
F5, F6, F7, F8, F9: Jump to 0, 1/4, 2/4, 3/4, 4/4 lines of the patterns
+ - (Numeric keypad): Next / Previous pattern
LCTRL + LEFT / RIGHT: Next / Previous pattern
LCTRL + LALT + LEFT / RIGHT: Next / Previous position
LALT + LEFT / RIGHT: Next / Previous instrument
LSHIFT + M: Toggle mute state of the current channel
LCTRL + LSHIFT + M: Solo the current track / Unmute all
LSHIFT + F1 to F11: Select a tab/panel
LCTRL + 1 to 4: Select a copy buffer
Tracking
1st and 2nd keys rows: Upper octave row
3rd and 4th keys rows: Lower octave row
RSHIFT: Insert a note off
/ and * (Numeric keypad)
or F1 F2: -1 or +1 octave
INSERT / BACKSPACE: Insert or Delete a line in current track
or current selected block.
LSHIFT + INSERT / BACKSPACE: Insert or Delete a line in current pattern
DELETE (NOT BACKSPACE): Empty a column or a selected block.
Blocks
(Blocks can also be selected with the mouse by holding the right button and scrolling the pattern with the mouse wheel).
LCTRL + A: Select entire current track
LCTRL + LSHIFT + A: Select entire current pattern
LALT + A: Select entire column note in a track
LALT + LSHIFT + A: Select all notes of a track
LCTRL + X: Cut the selected block and copy it into the block-buffer
LCTRL + C: Copy the selected block into the block-buffer
LCTRL + V: Paste the data from the block buffer into the pattern
LCTRL + I: Interpolate selected data from the first to the last row of a selection
LSHIFT + ARROWS
PREV. PAGE
NEXT PAGE: Select a block
LCTRL + R: Randomize the select columns of a selection, works similar to CTRL + I (interpolating them)
LCTRL + U: Transpose the note of a selection to 1 seminote higher
LCTRL + D: Transpose the note of a selection to 1 seminote lower
LCTRL + LSHIFT + U: Transpose the note of a selection to 1 seminote higher (only for the current instrument)
LCTRL + LSHIFT + D: Transpose the note of a selection to 1 seminote lower (only for the current instrument)
LCTRL + H: Transpose the note of a selection to 1 octave higher
LCTRL + L: Transpose the note of a selection to 1 octave lower
LCTRL + LSHIFT + H: Transpose the note of a selection to 1 octave higher (only for the current instrument)
LCTRL + LSHIFT + L: Transpose the note of a selection to 1 octave lower (only for the current instrument)
LCTRL + W: Save the current selection into a file
Misc
LALT + ENTER: Switch between full screen / windowed mode
LALT + F4: Exit program (Windows only)
LCTRL + S: Save current module
LSHIFT + S: Switch top right panel to synths list
LSHIFT + I: Switch top right panel to instruments list
<pre>
C-x xh xx xx hhhh Volume
B-x xh xx xx hhhh Jump to
A#x xh xx xx hhhh hhhh Slide
F-x xh xx xx hhhh Tempo
D-x xh xx xx hhhh Pattern Break
G#x xh xx xx hhhh
</pre>
h Hex 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
d Dec 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
The Set Volume command: C. Input a note, then move the cursor to the effects command column and type a C. Play the pattern, and you shouldn't be able to hear the note you placed the C by. This is because the effect parameters are 00. Change the two zeros to a 40(Hex)/64(Dec), depending on what your tracker uses. Play back the pattern again, and the note should come in at full volume.
The Position Jump command next. This is just a B followed by the position in the playing list that you want to jump to. One thing to remember is that the playing list always starts at 0, not 1. This command is usually in Hex.
Onto the volume slide command: A. This is slightly more complex (much more if you're using a newer tracker, if you want to achieve the results here, then set slides to Amiga, not linear), due to the fact it depends on the secondary tempo. For now set a secondary tempo of 06 (you can play around later), load a long or looped sample and input a note or two. A few rows after a note type in the effect command A. For the parameters use 0F. Play back the pattern, and you should notice that when the effect kicks in, the sample drops to a very low volume very quickly. Change the effect parameters to F0, and use a low volume command on the note. Play back the pattern, and when the slide kicks in the volume of the note should increase very quickly.
This because each part of the effect parameters for command A does a different thing. The first number slides the volume up, and the second slides it down. It's not recommended that you use both a volume up and volume down at the same time, due to the fact the tracker only looks for the first number that isn't set to 0. If you specify parameters of 8F, the tracker will see the 8, ignore the F, and slide the volume up. Using a slide up and down at same time just makes you look stupid. Don't do it...
The Set Tempo command: F, is pretty easy to understand. You simply specify the BPM (in Hex) that you want to change to. One important thing to note is that values of lower than 20 (Hex) sets the secondary tempo rather than the primary.
Another useful command is the Pattern Break: D. This will stop the playing of the current pattern and skip to the next one in the playing list. By using parameters of more than 00 you can also specify which line to begin playing from.
Command 3 is Portamento to Note. This slides the currently playing note to another note, at a specified speed. The slide then stops when it reaches the desired note.
<pre>
C-2 1 000 - Starts the note playing
--- 000
C-3 330 - Starts the slide to C-3 at a speed of 30.
--- 300 - Continues the slide
--- 300 - Continues the slide
</pre>
Once the parameters have been set, the command can be input again without any parameters, and it'll still perform the same function unless you change the parameters. This memory function allows certain commands to function correctly, such as command 5, which is the Portamento to Note and Volume Slide command. Once command 3 has been set up command 5 will simply take the parameters from that and perform a Portamento to Note. Any parameters set up for command 5 itself simply perform a Volume Slide identical to command A at the same time as the Portamento to Note.
This memory function will only operate in the same channel where the original parameters were set up.
There are various other commands which perform two functions at once. They will be described as we come across them.
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 00
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 02
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 05
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 08
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0A
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0D
C-3 04 .. .. 09 10 ---> C-3 04 .. .. 09 10
(You can also switch on the Slider Rec to On, and perform parameter-live-recording, such as cutoff transitions, resonance or panning tweaking, etc..) Note: this command only works for volume/panning and fx datas columns.
The next command we'll look at is the Portamento up/down: 1 and 2. Command 1 slides the pitch up at a specified speed, and 2 slides it down. This command works in a similar way to the volume slide, in that it is dependent on the secondary tempo. Both these commands have a memory dependent on each other, if you set the slide to a speed of 3 with the 1 command, a 2 command with no parameters will use the speed of 3 from the 1 command, and vice versa.
Command 4 is Vibrato. Vibrato is basically rapid changes in pitch, just try it, and you'll see what I mean. Parameters are in the format of xy, where x is the speed of the slide, and y is the depth of the slide. One important point to remember is to keep your vibratos subtle and natural so a depth of 3 or less and a reasonably fast speed, around 8, is usually used. Setting the depth too high can make the part sound out of tune from the rest.
Following on from command 4 is command 6. This is the Vibrato and Volume Slide command, and it has a memory like command 5, which you already know how to use.
Command 7 is Tremolo. This is similar to vibrato. Rather than changing the pitch it slides the volume. The effect parameters are in exactly the same format. vibrato effect (0x1dxy) x = speed y = depth (can't be used if arpeggio (0x1b) is turned on)
<pre>
C-7 00 .. .. 1B37 <- Turn Arpeggio effect on
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B38 <- Change datas
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B00 <- Turn it off
</pre>
Command 9 is Sample Offset. This starts the playback of the sample from a different place than the start. The effect parameters specify the sample offset, but only very roughly. Say you have a sample which is 8765(Hex) bytes long, and you wanted it to play from position 4321(Hex). The effect parameter could only be as accurate as the 43 part, and it would ignore the 21.
Command B is the Playing List/Order Jump command. The parameters specify the position in the Playing List/Order to jump to. When used in conjunction with command D you can specify the position and the line to play from.
Command E is pretty complex, as it is used for a lot of different things, depending on what the first parameter is. Let's take a trip through each effect in order.
Command E0 controls the hardware filter on an Amiga, which, as a low pass filter, cuts off the highest frequencies being played back. There are very few players and trackers on other system that simulate this function, not that you should need to use it. The second parameter, if set to 1, turns on the filter. If set to 0, the filter gets turned off.
Commands E1/E2 are Fine Portamento Up/Down. Exactly the same functions as commands 1/2, except that they only slide the pitch by a very small amount. These commands have a memory the same as 1/2 as well.
Command E3 sets the Glissando control. If parameters are set to 1 then when using command 3, any sliding will only use the notes in between the original note and the note being slid to. This produces a somewhat jumpier slide than usual. The best way to understand is to try it out for yourself. Produce a slow slide with command 3, listen to it, and then try using E31.
Command E4 is the Set Vibrato Waveform control. This command controls how the vibrato command slides the pitch. Parameters are 0 - Sine, 1 - Ramp Down (Saw), 2 - Square. By adding 4 to the parameters, the waveform will not be restarted when a new note is played e.g. 5 - Sine without restart.
Command E5 sets the Fine Tune of the instrument being played, but only for the particular note being played. It will override the default Fine Tune for the instrument. The parameters range from 0 to F, with 0 being -8 and F being +8 Fine Tune. A parameter of 8 gives no Fine Tune. If you're using a newer tracker that supports more than -8 to +8 e.g. -128 to +128, these parameters will give a rough Fine Tune, accurate to the nearest 16.
Command E6 is the Jump Loop command. You mark the beginning of the part of a pattern that you want to loop with E60, and then specify with E6x the end of the loop, where x is the number of times you want it to loop.
Command E7 is the Set Tremolo Waveform control. This has exactly the same parameters as command E4, except that it works for Tremolo rather than Vibrato.
Command E9 is for Retriggering the note quickly. The parameter specifies the interval between the retrigs. Use a value of less than the current secondary tempo, or else the note will not get retrigged.
Command EA/B are for Fine Volume Slide Up/Down. Much the same as the normal Volume Slides, except that these are easier to control since they don't depend on the secondary tempo. The parameters specify the amount to slide by e.g. if you have a sample playing at a volume of 08 (Hex) then the effect EA1 will slide this volume to 09 (Hex). A subsequent effect of EB4 would slide this volume down to 05 (Hex).
Command EC is the Note Cut. This sets the volume of the currently playing note to 0 at a specified tick. The parameters should be lower than the secondary tempo or else the effect won't work.
Command ED is the Note Delay. This should be used at the same time as a note is to be played, and the parameters will specify the number of ticks to delay playing the note. Again, keep the parameters lower than the secondary tempo, or the note won't get played!
Command EE is the Pattern Delay. This delays the pattern for the amount of time it would take to play a certain number of rows. The parameters specify how many rows to delay for.
Command EF is the Funk Repeat command. Set the sample loop to 0-1000. When EFx is used, the loop will be moved to 1000- 2000, then to 2000-3000 etc. After 9000-10000 the loop is set back to 0- 1000. The speed of the loop "movement" is defined by x. E is two times as slow as F, D is three times as slow as F etc. EF0 will turn the Funk Repeat off and reset the loop (to 0-1000).
effects 0x41 and 0x42 to control the volumes of the 2 303 units
There is a dedicated panel for synth parameter editing with coherent sections (osc, filter modulation, routing, so on) the interface is much nicer, much better to navigate with customizable colors, the reverb is now customizable (10 delay lines), It accepts newer types of Waves (higher bit rates, at least 24). Has a replay routine.
It's pretty much your basic VA synth. The problem isn't with the sampler being to high it's the synth is tuned two octaves too low, but if you want your samples tuned down just set the base note down 2 octaves (in the instrument panel).
so the synth is basically divided into 3 sections from left to right: oscillators/envelopes, then filter and LFO's, and in the right column you have mod routings and global settings.
for the oscillator section you have two normal oscillators (sine, saw, square, noise), the second of which is tunable, the first one tunes with the key pressed. Attached to OSC 1 is a sub-oscillator, which is a sawtooth wave tuned one octave down. The phase modulation controls the point in the duty cycle at which the oscillator starts. The ADSR envelope sliders (grouped with oscs) are for modulation envelope 1 and 2 respectively. you can use the synth as a sampler by choosing the instrument at the top.
In the filter column, the filter settings are: 1 = lowpass, 2 = highpass, 3 = off. cutoff and resonance. For the LFOs they are LFO 1 and LFO 2, the ADSR sliders in those are for the LFO itself.
For the modulation routings you have ENV 1, LFO 1 for the first slider and ENV 2, LFO 2 for the second, you can cycle through the individual routings there, and you can route each modulation source to multiple destinations of course, which is another big plus for this synth. Finally the glide time is for portamento and master volume, well, the master volume... it can go quite loud.
The sequencer is changed too, It's more like the one in AXS if you've used that, where you can mute tracks to re-use patterns with variation.
<pre>
Support for the following modules formats:
669 (Composer 669, Unis 669),
AMF (DSMI Advanced Module Format),
AMF (ASYLUM Music Format V1.0),
APUN (APlayer), DSM (DSIK internal format),
FAR (Farandole Composer),
GDM (General DigiMusic),
IT (Impulse Tracker),
IMF (Imago Orpheus),
MOD (15 and 31 instruments),
MED (OctaMED),
MTM (MultiTracker Module editor),
OKT (Amiga Oktalyzer),
S3M (Scream Tracker 3),
STM (Scream Tracker),
STX (Scream Tracker Music Interface Kit),
ULT (UltraTracker),
UNI (MikMod),
XM (FastTracker 2),
Mid (midi format via timidity)
</pre>
Possible plugin options include [http://lv2plug.in/ LV2],
====Midi - Musical Instrument Digital Interface====
A midi file typically contains music that plays on up to 16 channels (as per the midi standard), but many notes can simultaneously play on each channel (depending on the limit of the midi hardware playing it).
'''Timidity'''
Although usually already installed, you can uncompress the [http://www.libsdl.org/projects/SDL_mixer/ timidity.tar.gz (14MB)] into a suitable drawer like below's SYS:Extras/Audio/
assign timidity: SYS:Extras/Audio/timidity
added to SYSːs/User-Startup
'''WildMidi playback'''
'''Audio Evolution 4 (2003) 4.0.23 (from 2012)'''
*Sync Menu - CAMD Receive, Send checked
*Options Menu - MIDI Machine Control - Midi Bar Display - Select CAMD MIDI in / out - Midi Remote Setup
MCB Master Control Bus
*Sending a MIDI start-command and a Song Position Pointer, you can synchronize audio with an external MIDI sequencer (like B&P).
*B&P Receive, start AE, add AudioEvolution.ptool in Bars&Pipes track, press play / record in AE then press play in Pipes
*CAMD Receive, receive MIDI start or continue commands via camd.library sync to AE
*MIDI Machine Control
*Midi Bar Display
*Select CAMD MIDI in / out
*Midi Remote Setup - open requester for external MIDI controllers to control app mixer and transport controls cc remotely
Channel - mixer(vol, pan, mute, solo), eq, aux, fx,
Subgroup - Volume, Mute, Solo
Transport - Start, End, Play, Stop, Record, Rewind, Forward
Misc - Master vol., Bank Down, Bank up
<pre>
q - quit
First 3 already opened when AE started
F1 - timeline window
F2 - mixer
F3 - control
F4 - subgroups
F5 - aux returns
F6 - sample list
i - Load sample to use
space - start/stop play
b - reset time 0:00
s - split mode
r - open recording window
a - automation edit mode with p panning, m mute and v volume
[ / ] - zoom in / out
: - previous track
* - next track
x c v f - cut copy paste cross-fade
g - snap grid
</pre>
'''[http://bnp.hansfaust.de/ Bars n Pipes sequencer]'''
BarsnPipes debug ... in shell
Menu (right mouse)
*Song - Songs load and save in .song format but option here to load/save Midi_Files .mid in FORMAT0 or FORMAT1
*Track -
*Edit -
*Tool -
*Timing - SMTPE Synchronizing
*Windows -
*Preferences - Multiple MIDI-in option
Windows (some of these are usually already opened when Bars n Pipes starts up for the first time)
*Workflow -> Tracks, .... Song Construction, Time-line Scoring, Media Madness, Mix Maestro,
*Control -> Transport (or mini one), Windows (which collects all the Windows icons together-shortcut), .... Toolbox, Accessories, Metronome,
Once you have your windows placed on the screen that suits your workflow, Song -> Save as Default will save the positions, colors, icons, etc as you'd like them
If you need a particular setup of Tracks, Tools, Tempos etc, you save them all as a new song you can load each time
Right mouse menu -> Preferences -> Environment... -> ScreenMode - Linkages for Synch (to Slave) usbmidi.out.0 and Send (Master) usbmidi.in.0 - Clock MTC
'''Tracks'''
#Double-click on B&P's icon. B&P will then open with an empty Song. You can also double-click on a song icon to open a song in B&P.
#Choose a track. The B&P screen will contain a Tracks Window with a number of tracks shown as pipelines (Track 1, Track 2, etc...). To choose a track, simply click on the gray box to show an arrow-icon to highlight it. This icon show whether a track is chosen or not. To the right of the arrow-icon, you can see the icon for the midi-input. If you double-click on this icon you can change the MIDI-in setup.
#Choose Record for the track. To the right of the MIDI-input channel icon you can see a pipe. This leads to another clickable icon with that shows either P, R or M. This stands for Play, Record or Merge. To change the icon, simply click on it. If you choose P, this track can only play the track (you can't record anything). If you choose R, you can record what you play and it overwrites old stuff in the track. If you choose M, you merge new records with old stuff in the track. Choose R now to be able to make a record.
#Chose MIDI-channel. On the most right part of the track you can see an icon with a number in it. This is the MIDI-channel selector. Here you must choose a MIDI-channel that is available on your synthesizer/keyboard. If you choose General MIDI channel 10, most synthesizer will play drum sounds. To the left of this icon is the MIDI-output icon. Double-click on this icon to change the MIDI-output configuration.
#Start recording. The next step is to start recording. You must then find the control buttons (they look like buttons on a CD-player). To be able to make a record. you must click on the R icon. You can simply now press the play button (after you have pressed the R button) and play something on you keyboard. To playback your composition, press the Play button on the control panel.
#Edit track. To edit a track, you simply double click in the middle part of a track. You will then get a new window containing the track, where you can change what you have recorded using tools provided. Take also a look in the drop-down menus for more features.
Videos to help understand [https://www.youtube.com/watch?v=A6gVTX-9900 small intro], [https://www.youtube.com/watch?v=abq_rUTiSA4&t=3s Overview], [https://www.youtube.com/watch?v=ixOVutKsYQo Workplace Setup CC PC Sysex], [https://www.youtube.com/watch?v=dDnJLYPaZTs Import Song], [https://www.youtube.com/watch?v=BC3kkzPLkv4 Tempo Mapping], [https://www.youtube.com/watch?v=sd23kqMYPDs ptool Arpeggi-8], [https://www.youtube.com/watch?v=LDJq-YxgwQg PlayMidi Song], [https://www.youtube.com/watch?v=DY9Pu5P9TaU Amiga Midi], [https://www.youtube.com/watch?v=abq_rUTiSA4 Learning Amiga bars and Pipes],
Groups like [https://groups.io/g/barsnpipes/topics this] could help
'''Tracks window'''
* blue "1 2 3 4 5 6 7 8 Group" and transport tape deck VCR-type controls
* Flags
* [http://theproblem.alco-rhythm.com/org/bp.html Track 1, Track2, to Track 16, on each Track there are many options that can be activated]
Each Track has a
*Left LHS - Click in grey box to select what Track to work on, Midi-In ptool icon should be here (5pin plug icon), and many more from the Toolbox on the Input Pipeline
*Middle - (P, R, M) Play, Record, Merge/Multi before the sequencer line and a blue/red/yellow (Thru Mute Play) Tap
*Right RHS - Output pipeline, can have icons placed uopn it with the final ptool icon(s) being the 5pin icon symbol for Midi-OUT
Clogged pipelines may need Esc pressed several times
'''Toolbox (tools affect the chosen pipeline)'''
After opening the Toolbox window you can add extra Tools (.ptool) for the pipelines like keyboard(virtual), midimonitor, quick patch, transpose, triad, (un)quantize, feedback in/out, velocity etc
right mouse -> Toolbox menu option -> Install Tool... and navigate to Tool drawer (folder) and select requried .ptool
Accompany B tool to get some sort of rythmic accompaniment, Rythm Section and Groove Quantize are examples of other tools that make use of rythms
[https://aminet.net/search?query=bars Bars & Pipes pattern format .ptrn] for drawer (folder). Load from the Menu as Track or Group
'''Accessories (affect the whole app)'''
Accessories -> Install... and goto the Accessories drawer for .paccess like adding ARexx scripting support
'''Song Construction'''
<pre>
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Duplicator
F5 Eraser
F6 Toolpad
F7 Bounding box
F8 Lock to A-B-A
A-B-A strip, section, edit flags, white boxes,
</pre>
Bars&Pipes Professional offers three track formats; basic song tracks, linear tracks — which don't loop — and finally real‑time tracks. The difference between them is that both song and linear tracks respond to tempo changes, while real‑time tracks use absolute timing, always trigger at the same instant regardless of tempo alterations
'''Tempo Map'''
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Eraser
F5 Curve
F6 Toolpad
Compositions
Lyrics, Key, Rhythm, Time Signature
'''Master Parameters'''
Key, Scale/Mode
'''Track Parameters'''
Dynamics
'''Time-line Scoring'''
'''Media Madness'''
'''Mix Maestro'''
*ACCESSORIES Allows the importation of other packages and additional modules
*CLIPBOARD Full cut, copy and paste operations, enabling user‑definable clips to be shared between tracks.
*INFORMATION A complete rundown on the state of the current production and your machine.
*MASTER PARAMETERS Enables global definition of time signatures, lyrics, scales, chords, dynamics and rhythm changes.
*MEDIA MADNESS A complete multimedia sequencer which allows samples, stills, animation, etc
*METRONOME Tempo feedback via MIDI, internal Amiga audio and colour cycling — all three can be mixed and matched as required.
*MIX MAESTRO Completely automated mixdown with control for both volume and pan. All fader alterations are memorised by the software
*RECORD ACTIVATION Complete specification of the data to be recorded/merged. Allows overdubbing of pitch‑bend, program changes, modulation etc
*SET FLAGS Numeric positioning of location and edit flags in either SMPTE or musical time
*SONG CONSTRUCTION Large‑scale cut and paste of individual measures, verses or chorus, by means of bounding box and drag‑n‑drop mouse selections
*TEMPO MAP Tempo change using a variety of linear and non‑linear transition curves
*TEMPO PALETTE Instant tempo changes courtesy of four user‑definable settings.
*TIMELINE SCORING Sequencing of a selection of songs over a defined period — ideal for planning an entire set for a live performance.
*TOOLBOX Selection screen for the hundreds of signal‑processing tools available
*TRACKS Opens the main track window to enable recording, editing and the use of tools.
*TRANSPORT Main playback control window, which also provides access to user‑ defined flags, loop and punch‑in record modes.
Bars and Pipes Pro 2.5 is using internal 4-Byte IDs, to check which kind of data are currently processed.
Especially in all its files the IDs play an important role. The IDs are stored into the file in the same order they are laid out in the memory.
In a Bars 'N' Pipes file (no matter which kind) the ID "NAME" (saved as its ANSI-values) is stored on a big endian system (68k-computer) as "NAME". On a little endian system (x86 PC computer) as "EMAN". The target is to make the AROS-BnP compatible to songs, which were stored on a 68k computer (AMIGA).
If possible, setting MIDI channels for Local Control for your keyboard
http://www.fromwithin.com/liquidmidi/archive.shtml
MIDI files are essentially a stream of event data. An event can be many things, but typically "note on", "note off", "program change", "controller change", or messages that instruct a MIDI compatible synth how to play a given bit of music.
* Channel - 1 to 16 -
* Messages - PC presets, CC effects like delays, reverbs, etc
* Sequencing - MIDI instruments, Drums, Sound design,
* Recording -
* GUI - Piano roll or Tracker, Staves and Notes
MIDI events/messages like step entry e.g. Note On, Note Off
MIDI events/messages like PB, PC, CC, Mono and Poly After-Touch, Sysex, etc
MIDI sync - Midi Clocks (SPS Measures), Midi Time Code (h, m, s and frames) SMPTE
Individual track editing with audition edits so easier to test any changes. Possible to stop track playback, mix clips from the right edit flag and scroll the display using arrow keys.
Step entry, to extend a selected note hit the space bar and the note grows accordingly. Ability to cancel mouse‑driven edits by simply clicking the right mouse button — at which point everything snaps back into its original form. Lyrics can now be put in with syllable dividers, even across an entire measure or section. Autoranging when you open a edit window, the notes are automatically displayed — working from the lowest upwards.
Flag editing, shift‑click on a flag immediately open the bounds window, ready for numeric input. Ability to cancel edits using the right‑hand mouse button, plus much improved Bounding Box operations.
Icons other than the BarsnPipes icon -> PUBSCREEN=BarsnPipes (cannot choose modes higher than 8bit 256 colors)
Preferences -> Menu in Tracks window - Send MIDI defaults OFF
Prefs -> Environment -> screenmode (saved to BarsnPipes.prefs binary file)
Customization -> pics in gui drawer (folder) -
Can save as .song files and .mid General Midi
SMF is a “Standard Midi File” ([http://www.music.mcgill.ca/~ich/classes/mumt306/StandardMIDIfileformat.html SMF0, SMF1 and SMF2]), [https://github.com/stump/libsmf libsmf], [https://github.com/markc/midicomp MIDIcomp], [https://github.com/MajicDesigns/MD_MIDIFile C++ src], [], [https://github.com/newdigate/midi-smf-reader Midi player],
* SMF0 All MIDI data is stored in one track only, separated exclusively by the MIDI channel.
* SMF1 The MIDI data is stored in separate tracks/channels.
* SMF2 (rarely used) The MIDI data is stored in separate tracks, which are additionally wrapped in containers, so it's possible to have e.g. several tracks using the same MIDI channels.
Would it be possible to enrich Bars N’Pipes with software synth and sample support along with audio recording and mastering tools like in the named MAC or PC music sequencers?
On the classic AMIGA-OS this is not possible because of missing CPU-power. The hardware of the classic AMIGA is not further developed. So we must say (unfortunately) that those dreams can’t become reality
BarsnPipes is best used with external MIDI-equipment. This can be a keyboard or synthesizer with MIDI-connectors.
<pre>
MIDI can control 16 channels
There are USB-MIDI-Interfaces on the market with 16 independent MIDI-lines (multi-port), which can handle 16 MIDI devices independently – 16×16 = 256 independent MIDI-channels or instruments
handle up to 16 different USB-MIDI-Interfaces (multi-device). That is: 16X16X16 = 4096 independent MIDI-channels – theoretically
</pre>
<pre>
Librarian MIDI SYStem EXplorer (sysex) - PatchEditor and used to be supplied as a separate program like PatchMeister but currently not at present
It should support MIDI.library (PD), BlueRibbon.library (B&P), TriplePlayPlus, and CAMD.library (DeluxeMusic) and
MIDI information from a device's user manual and configure a custom interface to access parameters for all MIDI products connected to the system
Supports ALL MIDI events and the Patch/Librarian data is stored in MIDI standard format
Annette M.Crowling, Missing Link Software, Inc.
</pre>
Composers
<pre>
[https://x.com/hirasawa/status/1403686519899054086 Susumu Hirasawa]
</pre>
<pre>
1988 Todor Fay and his wife Melissa Jordan Gray, who founded the Blue Ribbon Inc
1992 Bars&Pipes Pro published
November 2000, Todor Fay announcement to release the sourcecode of Bars&Pipes Pro 2.5c beta
end of May 2001, the source of the main program and the sources of some tools and accessories were in a complete and compileable state
end of October 2009 stop further development of BarsnPipes New for now on all supported systems and made freeware
2013 Alfred Faust diagnosed with incureable illness, called „Myastenia gravis“ (weak muscles)
</pre>
Protrekkr
How to use Midi In/Out in Protrekkr ?
First of all, midi in & out capabilities of this program are rather limited.
# Go to Misc. Setup section and select a midi in or out device to use (ptk only supports one device at a time).
# Go to instrument section, and select a MIDI PRG (the default is N/A, which means no midi program selected).
# Go to track section and here you can assign a midi channel to each track of ptk.
# Play notes :]. Note off works. F'x' note cut command also works too, and note-volume command (speed) is supported.
Also, you can change midicontrollers in the tracker, using '90' in the panning row:
<pre>
C-3 02 .. .. 0000....
--- .. .. 90 xxyy.... << This will set the value
--- .. .. .. 0000.... of the controller n.'xx' to 'yy' (both in hex)
--- .. .. .. 0000....
</pre>
So "--- .. .. 90 2040...." will set the controller number $20(32) to $40(64).
You will need the midi implementation table of your gear to know what you can change with midi controller messages.
N.B. Not all MIDI devices are created equal!
Although the MIDI specification defines a large range of MIDI messages of various kinds, not every MIDI device is required to work in exactly the same way and respond to all the available messages and ways of working. For example, we don't expect a wind synthesiser to work in the same way as a home keyboard.
Some devices, the older ones perhaps, are only able to respond to a single channel. With some of those devices that channel can be altered from the default of 1 (probably) to another channel of the 16 possible.
Other devices, for instance monophonic synthesisers, are capable of producing just one note at a time, on one MIDI channel. Others can produce many notes spread across many channels.
Further devices can respond to, and transmit, "breath controller" data (MIDI controller number 2 (CC#2)) others may respond to the reception of CC#2 but not be able to create and to send it.
A controller keyboard may be capable of sending "expression pedal" data, but another device may not be capable of responding to that message.
Some devices just have the basic GM sound set. The "voice" or "instrument" is selected using a "Program Change" message on its own.
Other devices have a greater selection of voices, usually arranged in "banks", and the choice of instrument is made by responding to "Bank Select MSB" (MIDI controller 0 (CC#0)), others use "Bank Select LSB" (MIDI controller number 32 (CC#32)), yet others use both MSB and LSB sent one after the other, all followed by the Program Change message. The detailed information about all the different voices will usually be available in a published MIDI Data List.
MIDI Implementation Chart
But in the User Manual there is sometimes a summary of how the device works, in terms of MIDI, in the chart at the back of the manual, the MIDI Implementation Chart.
If you require two devices to work together you can compare the two implementation charts to see if they are "compatible". In order to do this we will need to interpret that chart.
The chart is divided into four columns headed "Function", "Transmitted" (or "Tx"), "Received" (or "Rx"), or more correctly "Recognised", and finally, "Remarks".
<pre>
The left hand column defines which MIDI functions are being described.
The 2nd column defines what the device in question is capable of transmitting to another device.
The 3rd column defines what the device is capable of responding to.
The 4th column is for explanations of the values contained within these previous two columns.
</pre>
There should then be twelve sections, with possibly a thirteenth containing extra "Notes". Finally there should be an explanation of the four MIDI "modes" and what the "X" and the "O" mean.
<pre>
Mode 1: Omni On, Poly;
Mode 2: Omni On, Mono;
Mode 3: Omni Off, Poly;
Mode 4: Omni Off, Mono.
</pre>
O means "yes" (implemented), X means "no" (not implemented).
Sometimes you will find a row of asterisks "**************", these seem to indicate that the data is not applicable in this case. Seen in the transmitted field only (unless you've seen otherwise).
Lastly you may find against some entries an asterisk followed by a number e.g. *1, these will refer you to further information, often on a following page, giving more detail.
Basic Channel
But the very first set of boxes will tell us the "Basic Channel(s)" that the device sends or receives on.
"Default" is what happens when the device is first turned on, "changed" is what a switch of some kind may allow the device to be set to.
For many devices e.g. a GM sound module or a home keyboard, this would be 1-16 for both. That is it can handle sending and receiving on all MIDI channels.
On other devices, for example a synthesiser, it may by default only work on channel 1. But the keyboard could be "split" with the lower notes e.g. on channel 2. If the synth has an arppegiator, this may be able to be set to transmit and or receive on yet another channel.
So we might see the default as "1" but the changed as "1-16".
Modes.
We need to understand Omni On and Off, and Mono and Poly, then we can decipher the four modes.
But first we need to understand that any of these four Mode messages can be sent to any MIDI channel. They don't necessarily apply to the whole device.
If we send an "Omni On" message (CC#125) to a MIDI channel of a device, we are, in effect, asking it to respond to e.g. a Note On / Off message pair, received on any of the sixteen channels. Sound strange? Read it again. Still strange? It certainly is. We normally want a MIDI channel to respond only to Note On / Off messages sent on that channel, not any other. In other words, "Omni Off".
So "Omni Off" (CC#124) tells a channel of our MIDI device to respond only to messages sent on that MIDI channel.
"Poly" (CC#127) is for e.g. a channel of a polyphonic sound module, or a home keyboard, to be able to respond to many simultaneous Note On / Off message pairs at once and produce musical chords.
"Mono" (CC#126) allows us to set a channel to respond as if it were e.g. a flute or a trumpet, playing just one note at a time. If the device is capable of it, then the overlapping of notes will produce legato playing, that is the attack portion of the second note of two overlapping notes will be removed resulting in a "smoother" transition.
So a channel with a piano voice assigned to it will have Omni Off, Poly On (Mode 3), a channel with a saxophone voice assigned could be Omni Off, Mono On (Mode 4).
We call these combinations the four modes, 1 to 4, as defined above.
Most modern devices will have their channels set to Mode 3 (Omni Off, Poly) but be switchable, on a per channel basis, to Mode 4 (Omni Off, Mono).
This second section of data will include first its default value i.e. upon device switch on. Then what Mode messages are acceptable, or X if none.
Finally, in the "Altered" field, how a Mode message that can't be implemented will be interpreted. Usually there will just be a row of asterisks effectively meaning nothing will be done if you try to switch to an unimplemented mode.
Note Number
<pre>
The next row will tell us which MIDI notes the device can send or receive, normally 0-127.
The second line, "True Voice" has the following in the MIDI specification:
"Range of received note numbers falling within the range of true notes produced by the instrument."
My interpretation is that, for instance, a MIDI piano may be capable of sending all MIDI notes (0 to 127) by transposition, but only responding to the 88 notes (21 to 108) of a real piano.
</pre>
Velocity
This will tell us whether the device we're looking at will handle note velocity, and what range from 1-127, or maybe just 64, it transmits or will recognise. So usually "O" plus a range or "X" for not implemented.
After touch
This may have one or two lines two it.
If a one liner the either "O" or "X", yes or no.
If a two liner then it may include "Keys" or "Poly" and "Channel".
This will show whether the device will respond to Polyphonic after touch or channel after touch or neither.
Pitch Bend
Again "O" for implemented, "X" for not implemented.
(Many stage pianos will have no pitch bend capability.)
It may also, in the notes section, state whether it will respond to the full 14 bits, or not, as usually encoded by the pitch bend wheel.
Control Change
This is likely to be the largest section of the chart.
It will list all those controllers, starting from CC#0, Bank Select MSB, which the device is capable of sending, and those that it will respond to using "O" or "X" respectively.
You will, almost certainly, get some further explanation of functionality in the remarks column, or in more detail elsewhere in the documentation.
Of course you will need to know what all the various controller numbers do. Lots of the official technical specifications can be found at the [www.midi.org/techspecs/ MMA], with the table of messages and control change [www.midi.org/techspecs/midimessages.php message numbers]
Program Change
Again "O" or "X" in the Transmitted or Recognised column to indicate whether or not the feature is implemented. In addition a range of numbers is shown, typically 0-127, to show what is available.
True # (number): "The range of the program change numbers which correspond to the actual number of patches selected."
System Exclusive
Used to indicate whether or not the device can send or recognise System Exclusive messages. A short description is often given in the Remarks field followed by a detailed explanation elsewhere in the documentation.
System Common - These include the following:
<pre>
MIDI Time Code Quarter Frame messages (device synchronisation).
Song Position Pointer
Song Select
Tune Request
</pre>
The section will indicate whether or not the device can send or respond to any of these messages.
System Real Time
These include the following:
<pre>
Timing Clock - often just written as "Clock"
Start
Stop
Continue
</pre>
These three are usually just referred to as "Commands" and listed.
Again the section will indicate which, if any, of these messages the device can send or respond to.
<pre>
Aux. Messages
Again "O" or "X" for implemented or not.
Aux. = Auxiliary.
Active Sense = Active Sensing.
</pre>
Often with an explanation of the action of the device.
Notes
The "Notes" section can contain any additional comments to clarify the particular implementation.
Some of the explanations have been drawn directly from the MMA MIDI 1.0 Detailed Specification.
And the detailed explanation of some of the functions will be found there, or in the General MIDI System Level 1 or General MIDI System Level 2 documents also published by the MMA.
OFFICIAL MIDI SPECIFICATIONS
SUMMARY OF MIDI MESSAGES
Table 1 - Summary of MIDI Messages
The following table lists the major MIDI messages in numerical (binary) order (adapted from "MIDI by the Numbers" by D. Valenti, Electronic Musician 2/88, and updated by the MIDI Manufacturers Association.). This table is intended as an overview of MIDI, and is by no means complete.
WARNING! Details about implementing these messages can dramatically impact compatibility with other products. We strongly recommend consulting the official MIDI Specifications for additional information.
MIDI 1.0 Specification
Message Summary Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)]
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1000nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note Off event.
This message is sent when a note is released (ended). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1001nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note On event.
This message is sent when a note is depressed (start). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1010nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Polyphonic Key Pressure (Aftertouch).
This message is most often sent by pressing down on the key after it "bottoms out". (kkkkkkk) is the key (note) number. (vvvvvvv) is the pressure value.
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Control Change.
This message is sent when a controller value changes. Controllers include devices such as pedals and levers. Controller numbers 120-127 are reserved as "Channel Mode Messages" (below). (ccccccc) is the controller number (0-119). (vvvvvvv) is the controller value (0-127).
|-
|<!--Status-->1100nnnn || <!--Data-->0ppppppp || <!--Description-->Program Change. This message sent when the patch number changes. (ppppppp) is the new program number.
|-
|<!--Status-->1101nnnn || <!--Data-->0vvvvvvv || <!--Description-->Channel Pressure (After-touch). This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch. Use this message to send the single greatest pressure value (of all the current depressed keys). (vvvvvvv) is the pressure value.
|-
|<!--Status-->1110nnnn || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Pitch Bend Change. This message is sent to indicate a change in the pitch bender (wheel or lever, typically). The pitch bender is measured by a fourteen bit value. Center (no pitch change) is 2000H. Sensitivity is a function of the receiver, but may be set using RPN 0. (lllllll) are the least significant 7 bits. (mmmmmmm) are the most significant 7 bits.
|}
Channel Mode Messages (See also Control Change, above)
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Channel Mode Messages.
This the same code as the Control Change (above), but implements Mode control and special message by using reserved controller numbers 120-127. The commands are:
*All Sound Off. When All Sound Off is received all oscillators will turn off, and their volume envelopes are set to zero as soon as possible c = 120, v = 0: All Sound Off
*Reset All Controllers. When Reset All Controllers is received, all controller values are reset to their default values. (See specific Recommended Practices for defaults) c = 121, v = x: Value must only be zero unless otherwise allowed in a specific Recommended Practice.
*Local Control. When Local Control is Off, all devices on a given channel will respond only to data received over MIDI. Played data, etc. will be ignored. Local Control On restores the functions of the normal controllers.
c = 122, v = 0: Local Control Off
c = 122, v = 127: Local Control On
* All Notes Off. When an All Notes Off is received, all oscillators will turn off.
c = 123, v = 0: All Notes Off (See text for description of actual mode commands.)
c = 124, v = 0: Omni Mode Off
c = 125, v = 0: Omni Mode On
c = 126, v = M: Mono Mode On (Poly Off) where M is the number of channels (Omni Off) or 0 (Omni On)
c = 127, v = 0: Poly Mode On (Mono Off) (Note: These four messages also cause All Notes Off)
|}
System Common Messages
System Messages (0xF0)
The final status nybble is a “catch all” for data that doesn’t fit the other statuses. They all use the most significant nybble (4bits) of 0xF, with the least significant nybble indicating the specific category.
The messages are denoted when the MSB of the second nybble is 1. When that bit is a 0, the messages fall into two other subcategories.
System Common
If the MSB of the second second nybble (4 bits) is not set, this indicates a System Common message. Most of these are messages that include some additional data bytes.
System Common Messages
Type Status Byte Number of Data Bytes Usage
<pre>
Time Code Quarter Frame 0xF1 1 Indicates timing using absolute time code, primarily for synthronization with video playback systems. A single location requires eight messages to send the location in an encoded hours:minutes:seconds:frames format*.
Song Position 0xF2 2 Instructs a sequencer to jump to a new position in the song. The data bytes form a 14-bit value that expresses the location as the number of sixteenth notes from the start of the song.
Song Select 0xF3 1 Instructs a sequencer to select a new song. The data byte indicates the song.
Undefined 0xF4 0
Undefined 0xF5 0
Tune Request 0xF6 0 Requests that the receiver retunes itself**.
</pre>
*MIDI Time Code (MTC) is significantly complex. Please see the MIDI Specification
**While modern digital instruments are good at staying in tune, older analog synthesizers were prone to tuning drift. Some analog synthesizers had an automatic tuning operation that could be initiated with this command.
System Exclusive
If you’ve been keeping track, you’ll notice there are two status bytes not yet defined: 0xf0 and 0xf7. These are used by the System Exclusive message, often abbreviated at SysEx. SysEx provides a path to send arbitrary data over a MIDI connection. There is a group of predefined messages for complex data, like fine grained control of MIDI Time code machinery. SysEx is also used to send manufacturer defined data, such as patches, or even firmware updates.
System Exclusive messages are longer than other MIDI messages, and can be any length. The messages are of the following format:
0xF0, 0xID, 0xdd, ...... 0xF7
The message is bookended with distinct bytes.
It opens with the Start Of Exclusive (SOX) data byte, 0xF0.
The next one to three bytes after the start are an identifier.
Values from 0x01 to 0x7C are one-byte vendor IDs, assigned to manufacturers who were involved with MIDI at the beginning.
If the ID is 0x00, it’s a three-byte vendor ID - the next two bytes of the message are the value.
<pre>
ID 0x7D is a placeholder for non-commercial entities.
ID 0x7E indicates a predefined Non-realtime SysEx message.
ID 0x7F indicates a predefined Realtime SysEx message.
</pre>
After the ID is the data payload, sent as a stream of bytes.
The transfer concludes with the End of Exclusive (EOX) byte, 0xF7.
The payload data must follow the guidelines for MIDI data bytes – the MSB must not be set, so only 7 bits per byte are actually usable. If the MSB is set, it falls into three possible scenarios.
An End of Exclusive byte marks the ordinary termination of the SysEx transfer.
System Real Time messages may occur within the transfer without interrupting it. The recipient should handle them independently of the SysEx transfer.
Other status bytes implicitly terminate the SysEx transfer and signal the start of new messages.
Some inexpensive USB-to-MIDI interfaces aren’t capable of handling messages longer than four bytes.
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11110000 || <!--Data-->0iiiiiii [0iiiiiii 0iiiiiii] 0ddddddd --- --- 0ddddddd 11110111 || <!--Description-->System Exclusive.
This message type allows manufacturers to create their own messages (such as bulk dumps, patch parameters, and other non-spec data) and provides a mechanism for creating additional MIDI Specification messages. The Manufacturer's ID code (assigned by MMA or AMEI) is either 1 byte (0iiiiiii) or 3 bytes (0iiiiiii 0iiiiiii 0iiiiiii). Two of the 1 Byte IDs are reserved for extensions called Universal Exclusive Messages, which are not manufacturer-specific. If a device recognizes the ID code as its own (or as a supported Universal message) it will listen to the rest of the message (0ddddddd). Otherwise, the message will be ignored. (Note: Only Real-Time messages may be interleaved with a System Exclusive.)
|-
|<!--Status-->11110001 || <!--Data-->0nnndddd || <!--Description-->MIDI Time Code Quarter Frame.
nnn = Message Type
dddd = Values
|-
|<!--Status-->11110010 || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Song Position Pointer.
This is an internal 14 bit register that holds the number of MIDI beats (1 beat= six MIDI clocks) since the start of the song. l is the LSB, m the MSB.
|-
|<!--Status-->11110011 || <!--Data-->0sssssss || <!--Description-->Song Select.
The Song Select specifies which sequence or song is to be played.
|-
|<!--Status-->11110100 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110110 || <!--Data--> || <!--Description-->Tune Request. Upon receiving a Tune Request, all analog synthesizers should tune their oscillators.
|-
|<!--Status-->11110111 || <!--Data--> || <!--Description-->End of Exclusive. Used to terminate a System Exclusive dump.
|}
System Real-Time Messages
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11111000 || <!--Data--> || <!--Description-->Timing Clock. Sent 24 times per quarter note when synchronization is required.
|-
|<!--Status-->11111001 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111010 || <!--Data--> || <!--Description-->Start. Start the current sequence playing. (This message will be followed with Timing Clocks).
|-
|<!--Status-->11111011 || <!--Data--> || <!--Description-->Continue. Continue at the point the sequence was Stopped.
|-
|<!--Status-->11111100 || <!--Data--> || <!--Description-->Stop. Stop the current sequence.
|-
|<!--Status-->11111101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111110 || <!--Data--> || <!--Description-->Active Sensing. This message is intended to be sent repeatedly to tell the receiver that a connection is alive. Use of this message is optional. When initially received, the receiver will expect to receive another Active Sensing message each 300ms (max), and if it does not then it will assume that the connection has been terminated. At termination, the receiver will turn off all voices and return to normal (non- active sensing) operation.
|-
|<!--Status-->11111111 || <!--Data--> || <!--Description-->Reset. Reset all receivers in the system to power-up status. This should be used sparingly, preferably under manual control. In particular, it should not be sent on power-up.
|}
Advanced Messages
Polyphonic Pressure (0xA0) and Channel Pressure (0xD0)
Some MIDI controllers include a feature known as Aftertouch. While a key is being held down, the player can press harder on the key. The controller measures this, and converts it into MIDI messages.
Aftertouch comes in two flavors, with two different status messages.
The first flavor is polyphonic aftertouch, where every key on the controller is capable of sending its own independent pressure information. The messages are of the following format:
<pre>
0xnc, 0xkk, 0xpp
n is the status (0xA)
c is the channel nybble
kk is the key number (0 to 127)
pp is the pressure value (0 to 127)
</pre>
Polyphonic aftertouch is an uncommon feature, usually found on premium quality instruments, because every key requires a separate pressure sensor, plus the circuitry to read them all.
Much more commonly found is channel aftertouch. Instead of needing a discrete sensor per key, it uses a single, larger sensor to measure pressure on all of the keys as a group. The messages omit the key number, leaving a two-byte format
<pre>
0xnc, 0xpp
n is the status (0xD)
c is the channel number
pp is the pressure value (0 to 127)
</pre>
Pitch Bend (0xE0)
Many keyboards have a wheel or lever towards the left of the keys for pitch bend control. This control is usually spring-loaded, so it snaps back to the center of its range when released. This allows for both upward and downward bends.
Pitch Bend Wheel
The wheel sends pitch bend messages, of the format
<pre>
0xnc, 0xLL, 0xMM
n is the status (0xE)
c is the channel number
LL is the 7 least-significant bits of the value
MM is the 7 most-significant bits of the value
</pre>
You’ll notice that the bender data is actually 14 bits long, transmitted as two 7-bit data bytes. This means that the recipient needs to reassemble those bytes using binary manipulation. 14 bits results in an overall range of 214, or 0 to 16,383. Because it defaults to the center of the range, the default value for the bender is halfway through that range, at 8192 (0x2000).
Control Change (0xB0)
In addition to pitch bend, MIDI has provisions for a wider range of expressive controls, sometimes known as continuous controllers, often abbreviated CC. These are transmitted by the remaining knobs and sliders on the keyboard controller shown below.
Continuous Controllers
These controls send the following message format:
<pre>
0xnc, 0xcc, 0xvv
n is the status (0xB)
c is the MIDI channel
cc is the controller number (0-127)
vv is the controller value (0-127)
</pre>
Typically, the wheel next to the bender sends controller number one, assigned to modulation (or vibrato) depth. It is implemented by most instruments.
The remaining controller number assignments are another point of confusion. The MIDI specification was revised in version 2.0 to assign uses for many of the controllers. However, this implementation is not universal, and there are ranges of unassigned controllers.
On many modern MIDI devices, the controllers are assignable. On the controller keyboard shown in the photos, the various controls can be configured to transmit different controller numbers. Controller numbers can be mapped to particular parameters. Virtual synthesizers frequently allow the user to assign CCs to the on-screen controls. This is very flexible, but it might require configuration on both ends of the link and completely bypasses the assignments in the standard.
Program Change (0xC0)
Most synthesizers have patch storage memory, and can be told to change patches using the following command:
<pre>
0xnc, 0xpp
n is the status (0xc)
c is the channel
pp is the patch number (0-127)
</pre>
This allows for 128 sounds to be selected, but modern instruments contain many more than 128 patches. Controller #0 is used as an additional layer of addressing, interpreted as a “bank select” command. Selecting a sound on such an instrument might involve two messages: a bank select controller message, then a program change.
Audio & Midi are not synchronized, what I can do ?
Buy a commercial software package but there is a nasty trick to synchronize both. It's a bit hardcore but works for me:
Simply put one line down to all midi notes on your pattern (use Insert key)
and go to 'Misc. Setup', adjust the latency and just search a value
that will make sound sync both audio/midi.
The stock Sin/Saw/Pulse and Rnd waveforms are too simple/common, is there a way to use something more complex/rich ?
You have to ability to redirect the waveforms of the instruments through the synth pipe by selecting the "wav" option for the oscillator you're using for this synth instrument, samples can be used as wavetables to replace the stock signals.
Sound banks like soundfont (sf2) or Kontakt2 are not supported at the moment
====DAW Audio Evolution 4====
Audio Evolution 4 gives you unsurpassed power for digital audio recording and editing on the Amiga. The latest release focusses on time-saving non-linear and non-destructive editing, as seen on other platforms. Besides editing, Audio Evolution 4 offers a wide range of realtime effects, including compression, noise gate, delays, reverb, chorus and 3-band EQ.
Whether you put them as inserts on a channel or use them as auxillaries, the effect parameters are realtime adjustable and can be fully automated. Together with all other mixing parameters, they can even be controlled remotely, using more ergonomic MIDI hardware.
Non-linear editing on the time line, including cut, copy, paste, move, split, trim and crossfade actions
The number of tracks per project(s) is unlimited .... AHI limits you to recording only two at a time. i.e. not on 8 track sound cards like the Juli@ or Phase 88.
sample file import is limited to 16bit AIFF (not AIFC, important distinction as some files from other sources can be AIFC with aiff file extension). and 16bit WAV (pcm only)
Most apps use the Music Unit only but a few apps also use Unit (0-3) instead or as well.
* Set up AHI prefs so that microphone is available. (Input option near the bottom)
stereo++ allows the audio piece to be placed anywhere and the left-right adjusted to sound positionally right
hifi best for music playback if driver supports this option
Load 16bit .aif .aiff only sample(s) to use not AIFC which can have the same ending. AIFF stands for Audio Interchange File Format
sox recital.wav recital.aiff
sox recital.wav −b 16 recital.aiff channels 1 rate 16k fade 3 norm
sox input.wav output.aiff bass −b 16 rate 48k
performs the same format translation, but also applies four effects (down-mix to one channel, sample rate change, fade-in, nomalize), and stores the result at a bit-depth of 16.
rec −c 2 radio.aiff trim 0 30:00
records half an hour of stereo audio
play existing-file.wav
24bit PCM WAV or AIFF do not work
*No stream format handling. So no way to pass on an AC3 encoded stream unmodified to the digital outputs through AHI.
*No master volume handling. Each application has to set its own volume. So each driver implements its own custom driver-mixer interface for handling master volumes, mute and preamps.
*Only one output stream. So all input gets mixed into one output.
*No automatic handling of output direction based on connected cables.
*No monitor input selection. Only monitor volume control.
select the correct input (Don't mistake enabled sound for the correct input.)
The monitor will feedback audio to the lineout and hp out no matter if you have selected the correct input to the ADC. The monitor will provide sound for any valid input. This will result in free mixing when recording from the monitor input instead of mic/line because the monitor itself will provide the hardware mixing for you. Be aware that MIC inputs will give two channel mono. Only Linein will give real stereo.
Now for the not working part. Attempt to record from linein in the AE4 record window, the right channel is noise and the left channel is distorted. Even with the recommended HIFI 16bit Stereo++ mode at 48kHz.
Channels
Monitor
Gain
Inout
Output
Advanced settings - Debugging via serial port
* Options -> Soundcard In/Out
* Options -> SampleRate
* Options -> Preferences
F6 for Sample File List
Setting a grid is easy as is measuring the BPM by marking a section of the sample. Is your kick drum track "not in time" ? If so, you're stumped in AE4 as it has no fancy variable time signatures and definitely no 'track this dodgy rhythm' function like software of the nature of Logic has. So if your drum beat is freeform you will need to work in freeform mode. (Real music is free form anyway).
If the drum *is* accurate and you are just having trouble measuring the time, I usually measure over a range of bars and set the number of beats in range to say 16 as this is more accurate, Then you will need to shift the drum track to match your grid *before* applying the grid. (probably an iterative process as when the grid is active samples snap to it, and when inactive you cannot see it).
AE4 does have ARexx but the functions are more for adding samples at set offsets and starting playback / recording.
These are the usual features found in DAWs...
* Recording digital audio, midi sequencer and mixer
* virtual VST instruments and plug-ins
* automation, group channels, MIDI channels, FX sends and returns, audio and MIDI editors and music notation editor
* different track views
* mixer and track layout (but not the same as below)
* traditional two windows (track and mixer)
Mixing - mixdown
Could not figure out how to select what part I wanted to send to the aux, set it to echo and return. Pretty much the whole echo effect. Or any effect.
Take look at page17 of the manual.
When you open the EQ / Aux send popup window you will see 4 sends. Now from the menu choose the windows menu.
Menus->Windows-> Aux Returns Window
or press F5
You will see a small window with 4 volume controls and an effects button for each. Click a button and add an effects to that aux channel, then set it up as desired (note the reverb effect has a special AUX setting that improves its use with the aux channel, not compulsory but highly useful). You set the amount of 'return' on the main mix in the Aux Return window, and the amount sent from each main mixer channel in the popup for that channel. Again the aux sends are "prefade" so the volume faders on each channel do not affect them.
Tracking
Effects - fade in
To add some echoes to some vocals, tried to add an effect on a track but did not come out. This is made more complicated as I wanted to mute a vocal but then make it echo at the muting point. Want to have one word of a vocal heard and then echoed off. But when the track is mute the echo is cancelled out.
To correctly understand what is happening here you need to study the figure at the bottom of page 15 on the manual. You will see from that that the effects are applied 'prefade' So the automation you applied will naturally mute the entire signal.
There would be a number of ways to achieve the goal,
You have three real time effects slots, one for smoothing like so
Sample -> Amplify -> Delay
Then automate the gain of the amplify block so that it effectively mutes the sample just before the delay at the appropriate moment, the echo effect should then be heard.
Getting the effects in the right order will require experimentation as they can only be added top down and it's not obvious which order they are applied to the signal, but there only two possibilities, so it wont take long to find out.
Using MUTE can cause clicks to the Amplify can be used to mute more smoothly so that's a secondary advantage.
Signal Processing -
Overdub
[[#top|...to the top]]
===Office===
====Spreadsheet Leu====
Support for some xlsx, and ods functions
====Spreadsheet Ignition====
; Needs ABIv1 to be completed before more can be done
File formats supported
* ascii #?.txt and #?.csv (single sheets with data only).
* igs and TurboCalc(WIP) #?.tc for all sheets with data, formats and formulas.
There is '''no''' support for xls, xlsx, ods or uos ([http://en.wikipedia.org/wiki/Uniform_Office_Format Uniform Unified Office Format]) at the moment.
* Always use Esc key after editing Spreadsheet cells.
* copy/paste seems to copy the first instance only so go to Edit -> Clipboard to manage the list of remembered actions.
* Right mouse click on row (1 or 2 or 3) or column header (a or b or c) to access optimal height or width of the row or column respectively
* Edit -> Insert -> Row seems to clear the spreadsheet or clears the rows after the inserted row until undo restores as it should be...
Change Sheet name by Object -> Sheet -> Properties
Click in the cell which will contain the result, and click '''down arrow button''' to the right of the formula box at the bottom of the spreadsheet and choose the function required from the list provided. Then click on the start cell and click on the bottom right corner, a '''very''' small blob, which allows stretching a bounding box (thick grey outlines) across many cells This grey bounding box can be used to '''copy a formula''' to other cells.
Object -> Cell -> Properties to change cell format - Currency only covers DM and not $, Euro, Renminbi, Yen or Pound etc.
Shift key and arrow keys selects a range of cells, so that '''formatting can be done to all highlighted cells'''.
View -> Overview then select ALL with one click (in empty cell in the top left hand corner of the sheet).
Default mode is relative cell referencing e.g. a1+a2 but absolute e.g. $a$1+$a$2 can be entered.
* #sheet-name to '''absolute''' reference another sheet-name cell unless reference() function used.
;Graphs
use shift key and arrow keys to select a bunch of cells to be graph'ed making sure that x axes represents and y axes represents
* value() - 0 value, 1 percent, 2 date, 3 time, 4 unit ...
;Dates
* Excel starts a running count from the 1st Jan 1900 and Ignition starts from 1st Jan 1AD '''(maybe this needs to change)'''
Set formatting Object -> Cell -> Properties and put date in days
;Time
Set formatting Object -> Cell -> Properties and put time in seconds taken
;Database (to be done by someone else)
type - standard, reference (bezug), search criterion (suchkriterium),
* select a bunch of cells and Object -> Database -> Define to set Datenbank (database) and Felder (fields not sure how?)
* Neu (new) or loschen (delete) to add/remove database headings e.g. Personal, Start Date, Finish Date (one per row?)
* Object -> Database -> Index to add fields (felder) like Surname, First Name, Employee ID, etc. to ?
Filtering done with dbfilter(), dbproduct() and dbposition().
Activities with dbsum(), dbaverage(), dbmin() and dbmax().
Table sorting -
;Scripts (Arexx)
;Excel(TM) to Ignition - commas ''',''' replaced by semi-colons ''';''' to separate values within functions
*SUM(),
*AVERAGE(), MAX(), MIN(), INT(), PRODUCT(), MEDIAN(), VAR() becomes Variance(), Percentile(),
*IF(), AND, OR, NOT
*LEFT(), RIGHT(), MID() becomes MIDDLE(), LEN() becomes LENGTH(),
*LOWER() becomes LOWERCASE(), UPPER() becomes UPPERCASE(),
* DATE(yyyy,mm,dd) becomes COMPUTEDATE(dd;mm;yyyy),
*TODAY(), DAY(),WEEK(), MONTH(),=YEAR(TODAY()),
*EOMONTH() becomes MONTHLENGTH(),
*NOW() should be date and time becomes time only, SECOND(), MINUTE(), HOUR(),
*DBSUM() becomes DSUM(),
;Missing and possibly useful features/functions needed for ignition to have better support of Excel files
There is no Merge and Join Text over many cells, no protect and/or freeze row or columns or books but can LOCK sheets, no define bunch of cells as a name, Macros (Arexx?), conditional formatting, no Solver, no Goal Seek, no Format Painter, no AutoFill, no AutoSum function button, no pivot tables, (30 argument limit applies to Excel)
*HLOOKUP(), VLOOKUP(), [http://production-scheduling.com/excel-index-function-most-useful/ INDEX(), MATCH()], CHOOSE(), TEXT(),
*TRIM(), FIND(), SUBSTITUTE(), CONCATENATE() or &, PROPER(), REPT(),
*[https://acingexcel.com/excel-sumproduct-function/ SUMPRODUCT()], ROUND(), ROUNDUP(), *ROUNDDOWN(), COUNT(), COUNTA(), SUMIF(), COUNTIF(), COUNTBLANK(), TRUNC(),
*PMT(), PV(), FV(), POWER(), SQRT(), MODE(), TRUE, FALSE,
*MODE(), LARGE(), SMALL(), RANK(), STDEV(),
*DCOUNT(), DCOUNTA(), WEEKDAY(),
;Excel Keyboard [http://dmcritchie.mvps.org/excel/shortx2k.htm shortcuts needed to aid usability in Ignition]
<pre>
Ctrl Z - Undo
Ctrl D - Fill Down
Ctrl R - Fill right
Ctrl F - Find
Ctrl H - Replace
Ctrl 1 - Formatting of Cells
CTRL SHIFT ~ Apply General Formatting ie a number
Ctrl ; - Todays Date
F2 - Edit cell
F4 - toggle cell absolute / relative cell references
</pre>
====Document Scanning - Scandal====
Scanner usually needs to be connected via a USB port and not via a hub or extension lead.
Check in Trident Prefs -> Devices that the USB Scanner is not bound to anything (e.g. Bindings None)
If not found then reboot the computer and recheck.
Start Scandal, choose Settings from Menu strip at top of screen and in Scanner Driver choose the ?#.device of the scanner (e.g. epson2.device).
The next two boxes - leave empty as they are for morphos SCSI use only
or put ata.device (use the selection option in bigger box below) and Unit as 0 this is needed for gt68xx
* gt68xx - no editing needed in s/gt68xx.conf but needs a firmware file that corresponds to the scanner [http://www.meier-geinitz.de/sane/gt68xx-backend/ gt68xx firmwares] in sys:s/gt68xx.
* epson2 - Need to edit the file epson2.conf in sys/s that corresponds to the scanner being used
'''Save''' the settings but do not press the Use button (aros freezes)
Back to the Picture Scan window and the right-hand sections.
Click on the '''Information''' tab and press Connect button and the scanner should now be detected.
Go next to the '''Scanner''' tab next to Information Tab should have Color, Black and White, etc. and dpi settings now. Selecting an option Color, B/W etc. can cause dpi settings corruption (especially if the settings are in one line) so set '''dpi first'''. Make sure if Preview is set or not.
In the '''Scan''' Tab, press Scan and the scanner will do its duty.
Be aware that nothing is saved to disk yet.
In the Save tab, change format JPEG, PNG or IFF DEEP. Tick incremental and base filename if necessary and then click the Save button. The image will now be saved to permanent storage.
The driver ignores a device if it is already bond to another USB class, rejects it from being usable. However, open Trident prefs, select your device and use the right mouse button to open. Select "NONE" to prevent poseidon from touching the device. Now save settings. It should always work now.
[[#top|...to the top]]
===Emulators===
==== Amiberry ====
==== Amiga Emu - Janus UAE ====
With Amibridge, AROS attempts to make the UAE emulator seem embedded within but it still is acting as an app
There is no dynarec m68k for each hardware that Aros supports or direct patching of motorola calls to AROS hardware accelerated ones unless the emulator has that included
Try starting Janus with a priority of -1 like this little script:
<pre>
cd sys:system/AmiBridge/emulator
changetaskpri -1
run janus-uae -f my_uaerc.config >nil:
cd sys:prefs
endcli
</pre>
This stops Janus hogging all the CPU time.
===Miscellaneous===
====Screensaver Blanker====
Most blankers on the amiga (i.e. aros) run as commodities (they are in the tools/commodities drawer). Double click on blanker.
Control is with an app called Exchange, which you need to run first (double click on app) or run QUIET sys:tools/commodities/Exchange >NIL: but subsequently can use (Cntrl Alt h).
Icon tool types (may be broken) or command line options
<pre>
seconds=number
</pre>
Once the timing is right then add the following to s:icaros-sequence or s:user-startup
e.g. for 5 minutes
run QUIET sys:tools/commodities/Blanker seconds=300 >NIL:
*[http://archives.aros-exec.org/index.php?function=showfile&file=graphics/screenblanker/gblanker.i386-aros.zip Garshneblanker] can make Aros unstable or slow. Certain blankers crashes in Icaros 2.0.x like Dragon, Executor.
*[ Acuario AROS version], the aquarium screen saver.
Startup: extras:acuariofv-aros/acuario
Kill: c:break name=extras:acuariofv-aros/acuario
Managed to start Acuario by the Executor blanker.
<pre>
cx_priority=
cx_popkey= ie CX_POPKEY="Shift F1"
cx_popup=Yes or No
</pre>
<pre>
Qualifier String Input Event Class
---------------- -----------------
"lshift" IEQUALIFIER_LSHIFT
"rshift" IEQUALIFIER_RSHIFT
"capslock" IEQUALIFIER_CAPSLOCK
"control" IEQUALIFIER_CONTROL
"lalt" IEQUALIFIER_LALT
"ralt" IEQUALIFIER_RALT
"lcommand" IEQUALIFIER_LCOMMAND
"rcommand" IEQUALIFIER_RCOMMAND
"numericpad" IEQUALIFIER_NUMERICPAD
"repeat" IEQUALIFIER_REPEAT
"midbutton" IEQUALIFIER_MIDBUTTON
"rbutton" IEQUALIFIER_RBUTTON
"leftbutton" IEQUALIFIER_LEFTBUTTON
"relativemouse" IEQUALIFIER_RELATIVEMOUSE
</pre>
<pre>
Synonym Synonym
String Identifier
------- ----------
"shift" IXSYM_SHIFT /* look for either shift key */
"caps" IXSYM_CAPS /* look for either shift key or capslock */
"alt" IXSYM_ALT /* look for either alt key */
Highmap is one of the following strings:
"space", "backspace", "tab", "enter", "return", "esc", "del",
"up", "down", "right", "left", "f1", "f2", "f3", "f4", "f5",
"f6", "f7", "f8", "f9", "f10", "help".
</pre>
[[#top|...to the top]]
==== World Construction Set WCS (Version 2.031) ====
WCS is a fractal landscape software such as Scenery Animator, Vista Pro and Panorama. Open sourced February 2022, World Construction Set [https://3dnature.com/downloads/legacy-software/ legally and for free] and [https://github.com/AlphaPixel/3DNature c source].
Announced August 1994 this version dates from April 1996 developed by Gary R. Huber and Chris "Xenon" Hanson" from Questar
<pre>
Assign "WCSProjects:" "Volume:Dir/Dir/WCSProjects"
Assign "WCSFrames:" "Volume:Dir/Dir/WCSFrames"
</pre>
<pre>
Load projects .proj by accessing pull down menu Project -> Open then click on CanyonSunset.proj
OK to changing .par file and enlarge Status Log window to show what is happening
Render by pull down menu Modules -> Render with End equal 1 not 300 then click bottom middle button Render
</pre>
[https://www.youtube.com/watch?v=CxQDmf1ZWG0 Youtube walkthrough of above], [], [],
Also try working with the already built file ColoDemo - Then open with the drop-down menu: Project/Open, then WCSProject:ColoDemo.proj
Which allows you to use altimetric DEM files already included and Loading scene parameters from ColoDemo.par
Once this is done, save everything with a new name to start working exclusively on your project.
Then drop-down menu and select Save As ("NewName".proj name), then drop-down menu to open parameter and select Save All ( .par name)
After launching the software, there is a the Module Control Panel composed of five icons.
It is a dock type shortcut of the first few functions of the drop-down menu
*Database - Load (#?.proj), Append, Create, Edit, Save, Dir List (of WCSProject drawer),
*Data Ops - Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
*Map View - Database file Loader leading to Map View Control with option to the Database Editor
*Parameters - Editor for Motion, Color, Ecosystem, Clouds, Waves, management of altimeter files DEM, sclock settings etc
*Render - rendering terrain
These are more in the pull down menu but not in the dock
*Motion Editor
*Color Editor
*Ecosys Editor
Simple minimal workflow
*Load database (1st icon - 1st)
*Set parameters and save .par file (4th icon)
*Render scene (5th icon)
[https://www.youtube.com/watch?v=ZbTwwR2qcc4 Youtube], [],
<pre>
.proj new project name which creates a drawer of additional files
.binary array, ascii array .xyz , z buffer, DTED .dt0, vista 1990s dem, iff conversion
.Obj with .elev, .frd with .hdr maps, - digital elevation model (DEM) is a 3D representation of elevation data in various formats
USGS 7.5MinDEM,
.par
</pre>
Since for the time being no project is loaded, a query window indicates a procedural error when clicking on the rendering icon (right end of the bar). The menu is quite traditional; it varies according to the activity of the windows. To display any altimetric file in the "Mapview" (third icon of the panel), There are three possibilities:
* Loading of a demonstration project.
* The import of a DEM file, followed by texturing and packaging from the "Database-Editor" and the "Color-Editor".
* The creation of an altimetric file in WCS format, then texturing.
The altimeter file editing (display in the menu) is only made possible if the "Mapview" window is active.
The software is made up of many windows and won't be able to describe them all. Know that "Color-Editor" and the "Data-Editor" comprise sufficient functions for obtaining an almost real rendering quality. You have the possibility of inserting vector objects in the "Data-Editor" (creation of roads, railways, etc.)
The Map View (MapView) window
*Database - Objects and Topos
*View - Align, Center, Zoom, Pan, Move
*Draw - Maps and distance
*Object - Find, highlight, add points, conform topo, duplicate
*Motion - Camera, Focus, path, elevation
*Windows - DEM designer, Cloud (.cld) and wave (.wve) editor,
You will notice that by selecting this window and simply moving the pointer to various points on the map you will see latitude and longitude values change, along with the height.
Drop-down menu and Modules, then select MapView and change the width of the window with the map to arrange it in the best way on the screen. With the Auto button the center. Window that then displays the contents of my DEM file, in this case the Grand Canyon. MapView allows you to observe the shape of the landscape from above
ZOOM button
Press the Zoom button and then with the pointer position on a point on the map, press the left mouse button and then move to the opposite corner to circumscribe the chosen area and press the left mouse button again, then we will see the enlarged area selected on the map.
Would add that there is a box next to the Zoom button that allows the direct insertion of a value which, the larger it is, the smaller the magnification and the smaller the value, the stronger the magnification. At each numerical change you will need to press the DRAW button to update the view.
PAN button
Under Zoom you will find the PAN button which allows you to move the map at will in all directions by the amount you want. This is done by drawing a line in one direction, then press PAN and point to an area on the map with the pointer and press the left mouse button. At this point, leave it and move the pointer in one direction by drawing a line and press the left mouse button again to trigger the movement of the map on the screen (origin and end points). Do some experiments and then use the Auto button immediately below to recenter everything.
There are parameters such as TOPO, VEC to be left checked and immediately below one that allows different views of the map with the Style command (Single, Multi, Surface, Emboss, Slope, Contour), each with its own particularities to highlight different details.
Now you have the first basics to manage your project visually on the map. Close the MapView window and go further...
Let's start working on ECOSYSTEMS
If we select Emboss from the MapView Style command we will have a clear idea of how the landscape appears, realizing that it is a predominantly desert region of our planet. Therefore we will begin to act on any vegetation present and the appearance of the landscape.
With WCS we will begin to break down the elements of the landscape by assigning defined characteristics. It will be necessary to determine the classes of the ecosystem (Class) with parameters of Elevation Line (maximum altitude), Relative Elevation (arrangement on basins or convexities with respectively positive or negative parameters), Min Slope and Max Slope (slope). WCS offers the possibility of making ecosystems coexist on the same terrain with the UnderEco function, by setting a Density value.
Ecosys Ecosystem Editor
Let's open it from Modules, then Ecosys Editor. In the left pane you will find the list of ecosystems referring to the files present in our project. It will be necessary to clean up that box to leave only the Water and Snow landscapes and a few other predefined ones. We can do this by selecting the items and pressing the Remove button (be careful not for all elements the button is activated, therefore they cannot all be eliminated).
Once this is done we can start adding new ecosystems. Scroll through the various Unused and as soon as the Name item at the top is activated allowing you to write, type the name of your ecosystem, adding the necessary parameters.
<pre>
Ecosystem1: Name: RockBase Class: Rock Density: 80 MinSlope: 15 UnderEco: Terrain
Ecosystem2: Name: RockIncl Clss: Rock Density: 80 MinSlope: 30 UnderEco: Terrain
Ecosystem3: Name: Grass Class Low Veg Density: 50 Height: 1 Elev Line : 1500 Rel El Eff: 5
Max Slope: 10 – Min Slope: 0 UnderEco: Terrain
Ecosistema4: Name: Shrubs Class: Low Veg Density: 40 Height: 8 Elev Line: 3000
Rel El Eff: -2 Max Slope: 20 Min Slope : 5 UnderEco: Terrain
Ecosistema5: Name: Terrain Class: Ground Density: 100 UnderEco: Terrain
</pre>
Now we need to identify an intermediate ecosystem that guarantees a smooth transition between all, therefore we select as Understory Ecosystem the one called Terrain in all ecosystems, except Snow and Water .
Now we need to 'emerge' the Colorado River in the Canyon and we can do this by raising the sea level to 900 (Sea Level) in the Ecosystem called Water.
Please note that the order of the ecosystem list gives priority to those that come after. So our list must have the following order: Water, Snow, Shrubs, RockIncl, RockBase, Terrain. It is possible to carry out all movements with the Swap button at the bottom. To put order you can also press Short List. Press Keep to confirm all the work done so far with Ecosystem Editor.
Remember every now and then to save both the Project 'Modules/Save' and 'Parameter/Save All'
EcoModels are made up of .etp .fgp .iff8 for each model
Color Editor
Now it's time to define the colors of our scene and we can do this by going to Modules and then Color Editor. In the list we focus on our ecosystems, created first.
Let's go to the bottom of the list and select the first white space, assigning the name 'empty1', with a color we like and then we will find this element again in other environments... It could serve as an example for other situations!
So we move to 'grass' which already exists and assign the following colors: R 60 G 70 B50
<pre>
'shrubs': R 60 G 80 B 30
'RockIncl' R 110 G 65 B 60
'RockBase' R 110 G 80 B 80
' Terrain' R 150 G 30 B 30
<pre>
Now we can work on pre-existing colors
<pre>
'SunLight' R 150 G 130 B 130
'Haze and Fog' R 190 G 170 B 170
'Horizon' R 209 G 185 B 190
'Zenith' R 140 G 150 B 200
'Water' R 90 G 125 B 170
</pre>
Ambient R 0 G 0 B 0
So don't forget to close Color Editor by pressing Keep.
Go once again to Ecosystem Editor and assign the corresponding color to each environment by selecting it using the Ecosystem Color button. Press it several times until the correct one appears. Then save the project and parameters again, as done previously.
Motion Editor
Now it's time to take care of the framing, so let's go to Modules and then to Motion Editor. An extremely feature-rich window will open. Following is the list of parameters regarding the Camera, position and other characteristics:
<pre>
-Camera Altitude: 7.0
-Camera Latitude: 36.075
-Camera Longitude: 112.133
-Focus Attitude: -2.0
-Focus Latitude: 36.275
-Focus Longitude: 112.386
-Camera : 512 → rendering window
-Camera Y: 384 → rendering window
-View Arc: 80 → View width in degrees
-Sun Longitude: 172
-Sun Latitude: -0.9
-Haze Start: 3.8
-Haze Range: 78, 5
</pre>
As soon as the values shown in the relevant sliders have been modified, we will be ready to open the CamView window to observe the wireframe preview. Let's not consider all the controls that will appear.
Well from the Motion Editor if you have selected Camera Altitude and open the CamView panel, you can change the height of the camera by holding down the right mouse button and moving the mouse up and down. To update the view, press the Terrain button in the adjacent window. As soon as you are convinced of the position, confirm again with Keep. You can carry out the same work with the other functions of the camera, such as Focus Altitude...
Let's now see the next positioning step on the Camera map, but let's leave the CamView preview window open while we go to Modules to open the window at the same time MapView. We will thus be able to take advantage of the view from the other together with a subjective one.
From the MapView window, select with the left mouse button and while it is pressed, move the Camera as desired. To update the subjective preview, always click on Terrain.
While with the same procedure you can intervene on the direction of the camera lens, by selecting the cross and with the left button pressed you can choose the desired view. So with the pressure of Terrain I update the Preview. Possibly can enlarge or reduce the Map View using the Zoom button, for greater precision.
Also write that the circle around the cameras indicates the beginning of the haze, there are two types (haze and fog) linked to the altitude. Would also add that the camera height is editable through the Motion Editor panel.
The sun
Let's see that changing the position of the sun from the Motion Editor. Press the SUN button at the bottom right and set the time and the date. Longitude and latitude are automatically obtained by the program. Always open the View Arc command from the Motion Editor panel, an item present in the Parameter List box.
Once again confirm everything with Keep and then save again.
Animation
The animation part is not left-back and also occupies a window. The settings possibilities are enormous. A time line with dragging functions ("slide", "drag"...) comparable to that of LightWave completes this window.
A small window is available for positioning the stars as a function of a date, in order to vary the seasons and their various events (and yes...).
At the bottom of the "Motion-Editor", a "cam-view" function will give you access to a control panel. Different preview modes are possible. The rendering is also accessible through a window. No less than nine pages compose it. At this level, you will be able to determine the backup name of your images ("path"), the type of texture to be calculated, the resolution of the images, activate or deactivate functions such as the depth buffer ("zbuffer"), the blur, the background image, etc.
Once all these parameters have been set, all you have to do is click on the "Render" button.
For rendering go to Modules and then Render. Select the resolution, then under IMA select the name of the image. Move to FRA and indicate the level of fractal detail which of 4 is quite good. Then Keep to confirm and then reopen the window, pressing Render you will see the result. The image will be opened with any viewing program.
Strengths:
* Multi-window.
* Quality of rendering.
* Accuracy.
* Opening, preview and rendering on CyberGraphX screen.
* Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
* The "zbuffer" function.
Weaknesses:
* No OpenGL management
* Calculation time.
* No network computing tool.
====Writing CD / DVD - Frying Pan====
Can be backup DVDs (4GB ISO size limit due to use of FileInfoBlock), create audio cds from mp3's, and put .iso files on discs
If using for the first time - click Drive button and Device set to ata.device and unit to 0 (zero)
Click Tracks Button - Drive 1 - Create New Disc or Import Existing Disc Image (iso bin/cue etc.) - Session File open cue file
If you're making a data cd, with files and drawers from your hard drive, you should be using the ISO Builder.. which is the MUI page on the left. ("Data/Audio Tracks" is on the right).
You should use the "Data/Audio tracks" page if you want to create music cds with AIFF/WAV/MP3 files, or if you download an .iso file, and you want to put it on a cd.
Click WRITE Button - set write speed - click on long Write button
Examples
Easiest way would be to burn a DATA CD, simply go to "Tracks" page "ISO Builder" and "ADD" everything you need to burn.
On the "Write" page i have "Masterize Disc (DAO)", "Close Disc" and "Eject after Write" set.
One must not "Blank disc before write" if one uses a CDR
AUDIO CD from MP3's are as easy but tricky to deal with. FP only understands one MP3 format, Layer II, everything else will just create empty tracks
Burning bootable CD's works only with .iso files. Go to "Tracks" page and "Data/Audio Tracks" and add the .iso
====odf====
Every ODF file is a collection of several subdocuments within a package (ZIP file), each of which stores part of the complete document.
* content.xml – Document content and automatic styles used in the content.
* styles.xml – Styles used in the document content and automatic styles used in the styles themselves.
* meta.xml – Document meta information, such as the author or the time of the last save action.
* settings.xml – Application-specific settings, such as the window size or printer information.
To read document follow these steps:
* Extracting .ods file.
* Getting content.xml file (which contains sheets data).
* Creating XmlDocument object from content.xml file.
* Creating DataSet (that represent Spreadsheet file).
* With XmlDocument select “table:table” elements, and then create adequate DataTables.
* Parse child’s of “table:table” element and fill DataTables with those data.
* At the end, return DataSet and show it in application’s interface.
To write document follow these steps:
* Extracting template.ods file (.ods file that we use as template).
* Getting content.xml file.
* Creating XmlDocument object from content.xml file.
* Erasing all “table:table” elements from the content.xml file.
* Reading data from our DataSet and composing adequate “table:table” elements.
* Adding “table:table” elements to content.xml file.
* Zipping that file as new .ods file.
XLS file format
The XLS file format contains streams, substreams, and records.
These sheet substreams include worksheets, macro sheets, chart sheets, dialog sheets, and VBA module sheets.
All the records in an XLS document start with a 2-byte unsigned integer to specify Record Type (rt), and another for Count of Bytes (cb). A record cannot exceed 8224 bytes. If larger than the rest is stored in one or more continue records.
* Workbook stream
**Globals substream
***BoundSheet8 record - info for Worksheet substream i.e. name, location, type, and visibility. (4bytes the lbPlyPos FilePointer, specifies the position in the Workbook stream where the sheet substream starts)
**Worksheet substream (sheet) - Cell Table - Row record - Cells (2byte=row 2byte=column 2byte=XF format)
***Blank cell record
***RK cell record 32-bit number.
***BoolErr cell record (2-byte Bes structure that may be either a Boolean value or an error code)
***Number cell record (64-bit floating-point number)
***LabelSst cell record (4-byte integer that specifies a string in the Shared Strings Table (SST). Specifically, the integer corresponds to the array index in the RGB field of the SST)
***Formula cell record (FormulaValue structure in the 8 bytes that follow the cell structure. The next 6 bytes can be ignored, and the rest of the record is a CellParsedFormula structure that contains the formula itself)
***MulBlank record (first 2 bytes give the row, and the next 2 bytes give the column that the series of blanks starts at. Next, a variable length array of cell structures follows to store formatting information, and the last 2 bytes show what column the series of blanks ends on)
***MulRK record
***Shared String Table (SST) contains all of the string values in the workbook.
ACCRINT(), ACCRINTM(), AMORDEGRC(), AMORLINC(),
COUPDAYBS(), COUPDAYS(), COUPDAYSNC(), COUPNCD(), COUPNUM(), COUPPCD(),
CUMIPMT(), CUMPRINC(),
DB(), DDB(), DISC(),
DOLLARDE(), DOLLARFR(),
DURATION(), EFFECT(), FV(), FVSCHEDULE(),
INTRATE(), IPMT(), IRR(), ISPMT(), MDURATION(), MIRR(), NOMINAL(), NPER(), NPV(),
ODDFPRICE(), ODDFYIELD(), ODDLPRICE(), ODDLYIELD(),
PMT(), PPMT(), PRICE(), PRICEDISC(), PRICEMAT(), PV(), RATE(),
RECEIVED(), SLN(), SYD(), TBILLEQ(), TBILLPRICE(), TBILLYIELD(),
VDB(), XIRR(), XNPV(), YIELD(), YIELDDISC(), YIELDMAT(),
<pre>
</pre>
<pre>
</pre>
<pre>
</pre>
{{BookCat}}
8fir6qrbz9a0ajz0f29we6xj4sje0gi
4674866
4674860
2026-10-07T11:46:12Z
Jeff1138
301139
4674866
wikitext
text/x-wiki
==Introduction==
[[#Graphical Image Editing Art]]
[[#Office Application]]
[[#Audio]]
[[#Misc Application]]
[[#Games & Emulation]]
[[#Application Guides]]
[[#top|...to the top]]
[[#top|...to the top]]
Most apps can be opened on the Workbench (aka publicscreen pubscreen) which is the default display option but can offer a custom one set to your configurations (aka custom screen mode promotion). These custom ones tend to stack so the possible use of A-M/A-N method of switching between full screens and the ability to pull down screens as well
If you are interested in creating or porting new software, see [http://en.wikibooks.org/wiki/Aros/Developer/Docs here]
{| class="wikitable sortable"
|-
!width:30%;|Internet Applications
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Web Online Browser [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=network/browser Amelinium], Odyssey 2.0, [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0], [],
|<!--Amiga OS-->[https://juen.in/ Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, [https://github.com/zapek/Voyager Voyager], [https://github.com/amigazen/aweb3/ AWeb 3.6 src], [https://github.com/matjam/aweb AWeb Src], [http://aminet.net/package/comm/www/NetSurf-m68k-sources Netsurf], [],
|<!--AmigaOS4-->[ Odyssey OWB], [ Timberwolf (Firefox port 2011)], [http://amigaworld.net/modules/newbb/viewtopic.php?forum=32&topic_id=32847 OWB-mui], [http://strohmayer.org/owb/ OWB-Reaction], IBrowse*, [http://os4depot.net/index.php?function=showfile&file=network/browser/aweb.lha AWeb], Voyager, [http://www.os4depot.net/index.php?function=browse&cat=network/browser Netsurf],
|<!--MorphOS-->Wayfarer, [http://fabportnawak.free.fr/owb/ Odyssey OWB], [ Netsurf], IBrowse*, AWeb, [],
|-
|<!--Sub Menu-->YouTube, Dailymotion website downloading videos audio [https://github.com/yt-dlp/yt-dlp yt-dlp], [https://clipgrab.org/ clipgrab],
|<!--AROS-->[], [https://blog.alb42.de/amitube/ Amitube],
|<!--Amiga OS-->[https://blog.alb42.de/amitube/ Amitube], [ smtube],
|<!--AmigaOS4-->[https://blog.alb42.de/amitube/ Amitube], getVideo, Tubexx, [https://github.com/walkero-gr/aiostreams aiostreams],
|<!--MorphOS-->[ ytsearch], [https://blog.alb42.de/amitube/ Amitube], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 getVideo], Tubexx
|-
|<!--Sub Menu-->Old style E-mailing SMTP POP3 IMAP based
|<!--AROS-->Emailinium, [http://archives.arosworld.org/index.php?function=browse&cat=network/email SimpleMail], [http://sourceforge.net/projects/simplemail/files/ src], [https://github.com/jens-maus/yam YAM]
|<!--Amiga OS-->Emailinium, [http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC, ICB,
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/chat WookieChat], [https://sourceforge.net/projects/wookiechat/ Wookiechat src], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat AiRcOS], Jabberwocky,
|<!--Amiga OS-->[https://github.com/charabaruk/WookieChat Wookiechat], AmIRC
|<!--AmigaOS4-->Wookiechat
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=5 Wookiechat], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 AmIRC],
|-
|<!--Sub Menu-->Instant Messaging IM like [https://github.com/BlitterStudio/amidon Hollywood lang based Mastodon client], BlueSky AT protocol, Facebook(TM), Twitter X (TM), Bitlbee IRC Gateway and others
|<!--AROS-->[https://github.com/kaffeine1/telegram-amiga telegram-amiga], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat jabberwocky],
|<!--Amiga OS-->[http://amitwitter.sourceforge.net/ AmiTwitter], CLIMM, SabreMSN, [https://sourceforge.net/projects/ajabberwocky/ jabberwocky],
|<!--AmigaOS4-->[http://amitwitter.sourceforge.net/ AmiTwitter], SabreMSN,
|<!--MorphOS-->[http://amitwitter.sourceforge.net/ AmiTwitter], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 PolyglotNG], SabreMSN,
|-
|<!--Sub Menu-->Torrents
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/p2p ArTorr],
|<!--Amiga OS-->
|<!--AmigaOS4-->CTorrent, Transmission
|<!--MorphOS-->MLDonkey, Beehive, [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Transmission], CTorrent,
|-
|<!--Sub Menu-->FTP
|<!--AROS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], MarranoFTP, [https://aminet.net/package/comm/tcp/wput-0.3.4c.i386-aros wput i386 c src]
|<!--Amiga OS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP, [https://aminet.net/package/comm/tcp/sana2-tftpclient sana2 tftpclient c src]
|<!--AmigaOS4-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|<!--MorphOS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Pftp], [http://aminet.net/package/comm/tcp/AmiFTP-1.935-OS4 AmiFTP],
|-
|<!--Sub Menu-->WYSIWYG Web Site Editor
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Internet Radio Streaming Audio [http://www.gnu.org/software/gnump3d/ gnump3d], [http://www.icecast.org/ Icecast2] Server (Broadcast) and Client (Listen), [ mpd], [http://darkice.sourceforge.net/ DarkIce], [http://www.dyne.org/software/muse/ Muse],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc], Mplayer (Icecast Client only),
|<!--Amiga OS-->[https://github.com/sandlbn/TuneFinder TuneFinder C Src], [https://github.com/sandlbn/TuneFinderMUI TuneFinderMUI], [http://amigazeux.net/anr/ AmiNetRadio], [https://github.com/boingball/MintAMP MintAMP], [],
|<!--AmigaOS4-->[http://www.tunenet.co.uk/ Tunenet],
|<!--MorphOS-->Mplayer, AmiNetRadio,
|-
|<!--Sub Menu-->VoIP (Voice over IP) with SIP Client (Session Initiation Protocol) or Asterisk IAX2 Clients Softphone (skype like)
|<!--AROS-->
|<!--Amiga OS-->AmiPhone with Speak Freely,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Weather Forecast
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ WeatherBar], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench AWeather], []
|<!--Amiga OS-->[http://amigazeux.net/wetter/ Wetter], [https://github.com/emartisoft/AmiWeatherForecasts AmiWeatherForecasts src],
|<!--AmigaOS4-->[http://os4depot.net/?function=showfile&file=utility/workbench/flipclock.lha FlipClock],
|<!--MorphOS-->[http://amigazeux.net/wetter/ Wetter],
|-
|<!--Sub Menu-->Street Road Maps Route Planning GPS Tracking
|<!--AROS-->[https://blog.alb42.de/programs/muimapparium/ MuiMapparium] [https://build.alb42.de/ Build of MuiMapp versions],
|<!--Amiga OS-->AmiAtlas*, UKRoutePlus*, [http://blog.alb42.de/ AmOSM],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://blog.alb42.de/programs/mapparium/ Mapparium],
|-
|<!--Sub Menu-->Clock and Date setting from the internet by network time protocol (NTP) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ old standard NIST Internet Time Servers],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync], [https://archives.arosworld.org/?function=showfile&file=utility/workbench/amitimekeeper.i386-aros.lha amitimekeeper with c src], [PiNTP], [],
|<!--Amiga OS-->ntpsync, [http://aminet.net/package/util/cdity/AmiTimeKeeper amitimekeeper], [http://aminet.net/comm/misc/netclock netclock], [https://aminet.net/package/comm/net/sntp sntp], [http://aminet.net/package/util/time/ScreenTime ScreenTime],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->RSS
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/Team-Boingo/AmiRSS AmiRSS src]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->AI
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/murinsel/AmigaAI Claude], [https://github.com/geekychris/amiga_mcp AI on host machine], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->BBS
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Graphical Image Editing Art==
{| class="wikitable sortable"
|-
!width:30%;|Image Editing
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Pixel Raster Artwork [https://github.com/LibreSprite/LibreSprite LibreSprite based on GPL aseprite], [https://github.com/abetusk/hsvhero hsvhero], [],
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/ZunePaint/ ZunePaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit LunaPaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit GrafX2], [ LodePaint needs OpenGL],
|<!--Amiga OS-->[http://www.amigaforever.com/classic/download.html PPaint], GrafX2, [https://github.com/grovdata/Amiga_Sources/blob/master/software.md DeluxePaint], [http://www.amiforce.de/perfectpaint/perfectpaint.php PerfectPaint], Zoetrope, Brilliance2*,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/edit LodePaint], GrafX2,
|<!--MorphOS-->Sketch, Pixel*, GrafX2, [http://morphos.lukysoft.cz/en/vypis.php?kat=3 LunaPaint]
|-
|<!--Sub Menu-->Image viewing
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LookHere], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LoView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer PicShow] , [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--Amiga OS-->PicShow, PicView, Photoalbum,
|<!--AmigaOS4-->WarpView, PicShow, flPhoto, Thumbs, [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album]
|-
|<!--Sub Menu-->Photography retouching / Image Manipulation like Photoshop(tm)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOEffects],
|<!--Amiga OS-->[ Tecsoft Video Paint aka TVPaint], Photogenics*, ArtEffect*, ImageFX*, XiPaint, fxPaint, ImageMasterRT, Opalpaint,
|<!--AmigaOS4-->WarpView, flPhoto, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit Photocrop]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], ImageFX*,
|-
|<!--Sub Menu-->Manage RAW picture folder galleries like Darktable, RAWtherapy, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Graphic Format Converter - ICC profile support sRGB, Adobe RGB, XYZ and linear RGB
|<!--AROS-->
|<!--Amiga OS-->GraphicsConverter, ImageStudio, [http://www.coplabs.org/artpro.html ArtPro]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Thumbnail Generator [],
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=utility/shell Thumbnail Generator]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Icon Editor
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/iconedit Archives], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench Icon Toolbox],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/iconedit IconEditor]
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Pixel Art Animation
|<!--AROS-->Lunapaint
|<!--Amiga OS-->PPaint, AnimatED, Scala*, GoldDisk MovieSetter*, Walt Disney's Animation Studio*, ProDAD*, [https://github.com/historicalsource/DeluxePaint DeluxePaint src], Brilliance
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 Titler]
|-
|<!--Sub Menu-->2D SVG based MovieSetter type
|<!--AROS-->
|<!--Amiga OS-->MovieSetter*, Fantavision*
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Morphing
|<!--AROS-->[ GLMorph]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Cad (qcad->LibreCAD, etc.)
|<!--AROS-->
|<!--Amiga OS-->Xcad, MaxonCAD
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Cad like FreeCad, BRL-CAD, OpenSCAD, AvoCADo, etc. using dxf, obj (vertices), blend,
|<!--AROS-->
|<!--Amiga OS-->XCad3d*, DynaCADD*, [https://aminet.net/package/gfx/3d/Cycas178_EN Cycas]*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Model Rendering of glft (json) gbl (png jpg), usdz (USD files with materials, textures, and animations), FBX Filmbox is a proprietary Autodesk format,
|<!--AROS-->POV-Ray
|<!--Amiga OS-->[http://www.discreetfx.com./amigaproducts.html CINEMA 4D]*, POV-Ray, Lightwave3D*, Real3D*, Caligari24*, Reflections/Monzoom*, [https://github.com/privatosan/RayStorm Raystorm src], Tornado 3D, [https://github.com/AlphaPixel/Eric-Graham-1987-Juggler-Raytracer-1.0 Eric-Graham-1987-Juggler-Raytracer-1.0]
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=graphics/convert/ 3doc.i386-aros], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen grabbing display
|<!--AROS-->[ Screengrabber], [http://archives.arosworld.org/index.php?function=browse&cat=utility/misc snapit], [http://archives.arosworld.org/index.php?function=browse&cat=video/record screen recorder], []
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Grab graphics music from apps [https://github.com/Malvineous/ripper6 ripper6], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Manage metadata of images [https://github.com/exiv2/exiv2 exiv2], [ EXIF/IPTC/XMP metadata manipulation], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Office Application==
{| class="wikitable sortable"
|-
!width:30%;|Office
!width:10%;|AROS (x86)
!width:10%;|[http://en.wikipedia.org/wiki/Amiga_software Commodore-Amiga OS 3.1] (68k)
!width:10%;|[http://en.wikipedia.org/wiki/AmigaOS_4 Hyperion OS4] (PPC)
!width:10%;|[http://en.wikipedia.org/wiki/MorphOS MorphOS] (PPC)
|-
|<!--Sub Menu-->Office Suite
|<!--AROS-->
|<!--Amiga OS-->[ Softwood Final Office], [ Wordworth Office], [ Digita Office], [ The Works!], [ Europress Mini Office], [], [ Papyrus Office Demo],
|<!--AmigaOS4-->
|<!--MorphOS-->[ Papyrus Office],
|-
|<!--Sub Menu-->Word-processing
|<!--AROS-->[https://finalwriter.godaddysites.com/ Final Writer 7*], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1995&rowstart=20&pid=12668#post_12668 Slovo], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [],
|<!--AmigaOS-->[ Softwood FinalCopy II*], Haage AmigaWriter*, Digita WordWorth*, Softwood FinalWriter*, Micro-Systems Excellence 3*, Arnor Protext, Rashumon, [ InterWord], [ KindWords], [WordPerfect], [ New Horizons Flow], [ CygnusEd Pro], [ Micro-systems Scribble],
|<!--AmigaOS4-->AbiWord, [ CinnamonWriter],
|<!--MorphOS-->[ Cinnamon Writer], [http://www.meta-morphos.org/viewtopic.php?topic=1246&forum=53 scriba], [http://morphos.lukysoft.cz/en/index.php Papyrus Office],
|-
|<!--Sub Menu-->Spreadsheets
|<!--AROS-->[https://blog.alb42.de/programs/leu/ Leu], [https://archives.arosworld.org/index.php?function=browse&cat=office/spreadsheet ],
|<!--AmigaOS-->[https://aminet.net/package/biz/spread/ignition-src Ignition Src 1.3], [MaxiPlan 500 Plus], [OXXI Plan/IT v2.0 Speadsheet], [ Superplan], [ Creative Developments TurboCalc], [ ProCalc], [ InterSpread], [Digita DGCalc], [ Gold Disk Advantage], [ Micro-systems Analyze!]
|<!--AmigaOS4-->Gnumeric, [https://ignition-amiga.sourceforge.net/ Ignition],
|<!--MorphOS-->[ ignition], [http://morphos.lukysoft.cz/en/vypis.php Papyrus Office],
|-
|<!--Sub Menu-->Presentations
|<!--AROS-->[http://www.hollywoood-mal.com/ Hollywood]*,
|<!--Amiga OS-->[http://www.hollywoood-mal.com/ Hollywood]*, [https://github.com/evaneykelen/mediapoint-amiga MediaPoint C and asm], PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, [https://sourceforge.net/projects/beebase/ BeeBase], Datastore, FinalData*, AmigaBase, Fiasco, Twist2*, [Digita DGBase], [],
|<!--AmigaOS4-->BeeBase, SQLite,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=6 BeeBase],
|-
|<!--Sub Menu-->PDF Viewing, editing and digital signatures
|<!--AROS-->[https://github.com/tomaszstaniak/aros-foliopdf folio version of mupdf], [http://sourceforge.net/projects/arospdf/ ArosPDF via splash xpdf], [https://github.com/wattoc/AROS-vpdf vpdf],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Note Taking markdown support like Obsidian like, joplin, OneNote, EverNotes, xournalpp, etc
|<!--AROS-->
|<!--Amiga OS-->[http://aminet.net/package/text/Kickdown c src with reaction gui], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Study and analyse, collect, organize, annotate, cite, and share
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PIM Personal Information Manager - Day Diary Planner Calendar App Filofax like
|<!--AROS-->[ ], [ ], [ ],
|<!--Amiga OS-->Digita Organiser*, On The Ball, Everyday Organiser, [ Contact Manager],
|<!--AmigaOS4-->AOrganiser,
|<!--MorphOS-->[http://polymere.free.fr/orga_en.html PolyOrga],
|-
|<!--Sub Menu-->Accounting
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/misc ETB], LoanCalc, [ ], [ ], [ ],
|[ Digita Home Accounts2], Accountant, Small Business Accounts, Account Master, [ Amigabok],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Project Management Research
|<!--AROS-->
|<!--Amiga OS-->SuperGantt, SuperPlan,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Desktop
|<!--AROS-->Wanderer, Scalos, Workbook, DOpus5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[https://github.com/zapek/Ambient Ambient Src]
|-
|<!--Sub Menu-->System Wide Search
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility/filetool Finder], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Wide Dictionary - multilingual [http://sourceforge.net/projects/babiloo/ Babiloo], [http://code.google.com/p/stardict-3/ StarDict],
|<!--AROS-->[ ],
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System wide Thesaurus - multi lingual
|<!--AROS-->[ ],
|Kuma K-Roget*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Sticky Desktop Notes (post it type)
|<!--AROS-->[http://aminet.net/package/util/wb/amimemos.i386-aros AmiMemos], [https://aminet.net/package/util/wb/amimemos.src-aros AmiMemos Src], [],
|<!--Amiga OS-->[http://aminet.net/package/util/wb/StickIt-2.00 StickIt v2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DTP Desktop Publishing
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOPublisher],
|<!--Amiga OS-->[http://pagestream.org/ Pagestream]*, Professional Pro Page*, Saxon Publisher, Pagesetter, PenPal,
|<!--AmigaOS4-->[http://pagestream.org/ Pagestream]*
|<!--MorphOS-->[http://pagestream.org/ Pagestream]*
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers, [https://github.com/bohunamiga/MintPRINT MintPRINT AirPrint IPP], [ Ghostscript], [],
|<!--Amiga OS-->[https://github.com/boingball/MintPRINT MintPRINT IPP], [https://github.com/Andiweli/AmiAirprint AmiAirprint], [http://www.irseesoft.de/tp_what.htm TurboPrint]*, [ GutenPrint], [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR], [], [],
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included, [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR],
|-
|<!--Sub Menu-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*, [https://github.com/boingball/MintSCAN MintSCAN],
|<!--AmigaOS4-->SCANdal (Sane)
|<!--MorphOS-->SCANdal
|-
|<!--Sub Menu-->OCR
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/convert gOCR]
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos-files.net/categories/office/text Tesseract]
|-
|<!--Sub Menu-->Text Editing
|<!--AROS-->Jano Editor (already installed as Editor), [http://archives.arosworld.org/index.php?function=browse&cat=development/edit EdiSyn], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate], [https://archives.arosworld.org/index.php?function=browse&cat=development/edit Vim], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd] [https://github.com/vidarh/FrexxEd src], [ NoWinEd],
|<!--Amiga OS-->[https://aminet.net/package/text/edit/TurboText20 TurboText20 ttx], Annotate, MicroGoldED/CubicIDE*, CygnusED*, Protext*, NoWinED,
|<!--AmigaOS4-->Notepad, Annotate, CygnusED*, NoWinED,
|<!--MorphOS-->MorphOS ED, NoWinED, GoldED/CubicIDE*, CygnusED*, Annotate,
|-
|<!--Sub Menu-->Office Fonts [http://sourceforge.net/projects/fontforge/files/fontforge-source/ Font Designer]
|<!--AROS-->[ ], [ ],
|<!--Amiga OS-->TypeSmith*, SaxonScript (GetFont Adobe Type 1),
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Drawing Vector
|<!--AROS-->[http://sourceforge.net/projects/amifig/ ZuneFIG previously AmiFIG], [https://github.com/serk118/designworks-aros designworks aros 64bit]
|<!--Amiga OS-->Drawstudio*, ProVector*, ArtExpression*, Professional Draw*, AmiFIG, MetaView, [https://gitlab.com/amigasourcecodepreservation/designworks Design Works Src], [],
|<!--AmigaOS4-->MindSpace, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit amifig],
|<!--MorphOS-->SteamDraw, [http://aminet.net/package/gfx/edit/amifig amiFIG],
|-
|<!--Sub Menu-->video conferencing (jitsi)
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->source code hosting
|<!--AROS-->Gitlab,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Remote Desktop (server)
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/VNC_Server ArosVNCServer],
|<!--Amiga OS-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC], [http://dspach.free.fr/amiga/avnc/index.html AVNC]
|<!--AmigaOS4-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC]
|MorphVNC, vncserver
|-
|<!--Sub Menu-->Remote Desktop (client) login and connect to another machine
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/VNC_Client/ ArosVNC], [http://archives.arosworld.org/index.php?function=browse&cat=network/misc rdesktop],
|<!--Amiga OS-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://dspach.free.fr/amiga/vva/index.html VVA], [http://www.hd-zone.com/ RDesktop]
|<!--AmigaOS4-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|-
|<!--Sub Menu-->notifications
|<!--AROS-->
|<!--Amiga OS-->Ranchero
|<!--AmigaOS4-->Ringhio
|<!--MorphOS-->MagicBeacon
|-
|<!--Sub Menu-->Biometric facial logins and fingerprint security features
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Audio==
{| class="wikitable sortable"
|-
!width:30%;|Audio
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing playback Audio like MP3, [https://github.com/chrg127/gmplayer NSF], [https://github.com/kode54/lazyusf miniusf .usflib] [https://gitlab.com/kode54/psflib with pfslib], [], [], etc
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ HarmonyPlayer hp], [http://www.a500.org/downloads/audio/index.xhtml playcdda] CDs, [ WildMidi Player], [https://bszili.morphos.me/ UADE mod player], [], [ RNOTunes], [ mp3Player], [],
|<!--Amiga OS-->AmiNetRadio, AmigaAmp, playOGG, [https://codeberg.org/tygre/amimodradio amimodradio]
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX], [ Samplitude],
|<!--AmigaOS4-->[https://sourceforge.net/projects/hd-rec/ HD-Rec], AmiSoundED, [http://os4depot.net/?function=showfile&file=audio/record/audioevolution4.lha Audio Evolution 4]
|[http://www.hd-rec.de/HD-Rec/index.php?site=home HD-Rec],
|-
|<!--Sub Menu-->Editing Tracker Music
|<!--AROS-->[https://github.com/hitchhikr/protrekkr Protrekkr], [ Schism Tracker], [http://archives.arosworld.org/index.php?function=browse&cat=audio/tracker MilkyTracker], [http://www.hivelytracker.com/ HivelyTracker], [ Radium in AROS already], [http://www.a500.org/downloads/development/index.xhtml libMikMod],
|<!--Amiga OS-->MilkyTracker, HivelyTracker, DigiBooster, Octamed SoundStudio, [https://github.com/elindstrom/soundtracker soundtracker],
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and musical notes on manuscript [https://github.com/ratchov/midish midish] midi sequencer
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes], [], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction Set DMCS2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src] [https://github.com/kas1e/midi-sequencer-amigaos/tree/master/HornyGCC HornyGCC OS4 src] [https://github.com/capehill/midi-sequencer-amigaos Horny OS4 fork src] [https://www.amigans.net/modules/newbb/viewtopic.php?start=0&topic_id=8143&order=ASC&status=&mode=0 OS4 thread], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator], [https://github.com/royaltm/Amiga-midiIn Amiga-midiIn], [ Aegis Sonix 2.0]
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [https://github.com/gooofy/freeaction Horny OS4 src fork], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[ Advanced AHI Recorder all], [https://archives.arosworld.org/index.php?function=browse&cat=audio/record Audio Evolution 4], [http://www.imica.net/SitePortalPage.aspx?siteid=1&did=162 Quick Record], [https://archives.arosworld.org/index.php?function=browse&cat=audio/misc SOX to get AIFF 16bit files], [https://github.com/aros-development-team/AROS/tree/master/workbench/tools/AHIRecord AHIRecord],
|<!--Amiga OS-->[https://aminet.net/package/mus/edit/AudioEvolution3_src Audio Evolution 3 c src], [ Samplitude]*, Audiomaster IV*,
|<!--AmigaOS4-->[https://github.com/timoinutilis/phonolith-amigaos phonolith c src], HD-Rec, Audio Evolution 4,
|<!--MorphOS-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Audio Evolution 4,
|-
|<!--Sub Menu-->Audio Processing like easyeffects so having limiter, compressor, convolver, equalizer and auto volume and many other plugins
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility IsoTools], [https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [ MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|<!--MorphOS-->[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|<!--AROS-->Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|<!--MorphOS-->Lame,
|-
|<!--Sub Menu-->MP3 v1 and v2 Tagger
|<!--AROS-->id3ren (v1), [http://archives.arosworld.org/index.php?function=browse&cat=audio/edit mp3info],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|
|-
|<!--Sub Menu-->Audio Convert
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc Sox], [],
|<!--Amiga OS-->[http://aminet.net/package/mus/misc/SoundBox SoundBox], [http://aminet.net/package/mus/misc/SoundBoxKey SoundBox Key], [http://aminet.net/package/mus/edit/SampleE SampleE], sox
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DJ mixing jamming
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/djh0ffman/PT1210 Hoffman PT1210 DJ tracker], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Radio Automation Software [http://www.rivendellaudio.org/ Rivendell], [http://code.campware.org/projects/livesupport/report/3 Campware LiveSupport], [http://www.sourcefabric.org/en/airtime/ SourceFabric AirTime], [http://www.ohloh.net/p/mediabox404 MediaBox404],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speakers Audio Sonos Mains AC networked wired controlled
*2005 ZP100 with ZP80
*2008 Zoneplayer ZP120 (multi-room wireless amp) ZP90 receiver only with CR100 controller,
*2009 ZonePlayer S5,
*2010 BR100 wireless Bridge (no support),
*2011 Play:3
*2013 Bridge (no support), Play:1,
*2016 Arc, Play:1,
*Beam (Gen 2), Playbar, Ray, Era 100, Era 300, Roam, Move 2,
*Sub (Gen 3), Sub Mini, Five, Amp S2
|<!--AROS-->SonosController
|<!--Amiga OS-->SonosController
|<!--AmigaOS4-->SonosController
|<!--MorphOS-->SonosController
|-
|<!--Sub Menu-->Smart Speakers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Video Creativity and Production==
{| class="wikitable sortable"
|-
!width:30%;|Video
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing Video
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ VAMP], [http://www.a500.org/downloads/video/index.xhtml CDXL player], [http://www.a500.org/downloads/video/index.xhtml IffAnimPlay], [],
|<!--Amiga OS-->Frogger*, AMP2, MPlayer, RiVA*, MooViD*,
|<!--AmigaOS4-->DvPlayer, MPlayer
|<!--MorphOS-->MPlayer, Frogger, AMP2, VLC
|-
|<!--Sub Menu-->Streaming Video and game streaming like OBS studio, Parsec, [https://github.com/lizardbyte/sunshine sunshine], [https://github.com/moonlight-stream/moonlight-qt moonlight], etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Playing DVD
|<!--AROS-->[http://a-mc.biz/ AMC]*, Mplayer
|<!--Amiga OS-->AMP2, Frogger
|<!--AmigaOS4-->[http://a-mc.biz/ AMC]*, DvPlayer*, AMP2,
|<!--MorphOS-->Mplayer
|-
|<!--Sub Menu-->Screen Recording
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/record Screenrecorder], [ ], [ ], [ ], [ ],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Screenrecorder,
|-
|<!--Sub Menu-->Create Edit Individual Video - Amiga like OSs have no pro NLE
|<!--AROS-->[ Mencoder], [ Quick Videos], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit AVIbuild], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/misc FrameBuild], FFMPEG,
|<!--Amiga OS-->[ MainConcept Mainactor Broadcast*], [http://en.wikipedia.org/wiki/Video_Toaster Video Toaster*] with [https://discreetfx.com/openvideotoaster.html some c src], MacroSystem MovieShop 4.3*, proDAD Adorage*, [ IOSpirit VHI studio]*, [Gold Disk ShowMaker], [],
|<!--AmigaOS4-->FFMpeg/GUI
|<!--MorphOS-->Blender, Mencoder, FFmpeg
|-
|<!--Sub Menu-->Subtitle editor
|<!--AROS-->[https://aminet.net/package/text/edit/Slarti_Arosx86ABIv0 Slarti_Arosx86ABIv0], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->IP-based video production workflows with High Dynamic Range (HDR), 10-bit color collaborative NDI,
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Blogging like Lemmy or kbin
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR face recognition for Vtubers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting Live2D models with Cubism type editor or [https://github.com/AyagamiDev/ayagami ayagami] like with zipped moc3 with model metadata (model3, cdi3)
<pre>
Model data (cmo3)
Basic motions (can3)
Background image (png)
Set of files for embedding (runtime folder)
• Model data (moc3)
• Motion data (motion3.json)
• Model settings file (model3.json)
• Physics settings file (physics3.json)
• Display auxiliary file (cdi3.json)
</pre>
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting chatters .VRML models - standardized 3D file format for VR avatars
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->V-tubers V-tubing like Vseeface with Openseeface tracker or Vpuppr (virtual puppet project) for online live 2d / 3d art models rigging rigged LIV
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Misc Application==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->File Management
|<!--AROS-->DOpus4, [https://github.com/BlitterStudio/dopus5 DOpus Magellan aka DOpus 5], [ Scalos], [ FileMaster],
|<!--Amiga OS-->DOpus2, DOpus 4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], ClassAction, FileMaster, DirWork 2*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], Filer, AmiDisk
|<!--MorphOS-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->[https://arosarchives.os4depot.net/index.php?function=browse&cat=utility md5sum], [https://arosarchives.os4depot.net/index.php?function=browse&cat=utility/filetool asum], [http://archives.arosworld.org/index.php?function=browse&cat=utility/filetool workpar2] (PAR2), [http://zakalwe.fi/~shd/foss/cksfv/files/ compile cksfv from website],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Par2,
|-
|<!--Sub Menu-->Package Application Installer
|<!--AROS-->[https://github.com/tomaszstaniak?tab=repositories Pkg manager], [https://aros-pkg.azurewebsites.net/search?arch=x86_64 Pkg], [ InstallerNG],
|<!--Amiga OS-->InstallerNG, Grunch,
|<!--AmigaOS4-->Jack
|<!--MorphOS-->Jack
|-
|<!--Sub Menu-->Compression archiver [https://github.com/FS-make-simple/paq9a paq9a], [],
|<!--AROS-->XAD system is a toolkit designed for handling various file and disk archiver
|<!--Amiga OS-->
|<!--AmigaOS4-->[https://aminet.net/package/util/pack/decrunchmania_os4 Crunchmania CrM2 depacker],
|<!--MorphOS-->
|-
|<!--Sub Menu-->Binary Hexadecimal Editor
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/edit Zaphod], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter Disk Management
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [ HDToolBox]
|<!--Amiga OS-->[https://github.com/stefanskotte/hdpart hdpart], [https://github.com/ChuckyGang/AmiPart AmiPart],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair and backups
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS-->[https://aminet.net/package/disk/bakup/quarterback_src Quarterback Tools C and asm src], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Disk check, integrity and history [https://github.com/smartmontools/smartmontools smart tools], [],
|<!--AROS-->
|<!--Amiga OS-->[],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Multiple File renaming
|<!--AROS-->DOpus 4 or 5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Anti Virus
|<!--AROS-->
|<!--Amiga OS-->VChecker,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Random Wallpaper Desktop changer [ DOpus5], [ Scalos],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Alarm Clock, Timer, Stopwatch, Countdown
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench DClock], [http://aminet.net/util/time/AlarmClockAROS.lha AlarmClock], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 2==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->C/C++ IDE Integrated Development
|<!--AROS-->[https://sourceforge.net/projects/aidea/ AIDEa], [ Murks], [],
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, [ StormC], [https://github.com/jens-maus/amide amide], [],
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*,
|-
|<!--Sub Menu-->C/C++ Text Editors
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate] with [https://www.onyxsoft.se/files/annotate_src.lha src],
|<!--Amiga OS-->[ Protext], [ CED], [],
|<!--AmigaOS4-->
|<!--MorphOS-->[https://www.onyxsoft.se/annotate.html Annotate],
|-
|<!--Sub Menu-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->BASIC Computer Language
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/language Basic4SDL], [ Ace Basic], [ X-AMOS], [SDLBasic], [ Alvyn],
|<!--Amiga OS-->[http://www.amiforce.de/main.php Amiblitz 3] with [https://github.com/AmiBlitz/AmiBlitz3 Asm src], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro] with [https://github.com/AmiDARK/AmosProfessionalUnity-Official-Releases Asm src], [http://aminet.net/package/dev/basic/ace24dist ACE Basic], [https://github.com/gooofy/aqb aqb], [],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/], [https://github.com/kermitfrog/Amiga-Re-Engineering Rust, Ghidra and FS-UAE],
|<!--AROS-->
|<!--Amiga OS-->[https://bitbucket.org/rhinoid/convert68000toc/src/main/ convert m68k seka asm-one to c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Gui Creators
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/guitool MuiBuilder],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[ MuiBuilder],
|-
|<!--Sub Menu-->Catalog .cd .ct Custom App Language Editors
|<!--AROS-->FlexCat, [https://archives.arosworld.org/index.php?function=browse&cat=utility Flexcat GUI], [],
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|<!--MorphOS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->Cross Development
|<!--AROS-->[], [],
|<!--Amiga OS-->[https://github.com/geekychris/amiga_mcp amiga_mcp], [https://github.com/mbergmann-sh/AmigaED4-IDE AmigaED4-IDE], [https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/ Turbo Rascal], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Misc Application 3==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Terminals Shells CLIs
|<!--AROS-->[https://github.com/tomaszstaniak/limpet limpet], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->OSK On Screen Keyboard
|<!--AROS-->[],
|<!--Amiga OS-->[https://aminet.net/util/wb/OSK.lha OSK]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Magnifier Magnifying Glass Magnification
|<!--AROS-->[http://www.onyxsoft.se/files/zoomit.lha ZoomIT],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Comic Book CBR CBZ format reader viewer
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comics], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comicon], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Reader
|<!--AROS-->[https://blog.alb42.de/programs/#legadon Legadon EPUB],[]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Converter
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Text to Speech tts [https://github.com/JonathanFly/bark-installer Bark], [],
|<!--AROS-->[ Echo " " >SPEAK:A1 inbuilt], [http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator], [https://github.com/sidick/narrator.wyoming narrator.wyoming], [],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=search&tool=simple FLite]
|<!--MorphOS-->[http://se.aminet.net/pub/aminet/mus/misc/ FLite]
|-
|<!--Sub Menu-->Speech Voice Recognition Dictation - [http://sourceforge.net/projects/cmusphinx/files/ CMU Sphinx], [http://julius.sourceforge.jp/en_index.php?q=en/index.html Julius], [http://www.isip.piconepress.com/projects/speech/index.html ISIP],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speech Voice Changer [], [], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Display Blanker screensaver
|<!--AROS-->Blanker Commodity (built in), [https://archives.arosworld.org/index.php?function=browse&cat=graphics/screenblanker GarshneBlanker], [http://sourceforge.net/projects/gblanker/ GBlanker Src], [],
|<!--Amiga OS-->MultiCX,
|<!--AmigaOS4-->
|<!--MorphOS-->ModernArt Blanker,
|-
|<!--Sub Menu-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 4==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Fractals mandelbrot, etc
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/misc],
|<!--Amiga OS-->ZoneXplorer,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Landscape Rendering
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/raytrace WCS World Construction Set],
|<!--Amiga OS-->[ Vista Pro], [http://en.wikipedia.org/wiki/World_Construction_Set World Construction Set]
|<!--AmigaOS4-->[ WCS World Construction Set],
|<!--MorphOS-->[ WCS World Construction Set],
|-
|<!--Sub Menu-->Astronomy [https://sourceforge.net/projects/skychart/ skychart freepascal], [], [],
|<!--AROS-->[ Digital Almanac (ABIv0 only)],
|<!--Amiga OS-->[http://aminet.net/search?query=planetarium Aminet search], [http://aminet.net/misc/sci/DA3V56ISO.zip Digital Almanac], [https://aminet.net/package/misc/sci/da3sourceV58 Src c V58], [ Galileo renamed to Distant Suns]*, [],
|<!--AmigaOS4-->[http://sourceforge.net/projects/digital-almanac/ Digital Almanac], Distant Suns*, [http://www.digitaluniverse.org.uk/ Digital Universe]*,
|<!--MorphOS-->[http://www.aminet.net/misc/sci/da3.lha Digital Almanac], [http://www.aminet.net/package/misc/sci/da3-mos-src Src c V56],
|-
|<!--Sub Menu-->Astrology [https://sourceforge.net/projects/skylendar/ skylendar], [https://github.com/CruiserOne/Astrolog Astrolog], [https://www.astrolog.org/astrolog/astfile.htm Astrology alt site], [https://saravali.github.io/download.html Maitreya], [https://github.com/alamahant/Asteria Asteria],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Genealogy History Family Tree Ancestry Records (FreeBMD, FreeREG, and FreeCEN file formats or GEDCOM GenTree)
|<!--AROS-->
|<!--Amiga OS--> [ Origins], [ Your Family Tree], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Languages
|<!--AROS-->
|<!--Amiga OS-->Fun School,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Mathematics ([http://www-fourier.ujf-grenoble.fr/~parisse/install_en.html Xcas], etc.),
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/scientific mathX]
|<!--Amiga OS-->Maple V, mathX, Fun School, GCSE Maths, [ ], [ ], [ ],
|<!--AmigaOS4-->Yacas
|<!--MorphOS-->Yacas
|-
|<!--Sub Menu-->Maths Graph Function Plotting
|<!--AROS-->[https://blog.alb42.de/programs/#MUIPlot MUIPlot],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->App Utility Launcher Dock toolbar
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/docky BoingBar], [],
|<!--Amiga OS-->[https://github.com/adkennan/DockBot Dockbot],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Printer [https://github.com/OrcaSlicer/OrcaSlicer OrcaSlicer]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CNC control with laser and vinyl cutting
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->HAM radio, amateur radio, packet radio, [], [], [], [https://cemaxecuter.com/ Dragon OS], [https://github.com/km4ack/73Linux with 73 link update], [https://www.youtube.com/watch?v=YAL5KNePRSg video for],
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/punktniklas/NiKom NiKom], [https://www.amigarealm.com/amiga/amicomms/comm4.htm Comm4], [https://www.amigarealm.com/archives/comms/aarug/ TNC Terminal Node Controller with packets over serial connections on Yaesu or Woxum handheld], [https://aminet.net/comm/misc AmiCom], [ with 7Plus file encoder/decoder], [ mksstv], [ RTTYam],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->modern smart home network like Home Assistant Automation Yellow, Green, Mosquitto, EMQX,
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/evil4dmin/ami2ha HA], [https://github.com/sidick/midge mtqq.lib], [https://aminet.net/package/comm/tcp/AmiHomeassist-0.7 AmiHomeassist],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Teaching classroom learning training [https://github.com/moodle/moodle moodle], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
<nowiki>*</nowiki> Commercial product.
==Games & Emulation==
Some emulators/games require OpenGL to function and to adjust ahi prefs channels, frequency and unit0 and unit1 and
[http://aros.sourceforge.net/documentation/users/shell/changetaskpri.php changetaskpri -1]
Rom patching https://www.marcrobledo.com/RomPatcher.js/ https://www.romhacking.net/patch/ (ips, ups, bps, etc) and this other site supports the latter formats https://hack64.net/tools/patcher.php
Free public domain roms for use with emulators can be found [http://www.pdroms.de/ here] as most of the rest are covered by copyright rules. If you like to read about old games see [http://retrogamingtimes.com/ here] and [http://www.armchairarcade.com/neo/ here] and a [http://www.vintagecomputing.com/ blog] about old computers. Possibly some of the [http://www.answers.com/topic/list-of-best-selling-computer-and-video-games best selling] of all time. [http://en.wikipedia.org/wiki/List_of_computer_system_emulators Wiki] with emulated systems list.
[https://archive.gamehistory.org/ Archive of VGHF], [https://library.gamehistory.org/ Video Game History Foundation Library search]
{| class="wikitable sortable"
|-
!width:10%;|Games [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Emulation]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Games Emulation Amstrad CPC
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [ Caprice32 (OpenGL & pure SDL)], [ Arnold], [https://retroshowcase.gr/cpcbox-master/],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2],
|-
|<!--Sub Menu-->Games Emulation Apple2 and 2GS
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Arcade
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Mame], [ SI Emu (ABIv0 only)],
|<!--Amiga OS-->Mame,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem xmame], amiarcadia,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 Mame],
|-
|<!--Sub Menu-->Games Emulation Atari 2600 [], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Stella],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 5200 [https://github.com/wavemotion-dave/A5200DS A5200DS], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 7800
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 400 800 130XL [https://github.com/wavemotion-dave/A8DS A8DS], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Atari800],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Lynx
|<!--AROS-->[http://myfreefilehosting.com/f/6366e11bdf_1.93MB Handy (ABIv0 only)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Jaguar
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Bandai Wonderswan
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation BBC Micro and Acorn Electron [http://beehttps://bem-unix.bbcmicro.com/download.html BeebEm], [http://b-em.bbcmicro.com/ B-Em], [http://elkulator.acornelectron.co.uk/ Elkulator], [http://electrem.emuunlim.com/ ElectrEm],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Dragon 32 and Tandy CoCo [http://www.6809.org.uk/xroar/ xroar], [],
|<!--AROS-->[], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C16 Plus4
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C64
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Vice (ABIv0 only)], [],
|<!--Amiga OS-->Frodo,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem viceplus],
|<!--MorphOS-->Vice,
|-
|<!--Sub Menu-->Games Emulation Commodore Amiga
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Janus UAE], Emumiga,
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer UAE],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 UAE],
|-
|<!--Sub Menu-->Games Emulation Japanese MSX MSX2
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Intelivision
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Colecovision and Adam
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Milton Bradley (MB) Vectrex [ Vectrex OpenGL],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation PICO8 Pico-8 fantasy video game console [https://github.com/egordorichev/pemsa-sdl/ pemsa-sdl], [https://github.com/jtothebell/fake-08 fake-08], [https://github.com/Epicpkmn11/fake-08/tree/wip fake-08 fork],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo Gameboy
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem vba no sound], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem vba]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo NES
|<!--AROS-->[ EmiNES], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Fceu], [https://github.com/takahirox/nes-js?tab=readme-ov-file nes-js], [https://github.com/bfirsh/jsnes jsnes], [https://github.com/angelo-wf/NesJs NesJs],
|<!--Amiga OS-->AmiNES, [http://www.dridus.com/~nyef/darcnes/ darcNES],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem amines]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo SNES
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Zsnes],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem warpsnes]
|<!--MorphOS-->[http://fabportnawak.free.fr/snes/ Snes9x],
|-
|<!--Sub Menu-->Games Emulation Nintendo N64
*HLE and plugins [ mupen64], [https://github.com/ares-emulator/ares ares], [https://github.com/N64Recomp/N64Recomp N64Recomp], [https://github.com/rt64/rt64 rt64], [https://github.com/simple64/simple64 Simple64],
*LLE [],
|<!--AROS-->[http://code.google.com/p/mupen64plus/ Mupen64+],
|<!--Amiga OS-->[http://code.google.com/p/mupen64plus/ Mupen64+], [http://aminet.net/package/misc/emu/tr-981125_src TR64],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Gamecube Wii]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Wii U]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/yuzu-emu Nintendo Switch]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation NEC PC Engine
|<!--AROS-->[], [], [https://github.com/yhzmr442/jspce js-pce],
|[http://www.hugo.fr.fm/ Hugo], [http://mednafen.sourceforge.net/ Mednafen],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem tgemu]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Master System (SMS)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Dega], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem sms],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem osmose]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Genesis/Megadrive
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem gp no sound], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem DGen],
|<!--Amiga OS-->[http://code.google.com/p/genplus-gx/ Genplus],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem genesisplus]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Saturn
*HLE [https://mednafen.github.io/ mednafen], [http://yabause.org/ yabause], [],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->[http://yabause.org/ Yabause],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Dreamcast
*HLE [https://github.com/flyinghead/flycast flycast], [https://code.google.com/archive/p/nulldc/downloads NullDC],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair ZX80 and ZX81
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair Spectrum
|[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Fuse (crackly sound)], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer SimCoupe], [ FBZX slow], [https://jsspeccy.zxdemo.org/ jsspeccy], [http://torinak.com/qaop/games qaop],
|<!--Amiga OS-->[http://www.zophar.net/sinclair.html Speculator], [http://www.worldofspectrum.org/x128/index.html X128],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair QL
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/QDOS4amiga1 QDOS4amiga]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation SNK NeoGeo Pocket
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem gngeo], NeoPop,
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sony PlayStation
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem FPSE],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem FPSE]
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS2]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS3]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://vita3k.org/ Sony Vita]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/shadps4-emu/shadPS4 PS4]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation [http://en.wikipedia.org/wiki/Tangerine_Computer_Systems Tangerine] Oric and Atmos
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Oricutron]
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem Oricutron]
|<!--MorphOS-->[http://aminet.net/package/misc/emu/oricutron Oricutron]
|-
|<!--Sub Menu-->Games Emulation TI 99/4 99/4A [https://github.com/wavemotion-dave/DS994a DS994a], [], [https://js99er.net/#/ js99er], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation HP 38G 40GS 48 49G/50G Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation TI 58 83 84 85 86 - 89 92 Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games emulation Ms-Dos Dosbox type
|<!--AROS-->[https://github.com/tomaszstaniak/aros-boxerapp Boxer]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
{| class="wikitable sortable"
|-
!width:10%;|Games [https://www.rockpapershotgun.com/ General]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|- style="background:lightgrey;{{text default color}}; text-align:center; font-weight:bold;"
| Games [https://www.trackawesomelist.com/michelpereira/awesome-open-source-games/ Open Source and others] || AROS || Amiga OS || Amiga OS4 || Morphos
|-
|<!--Sub Menu-->Games Action like [https://github.com/opentomb/OpenTomb opentomb], [https://github.com/LostArtefacts/TRX TRX formerly Tomb1Main], [https://github.com/TombEngine TombEngine], [http://archives.arosworld.org/index.php?function=browse&cat=game/action Thrust], [https://github.com/fragglet/sdl-sopwith sdl sopwith],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/action], [https://archives.arosworld.org/index.php?function=browse&cat=game/action BOH], [],
|<!--Amiga OS-->[https://github.com/BSzili/OpenLara/tree/amiga/src source of openlara SDL2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Adventure like [http://dotg.sourceforge.net/ DMJ], [https://github.com/kromenak/gengine Gabriel Knight 3], [http://www.sarien.net/ Sierra Sarien], [https://github.com/klembot/twinejs twine js], [https://github.com/QSPFoundation/qspgui Quest Soft Player QSP], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/adventure dmagnetic], [https://archives.arosworld.org/?function=browse&cat=emulation/misc ScummVM], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying frotz infocom], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Board like [https://github.com/aperture-software/colditz-escape escape from colditz], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/board], [http://amigan.1emu.net/releases Africa]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Cards
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/card], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12934#post_12934 Balatro],
|<!--AmigaOS-->[http://home.arcor.de/amigasolitaire/e/welcome.html Reko], [https://github.com/samskivert/beschei-en beschei Src],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Misc [https://github.com/michelpereira/awesome-open-source-games Awesome open], [https://github.com/bobeff/open-source-games General Open Source], [https://github.com/SAT-R/sa2 Sonic Advance 2], [https://github.com/velorek1/cwordle Wordle type],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/misc], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games FPS like [https://aminet.net/package/game/shoot/D1X_Rebirth_AGA Descent D1X src], [https://github.com/DescentDevelopers/Descent3 Descent 3], [https://github.com/Fewnity/Counter-Strike-Nintendo-DS Counter-Strike-Nintendo-DS], [https://github.com/Aleph-One-Marathon/alephone Bungie Marathon 1994], [https://zdoom.org/downloads UzDoom opengl 3.3], [https://github.com/ZDoom/gzdoom gzdoom opengl 3+], [https://zdoom.org/downloads LZDoom opengl 2.1], [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray], [https://staniks.github.io/articles/serious-engine-networking-analysis/ Serious Sam] [https://github.com/Croteam-official/Serious-Engine Serious Engine 1]
|<!--AROS-->Doom, Quake, [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Quake 3 Arena (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Assault Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube 2 Sauerbraten (OpenGL)], [http://fodquake.net/test/ FodQuake QuakeWorld], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Duke Nukem 3D], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Darkplaces Nexuiz Xonotic], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Doom 3 SDL (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Hexenworld and Hexen 2], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Aliens vs Predator Gold 2000 avp (openGL)], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Odamex (openGL doom)], [https://archives.arosworld.org/?function=showfile&file=game/fps/ zgloom], [], [https://archives.arosworld.org/?function=showfile&file=game/fps/ ab3dhd], [],
|<!--Amiga OS-->Doom, Quake, AB3D, Fears, Breathless, Gloom,
|<!--AmigaOS4-->Doom, Quake,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12 Doom], Quake, Quake 3 Arena,
|-
|<!--Sub Menu-->Games MMORG like
|<!--AROS-->[ Eternal Lands (OpenGL)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Platform like
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/platform], [ Maze of Galious], [ Gish]*(openGL), [ Mega Mario], [https://archives.arosworld.org/?function=showfile&file=game/platform/ thextech SMBX], [http://www.gianas-return.de/ Giana's Return], [http://www.sqrxz.de/ Sqrxz], [www.sqrxz2.de/ Sqrxz 2], [http://www.sqrxz.de/sqrxz-3/ Sqrxz 3], [http://www.sqrxz.de/sqrxz-4/ Sqrxz 4], [http://archives.arosworld.org/index.php?function=browse&cat=game/platform Cave Story], [https://bszili.morphos.me/ Frogatto], [https://bszili.morphos.me/ OpenJazz], [https://archives.arosworld.org/?function=showfile&file=game/platform/ pekkakana2], [ Aquaria], [https://archives.arosworld.org/?function=showfile&file=game/platform/ sonic CD], [],
|<!--Amiga OS-->[ Giana Sisters], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Puzzle [https://github.com/mariopartyrd/marioparty4/tree/port Party], [https://github.com/mdodis/OpenSolomonsKey OpenSolomonsKey], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle], [ Cubosphere (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle Candy Crisis], [http://bszili.morphos.me/ TailTale],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Racing [ Trigger Rally], [ VDrift], [http://www.ultimatestunts.nl/index.php?page=2&lang=en Ultimate Stunts], [http://maniadrive.raydium.org/ Mania Drive], [https://github.com/plowteam/donut Simpsons Hit and Run], [],
|<!--AROS-->[ Super Tux Kart (OpenGL)], [http://www.dusabledanslherbe.eu/AROSPage/F1Spirit.30.html F1 Spirit (OpenGL)], [http://bszili.morphos.me/index.html MultiRacer], [https://bszili.morphos.me/ Speed Dreams], [https://archives.arosworld.org/?function=showfile&file=game/driving/dethrace-0.10.1.x86_64-aros-v11.zip Carmageddon dethrace 64bit], [http://maniadrive.raydium.org/index.php?downloads=yes maniadrive like trackmania],
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://bszili.morphos.me/index.html Speed Dreams],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12], [http://bszili.morphos.me/index.html TORCS],
|-
|<!--Sub Menu-->Games 1st first person DRPG [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/OpenEnroth/OpenEnroth OpenEnroth MM], []
|<!--AROS-->[https://github.com/BSzili/aros-stuff Arx Libertatis], [http://www.playfuljs.com/a-first-person-engine-in-265-lines/ js raycaster], [https://github.com/Dorthu/es6-crpg webgl], [https://github.com/sonountaleban/AmiShockolate System Shock], [], [],
|<!--AmigaOS-->Phantasie, Faery Tale, Dungeon Master,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 3rd third person action CRPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/alexbatalov/fallout1-ce fallout ce], [https://github.com/rwengine/openrw gta3], [https://github.com/gta-reversed/gta-reversed gta3 sa], [https://github.com/mrxenginner/reVC gta3 vc revc], [https://github.com/jakobharder/burntime/tree/main Burntime],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=game/strategy/ fheroes2 homm2], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ breakhack], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ devilutionx diablo 1 hellfire], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ fallout 1], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ stratagus], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ hostile-takeover], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games isometric RPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/topics/dungeon?l=javascript Dungeon], [], [https://github.com/clintbellanger/heroine-dusk JS Dusk],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying nethack], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying GemRB], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games card based RPG [https://github.com/open-duelyst/duelyst Duelyst], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games turn based tactics RPG [], [], [], [], [], [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/strategy UFO AI], [http://play.freeciv.org/ FreeCiv], [https://juen.in Aveterna online civ], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Strategy [http://rtsgus.org/ RTSgus], [http://stargus.sourceforge.net/ Stargus], [https://github.com/KD-lab-Open-Source/Perimeter Perimeter], [https://matty77.itch.io/conflict-3049 conflict-3049], [https://github.com/ZeroK-RTS/Zero-K Zero-K multi player rts lua],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/strategy MegaGlest (OpenGL)], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ signus], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=140&pid=12446#post_12446 Wargus warcraft 2 setup],
|<!--Amiga OS-->[https://aminet.net/package/game/strat/OpenDUNE_RTG OpenDUNE_RTG src]
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Rhythm, Beat, Step [], [], [https://clonehero.net/ clonehero], [https://github.com/MatteoGodzilla/Dj-Engine Dj-Engine],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/misc Frets on Fire], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Shoot Em Ups [http://www.mhgames.org/oldies/formido/ Formido], [http://code.google.com/p/violetland/ Violetland],
||<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/action Open Tyrian], [http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ Alien Blaster], [https://github.com/OpenFodder/openfodder OpenFodder], [https://archives.arosworld.org/?function=showfile&file=game/action/ tbftss The Battle for the Solar System: the Pandora War]
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ The Battle for the Solar System: the Pandora War]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Simulations [http://scp.indiegames.us/ Freespace 2], [http://www.heptargon.de/gl-117/gl-117.html GL117], [http://code.google.com/p/corsix-th/ Theme Hospital], [http://code.google.com/p/freerct/ Rollercoaster Tycoon], [http://hedgewars.org/ Hedgewars], [https://github.com/raceintospace/raceintospace raceintospace], [https://github.com/Return-To-The-Roots RTTR Settlers 2], [https://github.com/OoliteProject/oolite oolite elite], [https://github.com/fesh0r/newkind newkind elite], [https://github.com/bohemiainteractive/cwr Arma Cold War Src], [https://github.com/endless-sky/endless-sky endless-sky], [https://github.com/pioneerspacesim/pioneer pioneer space command],
|<!--AROS-->[https://github.com/tomaszstaniak/aros-micropolis micropolis]
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park, [https://github.com/angree/openttd_amiga_68k openttd amiga_68k],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Life Sim [https://github.com/ACreTeam/forest Animal Crossing], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Horror [https://github.com/Mikompilation/MikuPan Fatal Frame], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Sandbox Voxel Open World Exploration [https://github.com/ClassiCube/ Classicube],[http://www.michaelfogleman.com/craft/ Craft], [https://github.com/tothpaul/DelphiCraft DelphiCraft],[https://www.minetest.net/ Luanti formerly Minetest], [ infiniminer],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Battle Royale [https://bruh.io/ Play.Bruh.io], [https://www.coolmathgames.com/0-copter Copter Royale], [https://surviv.io/ Surviv.io], [https://nuggetroyale.io/#Ketchup Nugget Royale], [https://miniroyale2.io/ Miniroyale2.io],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Tower Defense [https://chriscourses.github.io/tower-defense/ HTML5], [https://github.com/SBardak/Tower-Defense-Game TD C++], [https://github.com/bdoms/love_defense LUA and LOVE], [https://github.com/HyOsori/Osori-WebGame HTML5], [https://github.com/PascalCorpsman/ConfigTD ConfigTD Pascal], [https://github.com/GloriousEggroll/wine-ge-custom Wine], []
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12871#post_12871 Plants vs Zombies PvZ],
|<!--Amiga OS-->[https://github.com/boingball/miggy-tower-defense miggy-tower-defense],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/diane1f0cd/VisualNovelTemplate Visual Novel Template], [https://github.com/Kirilllive/tuesday-js Tuesday JS], [https://github.com/tejasnayak25/vnsutra vnsutra], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [https://github.com/NathanGuilhot/VNES-Raylib https://github.com/NathanGuilhot/VNES VNES in Raylib], [https://www.renpy.org/latest.html renpy ren'py python based],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Reality VR [https://gitlab.com/madsbuvi/openmw openmw vr], [https://github.com/Team-Beef-Studios/BeefRaiderXR BeefRaiderXR],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Table Top VTT [ Roll20], [https://www.owlbear.rodeo/ owlbear rodeo], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Computer assisted TableTop TTRPG OSR [https://www.rpgsolo.com/play.php RPGSolo], [https://github.com/fpsvogel/solo-ttrpgs Solo TTRPG], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 2D 3D Engines [https://github.com/fegennari/3DWorld 3DWorld], [https://github.com/GarageGames/Torque3D Torque3D], [https://github.com/gameplay3d/GamePlay GamePlay 3D], [https://www.babylonjs.com/ BabylonJS ], [ Godot], [ Ogre], [ Crystal Space], [https://github.com/JacobHess03/ Dragon-Quest like], [https://github.com/bjornbytes/lovr Lua LOVE for 2D LOVR for 3D], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->[https://github.com/alpyre/Sevgi_Engine Sevgi Engine], [], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games C based game frameworks [https://github.com/orangeduck/Corange Corange], [https://github.com/scottcgi/Mojoc Mojoc], [https://orx-project.org/ Orx], [https://github.com/ioquake/ioq3 Quake 3], [https://www.mapeditor.org/ Tiled], [https://www.raylib.com/ 2d Raylib], [https://github.com/Rabios/awesome-raylib other raylib], [https://github.com/MrFrenik/gunslinger Gunslinger], [https://o3de.org/ o3d], [http://archives.aros-exec.org/index.php?function=browse&cat=development/library GLFW], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/library Raylib 5],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games RPGMaker MV/MZ-compatible projects [https://github.com/Psychronic-Games/RPGReactor RPGReactor js],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games unpack unarc [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
==Application Guides==
[[#top|...to the top]]
===Web Browser===
OWB is now at version 2.0 (which got an engine refresh, from July 2015 to February 2019) and 3.0.
This latest version has a good support for many/most web sites, even YouTube web page now works. [https://www.bilibili.tv/en/search untested]
This improved compatibility comes at the expense of higher RAM usage (now 1GB RAM is the absolute minimum).
Also, keep in mind that the lack of a JIT (Just-In-Time) JS compiler on the 32 bit version, makes the web surfing a bit slow.
Only the 64 bit version of OWB 2.0 will have JIT enabled, thus benefitting of more speed. There are tooltypes that can be added to the icon to provide further features JIT, MSE etc
Certificates from [https://curl.se/docs/caextract.html ca certs],
DNS tracking blocking with [https://easylist.to/easylist/easylist.txt easylist.txt] in PROGDIR:Conf before starting browser with enabled AdBlock [https://github.com/easylist/easylist/tree/master easylist], [https://gitlab.com/eyeo anti abp], [https://firebog.net/ big blocklist], [https://github.com/StevenBlack/hosts Steves], [], [],
This can be enabled with OWB Odyssey with Windows -> Content Blocking and Windows -> Messages and enter
https://www.youtube.com/api/stats/ads*
https://www.youtube.com/pagead/adview*
https://www.youtube.com#@##player-ads*
into your custom filters
Element blocker browser extension might be needed for [https://github.com/easylist/easylist/wiki/Youtube-Issues youtube], [ mid roll], [ pre roll], [ ],
OWB speed is much better when running from RAM Disk, the best way is to add the below into your S:User-Startup which copies OWB drawer from Extras:Internet/OWB to RAM Disk:
So add this :
<pre>
copy Extras:Internet/OWB Ram:OWB/ ALL CLONE >NIL:
copy Extras:Internet/OWB.info Ram: >NIL:
</pre>
Open RAM Disk and open OWB drawer and double click on OWB icon so that the above icon tooltypes are activated
Problems are that the copy time is long (around 20 seconds added in the background), but we can make it faster if we delete useless files from the OWB drawer (docs, …)
If you don’t copy the drawer back onto the HD, you won’t save your cache, cookies, passwords… So you need a script for it.
copy Extras:Internet/Amelinium/#? Ram:Amelinium/ ALL CLONE >NIL:
Error messages
SSL error "cant verify with ca-certificates", check bios clock time date is correct
Error 6, try checking networking prefs settings and Save / Use preferences again or a '''few times''' otherwise the network chipset may not be compatible with Aros
[https://www.google.com/search?q=%s&udm=14 Google search without AI overview]
[ DuckDuckGo]
[ Ecosia]
[ Qwant]
[ Swisscows]
[ Mojeek]
[ Brave Search]
[ PreSearch]
[ Startpage]
===E-mail===
Emailinium is now available for IMAP and POP3 based accounts
YAM does not support SSL and most mail providers now switched to encrypted SMTP/POP3 connections
====SimpleMail====
SimpleMail supports IMAP and appears to work with GMail, but it's never been reliable enough, it can crash with large mailboxes.
Please read more on this [http://www.freelists.org/list/simplemail-usr User list]
GMail
Be sure to activate the pop3 usage in your gmail account setup / configuration first.
pop3:
pop.gmail.com
Use SSL: Yes
Port: 995
smtp:
smtp.gmail.com (with authentication)
Use Authentication: Yes
Use SSL: Yes
Port: 465 or 587
Hotmail/MSN/outlook/Microsoft Mail mid-2017, all outlook.com accounts will be migrated to Office 365 / Exchange
Most users are currently on POP which does not allow showing folders and many other features (technical limitations of POP3). With Microsoft IMAP you will get folders, sync read/unread, and show flags. You still won't get push though, as Microsoft has not turned on the IMAP Idle command as at Sept 2013.
If you want to try it, you need to first remove (you can't edit) your pop account (long-press the account on the accounts screen, delete account). Then set it up this way:
1. Email/Password
2. Manual
3. IMAP
4.
* Incoming: imap-mail.outlook.com, port 993, SSL/TLS should be checked
* Outgoing: smtp-mail.outlook.com, port 587, SSL/TLS should be checked
* POP server name pop-mail.outlook.com, port 995, POP encryption method SSL
Yahoo Mail
On April 24, 2002 Yahoo ceased to offer POP access to its free mail service. Introducing instead a yearly payment feature, allowing users POP3 and IMAP server support, along with such benefits as larger file attachment sizes and no adverts.
Sorry to see Yahoo leaving its users to cough up for the privilege of accessing their mail. Understandable, when competing against rivals such as Gmail and Hotmail who hold a large majority of users and were hacked in 2014 as well.
Incoming Mail (IMAP) Server
* Server - imap.mail.yahoo.com
* Port - 993
* Requires SSL - Yes
Outgoing Mail (SMTP) Server
* Server - smtp.mail.yahoo.com
* Port - 465 or 587
* Requires SSL - Yes
* Requires authentication - Yes
Your login info
* Email address - Your full email address (name@domain.com)
* Password - Your account's password
* Requires authentication - Yes
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a subscription subs fee to have access to SMTP and POP3
* Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
* “Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
* “Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
* “Password” – Your Yahoo Mail password.
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
* Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
====YAM Yet Another Mailer====
YAM does not support SSL and most mail providers have now switched to encrypted SMTP/POP3 connections
This email client is POP3 only if the SSL library is available [http://www.freelists.org/list/yam YAM Freelists]
One of the downsides of using a POP3 mailer unfortunately - you have to set an option not to delete the mail if you want it left on the server. IMAP keeps all the emails on the server.
Possible issues
Sending mail issues is probably a matter of using your ISP's SMTP server, though it could also be an SSL issue.
getting a "Couldn't initialise TLSv1 / SSL error
Use of on-line e-mail accounts with this email client is not possible as it lacks the OpenSSL AmiSSl v3 compatible library
GMail
Incoming Mail (POP3) Server - requires SSL: pop.gmail.com
Use SSL: Yes
Port: 995
Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587
Account Name: your Gmail username (including '@gmail.com')
Email Address: your full Gmail email address (username@gmail.com)
Password: your Gmail password
Anyway, the SMTP is pop.gmail.com port 465 and it uses SSLLv3 Authentication. The POP3 settings are for the same server (pop.gmail.com), only on port 995 instead.
Outlook.com access
<pre >
Outlook.com SMTP server address: smtp.live.com
Outlook.com SMTP user name: Your full Outlook.com email address (not an alias)
Outlook.com SMTP password: Your Outlook.com password
Outlook.com SMTP port: 587
Outlook.com SMTP TLS/SSL encryption required: yes
</pre >
Yahoo Mail
<pre >
“POP3 Server” – Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
“SMTP Server” – Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
“Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
“Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
“Password” – Your Yahoo Mail password.
</pre >
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a monthly fee to have access to SMTP and POP3
Microsoft Outlook Express Mail
1. Get the files to your PC.
By whatever method get the files off your Amiga onto your PC. In the YAM folder you have a number of different folders, one for each of your folders in YAM. Inside that is a file usually some numbers such as 332423.283. YAM created a new file for every single email you received.
2. Open up a brand new Outlook Express. Just configure the account to use 127.0.0.1 as mail servers. It doesn't really matter. You will need to manually create any subfolders you used in YAM.
3. You will need to do a mass rename on all your email files from YAM. Just add a .eml to the end of it. Amazing how PCs still rely mostly on the file name so it knows what sort of file it is rather than just looking at it! There are a number of multiple renamers online to download and free too.
4. Go into each of your folders, inbox, sent items etc. And do a select all then drag the files into Outlook Express (to the relevant folder obviously) Amazingly the file format that YAM used is very compatible with .eml standard and viola your emails appear. With correct dates and working attachments.
5. If you want your email into Microsoft Outlook. Open that up and create a new profile and a new blank PST file. Then go into File Import and choose to import from Outlook Express. And the mail will go into there. And viola.. you have your old email from your Amiga in a more modern day format.
===FTP===
Magellan has a great FTP module. It allows transferring files from/to a FTP server over the Internet or the local network and, even if FTP is perceived as a "thing of the past", its usability is all inside the client. The FTP thing has a nice side effect too, since every Icaros machine can be a FTP server as well, and our files can be easily transferred from an Icaros machine to another with a little configuration effort.
First of all, we need to know the 'server' IP address. Server is the Icaros machine with the file we are about to download on another Icaros machine, that we're going to call 'client'. To do that, move on the server machine and 1) run Prefs/Services to be sure "FTP file transfer" is enabled (if not, enable it and restart Icaros); 2) run a shell and enter this command:
ifconfig -a
Make a note of the IP address for the network interface used by the local area network. For cabled devices, it usually is net0:. Now go on the client machine and run Magellan:
Perform these actions: 1) click on FTP; 2) click on ADDRESS BOOK; 3) click on "New".
You can now add a new entry for your Icaros server machine:
1) Choose a name for your server, in order to spot it immediately in the address book. Enter the IP address you got before.
2) click on Custom Options:
1) go to Miscellaneous in the left menu;
2) Ensure "Passive Transfers" is NOT selected;
3) click on Use. We need to deactivate Passive Transfers because YAFS, the FTP server included in Icaros, only allows active transfers at the current stage. Now, we can finally connect to our new file source:
1) Look into the address book for the newly introduced server, be sure that name and IP address are right, and
2) click on Connect. A new lister with server's "MyWorkspace" contents will appear. You can now transfer files over the network choosing a destination among your local (client's) volumes.
Can be adapted to any FTP client on any platform of your choice, just be sure your client allows Active Transfers as well.
===IRC Internet Relay Chat===
Jabberwocky is ideal for one-to-one social media communication, use IRC if you require one to many.
Just type a message in ''lowercase''' letters and it will be posted to all in the [ AROS irc channel]. Please do not use UPPER CASE as it is a sign of SHOUTING which is annoying.
Other things to type in - replace <message> with a line of text and <nick> with a person's name
<pre>
/help
/list
/who
/whois <nick>
/msg <nick> <message>
/query <nick>
<message>s
/query
/away <message>
/away
/quit <going away message>
</pre>
[http://irchelp.org/irchelp/new2irc.html#smiley Intro guide here]. IRC Primer can be found here in [http://www.irchelp.org/irchelp/ircprimer.html html], [http://www.irchelp.org/irchelp/text/ircprimer.txt TXT], [http://www.kei.com/irc/IRCprimer1.1.ps PostScript].
Issue the command /me <text> where <text> is the text that should follow your nickname.
Example: /me slaps ajk around a bit with a large trout
/nick <newNick>
/nickserv register <password> <email address>
/ns instead of /nickserv, while others might need /msg nickserv
/nickserv identify <password>
Alternatives:
/ns identify <password>
/msg nickserv identify <password>
==== IRC WookieChat ====
WookieChat is the most complete internet client for communication across the IRC Network. WookieChat allows you to swap ideas and communicate in real-time, you can also exchange Files, Documents, Images and everything else using the application's DCC capabilities.
add smilies drawer/directory
run wookiechat from the shell and set stack to 1000000 e.g. wookiechat stack 1000000
select a server / server window
* nickname
* user name
* real name - optional
Once you configure the client with your preferred screen name, you'll want to find a channel to talk in.
servers
* New Server - click on this to add / add extra - change details in section below this click box
* New Group
* Delete Entry
* Connect to server
* connect in new tab
* perform on connect
Change details
* Servername - change text in this box to one of the below Server:
* Port number - no need to change
* Server password
* Channel - add #channel from below
* auto join - can click this
* nick registration password,
Click Connect to server button above
<pre>
Server: irc.freenode.net
Channel: #aros
</pre>
irc://irc.freenode.net/aros
<pre>
Server: chat.amigaworld.net
Channel: #amigaworld or #amigans
</pre>
<pre>
On Sunday evenings USA time usually starting around 3PM EDT (1900 UTC)
Server:irc.superhosts.net
Channel #team*amiga
</pre>
<pre>
BitlBee and Minbif are IRCd-like gateways to multiple IM networks
Server: im.bitlbee.org
Port 6667
Seems to be most useful on WookieChat as you can be connected to several servers at once. One for Bitlbee and any messages that might come through that. One for your normal IRC chat server.
</pre>
[http://www.bitlbee.org/main.php/servers.html Other servers],
<pre>
#Amiga.org - irc.synirc.net eu.synirc.net dissonance.nl.eu.synirc.net (IPv6: 2002:5511:1356:0:216:17ff:fe84:68a)
twilight.de.eu.synirc.net zero.dk.eu.synirc.net us.synirc.net avarice.az.us.synirc.net envy.il.us.synirc.net harpy.mi.us.synirc.net
liberty.nj.us.synirc.net snowball.mo.us.synirc.net - Ports 6660-6669 7001 (SSL)
</pre>
<pre>
Multiple server support
"Perform on connect" scripts and channel auto-joins
Automatic Nickserv login
Tabs for channels and private conversations
CTCP PING, TIME, VERSION, SOUND
Incoming and Outgoing DCC SEND file transfers
Colours for different events
Logging and automatic reloading of logs
mIRC colour code filters
Configurable timestamps
GUI for changing channel modes easily
Configurable highlight keywords
URL Grabber window
Optional outgoing swear word filter
Event sounds for tabs opening, highlighted words, and private messages
DCC CHAT support
Doubleclickable URL's
Support for multiple languages using LOCALE
Clone detection
Auto reconnection to Servers upon disconnection
Command aliases
Chat display can be toggled between AmIRC and mIRC style
Counter for Unread messages
Graphical nicklist and graphical smileys with a popup chooser
</pre>
====IRC Aircos ====
Double click on Aircos icon in Extras:Networking/Apps/Aircos. It has been set up with a guest account for trial purposes. Though ideally, choose a nickname and password for frequent use of irc.
====IRC and XMPP Jabberwocky====
Servers are setup and close down at random
You sign up to a server that someone else has setup and access chat services through them.
The two ways to access chat from jabberwocky
<pre >
Jabberwocky -> Server -> XMPP -> open and ad-free
Jabberwocky -> Server -> Transports (Gateways) -> Proprietary closed systems
</pre >
The Jabber.org service connects with all IM services that use XMPP, the open standard for instant messaging and presence over the Internet. The services we connect with include Google Talk (closed), Live Journal Talk, Nimbuzz, Ovi, and thousands more. However, you can not connect from Jabber.org to proprietary services like AIM, ICQ, MSN, Skype, or Yahoo because they don’t yet use XMPP components (XEP-0114) '''but''' you can use Jabber.com's servers and IM gateways (MSN, ICQ, Yahoo etc.) instead.
The best way to use jabberwocky is in conjunction with a public jabber server with '''transports''' to your favorite services, like gtalk, Facebook, yahoo, ICQ, AIM, etc.
You have to register with one of the servers, [https://list.jabber.at/ this list] or [http://www.jabberes.org/servers/ another list], [http://xmpp.net/ this security XMPP list],
Unfortunately jabberwocky can only connect to one server at a time so it is best to check what services each server offers. If you set it up with separate Facebook and google talk accounts, for example, sometimes you'll only get one or the other.
Jabberwocky open a window where the Jabber server part is typed in as well as your Nickname and Password.
Jabber ID (JID) identifies you to the server and other users.
Once registered the next step is to goto Jabberwocky's "Windows" menu and select the "Agents" option. The "Agents List" window will open.
Roster (contacts list)
[http://search.wensley.org.uk/ Chatrooms] (MUC) are available
File Transfer - can send and receive files through the Jabber service but not with other services like IRC, ICQ, AIM or Yahoo. All you need is an installed webbrowser and OpenURL.
Clickable URLs - The message window uses Mailtext.mcc and you can set a URL action in the MUI mailtext prefs like SYS:Utils/OpenURL %s NEWWIN.
There is no consistent Skype like (H.323 VoIP) video conferencing available over Jabber. The move from xmpp to Jingle should help but no support on any amiga-like systems at the moment. [http://aminet.net/package/dev/src/AmiPhoneSrc192 AmiPhone] and [http://www.lysator.liu.se/%28frame,faq,nobg,useframes%29/ahi/v4-site/ Speak Freely] was an early attempt voice only contact. SIP and Asterisk are other PBX options.
Facebook
If you're using the XMPP transport provided by Facebook themselves, chat.facebook.com, it looks like they're now requiring SSL transport. This means jabberwocky method below will no longer work. The best thing to do is to create an ID on a public jabber server which has a Facebook gateway.
<pre >
1. launch jabberwocky
2. if the login window doesn't appear on launch, select 'account' from the jabberwocky menu
3. your jabber ID will be user@chat.facebook.com where user is your user ID
4. your password is your normal facebook password
5. to save this for next time, click the popup gadget next to the ID field
6. click the 'add' button
7. click the 'close' button
8. click the 'connect' button
</pre >
you're done. you can also click the 'save as default account' button if you want. jabberwocky configured to auto-connect when launching the program, but you can configure as you like. there is amigaguide documentation included with jabberwocky.
[http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=37085&forum=32 Read more here]
for Facebook users, you can log-in directly to Facebook with jabberwocky. just sign in as @chat.facebook.com with your Facebook password as the password
Twitter
For a few years, there has been added a twitter transport. Servers include [http://jabber.hot-chilli.net/ jabber.hot-chili.net], and .
An [http://jabber.hot-chilli.net/tag/how-tos/ How-to]
:Read [http://jabber.hot-chilli.net/2010/05/09/twitter-transport-working/ more]
Instagram
no support at the moment best to use a web browser based client
ICQ
The new version (beta) of StriCQ uses a newer ICQ protocol. Most of the ICQ Jabber Transports still use an older ICQ protocol. You can only talk one-way to StriCQ using the older Transports. Only the newer ICQv7 Transport lets you talk both ways to StriCQ. Look at the server lists in the first section to check.
Register on a Jabber server, e.g. this one works: http://www.jabber.de/
Then login into Jabberwocky with the following login data e.g. xxx@jabber.de / Password: xxx Now add your ICQ account under the window->Agents->"Register". Now Jabberwocky connects via the Jabber.de server with your ICQ account.
Yahoo Messenger
although yahoo! does not use xmpp protocol, you should be able to use the transport methods to gain access and post your replies
MSN
early months of 2013 Microsoft will ditch MSN Messenger client and force everyone to use Skype...but MSN protocol and servers will keep working as usual for quite a long time....
Occasionally the Messenger servers have been experiencing problems signing in. You may need to sign in at www.outlook.com and then try again. It may also take multiple tries to sign in. (This also affects you if you’re using Skype.)
You have to check each servers' Agents List to see what transports (MSN protocol, ICQ protocol, etc.) are supported or use the list address' provided in the section above. Then register with each transport (IRC, MSN, ICQ, etc.) to which you need access. After registering you can Connect to start chatting.
msn.jabber.com/registered should appear in the window.
From this [http://tech.dir.groups.yahoo.com/group/amiga-jabberwocky/message/1378 JW group] guide which helps with this process in a clear, step by step procedure.
1. Sign up on MSN's site for a passport account. This typically involves getting a Hotmail address.
2. Log on to the Jabber server of your choice and do the following:
* Select the "Windows/Agents" menu option in Jabberwocky.
* Select the MSN Agent from the list presented by the server.
* Click the Register button to open a new window asking for:
**Username = passort account email address, typically your hotmail address.
**Nick = Screen name to be shown to anyone you add to your buddy list.
**Password = Password for your passport account/hotmail address.
* Click the Register button at the bottom of the new window.
3. If all goes well, you will see the MSN Gateway added to your buddy list. If not, repeat part 2 on another server. Some servers may show MSN in their list of available agents, but have not updated their software for the latest protocols used by MSN.
4. Once you are registered, you can now add people to your buddy list. Note that you need to include the '''msn.''' ahead of the servername so that it knows what gateway agent to use. Some servers may use a slight variation and require '''msg.gate.''' before the server name, so try both to see what works.
If my friend's msn was amiga@hotmail.co.uk and my jabber server was @jabber.meta.net.nz..
then amiga'''%'''hotmail.com@'''msn.'''jabber.meta.net.nz
or another the trick to import MSN contacts is that you don't type the hotmail URL but the passport URL... e.g. Instead of: goodvibe%hotmail.com@msn.jabber.com You type: goodvibe%passport.com@msn.jabber.com
And the thing about importing contacts I'm afraid you'll have to do it by hand, one at the time...
Google Talk
any XMPP server will work, but you have to add your contacts manually. a google talk user is typically either @gmail.com or @talk.google.com. a true gtalk transport is nice because it brings your contacts to you and (can) also support file transfers to/from google talk users.
implement Jingle a set of extensions to the IETF's Extensible Messaging and Presence Protocol (XMPP)
support ended early 2014 as Google moved to Google+ Hangouts which uses it own proprietary format
===Video Player MPlayer===
Many of the menu features (such as doubling) do not work with the current version of mplayer but using
4:3
mplayer -vf scale=800:600 file.avi
16:9
mplayer -vf scale=854:480 file.avi
if you want gui use;
mplayer -gui 1 <other params> file.avi
<pre >
stack 1000000
; using AspireOS 1.xx
; copy FROM SYS:Extras/Multimedia/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 1.x
; copy FROM SYS:Tools/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 2.x
; copy FROM SYS:Utilities/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
cd RAM:MPlayer
run MPlayer -gui > Nil:
;run MPlayer -gui -ao ahi_dev -playlist http://www.radio-paralax.de/listen.pls > Nil:
</pre >
$ mplayer rtsp://127.0.0.1:554/sample_300kbit.mp4
MPlayer supports multicast streaming, and rtp/rtsp protocols (it might require [http://www.live555.com/openRTSP/ live555 library] to work with some streams). But you might have to build it where it's disabled. Also, multicast won't work with some AmiTCP-likes. MIAMI supported it, though.
AROS supports IPv4 (old but works) and this includes the needed address space for RTP.
If you mean multicast via RTP - mplayer handles it. You can even force UDP over TCP
-rtsp-stream-over-tcp
If the rtsp Real Time Streaming Protocol server needs authentification:
-user -passwd
MPlayer - Menu - Open Playlist and load already downloaded .pls or .m3u file - auto starts around 4 percent cache
MPlayer - Menu - Open Stream and copy one of the .pls lines below into space allowed, press OK and press play button on main gui interface
Old 8bit 16bit remixes chip tune game music
http://www.radio-paralax.de/listen.pls
http://scenesat.com/
http://www.shoutcast.com/radio/Amiga
http://www.theoldcomputer.com/retro_radio/RetroRadio_Main.htm
http://www.kohina.com/
http://www.remix64.com/
http://retrogamer.net/forum/
http://retroasylum.podomatic.com/rss2.xml
http://retrogamesquad.com/
http://www.retronauts.com/
http://monsterfeet.com/noquarter/
http://www.retrogamingradio.com/
http://www.radiofeeds.co.uk/mp3.asp
[[#top|...to the top]]
====ZunePaint====
simplified typical workflow
* importing and organizing and photo management
* making global and regional local correction(s) - recalculation is necessary after each adjustment as it is not in real-time
* exporting your images in the best format available with the preservation of metadata
Whilst achieving 80% of a great photo with just a filter, the remaining 20% comes from a manual fine-tuning of specific image attributes.
For photojournalism, documentary, and event coverage, minimal touching is recommended. Stick to Camera Raw for such shots, and limit changes to level adjustment, sharpness, noise reduction, and white balance correction.
For fashion or portrait shoots, a large amount of adjustment is allowed and usually ends up far from the original. Skin smoothing, blemish removal, eye touch-ups, etc. are common. Might alter the background a bit to emphasize the subject.
Product photography usually requires a lot of sharpening, spot removal, and focus stacking.
For landscape shots, best results are achieved by doing the maximum amount of preparation before/while taking the shot. No amount of processing can match timing, proper lighting, correct gear, optimal settings, etc. Excessive post-processing might give you a dramatic shot but best avoided in the long term.
* White Balance - Left Amiga or F12 and K and under "Misc color effects" tab with a pull down for White Balance - color temperature also known as AKA tint (movies) or tones (painting) - warm temp raise red reduce green blue - cool raise blue lower red green
* Exposure - exposure compensation, highlight/shadow recovery
* Noise Reduction - during RAW development or using external software
* Lens Corrections - distortion, vignetting, chromatic aberrations
* Detail - capture sharpening and local contrast enhancement
* Contrast - black point, levels (sliders) and curves tools (F12 and K)
* Framing - straighten () and crop (F12 and F)
* Refinements - color adjustments and selective enhancements - Left Amiga or F12 and K for RGB and YUV histogram tabs -
* Resizing - enlarge for a print or downsize for the web or email (F12 and D)
* Output Sharpening - customized for your subject matter and print/screen size
White Balance - F12 and K
scan your image for a shade which was meant to be white (neutral with each RGB value being equal) like paper or plastic which is in the same light as the subject of the picture. Use the dropper tool to select this color, similar colours will shift and you will have selected the perfect white balance for your part of the image - for the whole picture make sure RAZ or CLR button at the bottom is pressed before applying to the image above.
Exposure correction
F12 and K - YUV Y luminosity - RGB extra red tint - move red curve slightly down and move blue green curves slightly up
Workflows in practice
* Undo - Right AROS key or F12 and Z
* Redo - Right AROS key or F12 and R
First flatten your image (if necessary) and then do a rotation until the picture looks level.
* Crop the picture. Click the selection button and drag a box over the area of the picture you want to keep. Press the crop button and the rest of the photo will be gone.
* Adjust your saturation, exposure, hue levels, etc., (right AROS Key and K for color correction) until you are happy with the photo. Make sure you zoom in all of the way to 100% and look the photo over, zoom back out and move around. Look for obvious problems with the picture.
* After coloring and exposure do a sharpen (Right AROS key and E for Convolution and select drop down option needed), e.g. set the matrix to 5x5 (roughly equivalent Amount to 60%) and set the Radius to 1.0. Click OK.
And save your picture
Implemented or would like to see for simplification and ease of use
basic filters (presets) like black and white, monochrome, edge detection (sobel), motion/gaussian blur,
* negative, sepiatone, retro vintage, night vision, colour tint, color gradient, color temperature, glows, fire, lightning, lens flare, emboss, filmic, pixelate mezzotint, antialias, etc.
adjust / cosmetic tools such as crop,
* reshaping tools, straighten, smear, smooth, perspective, liquify, bloat, pucker, push pixels in any direction, dispersion, transform like warp, blending with soft light, page-curl, whirl, ripple, fisheye, neon, etc.
* red eye fixing, blemish remover, skin smoothing, teeth whitener, make eyes look brighter, desaturate,
effects like oil paint, cartoon, pencil sketch, charcoal, noise/matrix like sharpen/unsharpen, (right AROS key with A for Artistic effects)
* blend two image, gradient blend, masking blend, explode, implode, custom collage, surreal painting, comic book style, needlepoint, stained glass, watercolor, mosaic, stencil/outline, crayon, chalk, etc.
borders such as
* dropshadow, rounded, blurred, color tint, picture frame, film strip polaroid, bevelled edge, etc.
brushes e.g.
* frost, smoke, etc.
and manual control of
fix lens issues including vignetting (darkening), color fringing and barrel distortion, and chromatic and geometric aberration - lens and body profiles
perspective correction
levels - directly modify the levels of the tone-values of an image, by using sliders for highlights, midtones and shadows
curves - Color Adjustment and Brightness/Contrast
color balance
one single color transparent (alpha channel (color information/selections) for masking and/or blending ) for backgrounds, etc.
Threshold indicates how much other colors will be considered mixture of the removed color and non-removed colors
decompose layer into a set of layers with each holding a different type of pattern that is visible within the image
any selection using any selecting tools like lasso tool, marquee tool etc. the selection will temporarily be save to alpha
If you create your image without transparency then the Alpha channel is not present, but you can add later.
File formats like .psd (Photoshop file has layers, masks etc. contains edited sensor data. The original sensor data is no longer available) .xcf .raw .hdr
Image Picture Formats
* low dynamic range (JPEG, PNG, TIFF 8-bit), 16-bit (PPM, TIFF), typically as a 16-bit TIFF in either ProPhoto or AdobeRGB colorspace - TIFF files are also fairly universal – although, if they contain proprietary data, such as Photoshop Adjustment Layers or Smart Filters, then they can only be opened by Photoshop making them proprietary.
* linear high dynamic range (HDR) images (PFM, [http://www.openexr.com/ ILM .EXR], jpg, [http://aminet.net/util/dtype cr2] (canon tiff based), hdr, NEF, CRW, ARW, MRW, ORF, RAF (Fuji), PEF, DCR, SRF, ERF, DNG files are RAW converted to an Adobe proprietary format - a container that can embed the raw file as well as the information needed to open it)
An old version of [http://archives.aros-exec.org/index.php?function=browse&cat=graphics/convert dcraw]
There is no single RAW file format. Each camera manufacturer has one or more unique RAW formats. RAW files contain the brightness levels data captured by the camera sensor. This data cannot be modified. A second smaller file, separate XML file, or within a database with instructions for the RAW processor to change exposure, saturation etc. The extra data can be changed but the original sensor data is still there. RAW is technically least compatible.
A raw file is high-bit (usually 12 or 14 bits of information) but a camera-generated TIFF file will be usually converted by the camera (compressed, downsampled) to 8 bits. The raw file has no embedded color balance or color space, but the TIFF has both. These three things (smaller bit depth, embedded color balance, and embedded color space) make it so that the TIFF will lose quality more quickly with image adjustments than the raw file. The camera-generated TIFF image is much more like a camera processed JPEG than a raw file. A strong advantage goes to the raw file. The power of RAW files, such as the ability to set any color temperature non-destructively and will contain more tonal values.
The principle of preserving the maximum amount of information to as late as possible in the process. The final conversion - which will always effectively represent a "downsampling" - should prevent as much loss as possible.
Once you save it as TIFF, you throw away some of that data irretrievably. When saving in the lossy JPEG format, you get tremendous file size savings, but you've irreversibly thrown away a lot of image data. As long as you have the RAW file, original or otherwise, you have access to all of the image data as captured.
Keyboard equivalence with Photoshop(tm) would help
File
PHOTOSHOP SHORTCUT GIMP
New Ctrl+n New
Open Ctrl+o Open
Close Ctrl+w Close
Save Ctrl+s Save
Save as Shift+Ctrl+s Save as
Revert F12 Revert
Print Ctrl+p Print
Exit Ctrl+q Quit
Edit
PHOTOSHOP SHORTCUT GIMP
Undo/Redo (1 level) Ctrl+z Undo (Redo is Shift+Ctrl+z)
Cut Ctrl+x Cut
Copy Ctrl+c Copy
Paste Ctrl+v Paste
Paste Into Shift+Ctrl+v Paste Into
Fill with FG color Alt+Backspace Fill with FG color
Fill with BG color Control+Backspace Fill with BG color
Image/Colors
PHOTOSHOP SHORTCUT GIMP
Levels Ctrl+l Levels
Auto Contrast Shift+Ctrl+Alt+l Stretch Contrast (same?)
Curves Ctrl+m Curves
Color Balance Ctrl+b Color Balance
Hue/Saturation Ctrl+u Hue-Saturation
Desaturate Shift+Ctrl+u Desaturate
Invert Ctrl+i Invert
Default Colors d Default Colors
Switch Colors x Switch Colors
Layer
PHOTOSHOP SHORTCUT GIMP
New Layer Shift+Ctrl+n New Layer
Layer via Copy Ctrl+j Duplicate Layer
Bring (layer) to Front Shift+Ctrl+] Layer to Top
Send (layer) to Back Shift+Ctrl+[ Layer to Bottom
Bring (layer) Forward Ctrl+] Raise Layer
Send (layer) Backward Ctrl+[ Lower Layer
Select Top Layer Shift+Alt+] Select Top Layer
Select Bottom Layer Shift+Alt+[ Select Bottom Layer
Select One Layer Forward Alt+] Select Previous Layer
Select One Layer Backward Alt+[ Select Next Layer
Merge Down Ctrl+e Merge Down
Merge Visible Shift+Ctrl+e Merge Visible
Preserve Transparency / Keep Transparency
Cycle Modes Forwards Shift+= Next Layer Mode
Cycle Modes Backwards Shift+- Previous Layer Mode
Select
PHOTOSHOP SHORTCUT GIMP
Select All Ctrl+a Select All
Deselect Ctrl+d Select None
Inverse Shift+Ctrl+i Invert
Feather Ctrl+Alt+d Feather
View
PHOTOSHOP SHORTCUT GIMP
Zoom In Ctrl+= Zoom In
Zoom Out Ctrl+- Zoom Out
Fit on Screen Ctrl+0 Zoom to Fit Window
Actual Pixels Ctrl+Alt+0 Zoom 1:1
Show/Hide Extras Ctrl+h Toggle Show Selection (close enough?)
Show/Hide Guides Ctrl+' Toggle Show Guides
Show/Hide Grid Ctrl+Alt+' Toggle Show Grid
Show/Hide Rulers Ctrl+r Toggle Show Rulers
Snap Ctrl+; Snap to Guides
Scroll View Up Page Up Scroll Page Up
Scroll View Down Page Down Scroll Page Down
Scroll View Left Ctrl+Page Up Scroll Page Left
Scroll View Right Ctrl+Page Down Scroll Page Right
Window/Dialogs
PHOTOSHOP SHORTCUT GIMP
? F5 Tools Dialog
Color Tab F6 Colors Dialog
Layers Tab F7 Layers Dialog
Info Tab F8 Image Information
Tools
PHOTOSHOP SHORTCUT GIMP
Rectangular Marquee Tool m Rect Select Tool
Elliptical Marquee Tool Shift+m Ellipse Select Tool
*This is a toggle between 'Elliptical Marquee Tool' and 'Rectangular Marquee Tool' in Photoshop
Move Tool v Move Tool
Lasso Tool l Free Select Tool
Magic Wand Tool w Fuzzy Select Tool
Crop Tool c Crop & Resize Tool
Airbrush Tool j Airbrush Tool
Paintbrush Tool b Paintbrush Tool
Clone Stamp Tool s Clone Stamp Tool
Eraser Tool e Eraser Tool
Gradient Tool g Blend Tool
Paint Bucket Tool Shift+g Bucket Fill Tool
*This is a toggle between 'Paint Bucket Tool' and 'Gradient Tool' in Photoshop
Blur Tool r Convolve Tool
Dodge Tool o DodgeBurn Tool
Type Tool t Text Tool
Pen Tool p Bezier Select Tool
Eye Dropper Tool i Color Picker Tool
Zoom Tool z Magnify Tool
Previous Brush , Previous Brush
Next Brush . Next Brush
First Brush Shift+< First Brush
Last Brush Shift+> Last Brush
Decrease Brush Size [ Decrease Brush Size
Increase Brush Size ] Increase Brush Size
Decrease Brush Hardness { Decrease Brush Hardness
Increase Brush Hardness } Increase Brush Hardness
Help
PHOTOSHOP SHORTCUT GIMP
Help F1 Help
Context Help Shift+F1 Context Help
Misc.
PHOTOSHOP SHORTCUT GIMP
Last Filter Ctrl+f Repeat Last Filter
? Shift+Ctrl+f Reshow Last Filter
Preferences Ctrl+k Preferences
Liquify Shift+Ctrl+x IWarp (close enough?)
Toggle Quick Mask q Toggle Quick Mask
Spotlights - triangle of white opaque shape
Cutting out and/or replacing unwanted background or features - select large areas with the selection option like the Magic Wand tool (aka Color Range) or the Lasso (quick and fast) with feather 2 to soften edge or the pen tool which adds points/lines/Bézier curves (better control but slower), hold down the shift button as you click to add extra points/areas of the subject matter to remove. Increase the tolerance to cover more areas. To subtract from your selection hold down alt as you're clicking.
* Layer masks are a better way of working than Erase they clip (black hides/hidden white visible/reveal). Clone Stamp can be simulated by and brushes for other areas.
* Leave the fine details like hair, fur, etc. to later with lasso and the shift key to draw a line all the way around your subject. Gradient Mapping - Inverse - Mask. i.e. Refine your selected image with edge detection and using the radius and edge options / adjuster (increase/decrease contrast) so that you will capture more fine detail from the background allowing easier removal.
Remove fringe/halo
saving image as png rather than jpg/jpeg to keep transparency background intact.
Implemented [http://colorizer.org/ colour model representations] [http://paulbourke.net/texture_colour/colourspace/ Mathematical approach] - Photo stills are spatially 2d (h and w), but are colorimetrically 3d (r g and b, or H L S, or Y U V etc.) as well.
* RGB - split cubed mapped color model for photos and computer graphics hardware using the light spectrum (adding and subtracting)
* YUV - Y-Lightness U-blue/yellow V-red/cyan (similar to YPbPr and YCbCr) used in the PAL, NTSC, and SECAM composite digital TV color [http://crewofone.com/2012/chroma-subsampling-and-transcoding/#comment-7299 video]
Histograms
White balanced (neutral) if the spike happens in the same place in each channel of the RGB graphs. If not, you're not balanced.
If you have sky you'll see the blue channel further off to the right.
RGB is best one to change colours. These elements RGB is a 3-channel format containing data for Red, Green, and Blue in your photo scale between 0 and 255. The area in a picture that appears to be brighter/whiter contains more red color as compared to the area which is relatively darker. Similarly in the green channel the area that appears to be darker contains less amount of green color as compared to the area that appears to be brighter. Similarly in the blue channel the area appears to be darker contains less amount of blue color as compared to the area that appears to be brighter. Brightness luminance histogram also matches the green histogram more than any other color - human eye interprets green better e.g. RGB rough ratio 15/55/30%
RGBA (RGB+A, A means alpha channel) . The alpha channel is used for "alpha compositing", which can mostly be associated as "opacity". AROS deals in RGB with two digits for every color (red, green, blue), in ARGB you have two additional hex digits for the alpha channel.
The shadows are represented by the left third of the graph. The highlights are represented by the right third. And the midtones are, of course, in the middle. The higher the black peaks in the graph, the more pixels are concentrated in that tonal range (total black area).
By moving the black endpoint, which identifies the shadows (darkness) and a white light endpoint (brightness) up and down either sides of the graph, colors are adjusted based on these points.
By dragging the central one, can increased the midtones and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
RGB Curves
* Move left endpoint (black point) up or right endpoint (white point) up brightens
* Move left endpoint down or right endpoint down darkens
Color Curves
* Dragging up on the Red Curve increases the intensity of the reds in the image but
* Dragging down on the Red Curve decreases the intensity of the reds and thus increases the apparent intensity of its complimentary color, cyan. Green’s complimentary color is magenta, and blue’s is yellow.
<pre>
Red <-> Cyan
Green <->Magenta
Blue <->Yellow
</pre>
YUV Best option to analyse and pull out statistical elements of any picture (i.e. separate luminance data from color data). The line in Y luma tone box represents the brightness of the image with the point in the bottom left been black, and the point in the top right as white. A low-contrast image has a concentrated clump of values nearer to the center of the graph. By comparison, a high-contrast image has a wider distribution of values across the entire width of the Histogram. A histogram that is skewed to the right would indicate a picture that is a bit overexposed because most of the color data is on the lighter side (increase exposure with higher value F), while a histogram with the curve on the left shows a picture that is underexposed. This is good information to have when using post-processing software because it shows you not only where the color data exists for a given picture, but also where any data has been clipped (extremes on edges of either side): that is, it does not exist and, therefore, cannot be edited. By dragging the endpoints of the line and as well as the central one, can increased the dark/shadows, midtones and light/bright parts and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
The U and V chroma parts show color difference components of the image. It’s useful for checking whether or not the overall chroma is too high, and also whether it’s being limited too much
Can be used to create a negative image but also
With U (Cb), the higher value you are, the more you're on the blue primary color. If you go to the low values then you're on blue complementary color, i.e. yellow.
With V (Cr), this is the same principle but with Red and Cyan.
e.g. If you push U full blue and V full red, you get magenta. If you push U full yellow and V full Cyan then you get green.
YUV simultaneously adds to one side of the color equation while subtracting from the other.
using YUV to do color correction can be very problematic because each curve alters the result of each other: the mutual influence between U and V often makes things tricky. You may also be careful in what you do to avoid the raise of noise (which happens very easily). Best results are obtained with little adjustments
sunset that looks uninspiring and needs some color pop especially for the rays over the hill, a subtle contrast raise while setting luma values back to the legal range without hard clipping.
====Lunapaint====
Pixel based drawing app with onion-skin animation function
Blocking, Shading, Coloring, adding detail
<pre>
b BRUSH
e ERASER
alt eyedropper
v layer tool
z ZOOM / MAGNIFY < > n
spc panning
m marque
q lasso
w same color selection / region
</pre>
<pre>
, LM RM
v
V
f filter
F
. size
p
, pick color
[] last / next color
</pre>
There is not much missing in Lunapaint to be as good as FlipBook and then you have to take into account that Flipbook is considered to be amongst the best and easiest to use animation software out there. Ok to be honest Flipbook has some nice features that require more heavy work but those aren't so much needed right away, things like camera effects, sound, smart fill, export to different movie file formats etc.
Tried Flipbook with my tablet and compared it to Luna. The feeling is the same when sketching. LunaPaint is very responsive/fluent to draw with. Just as Flipbook is, and that responsiveness is something its users have mentioned as one of the positive sides of said software.
author was learning MUI. Some parts just have to be rewritten with proper MUI classes before new features can be added.
* add [Frame Add] / [Frame Del]
* whole animation feature is impossible to use. If you draw 2 color maybe but if you start coloring your cells then you get in trouble
* pickup the entire image as a brush, not just a selection ? And consequently remove the brush from memory when one doesn't need it anymore. can pick up a brush and put it onto a new image but cropping isn't possible, nor to load/save brushes.
* Undo is something I longed for ages in Lunapaint.
* to import into the current layer, other types of images (e.g. JPEG) besides RAW64.
* implement graphic tablet features support
**GENERAL DRAWING**
Miss it very much:
UNDO
ERASER
COLORPICKER - has to show on palette too which color got picked.
BACKGROUND COLOR -Possibility to select from "New project screen"
Miss it somewhat:
ICON for UNDO
ICON for ERASER
ICON for CLEAR SCREEN ( What can I say? I start over from scratch very often )
BRUSH - possibility to cut out as brush not just copy off image to brush
**ANIMATING**
Miss it very much:
NUMBER OF CELLS - Possibity to change total no. of cells during project
ANIM BRUSH - Possibility to pick up a selected part of cells into an animbrush
Miss it somewhat:
ADD/REMOVE FRAMES: Add/remove single frame
In general LunaPaint is really well done and it feels like a new DeluxePaint version. It works with my tablet. Sure there's much missing of course but things can always be added over time. So there is great potential in LunaPaint that's for sure. Animations could be made in it and maybe put together in QuickVideo, saving in .gif or .mng etc some day.
LAYERS
-Layers names don't get saved globally in animation frames
-Layers order don't change globally in an animation (perhaps as default?).
EXPORTING IMAGES
-Exporting frames to JPG/PNG gives problems with colors. (wrong colors. See my animatiopn --> My robot was blue now it's "gold" ) I think this only happens if you have layers.
-Trying to flatten the layers before export doesn't work if you have animation frames only the one you have visible will flatten properly all other frames are destroyed. (Only one of the layers are visible on them)
-Exporting images filenames should be for example e.g. file0001, file0002...file0010 instead as of now file1, file2...file10
LOAD/SAVE (Preferences)
-Make a setting for the default "Work" folder.
* Destroyed colors if exported image/frame has layers
* mystic color cycling of the selected color while stepping frames back/forth (annoying)
<pre>
Deluxe Paint II enhanced key shortcuts
NOTE: @ denotes the ALT key
[Technique]
F1 - Paint
F2 - Single Colour
F3 - Replace
F4 - Smear
F5 - Shade
F6 - Cycle
F7 - Smooth
M - Colour Cycle
[Brush]
B - Restore
O - Outline
h - Halve brush size
H - Double brush size
x - Flip brush on X axis
X - Double brush size on X axis only
y - Flip on Y
Y - Double on Y
z - Rotate brush 90 degrees
Z - Stretch
[Stencil]
` - Stencil On
[Miscellaneous]
F9 - Info Bar
F10 - Selection Bar
@o - Co-Ordinates
@a - Anti-alias
@r - Colourise
@t - Translucent
TAB - Colour Cycle
[Picture]
L - Load
S - Save
j - Page to Spare(Flip)
J - Page to Spare(Copy)
V - View Page
Q - Quit
[General Keys]
m - Magnify
< - Zoom In
> - Zoom Out
[ - Palette Colour Up
] - Palette Colour Down
( - Palette Colour Left
) - Palette Colour Right
, - Eye Dropper
. - Pixel / Brush Toggle
/ - Symmetry
| - Co-Ordinates
INS - Perspective Control
+/- - Brush Size (Fine Control)
w - Unfilled Polygon
W - Filled Polygon
e - Unfilled Ellipse
E - Filled Ellipse
r - Unfilled Rectangle
R - Filled Rectangle
t - Type/text tool
a - Select Font
u/U - Undo
d - Brush
D - Filled Non-Uniform Polygon
f/F - Fill Options
g/G - Grid
h/H - Brush Size (Coarse Control)
K - Clear
c - Unfilled Circle
C - Filled Circle
v - Line
b - Scissor Select and Toggle
B - Brush
{,} - Toggle between two background colours
</pre>
====Lodepaint====
Pixel based painting artwork app
====Grafx2====
Pixel based painting artwork app aesprite like
[https://www.youtube.com/watch?v=59Y6OTzNrhk aesprite workflow keys and tablet use], [],
====Vector Graphics ZuneFIG====
Vector Image Editing of files .svg .ps .eps
*Objects - raise lower rotate flip aligning snapping
*Path - unify subtract intersect exclude divide
*Colour - fill stroke
*Stroke - size
*Brushes -
*Layers -
*Effects - gaussian bevels glows shadows
*Text -
*Transform -
AmiFIG ([http://epb.lbl.gov/xfig/frm_introduction.html xfig manual])
[[File:MyScreen.png|thumb|left|alt=Showing all Windows open in AmiFIG.|All windows available to AmiFIG.]]
for drawing simple to intermediate vector graphic images for scientific and technical uses and for illustration purposes for those with talent
;Menu options
* Load - fig format but import(s) SVG
* Save - fig format but export(s) eps, ps, pdf, svg and png
* PAN = Ctrl + Arrow keys
* Deselect all points
There is no selected object until you apply the tool, and the selected object is not highlighted.
;Metrics - to set up page and styles - first window to open on new drawings
;Tools - Drawing Primitives - set Attributes window first before clicking any Tools button(s)
* Shapes - circles, ellipses, arcs, splines, boxes, polygon
* Lines - polylines
* Text "T" button
* Photos - bitmaps
* Compound - Glue, Break, Scale
* POINTs - Move, Add, Remove
* Objects - Move, Copy, Delete, Mirror, Rotate, Paste
use right mouse button to stop extra lines, shapes being formed and the left mouse to select/deselect tools button(s)
* Rotate - moves in 90 degree turns centered on clicked POINT of a polygon or square
;Attributes which provide change(s) to the above primitives
* Color
* Line Width
* Line Style
* arrowheads
;Modes
Choose from freehand, charts, figures, magnet, etc.
;Library - allows .fig clip-art to be stored
* compound tools to add .fig(s) together
;FIG 3.2 [http://epb.lbl.gov/xfig/fig-format.html Format] as produced by xfig version 3.2.5
<pre>
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
4 0 0 50 -1 0 12 0.0000 4 135 1050 1050 2475 This is a test.01
</pre>
# change the text alignment within the textbox. I can choose left, center, or right aligned by either changing the integer in the second column from 0 (left) to 1 or 2 (center, or right).
# The third integer in the row specifies fontcolor. For instance, 0 is black, but blue is 1 and Green3 is 13.
# The sixth integer in the bottom row specifies fontface. 0 is Times-Roman, but 16 is Helvetica (a MATLAB default).
# The seventh number is fontsize. 12 represents a 12pt fontsize. Changing the fontsize of an item really is as easy as changing that number to 20.
# The next number is the counter-clockwise angle of the text. Notice that I have changed the angle to .7854 (pi/4 rounded to four digits=45 degrees).
# twelfth number is the position according to the standard “x-axis” in Xfig units from the left. Note that 1200 Xfig units is equivalent to once inch.
# thirteenth number is the “y-position” from the top using the same unit convention as before.
* The nested text string is what you entered into the textbox.
* The “01″ present at the end of that line in the .fig file is the closing tag. For instance, a change to \100 appends a @ symbol at the end of the period of that sentence.
; Just to note there are no layers, no 3d functions, no shading, no transparency, no animation
[[#top|...to the top]]
===Audio===
# AHI uses linear panning/balance, which means that in the center, you will get -6dB. If an app uses panning, this is what you will get. Note that apps like Audio Evolution need panning, so they will have this problem.
# When using AHI Hifi modes, mixing is done in 32-bit and sent as 32-bit data to the driver. The Envy24HT driver uses that to output at 24-bit (always).
# For the Envy24/Envy24HT, I've made 16-bit and 24-bit inputs (called Line-in 16-bit, Line-in 24-bit etc.). There is unfortunately no app that can handle 24-bit recording.
====Music Mods====
Digital module (mods) trackers are music creation software using samples and sometimes soundfonts, audio plugins (VST, AU or RTAS), MIDI.
Generally, MODs are similar to MIDI in that they contain note on/off and other sequence messages that control the mod player. Unlike (most) midi files, however, they also contain sound samples that the sequence information actually plays. MOD files can have many channels (classic amiga mods have 4, corresponding to the inbuilt sound channels), but unlike MIDI, each channel can typically play only one note at once. However, since that note might be a sample of a chord, a drumloop or other complex sound, this is not as limiting as it sounds.
Like MIDI, notes will play indefinitely if they're not instructed to end. Most trackers record this information automatically if you play your music in live. If you're using manual note entry, you can enter a note-off command with a keyboard shortcut - usually Caps Lock.
In fact when considering file size MOD is not always the best option. Even a dummy song wastes few kilobytes for nothing when a simple SID tune could be few hundreds bytes and not bigger than 64kB. AHX is another small format, AHX tunes are never larger than 64kB excluding comments.
[https://www.youtube.com/watch?v=rXXsZfwgil Protrekkr] (previously aka [w:Juan_Antonio_Arguelles_Rius|NoiseTrekkr])
If Protrekkr does not start, please check if the Unit 0 has been setup in the AHI prefs and still not, go to the directory utilities/protrekkr and double click on the Protrekkr icon
*Sample
*Note - Effect
*Track (column) - Pattern - Order
It all starts with the Sample which is used to create Note(s) in a Track (column of a tracker)
The Note can be changed with an Effect. A Track of Note(s) can be collected into a Pattern (section of a song) and these can be given Order to create the whole song.
Patience (notes have to be entered one at a time) or playing the bassline on a midi controller (faster - see midi section above). Best approach is to wait until a melody popped into your head.
*Up-tempo means the track should be reasonably fast, but not super-fast.
*Groovy and funky imply the track should have some sort of "swing" feel, with plenty of syncopation or off beat emphasis and a recognizable, melodic bass line.
*Sweet and happy mean upbeat melodies, a major key and avoiding harsh sounds.
*Moody - minor key
First, create a quick bass sound, which is basically a sine wave, but can be hand drawn for a little more variance. It could also work for the melody part, too.
This is usually a bass guitar or some kind of synthesizer bass. The bass line is often forgotten by inexperienced composers, but it plays an important role in a musical piece. Together with the rhythm section the bass line forms the groove of a song. It's the glue between the rhythm section and the melodic layer of a song.
The drums are just pink noise samples, played at different frequencies to get a slightly different sound for the kick, snare, and hihats.
Instruments that fall into the rhythm category are bass drums, snares, hi-hats, toms, cymbals, congas, tambourines, shakers, etc. Any percussive instrument can be used to form part of the rhythm section.
The lead is the instrument that plays the main melody, on top of the chords. There are many instruments that can play a lead section, like a guitar, a piano, a saxophone or a flute. The list is almost endless. There is a lot of overlap with instruments that play chords. Often in one piece an instrument serves both roles. The lead melody is often played at a higher pitch than the chords.
Listened back to what was produced so far, and a counter-melody can be imagined, which can be added with a triangle wave.
To give the ends of phrases some life, you can add a solo part with a crunchy synth. By hitting random notes in the key of G, then edited a few of them.
For the climax of the song, filled out the texture with a gentle high-pitch pad… …and a grungy bass synth.
The arrow at A points at the pattern order list. As you see, the patterns don't have to be in numerical order. This song starts with pattern "00", then pattern "02", then "03", then "01", etcetera. Patterns may be repeated throughout a song.
The B arrow points at the song title. Below it are the global BPM and speed parameters. These determine the tempo of the song, unless the tempo is altered through effect commands during the song.
The C arrow points at the list of instruments. An instrument may consist of multiple samples. Which sample will be played depends on the note. This can be set in the Instrument Editing screen. Most instruments will consist of just one sample, though. The sample list for the selected instrument can be found under arrow D.
Here's a part of the main editing screen. This is where you put in actual notes. Up to 32 channels can be used, meaning 32 sounds can play simultaneously. The first six channels of pattern "03" at order "02" are shown here. The arrow at A points at the row number. The B arrow points at the note to play, in this case a C4. The column pointed at by the C arrow tells us which instrument is associated with that note, in this case instrument #1 "Kick".
The column at D is used (mainly) for volume commands. In this case it is left empty which means the instrument should play at its default volume. You can see the volume column being used in channel #6.
The E column tells us which effect to use and any parameters for that effect. In this case it holds the "F" effect, which is a tempo command. The "04" means it should play at tempo 4 (a smaller number means faster).
Base pattern
When I create a new track I start with what I call the base pattern. It is worthwhile to spend some time polishing it as a lot of the ideas in the base pattern will be copied and used in other patterns. At least, that's how I work. Every musician will have his own way of working. In "Wild Bunnies" the base pattern is pattern "03" at order "02".
In the section about selecting samples I talked about the four different categories of instruments: drums, bass, chords and leads. That's also how I usually go about making the base pattern. I start by making a drum pattern, then add a bass line, place some chords and top it off with a lead. This forms the base pattern from which the rest of the song will grow.
Drums
Here's a screenshot of the first four rows of the base pattern. I usually reserve the first four channels or so for the drum instruments. Right away there are a couple of tricks shown here. In the first channel the kick, or bass drum, plays some notes. Note the alternating F04 and F02 commands. The "F" command alters the tempo of the song and by quickly alternating the tempo; the song will get some kind of "swing" feel.
In the second channel the closed hi-hat plays a fairly simple pattern. Further down in the channel, not shown here, some open hi-hat notes are added for a bit of variation.
In the third and fourth channel the snare sample plays. The "8" command is for panning. One note is panned hard to the left and the other hard to the right. One sample is played a semitone lower than the other. This results in a cool flanging effect. It makes the snare stand out a little more in the mix.
Bass line
There are two different instruments used for the bass line. Instrument #6 is a pretty standard synthesized bass sound. Instrument #A sounds a bit like a slap bass when used with a quick fade out. By using two different instruments the bass line sounds a bit more ”human”. The volume command is used to cut off the notes. However, it is never set to zero. Setting the volume to a very small value will result in a reverb-like effect. This makes the song sound more "live".
The bass line hints at the chords that will be played and the key the song will be in. In this case the key of the song is D-major, a positive and happy key.
Chords
The D major chords that are being played here are chords stabs; short sounds with a quick decay (fade out). Two different instruments (#8 and #9) are used to form the chords. These instruments are quite similar, but have a slightly different sound, panning and volume decay. Again, the reason for this is to make the sound more human. The volume command is used on some chords to simulate a delay, to achieve more of a live feel. The chords are placed off-beat making for a funky rhythm.
Lead
Finally the lead melody is added. The other instruments are invaluable in holding the track together, but the lead melody is usually what catches people's attention.
A lot of notes and commands are used here, but it looks more complex than it is. A stepwise ascending melody plays in channel 13. Channel 14 and 15 copy this melody, but play it a few rows later at a lower volume. This creates an echo effect. A bit of panning is used on the notes to create some stereo depth. Like with the bass line, instead of cutting off notes the volume is set to low values for a reverb effect. The "461" effect adds a little vibrato to the note, which sounds nice on sustained notes.
Those paying close attention may notice the instrument used here for the lead melody is the same as the one used for the bass line (#6 "Square"), except played two or three octaves higher. This instrument is a looped square wave sample. Each type of wave has its own quirks, but the square wave (shown below) is a really versatile wave form.
Song structure
Good, catchy songs are often carefully structured into sections, some of which are repeated throughout the song with small variations.
A typical pop-song structure is: Intro - Verse - Chorus - Verse - Chorus - Bridge - Chorus.
Other single sectional song structures are
<pre>
Strophic or AAA Song Form - oldest story telling with refrain (often title of the song) repeated in every verse section melody
AABA Song Form - early popular, jazz and gospel fading during the 1960s
AB or Verse/Chorus Song Form - songwriting format of choice for modern popular music since the 1960s
Verse/Chorus/Bridge Song Form
ABAB Song Form
ABAC Song Form
ABCD Song Form
AAB 12-Bar Song Form - three four-bar lines or sub-sections
8-Bar Song Form
16-Bar Song Form
Hybrid / Compound Song Forms
</pre>
The most common building blocks are:
#INTRODUCTION(INTRO)
#VERSE
#REFRAIN
#PRE-CHORUS / RISE / CLIMB
#CHORUS
#BRIDGE
#MIDDLE EIGHT
#SOLO / INSTRUMENTAL BREAK
#COLLISION
#CODA / OUTRO
#AD LIB (OFTEN IN CODA / OUTRO)
The chorus usually has more energy than the verse and often has a memorable melody line. As the chorus is repeated the most often during the song, it will be the part that people will remember.
The bridge often marks a change of direction in the song. It is not uncommon to change keys in the bridge, or at least to use a different chord sequence. The bridge is used to build up tension towards the big finale, the last repetition of chorus.
Playing
RCTRL: Play song from row 0.
LSHIFT + RCTRL: Play song from current row.
RALT: Play pattern from row 0.
LSHIFT + RALT: Play pattern from current row.
Left mouse on '>': Play song from row 0.
Right mouse on '>': Play song from current row.
Left mouse on '|>': Play pattern from row 0.
Right mouse on '|>': Play pattern from current row.
Left mouse on 'Edit/Record': Edit mode on/off.
Right mouse on 'Edit/Record': Record mode on/off.
Editing
LSHIFT + ESCAPE: Switch large patterns view on/off
TAB: Go to next track
LSHIFT + TAB: Go to prev. track
LCTRL + TAB: Go to next note in track
LCTRL + LSHIFT + TAB: Go to prev. note in track
SPACE: Toggle Edit mode On & Off
(Also stop if the song is being played)
SHIFT SPACE: Toggle Record mode On & Off
(Wait for a key note to be pressed
or a midi in message to be received)
DOWN ARROW: 1 Line down
UP ARROW: 1 Line up
LEFT ARROW: 1 Row left
RIGHT ARROW: 1 Row right
PREV. PAGE: 16 Arrows Up
NEXT PAGE: 16 Arrows Down
HOME / END: Top left / Bottom right of pattern
LCTRL + HOME / END: First / last track
F5, F6, F7, F8, F9: Jump to 0, 1/4, 2/4, 3/4, 4/4 lines of the patterns
+ - (Numeric keypad): Next / Previous pattern
LCTRL + LEFT / RIGHT: Next / Previous pattern
LCTRL + LALT + LEFT / RIGHT: Next / Previous position
LALT + LEFT / RIGHT: Next / Previous instrument
LSHIFT + M: Toggle mute state of the current channel
LCTRL + LSHIFT + M: Solo the current track / Unmute all
LSHIFT + F1 to F11: Select a tab/panel
LCTRL + 1 to 4: Select a copy buffer
Tracking
1st and 2nd keys rows: Upper octave row
3rd and 4th keys rows: Lower octave row
RSHIFT: Insert a note off
/ and * (Numeric keypad)
or F1 F2: -1 or +1 octave
INSERT / BACKSPACE: Insert or Delete a line in current track
or current selected block.
LSHIFT + INSERT / BACKSPACE: Insert or Delete a line in current pattern
DELETE (NOT BACKSPACE): Empty a column or a selected block.
Blocks
(Blocks can also be selected with the mouse by holding the right button and scrolling the pattern with the mouse wheel).
LCTRL + A: Select entire current track
LCTRL + LSHIFT + A: Select entire current pattern
LALT + A: Select entire column note in a track
LALT + LSHIFT + A: Select all notes of a track
LCTRL + X: Cut the selected block and copy it into the block-buffer
LCTRL + C: Copy the selected block into the block-buffer
LCTRL + V: Paste the data from the block buffer into the pattern
LCTRL + I: Interpolate selected data from the first to the last row of a selection
LSHIFT + ARROWS
PREV. PAGE
NEXT PAGE: Select a block
LCTRL + R: Randomize the select columns of a selection, works similar to CTRL + I (interpolating them)
LCTRL + U: Transpose the note of a selection to 1 seminote higher
LCTRL + D: Transpose the note of a selection to 1 seminote lower
LCTRL + LSHIFT + U: Transpose the note of a selection to 1 seminote higher (only for the current instrument)
LCTRL + LSHIFT + D: Transpose the note of a selection to 1 seminote lower (only for the current instrument)
LCTRL + H: Transpose the note of a selection to 1 octave higher
LCTRL + L: Transpose the note of a selection to 1 octave lower
LCTRL + LSHIFT + H: Transpose the note of a selection to 1 octave higher (only for the current instrument)
LCTRL + LSHIFT + L: Transpose the note of a selection to 1 octave lower (only for the current instrument)
LCTRL + W: Save the current selection into a file
Misc
LALT + ENTER: Switch between full screen / windowed mode
LALT + F4: Exit program (Windows only)
LCTRL + S: Save current module
LSHIFT + S: Switch top right panel to synths list
LSHIFT + I: Switch top right panel to instruments list
<pre>
C-x xh xx xx hhhh Volume
B-x xh xx xx hhhh Jump to
A#x xh xx xx hhhh hhhh Slide
F-x xh xx xx hhhh Tempo
D-x xh xx xx hhhh Pattern Break
G#x xh xx xx hhhh
</pre>
h Hex 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
d Dec 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
The Set Volume command: C. Input a note, then move the cursor to the effects command column and type a C. Play the pattern, and you shouldn't be able to hear the note you placed the C by. This is because the effect parameters are 00. Change the two zeros to a 40(Hex)/64(Dec), depending on what your tracker uses. Play back the pattern again, and the note should come in at full volume.
The Position Jump command next. This is just a B followed by the position in the playing list that you want to jump to. One thing to remember is that the playing list always starts at 0, not 1. This command is usually in Hex.
Onto the volume slide command: A. This is slightly more complex (much more if you're using a newer tracker, if you want to achieve the results here, then set slides to Amiga, not linear), due to the fact it depends on the secondary tempo. For now set a secondary tempo of 06 (you can play around later), load a long or looped sample and input a note or two. A few rows after a note type in the effect command A. For the parameters use 0F. Play back the pattern, and you should notice that when the effect kicks in, the sample drops to a very low volume very quickly. Change the effect parameters to F0, and use a low volume command on the note. Play back the pattern, and when the slide kicks in the volume of the note should increase very quickly.
This because each part of the effect parameters for command A does a different thing. The first number slides the volume up, and the second slides it down. It's not recommended that you use both a volume up and volume down at the same time, due to the fact the tracker only looks for the first number that isn't set to 0. If you specify parameters of 8F, the tracker will see the 8, ignore the F, and slide the volume up. Using a slide up and down at same time just makes you look stupid. Don't do it...
The Set Tempo command: F, is pretty easy to understand. You simply specify the BPM (in Hex) that you want to change to. One important thing to note is that values of lower than 20 (Hex) sets the secondary tempo rather than the primary.
Another useful command is the Pattern Break: D. This will stop the playing of the current pattern and skip to the next one in the playing list. By using parameters of more than 00 you can also specify which line to begin playing from.
Command 3 is Portamento to Note. This slides the currently playing note to another note, at a specified speed. The slide then stops when it reaches the desired note.
<pre>
C-2 1 000 - Starts the note playing
--- 000
C-3 330 - Starts the slide to C-3 at a speed of 30.
--- 300 - Continues the slide
--- 300 - Continues the slide
</pre>
Once the parameters have been set, the command can be input again without any parameters, and it'll still perform the same function unless you change the parameters. This memory function allows certain commands to function correctly, such as command 5, which is the Portamento to Note and Volume Slide command. Once command 3 has been set up command 5 will simply take the parameters from that and perform a Portamento to Note. Any parameters set up for command 5 itself simply perform a Volume Slide identical to command A at the same time as the Portamento to Note.
This memory function will only operate in the same channel where the original parameters were set up.
There are various other commands which perform two functions at once. They will be described as we come across them.
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 00
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 02
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 05
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 08
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0A
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0D
C-3 04 .. .. 09 10 ---> C-3 04 .. .. 09 10
(You can also switch on the Slider Rec to On, and perform parameter-live-recording, such as cutoff transitions, resonance or panning tweaking, etc..) Note: this command only works for volume/panning and fx datas columns.
The next command we'll look at is the Portamento up/down: 1 and 2. Command 1 slides the pitch up at a specified speed, and 2 slides it down. This command works in a similar way to the volume slide, in that it is dependent on the secondary tempo. Both these commands have a memory dependent on each other, if you set the slide to a speed of 3 with the 1 command, a 2 command with no parameters will use the speed of 3 from the 1 command, and vice versa.
Command 4 is Vibrato. Vibrato is basically rapid changes in pitch, just try it, and you'll see what I mean. Parameters are in the format of xy, where x is the speed of the slide, and y is the depth of the slide. One important point to remember is to keep your vibratos subtle and natural so a depth of 3 or less and a reasonably fast speed, around 8, is usually used. Setting the depth too high can make the part sound out of tune from the rest.
Following on from command 4 is command 6. This is the Vibrato and Volume Slide command, and it has a memory like command 5, which you already know how to use.
Command 7 is Tremolo. This is similar to vibrato. Rather than changing the pitch it slides the volume. The effect parameters are in exactly the same format. vibrato effect (0x1dxy) x = speed y = depth (can't be used if arpeggio (0x1b) is turned on)
<pre>
C-7 00 .. .. 1B37 <- Turn Arpeggio effect on
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B38 <- Change datas
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B00 <- Turn it off
</pre>
Command 9 is Sample Offset. This starts the playback of the sample from a different place than the start. The effect parameters specify the sample offset, but only very roughly. Say you have a sample which is 8765(Hex) bytes long, and you wanted it to play from position 4321(Hex). The effect parameter could only be as accurate as the 43 part, and it would ignore the 21.
Command B is the Playing List/Order Jump command. The parameters specify the position in the Playing List/Order to jump to. When used in conjunction with command D you can specify the position and the line to play from.
Command E is pretty complex, as it is used for a lot of different things, depending on what the first parameter is. Let's take a trip through each effect in order.
Command E0 controls the hardware filter on an Amiga, which, as a low pass filter, cuts off the highest frequencies being played back. There are very few players and trackers on other system that simulate this function, not that you should need to use it. The second parameter, if set to 1, turns on the filter. If set to 0, the filter gets turned off.
Commands E1/E2 are Fine Portamento Up/Down. Exactly the same functions as commands 1/2, except that they only slide the pitch by a very small amount. These commands have a memory the same as 1/2 as well.
Command E3 sets the Glissando control. If parameters are set to 1 then when using command 3, any sliding will only use the notes in between the original note and the note being slid to. This produces a somewhat jumpier slide than usual. The best way to understand is to try it out for yourself. Produce a slow slide with command 3, listen to it, and then try using E31.
Command E4 is the Set Vibrato Waveform control. This command controls how the vibrato command slides the pitch. Parameters are 0 - Sine, 1 - Ramp Down (Saw), 2 - Square. By adding 4 to the parameters, the waveform will not be restarted when a new note is played e.g. 5 - Sine without restart.
Command E5 sets the Fine Tune of the instrument being played, but only for the particular note being played. It will override the default Fine Tune for the instrument. The parameters range from 0 to F, with 0 being -8 and F being +8 Fine Tune. A parameter of 8 gives no Fine Tune. If you're using a newer tracker that supports more than -8 to +8 e.g. -128 to +128, these parameters will give a rough Fine Tune, accurate to the nearest 16.
Command E6 is the Jump Loop command. You mark the beginning of the part of a pattern that you want to loop with E60, and then specify with E6x the end of the loop, where x is the number of times you want it to loop.
Command E7 is the Set Tremolo Waveform control. This has exactly the same parameters as command E4, except that it works for Tremolo rather than Vibrato.
Command E9 is for Retriggering the note quickly. The parameter specifies the interval between the retrigs. Use a value of less than the current secondary tempo, or else the note will not get retrigged.
Command EA/B are for Fine Volume Slide Up/Down. Much the same as the normal Volume Slides, except that these are easier to control since they don't depend on the secondary tempo. The parameters specify the amount to slide by e.g. if you have a sample playing at a volume of 08 (Hex) then the effect EA1 will slide this volume to 09 (Hex). A subsequent effect of EB4 would slide this volume down to 05 (Hex).
Command EC is the Note Cut. This sets the volume of the currently playing note to 0 at a specified tick. The parameters should be lower than the secondary tempo or else the effect won't work.
Command ED is the Note Delay. This should be used at the same time as a note is to be played, and the parameters will specify the number of ticks to delay playing the note. Again, keep the parameters lower than the secondary tempo, or the note won't get played!
Command EE is the Pattern Delay. This delays the pattern for the amount of time it would take to play a certain number of rows. The parameters specify how many rows to delay for.
Command EF is the Funk Repeat command. Set the sample loop to 0-1000. When EFx is used, the loop will be moved to 1000- 2000, then to 2000-3000 etc. After 9000-10000 the loop is set back to 0- 1000. The speed of the loop "movement" is defined by x. E is two times as slow as F, D is three times as slow as F etc. EF0 will turn the Funk Repeat off and reset the loop (to 0-1000).
effects 0x41 and 0x42 to control the volumes of the 2 303 units
There is a dedicated panel for synth parameter editing with coherent sections (osc, filter modulation, routing, so on) the interface is much nicer, much better to navigate with customizable colors, the reverb is now customizable (10 delay lines), It accepts newer types of Waves (higher bit rates, at least 24). Has a replay routine.
It's pretty much your basic VA synth. The problem isn't with the sampler being to high it's the synth is tuned two octaves too low, but if you want your samples tuned down just set the base note down 2 octaves (in the instrument panel).
so the synth is basically divided into 3 sections from left to right: oscillators/envelopes, then filter and LFO's, and in the right column you have mod routings and global settings.
for the oscillator section you have two normal oscillators (sine, saw, square, noise), the second of which is tunable, the first one tunes with the key pressed. Attached to OSC 1 is a sub-oscillator, which is a sawtooth wave tuned one octave down. The phase modulation controls the point in the duty cycle at which the oscillator starts. The ADSR envelope sliders (grouped with oscs) are for modulation envelope 1 and 2 respectively. you can use the synth as a sampler by choosing the instrument at the top.
In the filter column, the filter settings are: 1 = lowpass, 2 = highpass, 3 = off. cutoff and resonance. For the LFOs they are LFO 1 and LFO 2, the ADSR sliders in those are for the LFO itself.
For the modulation routings you have ENV 1, LFO 1 for the first slider and ENV 2, LFO 2 for the second, you can cycle through the individual routings there, and you can route each modulation source to multiple destinations of course, which is another big plus for this synth. Finally the glide time is for portamento and master volume, well, the master volume... it can go quite loud.
The sequencer is changed too, It's more like the one in AXS if you've used that, where you can mute tracks to re-use patterns with variation.
<pre>
Support for the following modules formats:
669 (Composer 669, Unis 669),
AMF (DSMI Advanced Module Format),
AMF (ASYLUM Music Format V1.0),
APUN (APlayer), DSM (DSIK internal format),
FAR (Farandole Composer),
GDM (General DigiMusic),
IT (Impulse Tracker),
IMF (Imago Orpheus),
MOD (15 and 31 instruments),
MED (OctaMED),
MTM (MultiTracker Module editor),
OKT (Amiga Oktalyzer),
S3M (Scream Tracker 3),
STM (Scream Tracker),
STX (Scream Tracker Music Interface Kit),
ULT (UltraTracker),
UNI (MikMod),
XM (FastTracker 2),
Mid (midi format via timidity)
</pre>
Possible plugin options include [http://lv2plug.in/ LV2],
====Midi - Musical Instrument Digital Interface====
A midi file typically contains music that plays on up to 16 channels (as per the midi standard), but many notes can simultaneously play on each channel (depending on the limit of the midi hardware playing it).
'''Timidity'''
Although usually already installed, you can uncompress the [http://www.libsdl.org/projects/SDL_mixer/ timidity.tar.gz (14MB)] into a suitable drawer like below's SYS:Extras/Audio/
assign timidity: SYS:Extras/Audio/timidity
added to SYSːs/User-Startup
'''WildMidi playback'''
'''Audio Evolution 4 (2003) 4.0.23 (from 2012)'''
*Sync Menu - CAMD Receive, Send checked
*Options Menu - MIDI Machine Control - Midi Bar Display - Select CAMD MIDI in / out - Midi Remote Setup
MCB Master Control Bus
*Sending a MIDI start-command and a Song Position Pointer, you can synchronize audio with an external MIDI sequencer (like B&P).
*B&P Receive, start AE, add AudioEvolution.ptool in Bars&Pipes track, press play / record in AE then press play in Pipes
*CAMD Receive, receive MIDI start or continue commands via camd.library sync to AE
*MIDI Machine Control
*Midi Bar Display
*Select CAMD MIDI in / out
*Midi Remote Setup - open requester for external MIDI controllers to control app mixer and transport controls cc remotely
Channel - mixer(vol, pan, mute, solo), eq, aux, fx,
Subgroup - Volume, Mute, Solo
Transport - Start, End, Play, Stop, Record, Rewind, Forward
Misc - Master vol., Bank Down, Bank up
<pre>
q - quit
First 3 already opened when AE started
F1 - timeline window
F2 - mixer
F3 - control
F4 - subgroups
F5 - aux returns
F6 - sample list
i - Load sample to use
space - start/stop play
b - reset time 0:00
s - split mode
r - open recording window
a - automation edit mode with p panning, m mute and v volume
[ / ] - zoom in / out
: - previous track
* - next track
x c v f - cut copy paste cross-fade
g - snap grid
</pre>
'''[http://bnp.hansfaust.de/ Bars n Pipes sequencer]'''
BarsnPipes debug ... in shell
Menu (right mouse)
*Song - Songs load and save in .song format but option here to load/save Midi_Files .mid in FORMAT0 or FORMAT1
*Track -
*Edit -
*Tool -
*Timing - SMTPE Synchronizing
*Windows -
*Preferences - Multiple MIDI-in option
Windows (some of these are usually already opened when Bars n Pipes starts up for the first time)
*Workflow -> Tracks, .... Song Construction, Time-line Scoring, Media Madness, Mix Maestro,
*Control -> Transport (or mini one), Windows (which collects all the Windows icons together-shortcut), .... Toolbox, Accessories, Metronome,
Once you have your windows placed on the screen that suits your workflow, Song -> Save as Default will save the positions, colors, icons, etc as you'd like them
If you need a particular setup of Tracks, Tools, Tempos etc, you save them all as a new song you can load each time
Right mouse menu -> Preferences -> Environment... -> ScreenMode - Linkages for Synch (to Slave) usbmidi.out.0 and Send (Master) usbmidi.in.0 - Clock MTC
'''Tracks'''
#Double-click on B&P's icon. B&P will then open with an empty Song. You can also double-click on a song icon to open a song in B&P.
#Choose a track. The B&P screen will contain a Tracks Window with a number of tracks shown as pipelines (Track 1, Track 2, etc...). To choose a track, simply click on the gray box to show an arrow-icon to highlight it. This icon show whether a track is chosen or not. To the right of the arrow-icon, you can see the icon for the midi-input. If you double-click on this icon you can change the MIDI-in setup.
#Choose Record for the track. To the right of the MIDI-input channel icon you can see a pipe. This leads to another clickable icon with that shows either P, R or M. This stands for Play, Record or Merge. To change the icon, simply click on it. If you choose P, this track can only play the track (you can't record anything). If you choose R, you can record what you play and it overwrites old stuff in the track. If you choose M, you merge new records with old stuff in the track. Choose R now to be able to make a record.
#Chose MIDI-channel. On the most right part of the track you can see an icon with a number in it. This is the MIDI-channel selector. Here you must choose a MIDI-channel that is available on your synthesizer/keyboard. If you choose General MIDI channel 10, most synthesizer will play drum sounds. To the left of this icon is the MIDI-output icon. Double-click on this icon to change the MIDI-output configuration.
#Start recording. The next step is to start recording. You must then find the control buttons (they look like buttons on a CD-player). To be able to make a record. you must click on the R icon. You can simply now press the play button (after you have pressed the R button) and play something on you keyboard. To playback your composition, press the Play button on the control panel.
#Edit track. To edit a track, you simply double click in the middle part of a track. You will then get a new window containing the track, where you can change what you have recorded using tools provided. Take also a look in the drop-down menus for more features.
Videos to help understand [https://www.youtube.com/watch?v=A6gVTX-9900 small intro], [https://www.youtube.com/watch?v=abq_rUTiSA4&t=3s Overview], [https://www.youtube.com/watch?v=ixOVutKsYQo Workplace Setup CC PC Sysex], [https://www.youtube.com/watch?v=dDnJLYPaZTs Import Song], [https://www.youtube.com/watch?v=BC3kkzPLkv4 Tempo Mapping], [https://www.youtube.com/watch?v=sd23kqMYPDs ptool Arpeggi-8], [https://www.youtube.com/watch?v=LDJq-YxgwQg PlayMidi Song], [https://www.youtube.com/watch?v=DY9Pu5P9TaU Amiga Midi], [https://www.youtube.com/watch?v=abq_rUTiSA4 Learning Amiga bars and Pipes],
Groups like [https://groups.io/g/barsnpipes/topics this] could help
'''Tracks window'''
* blue "1 2 3 4 5 6 7 8 Group" and transport tape deck VCR-type controls
* Flags
* [http://theproblem.alco-rhythm.com/org/bp.html Track 1, Track2, to Track 16, on each Track there are many options that can be activated]
Each Track has a
*Left LHS - Click in grey box to select what Track to work on, Midi-In ptool icon should be here (5pin plug icon), and many more from the Toolbox on the Input Pipeline
*Middle - (P, R, M) Play, Record, Merge/Multi before the sequencer line and a blue/red/yellow (Thru Mute Play) Tap
*Right RHS - Output pipeline, can have icons placed uopn it with the final ptool icon(s) being the 5pin icon symbol for Midi-OUT
Clogged pipelines may need Esc pressed several times
'''Toolbox (tools affect the chosen pipeline)'''
After opening the Toolbox window you can add extra Tools (.ptool) for the pipelines like keyboard(virtual), midimonitor, quick patch, transpose, triad, (un)quantize, feedback in/out, velocity etc
right mouse -> Toolbox menu option -> Install Tool... and navigate to Tool drawer (folder) and select requried .ptool
Accompany B tool to get some sort of rythmic accompaniment, Rythm Section and Groove Quantize are examples of other tools that make use of rythms
[https://aminet.net/search?query=bars Bars & Pipes pattern format .ptrn] for drawer (folder). Load from the Menu as Track or Group
'''Accessories (affect the whole app)'''
Accessories -> Install... and goto the Accessories drawer for .paccess like adding ARexx scripting support
'''Song Construction'''
<pre>
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Duplicator
F5 Eraser
F6 Toolpad
F7 Bounding box
F8 Lock to A-B-A
A-B-A strip, section, edit flags, white boxes,
</pre>
Bars&Pipes Professional offers three track formats; basic song tracks, linear tracks — which don't loop — and finally real‑time tracks. The difference between them is that both song and linear tracks respond to tempo changes, while real‑time tracks use absolute timing, always trigger at the same instant regardless of tempo alterations
'''Tempo Map'''
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Eraser
F5 Curve
F6 Toolpad
Compositions
Lyrics, Key, Rhythm, Time Signature
'''Master Parameters'''
Key, Scale/Mode
'''Track Parameters'''
Dynamics
'''Time-line Scoring'''
'''Media Madness'''
'''Mix Maestro'''
*ACCESSORIES Allows the importation of other packages and additional modules
*CLIPBOARD Full cut, copy and paste operations, enabling user‑definable clips to be shared between tracks.
*INFORMATION A complete rundown on the state of the current production and your machine.
*MASTER PARAMETERS Enables global definition of time signatures, lyrics, scales, chords, dynamics and rhythm changes.
*MEDIA MADNESS A complete multimedia sequencer which allows samples, stills, animation, etc
*METRONOME Tempo feedback via MIDI, internal Amiga audio and colour cycling — all three can be mixed and matched as required.
*MIX MAESTRO Completely automated mixdown with control for both volume and pan. All fader alterations are memorised by the software
*RECORD ACTIVATION Complete specification of the data to be recorded/merged. Allows overdubbing of pitch‑bend, program changes, modulation etc
*SET FLAGS Numeric positioning of location and edit flags in either SMPTE or musical time
*SONG CONSTRUCTION Large‑scale cut and paste of individual measures, verses or chorus, by means of bounding box and drag‑n‑drop mouse selections
*TEMPO MAP Tempo change using a variety of linear and non‑linear transition curves
*TEMPO PALETTE Instant tempo changes courtesy of four user‑definable settings.
*TIMELINE SCORING Sequencing of a selection of songs over a defined period — ideal for planning an entire set for a live performance.
*TOOLBOX Selection screen for the hundreds of signal‑processing tools available
*TRACKS Opens the main track window to enable recording, editing and the use of tools.
*TRANSPORT Main playback control window, which also provides access to user‑ defined flags, loop and punch‑in record modes.
Bars and Pipes Pro 2.5 is using internal 4-Byte IDs, to check which kind of data are currently processed.
Especially in all its files the IDs play an important role. The IDs are stored into the file in the same order they are laid out in the memory.
In a Bars 'N' Pipes file (no matter which kind) the ID "NAME" (saved as its ANSI-values) is stored on a big endian system (68k-computer) as "NAME". On a little endian system (x86 PC computer) as "EMAN". The target is to make the AROS-BnP compatible to songs, which were stored on a 68k computer (AMIGA).
If possible, setting MIDI channels for Local Control for your keyboard
http://www.fromwithin.com/liquidmidi/archive.shtml
MIDI files are essentially a stream of event data. An event can be many things, but typically "note on", "note off", "program change", "controller change", or messages that instruct a MIDI compatible synth how to play a given bit of music.
* Channel - 1 to 16 -
* Messages - PC presets, CC effects like delays, reverbs, etc
* Sequencing - MIDI instruments, Drums, Sound design,
* Recording -
* GUI - Piano roll or Tracker, Staves and Notes
MIDI events/messages like step entry e.g. Note On, Note Off
MIDI events/messages like PB, PC, CC, Mono and Poly After-Touch, Sysex, etc
MIDI sync - Midi Clocks (SPS Measures), Midi Time Code (h, m, s and frames) SMPTE
Individual track editing with audition edits so easier to test any changes. Possible to stop track playback, mix clips from the right edit flag and scroll the display using arrow keys.
Step entry, to extend a selected note hit the space bar and the note grows accordingly. Ability to cancel mouse‑driven edits by simply clicking the right mouse button — at which point everything snaps back into its original form. Lyrics can now be put in with syllable dividers, even across an entire measure or section. Autoranging when you open a edit window, the notes are automatically displayed — working from the lowest upwards.
Flag editing, shift‑click on a flag immediately open the bounds window, ready for numeric input. Ability to cancel edits using the right‑hand mouse button, plus much improved Bounding Box operations.
Icons other than the BarsnPipes icon -> PUBSCREEN=BarsnPipes (cannot choose modes higher than 8bit 256 colors)
Preferences -> Menu in Tracks window - Send MIDI defaults OFF
Prefs -> Environment -> screenmode (saved to BarsnPipes.prefs binary file)
Customization -> pics in gui drawer (folder) -
Can save as .song files and .mid General Midi
SMF is a “Standard Midi File” ([http://www.music.mcgill.ca/~ich/classes/mumt306/StandardMIDIfileformat.html SMF0, SMF1 and SMF2]), [https://github.com/stump/libsmf libsmf], [https://github.com/markc/midicomp MIDIcomp], [https://github.com/MajicDesigns/MD_MIDIFile C++ src], [], [https://github.com/newdigate/midi-smf-reader Midi player],
* SMF0 All MIDI data is stored in one track only, separated exclusively by the MIDI channel.
* SMF1 The MIDI data is stored in separate tracks/channels.
* SMF2 (rarely used) The MIDI data is stored in separate tracks, which are additionally wrapped in containers, so it's possible to have e.g. several tracks using the same MIDI channels.
Would it be possible to enrich Bars N’Pipes with software synth and sample support along with audio recording and mastering tools like in the named MAC or PC music sequencers?
On the classic AMIGA-OS this is not possible because of missing CPU-power. The hardware of the classic AMIGA is not further developed. So we must say (unfortunately) that those dreams can’t become reality
BarsnPipes is best used with external MIDI-equipment. This can be a keyboard or synthesizer with MIDI-connectors.
<pre>
MIDI can control 16 channels
There are USB-MIDI-Interfaces on the market with 16 independent MIDI-lines (multi-port), which can handle 16 MIDI devices independently – 16×16 = 256 independent MIDI-channels or instruments
handle up to 16 different USB-MIDI-Interfaces (multi-device). That is: 16X16X16 = 4096 independent MIDI-channels – theoretically
</pre>
<pre>
Librarian MIDI SYStem EXplorer (sysex) - PatchEditor and used to be supplied as a separate program like PatchMeister but currently not at present
It should support MIDI.library (PD), BlueRibbon.library (B&P), TriplePlayPlus, and CAMD.library (DeluxeMusic) and
MIDI information from a device's user manual and configure a custom interface to access parameters for all MIDI products connected to the system
Supports ALL MIDI events and the Patch/Librarian data is stored in MIDI standard format
Annette M.Crowling, Missing Link Software, Inc.
</pre>
Composers
<pre>
[https://x.com/hirasawa/status/1403686519899054086 Susumu Hirasawa]
</pre>
<pre>
1988 Todor Fay and his wife Melissa Jordan Gray, who founded the Blue Ribbon Inc
1992 Bars&Pipes Pro published
November 2000, Todor Fay announcement to release the sourcecode of Bars&Pipes Pro 2.5c beta
end of May 2001, the source of the main program and the sources of some tools and accessories were in a complete and compileable state
end of October 2009 stop further development of BarsnPipes New for now on all supported systems and made freeware
2013 Alfred Faust diagnosed with incureable illness, called „Myastenia gravis“ (weak muscles)
</pre>
Protrekkr
How to use Midi In/Out in Protrekkr ?
First of all, midi in & out capabilities of this program are rather limited.
# Go to Misc. Setup section and select a midi in or out device to use (ptk only supports one device at a time).
# Go to instrument section, and select a MIDI PRG (the default is N/A, which means no midi program selected).
# Go to track section and here you can assign a midi channel to each track of ptk.
# Play notes :]. Note off works. F'x' note cut command also works too, and note-volume command (speed) is supported.
Also, you can change midicontrollers in the tracker, using '90' in the panning row:
<pre>
C-3 02 .. .. 0000....
--- .. .. 90 xxyy.... << This will set the value
--- .. .. .. 0000.... of the controller n.'xx' to 'yy' (both in hex)
--- .. .. .. 0000....
</pre>
So "--- .. .. 90 2040...." will set the controller number $20(32) to $40(64).
You will need the midi implementation table of your gear to know what you can change with midi controller messages.
N.B. Not all MIDI devices are created equal!
Although the MIDI specification defines a large range of MIDI messages of various kinds, not every MIDI device is required to work in exactly the same way and respond to all the available messages and ways of working. For example, we don't expect a wind synthesiser to work in the same way as a home keyboard.
Some devices, the older ones perhaps, are only able to respond to a single channel. With some of those devices that channel can be altered from the default of 1 (probably) to another channel of the 16 possible.
Other devices, for instance monophonic synthesisers, are capable of producing just one note at a time, on one MIDI channel. Others can produce many notes spread across many channels.
Further devices can respond to, and transmit, "breath controller" data (MIDI controller number 2 (CC#2)) others may respond to the reception of CC#2 but not be able to create and to send it.
A controller keyboard may be capable of sending "expression pedal" data, but another device may not be capable of responding to that message.
Some devices just have the basic GM sound set. The "voice" or "instrument" is selected using a "Program Change" message on its own.
Other devices have a greater selection of voices, usually arranged in "banks", and the choice of instrument is made by responding to "Bank Select MSB" (MIDI controller 0 (CC#0)), others use "Bank Select LSB" (MIDI controller number 32 (CC#32)), yet others use both MSB and LSB sent one after the other, all followed by the Program Change message. The detailed information about all the different voices will usually be available in a published MIDI Data List.
MIDI Implementation Chart
But in the User Manual there is sometimes a summary of how the device works, in terms of MIDI, in the chart at the back of the manual, the MIDI Implementation Chart.
If you require two devices to work together you can compare the two implementation charts to see if they are "compatible". In order to do this we will need to interpret that chart.
The chart is divided into four columns headed "Function", "Transmitted" (or "Tx"), "Received" (or "Rx"), or more correctly "Recognised", and finally, "Remarks".
<pre>
The left hand column defines which MIDI functions are being described.
The 2nd column defines what the device in question is capable of transmitting to another device.
The 3rd column defines what the device is capable of responding to.
The 4th column is for explanations of the values contained within these previous two columns.
</pre>
There should then be twelve sections, with possibly a thirteenth containing extra "Notes". Finally there should be an explanation of the four MIDI "modes" and what the "X" and the "O" mean.
<pre>
Mode 1: Omni On, Poly;
Mode 2: Omni On, Mono;
Mode 3: Omni Off, Poly;
Mode 4: Omni Off, Mono.
</pre>
O means "yes" (implemented), X means "no" (not implemented).
Sometimes you will find a row of asterisks "**************", these seem to indicate that the data is not applicable in this case. Seen in the transmitted field only (unless you've seen otherwise).
Lastly you may find against some entries an asterisk followed by a number e.g. *1, these will refer you to further information, often on a following page, giving more detail.
Basic Channel
But the very first set of boxes will tell us the "Basic Channel(s)" that the device sends or receives on.
"Default" is what happens when the device is first turned on, "changed" is what a switch of some kind may allow the device to be set to.
For many devices e.g. a GM sound module or a home keyboard, this would be 1-16 for both. That is it can handle sending and receiving on all MIDI channels.
On other devices, for example a synthesiser, it may by default only work on channel 1. But the keyboard could be "split" with the lower notes e.g. on channel 2. If the synth has an arppegiator, this may be able to be set to transmit and or receive on yet another channel.
So we might see the default as "1" but the changed as "1-16".
Modes.
We need to understand Omni On and Off, and Mono and Poly, then we can decipher the four modes.
But first we need to understand that any of these four Mode messages can be sent to any MIDI channel. They don't necessarily apply to the whole device.
If we send an "Omni On" message (CC#125) to a MIDI channel of a device, we are, in effect, asking it to respond to e.g. a Note On / Off message pair, received on any of the sixteen channels. Sound strange? Read it again. Still strange? It certainly is. We normally want a MIDI channel to respond only to Note On / Off messages sent on that channel, not any other. In other words, "Omni Off".
So "Omni Off" (CC#124) tells a channel of our MIDI device to respond only to messages sent on that MIDI channel.
"Poly" (CC#127) is for e.g. a channel of a polyphonic sound module, or a home keyboard, to be able to respond to many simultaneous Note On / Off message pairs at once and produce musical chords.
"Mono" (CC#126) allows us to set a channel to respond as if it were e.g. a flute or a trumpet, playing just one note at a time. If the device is capable of it, then the overlapping of notes will produce legato playing, that is the attack portion of the second note of two overlapping notes will be removed resulting in a "smoother" transition.
So a channel with a piano voice assigned to it will have Omni Off, Poly On (Mode 3), a channel with a saxophone voice assigned could be Omni Off, Mono On (Mode 4).
We call these combinations the four modes, 1 to 4, as defined above.
Most modern devices will have their channels set to Mode 3 (Omni Off, Poly) but be switchable, on a per channel basis, to Mode 4 (Omni Off, Mono).
This second section of data will include first its default value i.e. upon device switch on. Then what Mode messages are acceptable, or X if none.
Finally, in the "Altered" field, how a Mode message that can't be implemented will be interpreted. Usually there will just be a row of asterisks effectively meaning nothing will be done if you try to switch to an unimplemented mode.
Note Number
<pre>
The next row will tell us which MIDI notes the device can send or receive, normally 0-127.
The second line, "True Voice" has the following in the MIDI specification:
"Range of received note numbers falling within the range of true notes produced by the instrument."
My interpretation is that, for instance, a MIDI piano may be capable of sending all MIDI notes (0 to 127) by transposition, but only responding to the 88 notes (21 to 108) of a real piano.
</pre>
Velocity
This will tell us whether the device we're looking at will handle note velocity, and what range from 1-127, or maybe just 64, it transmits or will recognise. So usually "O" plus a range or "X" for not implemented.
After touch
This may have one or two lines two it.
If a one liner the either "O" or "X", yes or no.
If a two liner then it may include "Keys" or "Poly" and "Channel".
This will show whether the device will respond to Polyphonic after touch or channel after touch or neither.
Pitch Bend
Again "O" for implemented, "X" for not implemented.
(Many stage pianos will have no pitch bend capability.)
It may also, in the notes section, state whether it will respond to the full 14 bits, or not, as usually encoded by the pitch bend wheel.
Control Change
This is likely to be the largest section of the chart.
It will list all those controllers, starting from CC#0, Bank Select MSB, which the device is capable of sending, and those that it will respond to using "O" or "X" respectively.
You will, almost certainly, get some further explanation of functionality in the remarks column, or in more detail elsewhere in the documentation.
Of course you will need to know what all the various controller numbers do. Lots of the official technical specifications can be found at the [www.midi.org/techspecs/ MMA], with the table of messages and control change [www.midi.org/techspecs/midimessages.php message numbers]
Program Change
Again "O" or "X" in the Transmitted or Recognised column to indicate whether or not the feature is implemented. In addition a range of numbers is shown, typically 0-127, to show what is available.
True # (number): "The range of the program change numbers which correspond to the actual number of patches selected."
System Exclusive
Used to indicate whether or not the device can send or recognise System Exclusive messages. A short description is often given in the Remarks field followed by a detailed explanation elsewhere in the documentation.
System Common - These include the following:
<pre>
MIDI Time Code Quarter Frame messages (device synchronisation).
Song Position Pointer
Song Select
Tune Request
</pre>
The section will indicate whether or not the device can send or respond to any of these messages.
System Real Time
These include the following:
<pre>
Timing Clock - often just written as "Clock"
Start
Stop
Continue
</pre>
These three are usually just referred to as "Commands" and listed.
Again the section will indicate which, if any, of these messages the device can send or respond to.
<pre>
Aux. Messages
Again "O" or "X" for implemented or not.
Aux. = Auxiliary.
Active Sense = Active Sensing.
</pre>
Often with an explanation of the action of the device.
Notes
The "Notes" section can contain any additional comments to clarify the particular implementation.
Some of the explanations have been drawn directly from the MMA MIDI 1.0 Detailed Specification.
And the detailed explanation of some of the functions will be found there, or in the General MIDI System Level 1 or General MIDI System Level 2 documents also published by the MMA.
OFFICIAL MIDI SPECIFICATIONS
SUMMARY OF MIDI MESSAGES
Table 1 - Summary of MIDI Messages
The following table lists the major MIDI messages in numerical (binary) order (adapted from "MIDI by the Numbers" by D. Valenti, Electronic Musician 2/88, and updated by the MIDI Manufacturers Association.). This table is intended as an overview of MIDI, and is by no means complete.
WARNING! Details about implementing these messages can dramatically impact compatibility with other products. We strongly recommend consulting the official MIDI Specifications for additional information.
MIDI 1.0 Specification
Message Summary Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)]
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1000nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note Off event.
This message is sent when a note is released (ended). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1001nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note On event.
This message is sent when a note is depressed (start). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1010nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Polyphonic Key Pressure (Aftertouch).
This message is most often sent by pressing down on the key after it "bottoms out". (kkkkkkk) is the key (note) number. (vvvvvvv) is the pressure value.
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Control Change.
This message is sent when a controller value changes. Controllers include devices such as pedals and levers. Controller numbers 120-127 are reserved as "Channel Mode Messages" (below). (ccccccc) is the controller number (0-119). (vvvvvvv) is the controller value (0-127).
|-
|<!--Status-->1100nnnn || <!--Data-->0ppppppp || <!--Description-->Program Change. This message sent when the patch number changes. (ppppppp) is the new program number.
|-
|<!--Status-->1101nnnn || <!--Data-->0vvvvvvv || <!--Description-->Channel Pressure (After-touch). This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch. Use this message to send the single greatest pressure value (of all the current depressed keys). (vvvvvvv) is the pressure value.
|-
|<!--Status-->1110nnnn || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Pitch Bend Change. This message is sent to indicate a change in the pitch bender (wheel or lever, typically). The pitch bender is measured by a fourteen bit value. Center (no pitch change) is 2000H. Sensitivity is a function of the receiver, but may be set using RPN 0. (lllllll) are the least significant 7 bits. (mmmmmmm) are the most significant 7 bits.
|}
Channel Mode Messages (See also Control Change, above)
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Channel Mode Messages.
This the same code as the Control Change (above), but implements Mode control and special message by using reserved controller numbers 120-127. The commands are:
*All Sound Off. When All Sound Off is received all oscillators will turn off, and their volume envelopes are set to zero as soon as possible c = 120, v = 0: All Sound Off
*Reset All Controllers. When Reset All Controllers is received, all controller values are reset to their default values. (See specific Recommended Practices for defaults) c = 121, v = x: Value must only be zero unless otherwise allowed in a specific Recommended Practice.
*Local Control. When Local Control is Off, all devices on a given channel will respond only to data received over MIDI. Played data, etc. will be ignored. Local Control On restores the functions of the normal controllers.
c = 122, v = 0: Local Control Off
c = 122, v = 127: Local Control On
* All Notes Off. When an All Notes Off is received, all oscillators will turn off.
c = 123, v = 0: All Notes Off (See text for description of actual mode commands.)
c = 124, v = 0: Omni Mode Off
c = 125, v = 0: Omni Mode On
c = 126, v = M: Mono Mode On (Poly Off) where M is the number of channels (Omni Off) or 0 (Omni On)
c = 127, v = 0: Poly Mode On (Mono Off) (Note: These four messages also cause All Notes Off)
|}
System Common Messages
System Messages (0xF0)
The final status nybble is a “catch all” for data that doesn’t fit the other statuses. They all use the most significant nybble (4bits) of 0xF, with the least significant nybble indicating the specific category.
The messages are denoted when the MSB of the second nybble is 1. When that bit is a 0, the messages fall into two other subcategories.
System Common
If the MSB of the second second nybble (4 bits) is not set, this indicates a System Common message. Most of these are messages that include some additional data bytes.
System Common Messages
Type Status Byte Number of Data Bytes Usage
<pre>
Time Code Quarter Frame 0xF1 1 Indicates timing using absolute time code, primarily for synthronization with video playback systems. A single location requires eight messages to send the location in an encoded hours:minutes:seconds:frames format*.
Song Position 0xF2 2 Instructs a sequencer to jump to a new position in the song. The data bytes form a 14-bit value that expresses the location as the number of sixteenth notes from the start of the song.
Song Select 0xF3 1 Instructs a sequencer to select a new song. The data byte indicates the song.
Undefined 0xF4 0
Undefined 0xF5 0
Tune Request 0xF6 0 Requests that the receiver retunes itself**.
</pre>
*MIDI Time Code (MTC) is significantly complex. Please see the MIDI Specification
**While modern digital instruments are good at staying in tune, older analog synthesizers were prone to tuning drift. Some analog synthesizers had an automatic tuning operation that could be initiated with this command.
System Exclusive
If you’ve been keeping track, you’ll notice there are two status bytes not yet defined: 0xf0 and 0xf7. These are used by the System Exclusive message, often abbreviated at SysEx. SysEx provides a path to send arbitrary data over a MIDI connection. There is a group of predefined messages for complex data, like fine grained control of MIDI Time code machinery. SysEx is also used to send manufacturer defined data, such as patches, or even firmware updates.
System Exclusive messages are longer than other MIDI messages, and can be any length. The messages are of the following format:
0xF0, 0xID, 0xdd, ...... 0xF7
The message is bookended with distinct bytes.
It opens with the Start Of Exclusive (SOX) data byte, 0xF0.
The next one to three bytes after the start are an identifier.
Values from 0x01 to 0x7C are one-byte vendor IDs, assigned to manufacturers who were involved with MIDI at the beginning.
If the ID is 0x00, it’s a three-byte vendor ID - the next two bytes of the message are the value.
<pre>
ID 0x7D is a placeholder for non-commercial entities.
ID 0x7E indicates a predefined Non-realtime SysEx message.
ID 0x7F indicates a predefined Realtime SysEx message.
</pre>
After the ID is the data payload, sent as a stream of bytes.
The transfer concludes with the End of Exclusive (EOX) byte, 0xF7.
The payload data must follow the guidelines for MIDI data bytes – the MSB must not be set, so only 7 bits per byte are actually usable. If the MSB is set, it falls into three possible scenarios.
An End of Exclusive byte marks the ordinary termination of the SysEx transfer.
System Real Time messages may occur within the transfer without interrupting it. The recipient should handle them independently of the SysEx transfer.
Other status bytes implicitly terminate the SysEx transfer and signal the start of new messages.
Some inexpensive USB-to-MIDI interfaces aren’t capable of handling messages longer than four bytes.
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11110000 || <!--Data-->0iiiiiii [0iiiiiii 0iiiiiii] 0ddddddd --- --- 0ddddddd 11110111 || <!--Description-->System Exclusive.
This message type allows manufacturers to create their own messages (such as bulk dumps, patch parameters, and other non-spec data) and provides a mechanism for creating additional MIDI Specification messages. The Manufacturer's ID code (assigned by MMA or AMEI) is either 1 byte (0iiiiiii) or 3 bytes (0iiiiiii 0iiiiiii 0iiiiiii). Two of the 1 Byte IDs are reserved for extensions called Universal Exclusive Messages, which are not manufacturer-specific. If a device recognizes the ID code as its own (or as a supported Universal message) it will listen to the rest of the message (0ddddddd). Otherwise, the message will be ignored. (Note: Only Real-Time messages may be interleaved with a System Exclusive.)
|-
|<!--Status-->11110001 || <!--Data-->0nnndddd || <!--Description-->MIDI Time Code Quarter Frame.
nnn = Message Type
dddd = Values
|-
|<!--Status-->11110010 || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Song Position Pointer.
This is an internal 14 bit register that holds the number of MIDI beats (1 beat= six MIDI clocks) since the start of the song. l is the LSB, m the MSB.
|-
|<!--Status-->11110011 || <!--Data-->0sssssss || <!--Description-->Song Select.
The Song Select specifies which sequence or song is to be played.
|-
|<!--Status-->11110100 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110110 || <!--Data--> || <!--Description-->Tune Request. Upon receiving a Tune Request, all analog synthesizers should tune their oscillators.
|-
|<!--Status-->11110111 || <!--Data--> || <!--Description-->End of Exclusive. Used to terminate a System Exclusive dump.
|}
System Real-Time Messages
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11111000 || <!--Data--> || <!--Description-->Timing Clock. Sent 24 times per quarter note when synchronization is required.
|-
|<!--Status-->11111001 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111010 || <!--Data--> || <!--Description-->Start. Start the current sequence playing. (This message will be followed with Timing Clocks).
|-
|<!--Status-->11111011 || <!--Data--> || <!--Description-->Continue. Continue at the point the sequence was Stopped.
|-
|<!--Status-->11111100 || <!--Data--> || <!--Description-->Stop. Stop the current sequence.
|-
|<!--Status-->11111101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111110 || <!--Data--> || <!--Description-->Active Sensing. This message is intended to be sent repeatedly to tell the receiver that a connection is alive. Use of this message is optional. When initially received, the receiver will expect to receive another Active Sensing message each 300ms (max), and if it does not then it will assume that the connection has been terminated. At termination, the receiver will turn off all voices and return to normal (non- active sensing) operation.
|-
|<!--Status-->11111111 || <!--Data--> || <!--Description-->Reset. Reset all receivers in the system to power-up status. This should be used sparingly, preferably under manual control. In particular, it should not be sent on power-up.
|}
Advanced Messages
Polyphonic Pressure (0xA0) and Channel Pressure (0xD0)
Some MIDI controllers include a feature known as Aftertouch. While a key is being held down, the player can press harder on the key. The controller measures this, and converts it into MIDI messages.
Aftertouch comes in two flavors, with two different status messages.
The first flavor is polyphonic aftertouch, where every key on the controller is capable of sending its own independent pressure information. The messages are of the following format:
<pre>
0xnc, 0xkk, 0xpp
n is the status (0xA)
c is the channel nybble
kk is the key number (0 to 127)
pp is the pressure value (0 to 127)
</pre>
Polyphonic aftertouch is an uncommon feature, usually found on premium quality instruments, because every key requires a separate pressure sensor, plus the circuitry to read them all.
Much more commonly found is channel aftertouch. Instead of needing a discrete sensor per key, it uses a single, larger sensor to measure pressure on all of the keys as a group. The messages omit the key number, leaving a two-byte format
<pre>
0xnc, 0xpp
n is the status (0xD)
c is the channel number
pp is the pressure value (0 to 127)
</pre>
Pitch Bend (0xE0)
Many keyboards have a wheel or lever towards the left of the keys for pitch bend control. This control is usually spring-loaded, so it snaps back to the center of its range when released. This allows for both upward and downward bends.
Pitch Bend Wheel
The wheel sends pitch bend messages, of the format
<pre>
0xnc, 0xLL, 0xMM
n is the status (0xE)
c is the channel number
LL is the 7 least-significant bits of the value
MM is the 7 most-significant bits of the value
</pre>
You’ll notice that the bender data is actually 14 bits long, transmitted as two 7-bit data bytes. This means that the recipient needs to reassemble those bytes using binary manipulation. 14 bits results in an overall range of 214, or 0 to 16,383. Because it defaults to the center of the range, the default value for the bender is halfway through that range, at 8192 (0x2000).
Control Change (0xB0)
In addition to pitch bend, MIDI has provisions for a wider range of expressive controls, sometimes known as continuous controllers, often abbreviated CC. These are transmitted by the remaining knobs and sliders on the keyboard controller shown below.
Continuous Controllers
These controls send the following message format:
<pre>
0xnc, 0xcc, 0xvv
n is the status (0xB)
c is the MIDI channel
cc is the controller number (0-127)
vv is the controller value (0-127)
</pre>
Typically, the wheel next to the bender sends controller number one, assigned to modulation (or vibrato) depth. It is implemented by most instruments.
The remaining controller number assignments are another point of confusion. The MIDI specification was revised in version 2.0 to assign uses for many of the controllers. However, this implementation is not universal, and there are ranges of unassigned controllers.
On many modern MIDI devices, the controllers are assignable. On the controller keyboard shown in the photos, the various controls can be configured to transmit different controller numbers. Controller numbers can be mapped to particular parameters. Virtual synthesizers frequently allow the user to assign CCs to the on-screen controls. This is very flexible, but it might require configuration on both ends of the link and completely bypasses the assignments in the standard.
Program Change (0xC0)
Most synthesizers have patch storage memory, and can be told to change patches using the following command:
<pre>
0xnc, 0xpp
n is the status (0xc)
c is the channel
pp is the patch number (0-127)
</pre>
This allows for 128 sounds to be selected, but modern instruments contain many more than 128 patches. Controller #0 is used as an additional layer of addressing, interpreted as a “bank select” command. Selecting a sound on such an instrument might involve two messages: a bank select controller message, then a program change.
Audio & Midi are not synchronized, what I can do ?
Buy a commercial software package but there is a nasty trick to synchronize both. It's a bit hardcore but works for me:
Simply put one line down to all midi notes on your pattern (use Insert key)
and go to 'Misc. Setup', adjust the latency and just search a value
that will make sound sync both audio/midi.
The stock Sin/Saw/Pulse and Rnd waveforms are too simple/common, is there a way to use something more complex/rich ?
You have to ability to redirect the waveforms of the instruments through the synth pipe by selecting the "wav" option for the oscillator you're using for this synth instrument, samples can be used as wavetables to replace the stock signals.
Sound banks like soundfont (sf2) or Kontakt2 are not supported at the moment
====DAW Audio Evolution 4====
Audio Evolution 4 gives you unsurpassed power for digital audio recording and editing on the Amiga. The latest release focusses on time-saving non-linear and non-destructive editing, as seen on other platforms. Besides editing, Audio Evolution 4 offers a wide range of realtime effects, including compression, noise gate, delays, reverb, chorus and 3-band EQ.
Whether you put them as inserts on a channel or use them as auxillaries, the effect parameters are realtime adjustable and can be fully automated. Together with all other mixing parameters, they can even be controlled remotely, using more ergonomic MIDI hardware.
Non-linear editing on the time line, including cut, copy, paste, move, split, trim and crossfade actions
The number of tracks per project(s) is unlimited .... AHI limits you to recording only two at a time. i.e. not on 8 track sound cards like the Juli@ or Phase 88.
sample file import is limited to 16bit AIFF (not AIFC, important distinction as some files from other sources can be AIFC with aiff file extension). and 16bit WAV (pcm only)
Most apps use the Music Unit only but a few apps also use Unit (0-3) instead or as well.
* Set up AHI prefs so that microphone is available. (Input option near the bottom)
stereo++ allows the audio piece to be placed anywhere and the left-right adjusted to sound positionally right
hifi best for music playback if driver supports this option
Load 16bit .aif .aiff only sample(s) to use not AIFC which can have the same ending. AIFF stands for Audio Interchange File Format
sox recital.wav recital.aiff
sox recital.wav −b 16 recital.aiff channels 1 rate 16k fade 3 norm
sox input.wav output.aiff bass −b 16 rate 48k
performs the same format translation, but also applies four effects (down-mix to one channel, sample rate change, fade-in, nomalize), and stores the result at a bit-depth of 16.
rec −c 2 radio.aiff trim 0 30:00
records half an hour of stereo audio
play existing-file.wav
24bit PCM WAV or AIFF do not work
*No stream format handling. So no way to pass on an AC3 encoded stream unmodified to the digital outputs through AHI.
*No master volume handling. Each application has to set its own volume. So each driver implements its own custom driver-mixer interface for handling master volumes, mute and preamps.
*Only one output stream. So all input gets mixed into one output.
*No automatic handling of output direction based on connected cables.
*No monitor input selection. Only monitor volume control.
select the correct input (Don't mistake enabled sound for the correct input.)
The monitor will feedback audio to the lineout and hp out no matter if you have selected the correct input to the ADC. The monitor will provide sound for any valid input. This will result in free mixing when recording from the monitor input instead of mic/line because the monitor itself will provide the hardware mixing for you. Be aware that MIC inputs will give two channel mono. Only Linein will give real stereo.
Now for the not working part. Attempt to record from linein in the AE4 record window, the right channel is noise and the left channel is distorted. Even with the recommended HIFI 16bit Stereo++ mode at 48kHz.
Channels
Monitor
Gain
Inout
Output
Advanced settings - Debugging via serial port
* Options -> Soundcard In/Out
* Options -> SampleRate
* Options -> Preferences
F6 for Sample File List
Setting a grid is easy as is measuring the BPM by marking a section of the sample. Is your kick drum track "not in time" ? If so, you're stumped in AE4 as it has no fancy variable time signatures and definitely no 'track this dodgy rhythm' function like software of the nature of Logic has. So if your drum beat is freeform you will need to work in freeform mode. (Real music is free form anyway).
If the drum *is* accurate and you are just having trouble measuring the time, I usually measure over a range of bars and set the number of beats in range to say 16 as this is more accurate, Then you will need to shift the drum track to match your grid *before* applying the grid. (probably an iterative process as when the grid is active samples snap to it, and when inactive you cannot see it).
AE4 does have ARexx but the functions are more for adding samples at set offsets and starting playback / recording.
These are the usual features found in DAWs...
* Recording digital audio, midi sequencer and mixer
* virtual VST instruments and plug-ins
* automation, group channels, MIDI channels, FX sends and returns, audio and MIDI editors and music notation editor
* different track views
* mixer and track layout (but not the same as below)
* traditional two windows (track and mixer)
Mixing - mixdown
Could not figure out how to select what part I wanted to send to the aux, set it to echo and return. Pretty much the whole echo effect. Or any effect.
Take look at page17 of the manual.
When you open the EQ / Aux send popup window you will see 4 sends. Now from the menu choose the windows menu.
Menus->Windows-> Aux Returns Window
or press F5
You will see a small window with 4 volume controls and an effects button for each. Click a button and add an effects to that aux channel, then set it up as desired (note the reverb effect has a special AUX setting that improves its use with the aux channel, not compulsory but highly useful). You set the amount of 'return' on the main mix in the Aux Return window, and the amount sent from each main mixer channel in the popup for that channel. Again the aux sends are "prefade" so the volume faders on each channel do not affect them.
Tracking
Effects - fade in
To add some echoes to some vocals, tried to add an effect on a track but did not come out. This is made more complicated as I wanted to mute a vocal but then make it echo at the muting point. Want to have one word of a vocal heard and then echoed off. But when the track is mute the echo is cancelled out.
To correctly understand what is happening here you need to study the figure at the bottom of page 15 on the manual. You will see from that that the effects are applied 'prefade' So the automation you applied will naturally mute the entire signal.
There would be a number of ways to achieve the goal,
You have three real time effects slots, one for smoothing like so
Sample -> Amplify -> Delay
Then automate the gain of the amplify block so that it effectively mutes the sample just before the delay at the appropriate moment, the echo effect should then be heard.
Getting the effects in the right order will require experimentation as they can only be added top down and it's not obvious which order they are applied to the signal, but there only two possibilities, so it wont take long to find out.
Using MUTE can cause clicks to the Amplify can be used to mute more smoothly so that's a secondary advantage.
Signal Processing -
Overdub
[[#top|...to the top]]
===Office===
====Spreadsheet Leu====
Support for some xlsx, and ods functions
====Spreadsheet Ignition====
; Needs ABIv1 to be completed before more can be done
File formats supported
* ascii #?.txt and #?.csv (single sheets with data only).
* igs and TurboCalc(WIP) #?.tc for all sheets with data, formats and formulas.
There is '''no''' support for xls, xlsx, ods or uos ([http://en.wikipedia.org/wiki/Uniform_Office_Format Uniform Unified Office Format]) at the moment.
* Always use Esc key after editing Spreadsheet cells.
* copy/paste seems to copy the first instance only so go to Edit -> Clipboard to manage the list of remembered actions.
* Right mouse click on row (1 or 2 or 3) or column header (a or b or c) to access optimal height or width of the row or column respectively
* Edit -> Insert -> Row seems to clear the spreadsheet or clears the rows after the inserted row until undo restores as it should be...
Change Sheet name by Object -> Sheet -> Properties
Click in the cell which will contain the result, and click '''down arrow button''' to the right of the formula box at the bottom of the spreadsheet and choose the function required from the list provided. Then click on the start cell and click on the bottom right corner, a '''very''' small blob, which allows stretching a bounding box (thick grey outlines) across many cells This grey bounding box can be used to '''copy a formula''' to other cells.
Object -> Cell -> Properties to change cell format - Currency only covers DM and not $, Euro, Renminbi, Yen or Pound etc.
Shift key and arrow keys selects a range of cells, so that '''formatting can be done to all highlighted cells'''.
View -> Overview then select ALL with one click (in empty cell in the top left hand corner of the sheet).
Default mode is relative cell referencing e.g. a1+a2 but absolute e.g. $a$1+$a$2 can be entered.
* #sheet-name to '''absolute''' reference another sheet-name cell unless reference() function used.
;Graphs
use shift key and arrow keys to select a bunch of cells to be graph'ed making sure that x axes represents and y axes represents
* value() - 0 value, 1 percent, 2 date, 3 time, 4 unit ...
;Dates
* Excel starts a running count from the 1st Jan 1900 and Ignition starts from 1st Jan 1AD '''(maybe this needs to change)'''
Set formatting Object -> Cell -> Properties and put date in days
;Time
Set formatting Object -> Cell -> Properties and put time in seconds taken
;Database (to be done by someone else)
type - standard, reference (bezug), search criterion (suchkriterium),
* select a bunch of cells and Object -> Database -> Define to set Datenbank (database) and Felder (fields not sure how?)
* Neu (new) or loschen (delete) to add/remove database headings e.g. Personal, Start Date, Finish Date (one per row?)
* Object -> Database -> Index to add fields (felder) like Surname, First Name, Employee ID, etc. to ?
Filtering done with dbfilter(), dbproduct() and dbposition().
Activities with dbsum(), dbaverage(), dbmin() and dbmax().
Table sorting -
;Scripts (Arexx)
;Excel(TM) to Ignition - commas ''',''' replaced by semi-colons ''';''' to separate values within functions
*SUM(),
*AVERAGE(), MAX(), MIN(), INT(), PRODUCT(), MEDIAN(), VAR() becomes Variance(), Percentile(),
*IF(), AND, OR, NOT
*LEFT(), RIGHT(), MID() becomes MIDDLE(), LEN() becomes LENGTH(),
*LOWER() becomes LOWERCASE(), UPPER() becomes UPPERCASE(),
* DATE(yyyy,mm,dd) becomes COMPUTEDATE(dd;mm;yyyy),
*TODAY(), DAY(),WEEK(), MONTH(),=YEAR(TODAY()),
*EOMONTH() becomes MONTHLENGTH(),
*NOW() should be date and time becomes time only, SECOND(), MINUTE(), HOUR(),
*DBSUM() becomes DSUM(),
;Missing and possibly useful features/functions needed for ignition to have better support of Excel files
There is no Merge and Join Text over many cells, no protect and/or freeze row or columns or books but can LOCK sheets, no define bunch of cells as a name, Macros (Arexx?), conditional formatting, no Solver, no Goal Seek, no Format Painter, no AutoFill, no AutoSum function button, no pivot tables, (30 argument limit applies to Excel)
*HLOOKUP(), VLOOKUP(), [http://production-scheduling.com/excel-index-function-most-useful/ INDEX(), MATCH()], CHOOSE(), TEXT(),
*TRIM(), FIND(), SUBSTITUTE(), CONCATENATE() or &, PROPER(), REPT(),
*[https://acingexcel.com/excel-sumproduct-function/ SUMPRODUCT()], ROUND(), ROUNDUP(), *ROUNDDOWN(), COUNT(), COUNTA(), SUMIF(), COUNTIF(), COUNTBLANK(), TRUNC(),
*PMT(), PV(), FV(), POWER(), SQRT(), MODE(), TRUE, FALSE,
*MODE(), LARGE(), SMALL(), RANK(), STDEV(),
*DCOUNT(), DCOUNTA(), WEEKDAY(),
;Excel Keyboard [http://dmcritchie.mvps.org/excel/shortx2k.htm shortcuts needed to aid usability in Ignition]
<pre>
Ctrl Z - Undo
Ctrl D - Fill Down
Ctrl R - Fill right
Ctrl F - Find
Ctrl H - Replace
Ctrl 1 - Formatting of Cells
CTRL SHIFT ~ Apply General Formatting ie a number
Ctrl ; - Todays Date
F2 - Edit cell
F4 - toggle cell absolute / relative cell references
</pre>
====Document Scanning - Scandal====
Scanner usually needs to be connected via a USB port and not via a hub or extension lead.
Check in Trident Prefs -> Devices that the USB Scanner is not bound to anything (e.g. Bindings None)
If not found then reboot the computer and recheck.
Start Scandal, choose Settings from Menu strip at top of screen and in Scanner Driver choose the ?#.device of the scanner (e.g. epson2.device).
The next two boxes - leave empty as they are for morphos SCSI use only
or put ata.device (use the selection option in bigger box below) and Unit as 0 this is needed for gt68xx
* gt68xx - no editing needed in s/gt68xx.conf but needs a firmware file that corresponds to the scanner [http://www.meier-geinitz.de/sane/gt68xx-backend/ gt68xx firmwares] in sys:s/gt68xx.
* epson2 - Need to edit the file epson2.conf in sys/s that corresponds to the scanner being used
'''Save''' the settings but do not press the Use button (aros freezes)
Back to the Picture Scan window and the right-hand sections.
Click on the '''Information''' tab and press Connect button and the scanner should now be detected.
Go next to the '''Scanner''' tab next to Information Tab should have Color, Black and White, etc. and dpi settings now. Selecting an option Color, B/W etc. can cause dpi settings corruption (especially if the settings are in one line) so set '''dpi first'''. Make sure if Preview is set or not.
In the '''Scan''' Tab, press Scan and the scanner will do its duty.
Be aware that nothing is saved to disk yet.
In the Save tab, change format JPEG, PNG or IFF DEEP. Tick incremental and base filename if necessary and then click the Save button. The image will now be saved to permanent storage.
The driver ignores a device if it is already bond to another USB class, rejects it from being usable. However, open Trident prefs, select your device and use the right mouse button to open. Select "NONE" to prevent poseidon from touching the device. Now save settings. It should always work now.
[[#top|...to the top]]
===Emulators===
==== Amiberry ====
==== Amiga Emu - Janus UAE ====
With Amibridge, AROS attempts to make the UAE emulator seem embedded within but it still is acting as an app
There is no dynarec m68k for each hardware that Aros supports or direct patching of motorola calls to AROS hardware accelerated ones unless the emulator has that included
Try starting Janus with a priority of -1 like this little script:
<pre>
cd sys:system/AmiBridge/emulator
changetaskpri -1
run janus-uae -f my_uaerc.config >nil:
cd sys:prefs
endcli
</pre>
This stops Janus hogging all the CPU time.
===Miscellaneous===
====Screensaver Blanker====
Most blankers on the amiga (i.e. aros) run as commodities (they are in the tools/commodities drawer). Double click on blanker.
Control is with an app called Exchange, which you need to run first (double click on app) or run QUIET sys:tools/commodities/Exchange >NIL: but subsequently can use (Cntrl Alt h).
Icon tool types (may be broken) or command line options
<pre>
seconds=number
</pre>
Once the timing is right then add the following to s:icaros-sequence or s:user-startup
e.g. for 5 minutes
run QUIET sys:tools/commodities/Blanker seconds=300 >NIL:
*[http://archives.aros-exec.org/index.php?function=showfile&file=graphics/screenblanker/gblanker.i386-aros.zip Garshneblanker] can make Aros unstable or slow. Certain blankers crashes in Icaros 2.0.x like Dragon, Executor.
*[ Acuario AROS version], the aquarium screen saver.
Startup: extras:acuariofv-aros/acuario
Kill: c:break name=extras:acuariofv-aros/acuario
Managed to start Acuario by the Executor blanker.
<pre>
cx_priority=
cx_popkey= ie CX_POPKEY="Shift F1"
cx_popup=Yes or No
</pre>
<pre>
Qualifier String Input Event Class
---------------- -----------------
"lshift" IEQUALIFIER_LSHIFT
"rshift" IEQUALIFIER_RSHIFT
"capslock" IEQUALIFIER_CAPSLOCK
"control" IEQUALIFIER_CONTROL
"lalt" IEQUALIFIER_LALT
"ralt" IEQUALIFIER_RALT
"lcommand" IEQUALIFIER_LCOMMAND
"rcommand" IEQUALIFIER_RCOMMAND
"numericpad" IEQUALIFIER_NUMERICPAD
"repeat" IEQUALIFIER_REPEAT
"midbutton" IEQUALIFIER_MIDBUTTON
"rbutton" IEQUALIFIER_RBUTTON
"leftbutton" IEQUALIFIER_LEFTBUTTON
"relativemouse" IEQUALIFIER_RELATIVEMOUSE
</pre>
<pre>
Synonym Synonym
String Identifier
------- ----------
"shift" IXSYM_SHIFT /* look for either shift key */
"caps" IXSYM_CAPS /* look for either shift key or capslock */
"alt" IXSYM_ALT /* look for either alt key */
Highmap is one of the following strings:
"space", "backspace", "tab", "enter", "return", "esc", "del",
"up", "down", "right", "left", "f1", "f2", "f3", "f4", "f5",
"f6", "f7", "f8", "f9", "f10", "help".
</pre>
[[#top|...to the top]]
==== World Construction Set WCS (Version 2.031) ====
WCS is a fractal landscape software such as Scenery Animator, Vista Pro and Panorama. Open sourced February 2022, World Construction Set [https://3dnature.com/downloads/legacy-software/ legally and for free] and [https://github.com/AlphaPixel/3DNature c source].
Announced August 1994 this version dates from April 1996 developed by Gary R. Huber and Chris "Xenon" Hanson" from Questar
<pre>
Assign "WCSProjects:" "Volume:Dir/Dir/WCSProjects"
Assign "WCSFrames:" "Volume:Dir/Dir/WCSFrames"
</pre>
<pre>
Load projects .proj by accessing pull down menu Project -> Open then click on CanyonSunset.proj
OK to changing .par file and enlarge Status Log window to show what is happening
Render by pull down menu Modules -> Render with End equal 1 not 300 then click bottom middle button Render
</pre>
[https://www.youtube.com/watch?v=CxQDmf1ZWG0 Youtube walkthrough of above], [], [],
Also try working with the already built file ColoDemo - Then open with the drop-down menu: Project/Open, then WCSProject:ColoDemo.proj
Which allows you to use altimetric DEM files already included and Loading scene parameters from ColoDemo.par
Once this is done, save everything with a new name to start working exclusively on your project.
Then drop-down menu and select Save As ("NewName".proj name), then drop-down menu to open parameter and select Save All ( .par name)
After launching the software, there is a the Module Control Panel composed of five icons.
It is a dock type shortcut of the first few functions of the drop-down menu
*Database - Load (#?.proj), Append, Create, Edit, Save, Dir List (of WCSProject drawer),
*Data Ops - Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
*Map View - Database file Loader leading to Map View Control with option to the Database Editor
*Parameters - Editor for Motion, Color, Ecosystem, Clouds, Waves, management of altimeter files DEM, sclock settings etc
*Render - rendering terrain
These are more in the pull down menu but not in the dock
*Motion Editor
*Color Editor
*Ecosys Editor
Simple minimal workflow
*Load database (1st icon - 1st)
*Set parameters and save .par file (4th icon)
*Render scene (5th icon)
[https://www.youtube.com/watch?v=ZbTwwR2qcc4 Youtube], [],
<pre>
.proj new project name which creates a drawer of additional files
.binary array, ascii array .xyz , z buffer, DTED .dt0, vista 1990s dem, iff conversion
.Obj with .elev, .frd with .hdr maps, - digital elevation model (DEM) is a 3D representation of elevation data in various formats
USGS 7.5MinDEM,
.par
</pre>
Since for the time being no project is loaded, a query window indicates a procedural error when clicking on the rendering icon (right end of the bar). The menu is quite traditional; it varies according to the activity of the windows. To display any altimetric file in the "Mapview" (third icon of the panel), There are three possibilities:
* Loading of a demonstration project.
* The import of a DEM file, followed by texturing and packaging from the "Database-Editor" and the "Color-Editor".
* The creation of an altimetric file in WCS format, then texturing.
The altimeter file editing (display in the menu) is only made possible if the "Mapview" window is active.
The software is made up of many windows and won't be able to describe them all. Know that "Color-Editor" and the "Data-Editor" comprise sufficient functions for obtaining an almost real rendering quality. You have the possibility of inserting vector objects in the "Data-Editor" (creation of roads, railways, etc.)
The Map View (MapView) window
*Database - Objects and Topos
*View - Align, Center, Zoom, Pan, Move
*Draw - Maps and distance
*Object - Find, highlight, add points, conform topo, duplicate
*Motion - Camera, Focus, path, elevation
*Windows - DEM designer, Cloud (.cld) and wave (.wve) editor,
You will notice that by selecting this window and simply moving the pointer to various points on the map you will see latitude and longitude values change, along with the height.
Drop-down menu and Modules, then select MapView and change the width of the window with the map to arrange it in the best way on the screen. With the Auto button the center. Window that then displays the contents of my DEM file, in this case the Grand Canyon. MapView allows you to observe the shape of the landscape from above
ZOOM button
Press the Zoom button and then with the pointer position on a point on the map, press the left mouse button and then move to the opposite corner to circumscribe the chosen area and press the left mouse button again, then we will see the enlarged area selected on the map.
Would add that there is a box next to the Zoom button that allows the direct insertion of a value which, the larger it is, the smaller the magnification and the smaller the value, the stronger the magnification. At each numerical change you will need to press the DRAW button to update the view.
PAN button
Under Zoom you will find the PAN button which allows you to move the map at will in all directions by the amount you want. This is done by drawing a line in one direction, then press PAN and point to an area on the map with the pointer and press the left mouse button. At this point, leave it and move the pointer in one direction by drawing a line and press the left mouse button again to trigger the movement of the map on the screen (origin and end points). Do some experiments and then use the Auto button immediately below to recenter everything.
There are parameters such as TOPO, VEC to be left checked and immediately below one that allows different views of the map with the Style command (Single, Multi, Surface, Emboss, Slope, Contour), each with its own particularities to highlight different details.
Now you have the first basics to manage your project visually on the map. Close the MapView window and go further...
Let's start working on ECOSYSTEMS
If we select Emboss from the MapView Style command we will have a clear idea of how the landscape appears, realizing that it is a predominantly desert region of our planet. Therefore we will begin to act on any vegetation present and the appearance of the landscape.
With WCS we will begin to break down the elements of the landscape by assigning defined characteristics. It will be necessary to determine the classes of the ecosystem (Class) with parameters of Elevation Line (maximum altitude), Relative Elevation (arrangement on basins or convexities with respectively positive or negative parameters), Min Slope and Max Slope (slope). WCS offers the possibility of making ecosystems coexist on the same terrain with the UnderEco function, by setting a Density value.
Ecosys Ecosystem Editor
Let's open it from Modules, then Ecosys Editor. In the left pane you will find the list of ecosystems referring to the files present in our project. It will be necessary to clean up that box to leave only the Water and Snow landscapes and a few other predefined ones. We can do this by selecting the items and pressing the Remove button (be careful not for all elements the button is activated, therefore they cannot all be eliminated).
Once this is done we can start adding new ecosystems. Scroll through the various Unused and as soon as the Name item at the top is activated allowing you to write, type the name of your ecosystem, adding the necessary parameters.
<pre>
Ecosystem1: Name: RockBase Class: Rock Density: 80 MinSlope: 15 UnderEco: Terrain
Ecosystem2: Name: RockIncl Clss: Rock Density: 80 MinSlope: 30 UnderEco: Terrain
Ecosystem3: Name: Grass Class Low Veg Density: 50 Height: 1 Elev Line : 1500 Rel El Eff: 5
Max Slope: 10 – Min Slope: 0 UnderEco: Terrain
Ecosistema4: Name: Shrubs Class: Low Veg Density: 40 Height: 8 Elev Line: 3000
Rel El Eff: -2 Max Slope: 20 Min Slope : 5 UnderEco: Terrain
Ecosistema5: Name: Terrain Class: Ground Density: 100 UnderEco: Terrain
</pre>
Now we need to identify an intermediate ecosystem that guarantees a smooth transition between all, therefore we select as Understory Ecosystem the one called Terrain in all ecosystems, except Snow and Water .
Now we need to 'emerge' the Colorado River in the Canyon and we can do this by raising the sea level to 900 (Sea Level) in the Ecosystem called Water.
Please note that the order of the ecosystem list gives priority to those that come after. So our list must have the following order: Water, Snow, Shrubs, RockIncl, RockBase, Terrain. It is possible to carry out all movements with the Swap button at the bottom. To put order you can also press Short List. Press Keep to confirm all the work done so far with Ecosystem Editor.
Remember every now and then to save both the Project 'Modules/Save' and 'Parameter/Save All'
EcoModels are made up of .etp .fgp .iff8 for each model
Color Editor
Now it's time to define the colors of our scene and we can do this by going to Modules and then Color Editor. In the list we focus on our ecosystems, created first.
Let's go to the bottom of the list and select the first white space, assigning the name 'empty1', with a color we like and then we will find this element again in other environments... It could serve as an example for other situations!
So we move to 'grass' which already exists and assign the following colors: R 60 G 70 B50
<pre>
'shrubs': R 60 G 80 B 30
'RockIncl' R 110 G 65 B 60
'RockBase' R 110 G 80 B 80
' Terrain' R 150 G 30 B 30
<pre>
Now we can work on pre-existing colors
<pre>
'SunLight' R 150 G 130 B 130
'Haze and Fog' R 190 G 170 B 170
'Horizon' R 209 G 185 B 190
'Zenith' R 140 G 150 B 200
'Water' R 90 G 125 B 170
</pre>
Ambient R 0 G 0 B 0
So don't forget to close Color Editor by pressing Keep.
Go once again to Ecosystem Editor and assign the corresponding color to each environment by selecting it using the Ecosystem Color button. Press it several times until the correct one appears. Then save the project and parameters again, as done previously.
Motion Editor
Now it's time to take care of the framing, so let's go to Modules and then to Motion Editor. An extremely feature-rich window will open. Following is the list of parameters regarding the Camera, position and other characteristics:
<pre>
-Camera Altitude: 7.0
-Camera Latitude: 36.075
-Camera Longitude: 112.133
-Focus Attitude: -2.0
-Focus Latitude: 36.275
-Focus Longitude: 112.386
-Camera : 512 → rendering window
-Camera Y: 384 → rendering window
-View Arc: 80 → View width in degrees
-Sun Longitude: 172
-Sun Latitude: -0.9
-Haze Start: 3.8
-Haze Range: 78, 5
</pre>
As soon as the values shown in the relevant sliders have been modified, we will be ready to open the CamView window to observe the wireframe preview. Let's not consider all the controls that will appear.
Well from the Motion Editor if you have selected Camera Altitude and open the CamView panel, you can change the height of the camera by holding down the right mouse button and moving the mouse up and down. To update the view, press the Terrain button in the adjacent window. As soon as you are convinced of the position, confirm again with Keep. You can carry out the same work with the other functions of the camera, such as Focus Altitude...
Let's now see the next positioning step on the Camera map, but let's leave the CamView preview window open while we go to Modules to open the window at the same time MapView. We will thus be able to take advantage of the view from the other together with a subjective one.
From the MapView window, select with the left mouse button and while it is pressed, move the Camera as desired. To update the subjective preview, always click on Terrain.
While with the same procedure you can intervene on the direction of the camera lens, by selecting the cross and with the left button pressed you can choose the desired view. So with the pressure of Terrain I update the Preview. Possibly can enlarge or reduce the Map View using the Zoom button, for greater precision.
Also write that the circle around the cameras indicates the beginning of the haze, there are two types (haze and fog) linked to the altitude. Would also add that the camera height is editable through the Motion Editor panel.
The sun
Let's see that changing the position of the sun from the Motion Editor. Press the SUN button at the bottom right and set the time and the date. Longitude and latitude are automatically obtained by the program. Always open the View Arc command from the Motion Editor panel, an item present in the Parameter List box.
Once again confirm everything with Keep and then save again.
Animation
The animation part is not left-back and also occupies a window. The settings possibilities are enormous. A time line with dragging functions ("slide", "drag"...) comparable to that of LightWave completes this window.
A small window is available for positioning the stars as a function of a date, in order to vary the seasons and their various events (and yes...).
At the bottom of the "Motion-Editor", a "cam-view" function will give you access to a control panel. Different preview modes are possible. The rendering is also accessible through a window. No less than nine pages compose it. At this level, you will be able to determine the backup name of your images ("path"), the type of texture to be calculated, the resolution of the images, activate or deactivate functions such as the depth buffer ("zbuffer"), the blur, the background image, etc.
Once all these parameters have been set, all you have to do is click on the "Render" button.
For rendering go to Modules and then Render. Select the resolution, then under IMA select the name of the image. Move to FRA and indicate the level of fractal detail which of 4 is quite good. Then Keep to confirm and then reopen the window, pressing Render you will see the result. The image will be opened with any viewing program.
Strengths:
* Multi-window.
* Quality of rendering.
* Accuracy.
* Opening, preview and rendering on CyberGraphX screen.
* Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
* The "zbuffer" function.
Weaknesses:
* No OpenGL management
* Calculation time.
* No network computing tool.
====Writing CD / DVD - Frying Pan====
Can be backup DVDs (4GB ISO size limit due to use of FileInfoBlock), create audio cds from mp3's, and put .iso files on discs
If using for the first time - click Drive button and Device set to ata.device and unit to 0 (zero)
Click Tracks Button - Drive 1 - Create New Disc or Import Existing Disc Image (iso bin/cue etc.) - Session File open cue file
If you're making a data cd, with files and drawers from your hard drive, you should be using the ISO Builder.. which is the MUI page on the left. ("Data/Audio Tracks" is on the right).
You should use the "Data/Audio tracks" page if you want to create music cds with AIFF/WAV/MP3 files, or if you download an .iso file, and you want to put it on a cd.
Click WRITE Button - set write speed - click on long Write button
Examples
Easiest way would be to burn a DATA CD, simply go to "Tracks" page "ISO Builder" and "ADD" everything you need to burn.
On the "Write" page i have "Masterize Disc (DAO)", "Close Disc" and "Eject after Write" set.
One must not "Blank disc before write" if one uses a CDR
AUDIO CD from MP3's are as easy but tricky to deal with. FP only understands one MP3 format, Layer II, everything else will just create empty tracks
Burning bootable CD's works only with .iso files. Go to "Tracks" page and "Data/Audio Tracks" and add the .iso
====odf====
Every ODF file is a collection of several subdocuments within a package (ZIP file), each of which stores part of the complete document.
* content.xml – Document content and automatic styles used in the content.
* styles.xml – Styles used in the document content and automatic styles used in the styles themselves.
* meta.xml – Document meta information, such as the author or the time of the last save action.
* settings.xml – Application-specific settings, such as the window size or printer information.
To read document follow these steps:
* Extracting .ods file.
* Getting content.xml file (which contains sheets data).
* Creating XmlDocument object from content.xml file.
* Creating DataSet (that represent Spreadsheet file).
* With XmlDocument select “table:table” elements, and then create adequate DataTables.
* Parse child’s of “table:table” element and fill DataTables with those data.
* At the end, return DataSet and show it in application’s interface.
To write document follow these steps:
* Extracting template.ods file (.ods file that we use as template).
* Getting content.xml file.
* Creating XmlDocument object from content.xml file.
* Erasing all “table:table” elements from the content.xml file.
* Reading data from our DataSet and composing adequate “table:table” elements.
* Adding “table:table” elements to content.xml file.
* Zipping that file as new .ods file.
XLS file format
The XLS file format contains streams, substreams, and records.
These sheet substreams include worksheets, macro sheets, chart sheets, dialog sheets, and VBA module sheets.
All the records in an XLS document start with a 2-byte unsigned integer to specify Record Type (rt), and another for Count of Bytes (cb). A record cannot exceed 8224 bytes. If larger than the rest is stored in one or more continue records.
* Workbook stream
**Globals substream
***BoundSheet8 record - info for Worksheet substream i.e. name, location, type, and visibility. (4bytes the lbPlyPos FilePointer, specifies the position in the Workbook stream where the sheet substream starts)
**Worksheet substream (sheet) - Cell Table - Row record - Cells (2byte=row 2byte=column 2byte=XF format)
***Blank cell record
***RK cell record 32-bit number.
***BoolErr cell record (2-byte Bes structure that may be either a Boolean value or an error code)
***Number cell record (64-bit floating-point number)
***LabelSst cell record (4-byte integer that specifies a string in the Shared Strings Table (SST). Specifically, the integer corresponds to the array index in the RGB field of the SST)
***Formula cell record (FormulaValue structure in the 8 bytes that follow the cell structure. The next 6 bytes can be ignored, and the rest of the record is a CellParsedFormula structure that contains the formula itself)
***MulBlank record (first 2 bytes give the row, and the next 2 bytes give the column that the series of blanks starts at. Next, a variable length array of cell structures follows to store formatting information, and the last 2 bytes show what column the series of blanks ends on)
***MulRK record
***Shared String Table (SST) contains all of the string values in the workbook.
ACCRINT(), ACCRINTM(), AMORDEGRC(), AMORLINC(),
COUPDAYBS(), COUPDAYS(), COUPDAYSNC(), COUPNCD(), COUPNUM(), COUPPCD(),
CUMIPMT(), CUMPRINC(),
DB(), DDB(), DISC(),
DOLLARDE(), DOLLARFR(),
DURATION(), EFFECT(), FV(), FVSCHEDULE(),
INTRATE(), IPMT(), IRR(), ISPMT(), MDURATION(), MIRR(), NOMINAL(), NPER(), NPV(),
ODDFPRICE(), ODDFYIELD(), ODDLPRICE(), ODDLYIELD(),
PMT(), PPMT(), PRICE(), PRICEDISC(), PRICEMAT(), PV(), RATE(),
RECEIVED(), SLN(), SYD(), TBILLEQ(), TBILLPRICE(), TBILLYIELD(),
VDB(), XIRR(), XNPV(), YIELD(), YIELDDISC(), YIELDMAT(),
<pre>
</pre>
<pre>
</pre>
<pre>
</pre>
{{BookCat}}
31idn5q2ipvabt9rjko3015s9h7det9
4674867
4674866
2026-10-07T11:46:49Z
Jeff1138
301139
4674867
wikitext
text/x-wiki
==Introduction==
[[#Graphical Image Editing Art]]
[[#Office Application]]
[[#Audio]]
[[#Misc Application]]
[[#Games & Emulation]]
[[#Application Guides]]
[[#top|...to the top]]
[[#top|...to the top]]
Most apps can be opened on the Workbench (aka publicscreen pubscreen) which is the default display option but can offer a custom one set to your configurations (aka custom screen mode promotion). These custom ones tend to stack so the possible use of A-M/A-N method of switching between full screens and the ability to pull down screens as well
If you are interested in creating or porting new software, see [http://en.wikibooks.org/wiki/Aros/Developer/Docs here]
{| class="wikitable sortable"
|-
!width:30%;|Internet Applications
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Web Online Browser [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=network/browser Amelinium], Odyssey 2.0, [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1175&highlight=odyssey&rowstart=100 Odyssey 3.0], [],
|<!--Amiga OS-->[https://juen.in/ Amelinium], [https://blog.alb42.de/programs/amifox/ amifox] with [https://github.com/alb42/wrp wrp server], IBrowse*, [https://github.com/zapek/Voyager Voyager], [https://github.com/amigazen/aweb3/ AWeb 3.6 src], [https://github.com/matjam/aweb AWeb Src], [http://aminet.net/package/comm/www/NetSurf-m68k-sources Netsurf], [],
|<!--AmigaOS4-->[ Odyssey OWB], [ Timberwolf (Firefox port 2011)], [http://amigaworld.net/modules/newbb/viewtopic.php?forum=32&topic_id=32847 OWB-mui], [http://strohmayer.org/owb/ OWB-Reaction], IBrowse*, [http://os4depot.net/index.php?function=showfile&file=network/browser/aweb.lha AWeb], Voyager, [http://www.os4depot.net/index.php?function=browse&cat=network/browser Netsurf],
|<!--MorphOS-->Wayfarer, [http://fabportnawak.free.fr/owb/ Odyssey OWB], [ Netsurf], IBrowse*, AWeb, [],
|-
|<!--Sub Menu-->YouTube, Dailymotion website downloading videos audio [https://github.com/yt-dlp/yt-dlp yt-dlp], [https://clipgrab.org/ clipgrab],
|<!--AROS-->[], [https://blog.alb42.de/amitube/ Amitube],
|<!--Amiga OS-->[https://blog.alb42.de/amitube/ Amitube], [ smtube],
|<!--AmigaOS4-->[https://blog.alb42.de/amitube/ Amitube], getVideo, Tubexx, [https://github.com/walkero-gr/aiostreams aiostreams],
|<!--MorphOS-->[ ytsearch], [https://blog.alb42.de/amitube/ Amitube], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 getVideo], Tubexx
|-
|<!--Sub Menu-->Old style E-mailing SMTP POP3 IMAP based
|<!--AROS-->Emailinium, [http://archives.arosworld.org/index.php?function=browse&cat=network/email SimpleMail], [http://sourceforge.net/projects/simplemail/files/ src], [https://github.com/jens-maus/yam YAM]
|<!--Amiga OS-->Emailinium, [http://sourceforge.net/projects/simplemail/files/ SimpleMail], [https://github.com/jens-maus/yam YAM]
|<!--AmigaOS4-->SimpleMail, YAM,
|<!--MorphOS--> SimpleMail, YAM
|-
|<!--Sub Menu-->IRC, ICB,
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/chat WookieChat], [https://sourceforge.net/projects/wookiechat/ Wookiechat src], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat AiRcOS], Jabberwocky,
|<!--Amiga OS-->[https://github.com/charabaruk/WookieChat Wookiechat], AmIRC
|<!--AmigaOS4-->Wookiechat
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=5 Wookiechat], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 AmIRC],
|-
|<!--Sub Menu-->Instant Messaging IM like [https://github.com/BlitterStudio/amidon Hollywood lang based Mastodon client], BlueSky AT protocol, Facebook(TM), Twitter X (TM), Bitlbee IRC Gateway and others
|<!--AROS-->[https://github.com/kaffeine1/telegram-amiga telegram-amiga], [http://archives.arosworld.org/index.php?function=browse&cat=network/chat jabberwocky],
|<!--Amiga OS-->[http://amitwitter.sourceforge.net/ AmiTwitter], CLIMM, SabreMSN, [https://sourceforge.net/projects/ajabberwocky/ jabberwocky],
|<!--AmigaOS4-->[http://amitwitter.sourceforge.net/ AmiTwitter], SabreMSN,
|<!--MorphOS-->[http://amitwitter.sourceforge.net/ AmiTwitter], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 PolyglotNG], SabreMSN,
|-
|<!--Sub Menu-->Torrents
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/p2p ArTorr],
|<!--Amiga OS-->
|<!--AmigaOS4-->CTorrent, Transmission
|<!--MorphOS-->MLDonkey, Beehive, [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Transmission], CTorrent,
|-
|<!--Sub Menu-->FTP
|<!--AROS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], MarranoFTP, [https://aminet.net/package/comm/tcp/wput-0.3.4c.i386-aros wput i386 c src]
|<!--Amiga OS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://aminet.net/package/comm/tcp/AmiFTP AmiFTP], AmiTradeCenter, ncFTP, [https://aminet.net/package/comm/tcp/sana2-tftpclient sana2 tftpclient c src]
|<!--AmigaOS4-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|<!--MorphOS-->[https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], [http://morphos.lukysoft.cz/en/vypis.php?kat=5 Pftp], [http://aminet.net/package/comm/tcp/AmiFTP-1.935-OS4 AmiFTP],
|-
|<!--Sub Menu-->WYSIWYG Web Site Editor
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Internet Radio Streaming Audio [http://www.gnu.org/software/gnump3d/ gnump3d], [http://www.icecast.org/ Icecast2] Server (Broadcast) and Client (Listen), [ mpd], [http://darkice.sourceforge.net/ DarkIce], [http://www.dyne.org/software/muse/ Muse],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc], Mplayer (Icecast Client only),
|<!--Amiga OS-->[https://github.com/sandlbn/TuneFinder TuneFinder C Src], [https://github.com/sandlbn/TuneFinderMUI TuneFinderMUI], [http://amigazeux.net/anr/ AmiNetRadio], [https://github.com/boingball/MintAMP MintAMP], [],
|<!--AmigaOS4-->[http://www.tunenet.co.uk/ Tunenet],
|<!--MorphOS-->Mplayer, AmiNetRadio,
|-
|<!--Sub Menu-->VoIP (Voice over IP) with SIP Client (Session Initiation Protocol) or Asterisk IAX2 Clients Softphone (skype like)
|<!--AROS-->
|<!--Amiga OS-->AmiPhone with Speak Freely,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Weather Forecast
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ WeatherBar], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench AWeather], []
|<!--Amiga OS-->[http://amigazeux.net/wetter/ Wetter], [https://github.com/emartisoft/AmiWeatherForecasts AmiWeatherForecasts src],
|<!--AmigaOS4-->[http://os4depot.net/?function=showfile&file=utility/workbench/flipclock.lha FlipClock],
|<!--MorphOS-->[http://amigazeux.net/wetter/ Wetter],
|-
|<!--Sub Menu-->Street Road Maps Route Planning GPS Tracking
|<!--AROS-->[https://blog.alb42.de/programs/muimapparium/ MuiMapparium] [https://build.alb42.de/ Build of MuiMapp versions],
|<!--Amiga OS-->AmiAtlas*, UKRoutePlus*, [http://blog.alb42.de/ AmOSM],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://blog.alb42.de/programs/mapparium/ Mapparium],
|-
|<!--Sub Menu-->Clock and Date setting from the internet by network time protocol (NTP) [https://www.timeanddate.com/worldclock/ World Clock], [http://www.time.gov/ old standard NIST Internet Time Servers],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=network/misc ntpsync], [https://archives.arosworld.org/?function=showfile&file=utility/workbench/amitimekeeper.i386-aros.lha amitimekeeper with c src], [PiNTP], [],
|<!--Amiga OS-->ntpsync, [http://aminet.net/package/util/cdity/AmiTimeKeeper amitimekeeper], [http://aminet.net/comm/misc/netclock netclock], [https://aminet.net/package/comm/net/sntp sntp], [http://aminet.net/package/util/time/ScreenTime ScreenTime],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Newsgroups
|<!--AROS-->
|<!--Amiga OS-->[http://newscoaster.sourceforge.net/ Newscoaster], [https://github.com/jens-maus/newsrog NewsRog], [ WorldNews],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->RSS
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/Team-Boingo/AmiRSS AmiRSS src]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->AI
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/murinsel/AmigaAI Claude], [https://github.com/geekychris/amiga_mcp AI on host machine], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->BBS
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Graphical Image Editing Art==
{| class="wikitable sortable"
|-
!width:30%;|Image Editing
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Pixel Raster Artwork [https://github.com/LibreSprite/LibreSprite LibreSprite based on GPL aseprite], [https://github.com/abetusk/hsvhero hsvhero], [],
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/ZunePaint/ ZunePaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit LunaPaint], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit GrafX2], [ LodePaint needs OpenGL],
|<!--Amiga OS-->[http://www.amigaforever.com/classic/download.html PPaint], GrafX2, [https://github.com/grovdata/Amiga_Sources/blob/master/software.md DeluxePaint], [http://www.amiforce.de/perfectpaint/perfectpaint.php PerfectPaint], Zoetrope, Brilliance2*,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/edit LodePaint], GrafX2,
|<!--MorphOS-->Sketch, Pixel*, GrafX2, [http://morphos.lukysoft.cz/en/vypis.php?kat=3 LunaPaint]
|-
|<!--Sub Menu-->Image viewing
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LookHere], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer LoView], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer PicShow] , [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--Amiga OS-->PicShow, PicView, Photoalbum,
|<!--AmigaOS4-->WarpView, PicShow, flPhoto, Thumbs, [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], [http://amigaworld.net/modules/newbb/viewtopic.php?mode=viewtopic&topic_id=31400&forum=32&start=80&viewmode=flat&order=0#583458 Picture Album]
|-
|<!--Sub Menu-->Photography retouching / Image Manipulation like Photoshop(tm)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOEffects],
|<!--Amiga OS-->[ Tecsoft Video Paint aka TVPaint], Photogenics*, ArtEffect*, ImageFX*, XiPaint, fxPaint, ImageMasterRT, Opalpaint,
|<!--AmigaOS4-->WarpView, flPhoto, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit Photocrop]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 ShowGirls], ImageFX*,
|-
|<!--Sub Menu-->Manage RAW picture folder galleries like Darktable, RAWtherapy, etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Graphic Format Converter - ICC profile support sRGB, Adobe RGB, XYZ and linear RGB
|<!--AROS-->
|<!--Amiga OS-->GraphicsConverter, ImageStudio, [http://www.coplabs.org/artpro.html ArtPro]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Thumbnail Generator [],
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/ ZuneView], [http://archives.arosworld.org/index.php?function=browse&cat=utility/shell Thumbnail Generator]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Icon Editor
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/iconedit Archives], [http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench Icon Toolbox],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=graphics/iconedit IconEditor]
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Pixel Art Animation
|<!--AROS-->Lunapaint
|<!--Amiga OS-->PPaint, AnimatED, Scala*, GoldDisk MovieSetter*, Walt Disney's Animation Studio*, ProDAD*, [https://github.com/historicalsource/DeluxePaint DeluxePaint src], Brilliance
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=3 Titler]
|-
|<!--Sub Menu-->2D SVG based MovieSetter type
|<!--AROS-->
|<!--Amiga OS-->MovieSetter*, Fantavision*
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Morphing
|<!--AROS-->[ GLMorph]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->2D Cad (qcad->LibreCAD, etc.)
|<!--AROS-->
|<!--Amiga OS-->Xcad, MaxonCAD
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Cad like FreeCad, BRL-CAD, OpenSCAD, AvoCADo, etc. using dxf, obj (vertices), blend,
|<!--AROS-->
|<!--Amiga OS-->XCad3d*, DynaCADD*, [https://aminet.net/package/gfx/3d/Cycas178_EN Cycas]*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Model Rendering of glft (json) gbl (png jpg), usdz (USD files with materials, textures, and animations), FBX Filmbox is a proprietary Autodesk format,
|<!--AROS-->POV-Ray
|<!--Amiga OS-->[http://www.discreetfx.com./amigaproducts.html CINEMA 4D]*, POV-Ray, Lightwave3D*, Real3D*, Caligari24*, Reflections/Monzoom*, [https://github.com/privatosan/RayStorm Raystorm src], Tornado 3D, [https://github.com/AlphaPixel/Eric-Graham-1987-Juggler-Raytracer-1.0 Eric-Graham-1987-Juggler-Raytracer-1.0]
|<!--AmigaOS4-->Blender, POV-Ray, Yafray
|<!--MorphOS-->Blender, POV-Ray, Yafray
|-
|<!--Sub Menu-->3D Format Converter [], [],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=graphics/convert/ 3doc.i386-aros], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=showfile&file=graphics/convert/ivcon.lha IVCon]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen grabbing display
|<!--AROS-->[ Screengrabber], [http://archives.arosworld.org/index.php?function=browse&cat=utility/misc snapit], [http://archives.arosworld.org/index.php?function=browse&cat=video/record screen recorder], []
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Grab graphics music from apps [https://github.com/Malvineous/ripper6 ripper6], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Manage metadata of images [https://github.com/exiv2/exiv2 exiv2], [ EXIF/IPTC/XMP metadata manipulation], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Office Application==
{| class="wikitable sortable"
|-
!width:30%;|Office
!width:10%;|AROS (x86)
!width:10%;|[http://en.wikipedia.org/wiki/Amiga_software Commodore-Amiga OS 3.1] (68k)
!width:10%;|[http://en.wikipedia.org/wiki/AmigaOS_4 Hyperion OS4] (PPC)
!width:10%;|[http://en.wikipedia.org/wiki/MorphOS MorphOS] (PPC)
|-
|<!--Sub Menu-->Office Suite
|<!--AROS-->
|<!--Amiga OS-->[ Softwood Final Office], [ Wordworth Office], [ Digita Office], [ The Works!], [ Europress Mini Office], [], [ Papyrus Office Demo],
|<!--AmigaOS4-->
|<!--MorphOS-->[ Papyrus Office],
|-
|<!--Sub Menu-->Word-processing
|<!--AROS-->[https://finalwriter.godaddysites.com/ Final Writer 7*], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1995&rowstart=20&pid=12668#post_12668 Slovo], [https://github.com/sodero/MUI-Vim/releases MUI-Vim], [https://archives.arosworld.org/index.php?function=browse&cat=office/wordprocessing Cinnamon Writer], [],
|<!--AmigaOS-->[ Softwood FinalCopy II*], Haage AmigaWriter*, Digita WordWorth*, Softwood FinalWriter*, Micro-Systems Excellence 3*, Arnor Protext, Rashumon, [ InterWord], [ KindWords], [WordPerfect], [ New Horizons Flow], [ CygnusEd Pro], [ Micro-systems Scribble],
|<!--AmigaOS4-->AbiWord, [ CinnamonWriter],
|<!--MorphOS-->[ Cinnamon Writer], [http://www.meta-morphos.org/viewtopic.php?topic=1246&forum=53 scriba], [http://morphos.lukysoft.cz/en/index.php Papyrus Office],
|-
|<!--Sub Menu-->Spreadsheets
|<!--AROS-->[https://blog.alb42.de/programs/leu/ Leu], [https://archives.arosworld.org/index.php?function=browse&cat=office/spreadsheet ],
|<!--AmigaOS-->[https://aminet.net/package/biz/spread/ignition-src Ignition Src 1.3], [MaxiPlan 500 Plus], [OXXI Plan/IT v2.0 Speadsheet], [ Superplan], [ Creative Developments TurboCalc], [ ProCalc], [ InterSpread], [Digita DGCalc], [ Gold Disk Advantage], [ Micro-systems Analyze!]
|<!--AmigaOS4-->Gnumeric, [https://ignition-amiga.sourceforge.net/ Ignition],
|<!--MorphOS-->[ ignition], [http://morphos.lukysoft.cz/en/vypis.php Papyrus Office],
|-
|<!--Sub Menu-->Presentations
|<!--AROS-->[http://www.hollywoood-mal.com/ Hollywood]*,
|<!--Amiga OS-->[http://www.hollywoood-mal.com/ Hollywood]*, [https://github.com/evaneykelen/mediapoint-amiga MediaPoint C and asm], PointRider, Scala*,
|<!--Amiga OS4-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|<!--MorphOS-->[http://www.hollywoood-mal.com/ Hollywood]*, PointRider
|-
|<!--Sub Menu-->Databases
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/database BeeBase],
|<!--Amiga OS-->Precision Superbase 4 Pro*, Arnor Prodata*, [https://sourceforge.net/projects/beebase/ BeeBase], Datastore, FinalData*, AmigaBase, Fiasco, Twist2*, [Digita DGBase], [],
|<!--AmigaOS4-->BeeBase, SQLite,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=6 BeeBase],
|-
|<!--Sub Menu-->PDF Viewing, editing and digital signatures
|<!--AROS-->[https://github.com/tomaszstaniak/aros-foliopdf folio version of mupdf], [http://sourceforge.net/projects/arospdf/ ArosPDF via splash xpdf], [https://github.com/wattoc/AROS-vpdf vpdf],
|<!--Amiga OS-->APDF
|<!--AmigaOS4-->AmiPDF
|<!--MorphOS-->APDF, vPDF,
|-
|<!--Sub Menu-->Note Taking markdown support like Obsidian like, joplin, OneNote, EverNotes, xournalpp, etc
|<!--AROS-->
|<!--Amiga OS-->[http://aminet.net/package/text/edit/Kickdown c src with reaction gui], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Study and analyse, collect, organize, annotate, cite, and share
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PIM Personal Information Manager - Day Diary Planner Calendar App Filofax like
|<!--AROS-->[ ], [ ], [ ],
|<!--Amiga OS-->Digita Organiser*, On The Ball, Everyday Organiser, [ Contact Manager],
|<!--AmigaOS4-->AOrganiser,
|<!--MorphOS-->[http://polymere.free.fr/orga_en.html PolyOrga],
|-
|<!--Sub Menu-->Accounting
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=office/misc ETB], LoanCalc, [ ], [ ], [ ],
|[ Digita Home Accounts2], Accountant, Small Business Accounts, Account Master, [ Amigabok],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Project Management Research
|<!--AROS-->
|<!--Amiga OS-->SuperGantt, SuperPlan,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Desktop
|<!--AROS-->Wanderer, Scalos, Workbook, DOpus5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[https://github.com/zapek/Ambient Ambient Src]
|-
|<!--Sub Menu-->System Wide Search
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility/filetool Finder], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Wide Dictionary - multilingual [http://sourceforge.net/projects/babiloo/ Babiloo], [http://code.google.com/p/stardict-3/ StarDict],
|<!--AROS-->[ ],
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System wide Thesaurus - multi lingual
|<!--AROS-->[ ],
|Kuma K-Roget*,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Sticky Desktop Notes (post it type)
|<!--AROS-->[http://aminet.net/package/util/wb/amimemos.i386-aros AmiMemos], [https://aminet.net/package/util/wb/amimemos.src-aros AmiMemos Src], [],
|<!--Amiga OS-->[http://aminet.net/package/util/wb/StickIt-2.00 StickIt v2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DTP Desktop Publishing
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit RNOPublisher],
|<!--Amiga OS-->[http://pagestream.org/ Pagestream]*, Professional Pro Page*, Saxon Publisher, Pagesetter, PenPal,
|<!--AmigaOS4-->[http://pagestream.org/ Pagestream]*
|<!--MorphOS-->[http://pagestream.org/ Pagestream]*
|-
|<!--Sub Menu-->Printing
|<!--AROS-->Postscript 3 laser printers, [https://github.com/bohunamiga/MintPRINT MintPRINT AirPrint IPP], [ Ghostscript], [],
|<!--Amiga OS-->[https://github.com/boingball/MintPRINT MintPRINT IPP], [https://github.com/Andiweli/AmiAirprint AmiAirprint], [http://www.irseesoft.de/tp_what.htm TurboPrint]*, [ GutenPrint], [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR], [], [],
|<!--AmigaOS4-->(some native drivers),
|<!--MorphOS-->early TurboPrint included, [https://aminet.net/package/comm/tcp/NetPrinter NetPrinter LPR],
|-
|<!--Sub Menu-->Scanning
|<!--AROS-->[ SCANdal], [],
|<!--Amiga OS-->FxScan*, ScanQuix*, [https://github.com/boingball/MintSCAN MintSCAN],
|<!--AmigaOS4-->SCANdal (Sane)
|<!--MorphOS-->SCANdal
|-
|<!--Sub Menu-->OCR
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/convert gOCR]
|<!--AmigaOS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos-files.net/categories/office/text Tesseract]
|-
|<!--Sub Menu-->Text Editing
|<!--AROS-->Jano Editor (already installed as Editor), [http://archives.arosworld.org/index.php?function=browse&cat=development/edit EdiSyn], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate], [https://archives.arosworld.org/index.php?function=browse&cat=development/edit Vim], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd] [https://github.com/vidarh/FrexxEd src], [ NoWinEd],
|<!--Amiga OS-->[https://aminet.net/package/text/edit/TurboText20 TurboText20 ttx], Annotate, MicroGoldED/CubicIDE*, CygnusED*, Protext*, NoWinED,
|<!--AmigaOS4-->Notepad, Annotate, CygnusED*, NoWinED,
|<!--MorphOS-->MorphOS ED, NoWinED, GoldED/CubicIDE*, CygnusED*, Annotate,
|-
|<!--Sub Menu-->Office Fonts [http://sourceforge.net/projects/fontforge/files/fontforge-source/ Font Designer]
|<!--AROS-->[ ], [ ],
|<!--Amiga OS-->TypeSmith*, SaxonScript (GetFont Adobe Type 1),
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Drawing Vector
|<!--AROS-->[http://sourceforge.net/projects/amifig/ ZuneFIG previously AmiFIG], [https://github.com/serk118/designworks-aros designworks aros 64bit]
|<!--Amiga OS-->Drawstudio*, ProVector*, ArtExpression*, Professional Draw*, AmiFIG, MetaView, [https://gitlab.com/amigasourcecodepreservation/designworks Design Works Src], [],
|<!--AmigaOS4-->MindSpace, [http://www.os4depot.net/index.php?function=browse&cat=graphics/edit amifig],
|<!--MorphOS-->SteamDraw, [http://aminet.net/package/gfx/edit/amifig amiFIG],
|-
|<!--Sub Menu-->video conferencing (jitsi)
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->source code hosting
|<!--AROS-->Gitlab,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Remote Desktop (server)
|<!--AROS-->[http://sourceforge.net/projects/zunetools/files/VNC_Server ArosVNCServer],
|<!--Amiga OS-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC], [http://dspach.free.fr/amiga/avnc/index.html AVNC]
|<!--AmigaOS4-->[http://s.guillard.free.fr/AmiVNC/AmiVNC.htm AmiVNC]
|MorphVNC, vncserver
|-
|<!--Sub Menu-->Remote Desktop (client) login and connect to another machine
|<!--AROS-->[https://sourceforge.net/projects/zunetools/files/VNC_Client/ ArosVNC], [http://archives.arosworld.org/index.php?function=browse&cat=network/misc rdesktop],
|<!--Amiga OS-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://dspach.free.fr/amiga/vva/index.html VVA], [http://www.hd-zone.com/ RDesktop]
|<!--AmigaOS4-->[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|[http://twinvnc.free.fr/index.php?menu=01&lang=eng TwinVNC], [http://www.hd-zone.com/ RDesktop]
|-
|<!--Sub Menu-->notifications
|<!--AROS-->
|<!--Amiga OS-->Ranchero
|<!--AmigaOS4-->Ringhio
|<!--MorphOS-->MagicBeacon
|-
|<!--Sub Menu-->Biometric facial logins and fingerprint security features
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Audio==
{| class="wikitable sortable"
|-
!width:30%;|Audio
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing playback Audio like MP3, [https://github.com/chrg127/gmplayer NSF], [https://github.com/kode54/lazyusf miniusf .usflib] [https://gitlab.com/kode54/psflib with pfslib], [], [], etc
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ HarmonyPlayer hp], [http://www.a500.org/downloads/audio/index.xhtml playcdda] CDs, [ WildMidi Player], [https://bszili.morphos.me/ UADE mod player], [], [ RNOTunes], [ mp3Player], [],
|<!--Amiga OS-->AmiNetRadio, AmigaAmp, playOGG, [https://codeberg.org/tygre/amimodradio amimodradio]
|<!--AmigaOS4-->TuneNet, SimplePlay, AmigaAmp, TKPlayer
|AmiNetRadio, Mplayer, Kaya, AmigaAmp
|-
|<!--Sub Menu-->Editing Audio
|<!--AROS-->[ Audio Evolution 4]
|<!--Amiga OS-->[https://sourceforge.net/projects/hd-rec/ HD-Rec Src], [http://www.sonicpulse.de/eng/news.html SoundFX], [ Samplitude],
|<!--AmigaOS4-->[https://sourceforge.net/projects/hd-rec/ HD-Rec], AmiSoundED, [http://os4depot.net/?function=showfile&file=audio/record/audioevolution4.lha Audio Evolution 4]
|[http://www.hd-rec.de/HD-Rec/index.php?site=home HD-Rec],
|-
|<!--Sub Menu-->Editing Tracker Music
|<!--AROS-->[https://github.com/hitchhikr/protrekkr Protrekkr], [ Schism Tracker], [http://archives.arosworld.org/index.php?function=browse&cat=audio/tracker MilkyTracker], [http://www.hivelytracker.com/ HivelyTracker], [ Radium in AROS already], [http://www.a500.org/downloads/development/index.xhtml libMikMod],
|<!--Amiga OS-->MilkyTracker, HivelyTracker, DigiBooster, Octamed SoundStudio, [https://github.com/elindstrom/soundtracker soundtracker],
|<!--AmigaOS4-->MilkyTracker, HivelyTracker, GoatTracker
|MilkyTracker, GoatTracker, DigiBooster,
|-
|<!--Sub Menu-->Editing Music [], [https://github.com/kmatheussen/camd CAMD] and/or staves and musical notes on manuscript [https://github.com/ratchov/midish midish] midi sequencer
|<!--AROS-->[http://bnp.hansfaust.de/ Bars and Pipes], [], [],
|<!--Amiga OS-->[http://bnp.hansfaust.de/ Bars'n'Pipes], MusicX* David "Talin" Joiner & Craig Weeks (for Notator-X), Deluxe Music Construction Set DMCS2*, [https://github.com/timoinutilis/midi-sequencer-amigaos Horny c Src] [https://github.com/kas1e/midi-sequencer-amigaos/tree/master/HornyGCC HornyGCC OS4 src] [https://github.com/capehill/midi-sequencer-amigaos Horny OS4 fork src] [https://www.amigans.net/modules/newbb/viewtopic.php?start=0&topic_id=8143&order=ASC&status=&mode=0 OS4 thread], HD-Rec, [https://aminet.net/package/mus/midi/dominatorV1_51 Dominator], [https://github.com/royaltm/Amiga-midiIn Amiga-midiIn], [ Aegis Sonix 2.0]
|<!--AmigaOS4-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Rockbeat, [http://bnp.hansfaust.de/download.html Bars'n'Pipes], [https://github.com/gooofy/freeaction Horny OS4 src fork], Audio Evolution 4,
|<!--MorphOS-->Bars'n'Pipes,
|-
|<!--Sub Menu-->Sound Sampling
|<!--AROS-->[ Advanced AHI Recorder all], [https://archives.arosworld.org/index.php?function=browse&cat=audio/record Audio Evolution 4], [http://www.imica.net/SitePortalPage.aspx?siteid=1&did=162 Quick Record], [https://archives.arosworld.org/index.php?function=browse&cat=audio/misc SOX to get AIFF 16bit files], [https://github.com/aros-development-team/AROS/tree/master/workbench/tools/AHIRecord AHIRecord],
|<!--Amiga OS-->[https://aminet.net/package/mus/edit/AudioEvolution3_src Audio Evolution 3 c src], [ Samplitude]*, Audiomaster IV*,
|<!--AmigaOS4-->[https://github.com/timoinutilis/phonolith-amigaos phonolith c src], HD-Rec, Audio Evolution 4,
|<!--MorphOS-->[https://sourceforge.net/p/hd-rec/code/HEAD/tree/ HD-Rec Src], Audio Evolution 4,
|-
|<!--Sub Menu-->Audio Processing like easyeffects so having limiter, compressor, convolver, equalizer and auto volume and many other plugins
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Live Looping or Audio Misc - Groovebox like
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CD/DVD burn
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=utility IsoTools], [https://code.google.com/p/amiga-fryingpan/ FryingPan],
|<!--Amiga OS-->FryingPan, [ MakeCD],
|<!--AmigaOS4-->FryingPan, AmiDVD,
|<!--MorphOS-->[http://www.amiga.org/forums/printthread.php?t=58736 FryingPan], Jalopeano,
|-
|<!--Sub Menu-->CD/DVD audio rip
|<!--AROS-->Lame, [http://www.imica.net/SitePortalPage.aspx?siteid=1&cfid=0&did=167 Quick CDrip],
|<!--Amiga OS-->Lame,
|<!--AmigaOS4-->Lame,
|<!--MorphOS-->Lame,
|-
|<!--Sub Menu-->MP3 v1 and v2 Tagger
|<!--AROS-->id3ren (v1), [http://archives.arosworld.org/index.php?function=browse&cat=audio/edit mp3info],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|
|-
|<!--Sub Menu-->Audio Convert
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=audio/misc Sox], [],
|<!--Amiga OS-->[http://aminet.net/package/mus/misc/SoundBox SoundBox], [http://aminet.net/package/mus/misc/SoundBoxKey SoundBox Key], [http://aminet.net/package/mus/edit/SampleE SampleE], sox
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->DJ mixing jamming
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/djh0ffman/PT1210 Hoffman PT1210 DJ tracker], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Radio Automation Software [http://www.rivendellaudio.org/ Rivendell], [http://code.campware.org/projects/livesupport/report/3 Campware LiveSupport], [http://www.sourcefabric.org/en/airtime/ SourceFabric AirTime], [http://www.ohloh.net/p/mediabox404 MediaBox404],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speakers Audio Sonos Mains AC networked wired controlled
*2005 ZP100 with ZP80
*2008 Zoneplayer ZP120 (multi-room wireless amp) ZP90 receiver only with CR100 controller,
*2009 ZonePlayer S5,
*2010 BR100 wireless Bridge (no support),
*2011 Play:3
*2013 Bridge (no support), Play:1,
*2016 Arc, Play:1,
*Beam (Gen 2), Playbar, Ray, Era 100, Era 300, Roam, Move 2,
*Sub (Gen 3), Sub Mini, Five, Amp S2
|<!--AROS-->SonosController
|<!--Amiga OS-->SonosController
|<!--AmigaOS4-->SonosController
|<!--MorphOS-->SonosController
|-
|<!--Sub Menu-->Smart Speakers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Video Creativity and Production==
{| class="wikitable sortable"
|-
!width:30%;|Video
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Playing Video
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/play Mplayer], [ VAMP], [http://www.a500.org/downloads/video/index.xhtml CDXL player], [http://www.a500.org/downloads/video/index.xhtml IffAnimPlay], [],
|<!--Amiga OS-->Frogger*, AMP2, MPlayer, RiVA*, MooViD*,
|<!--AmigaOS4-->DvPlayer, MPlayer
|<!--MorphOS-->MPlayer, Frogger, AMP2, VLC
|-
|<!--Sub Menu-->Streaming Video and game streaming like OBS studio, Parsec, [https://github.com/lizardbyte/sunshine sunshine], [https://github.com/moonlight-stream/moonlight-qt moonlight], etc
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Playing DVD
|<!--AROS-->[http://a-mc.biz/ AMC]*, Mplayer
|<!--Amiga OS-->AMP2, Frogger
|<!--AmigaOS4-->[http://a-mc.biz/ AMC]*, DvPlayer*, AMP2,
|<!--MorphOS-->Mplayer
|-
|<!--Sub Menu-->Screen Recording
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=video/record Screenrecorder], [ ], [ ], [ ], [ ],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Screenrecorder,
|-
|<!--Sub Menu-->Create Edit Individual Video - Amiga like OSs have no pro NLE
|<!--AROS-->[ Mencoder], [ Quick Videos], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/edit AVIbuild], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/misc FrameBuild], FFMPEG,
|<!--Amiga OS-->[ MainConcept Mainactor Broadcast*], [http://en.wikipedia.org/wiki/Video_Toaster Video Toaster*] with [https://discreetfx.com/openvideotoaster.html some c src], MacroSystem MovieShop 4.3*, proDAD Adorage*, [ IOSpirit VHI studio]*, [Gold Disk ShowMaker], [],
|<!--AmigaOS4-->FFMpeg/GUI
|<!--MorphOS-->Blender, Mencoder, FFmpeg
|-
|<!--Sub Menu-->Subtitle editor
|<!--AROS-->[https://aminet.net/package/text/edit/Slarti_Arosx86ABIv0 Slarti_Arosx86ABIv0], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->IP-based video production workflows with High Dynamic Range (HDR), 10-bit color collaborative NDI,
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Blogging like Lemmy or kbin
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR face recognition for Vtubers
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting Live2D models with Cubism type editor or [https://github.com/AyagamiDev/ayagami ayagami] like with zipped moc3 with model metadata (model3, cdi3)
<pre>
Model data (cmo3)
Basic motions (can3)
Background image (png)
Set of files for embedding (runtime folder)
• Model data (moc3)
• Motion data (motion3.json)
• Model settings file (model3.json)
• Physics settings file (physics3.json)
• Display auxiliary file (cdi3.json)
</pre>
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->VR chatting chatters .VRML models - standardized 3D file format for VR avatars
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->V-tubers V-tubing like Vseeface with Openseeface tracker or Vpuppr (virtual puppet project) for online live 2d / 3d art models rigging rigged LIV
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
[[#top|...to the top]]
==Misc Application==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1 (68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->File Management
|<!--AROS-->DOpus4, [https://github.com/BlitterStudio/dopus5 DOpus Magellan aka DOpus 5], [ Scalos], [ FileMaster],
|<!--Amiga OS-->DOpus2, DOpus 4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], ClassAction, FileMaster, DirWork 2*, [https://github.com/RudolphRiedel/DiskMaster2 DiskMaster2 src],
|<!--AmigaOS4-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan], Filer, AmiDisk
|<!--MorphOS-->DOpus4, [https://github.com/BlitterStudio/dopus5 Dopus5 Magellan],
|-
|<!--Sub Menu-->File Verification / Repair
|<!--AROS-->[https://arosarchives.os4depot.net/index.php?function=browse&cat=utility md5sum], [https://arosarchives.os4depot.net/index.php?function=browse&cat=utility/filetool asum], [http://archives.arosworld.org/index.php?function=browse&cat=utility/filetool workpar2] (PAR2), [http://zakalwe.fi/~shd/foss/cksfv/files/ compile cksfv from website],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->Par2,
|-
|<!--Sub Menu-->Package Application Installer
|<!--AROS-->[https://github.com/tomaszstaniak?tab=repositories Pkg manager], [https://aros-pkg.azurewebsites.net/search?arch=x86_64 Pkg], [ InstallerNG],
|<!--Amiga OS-->InstallerNG, Grunch,
|<!--AmigaOS4-->Jack
|<!--MorphOS-->Jack
|-
|<!--Sub Menu-->Compression archiver [https://github.com/FS-make-simple/paq9a paq9a], [],
|<!--AROS-->XAD system is a toolkit designed for handling various file and disk archiver
|<!--Amiga OS-->
|<!--AmigaOS4-->[https://aminet.net/package/util/pack/decrunchmania_os4 Crunchmania CrM2 depacker],
|<!--MorphOS-->
|-
|<!--Sub Menu-->Binary Hexadecimal Editor
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/edit Zaphod], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Partition Editor formatter Disk Management
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1440&highlight=partition&pid=8821#post_8821 QuickPart], [ HDToolBox]
|<!--Amiga OS-->[https://github.com/stefanskotte/hdpart hdpart], [https://github.com/ChuckyGang/AmiPart AmiPart],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Filesystem Repair and backups
|<!--AROS-->ArSFSDoctor,
|<!--Amiga OS-->[https://aminet.net/package/disk/bakup/quarterback_src Quarterback Tools C and asm src], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->System Disk check, integrity and history [https://github.com/smartmontools/smartmontools smart tools], [],
|<!--AROS-->
|<!--Amiga OS-->[],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Multiple File renaming
|<!--AROS-->DOpus 4 or 5,
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Anti Virus
|<!--AROS-->
|<!--Amiga OS-->VChecker,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Random Wallpaper Desktop changer [ DOpus5], [ Scalos],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Alarm Clock, Timer, Stopwatch, Countdown
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/workbench DClock], [http://aminet.net/util/time/AlarmClockAROS.lha AlarmClock], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 2==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->C/C++ IDE Integrated Development
|<!--AROS-->[https://sourceforge.net/projects/aidea/ AIDEa], [ Murks], [],
|<!--Amiga OS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*, [ StormC], [https://github.com/jens-maus/amide amide], [],
|<!--AmigaOS4-->CodeBench , [https://gitlab.com/boemann/codecraft CodeCraft],
|<!--MorphOS-->[http://devplex.awardspace.biz/cubic/index.html Cubic IDE]*,
|-
|<!--Sub Menu-->C/C++ Text Editors
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit FrexxEd], [https://github.com/vidarh/FrexxEd FrexxEd src], [http://archives.arosworld.org/index.php?function=browse&cat=utility/text/edit Annotate] with [https://www.onyxsoft.se/files/annotate_src.lha src],
|<!--Amiga OS-->[ Protext], [ CED], [],
|<!--AmigaOS4-->
|<!--MorphOS-->[https://www.onyxsoft.se/annotate.html Annotate],
|-
|<!--Sub Menu-->Repository
|<!--AROS-->[ Git]
|<!--Amiga OS-->
|<!--AmigaOS4-->Git
|<!--MorphOS-->
|-
|<!--Sub Menu-->BASIC Computer Language
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/language Basic4SDL], [ Ace Basic], [ X-AMOS], [SDLBasic], [ Alvyn],
|<!--Amiga OS-->[http://www.amiforce.de/main.php Amiblitz 3] with [https://github.com/AmiBlitz/AmiBlitz3 Asm src], [http://amos.condor.serverpro3.com/AmosProManual/contents/c1.html Amos Pro] with [https://github.com/AmiDARK/AmosProfessionalUnity-Official-Releases Asm src], [http://aminet.net/package/dev/basic/ace24dist ACE Basic], [https://github.com/gooofy/aqb aqb], [],
|<!--AmigaOS4-->
|<!--MorphOS-->sdlBasic
|-
|<!--Sub Menu-->Computer Languages Translation [https://tetracorp.github.io/guide/reverse-engineering-amiga.html], [https://amigasourcecodepreservation.gitlab.io/amiga-assembler-insider-guide/], [https://github.com/kermitfrog/Amiga-Re-Engineering Rust, Ghidra and FS-UAE],
|<!--AROS-->
|<!--Amiga OS-->[https://bitbucket.org/rhinoid/convert68000toc/src/main/ convert m68k seka asm-one to c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Gui Creators
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=development/guitool MuiBuilder],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->[ MuiBuilder],
|-
|<!--Sub Menu-->Catalog .cd .ct Custom App Language Editors
|<!--AROS-->FlexCat, [https://archives.arosworld.org/index.php?function=browse&cat=utility Flexcat GUI], [],
|<!--Amiga OS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|<!--AmigaOS4-->[http://aminet.net/package/dev/misc/simplecat SimpleCat], FlexCat
|<!--MorphOS-->[http://www.geit.de/deu_simplecat.html SimpleCat], FlexCat
|-
|<!--Sub Menu-->Cross Development
|<!--AROS-->[], [],
|<!--Amiga OS-->[https://github.com/geekychris/amiga_mcp amiga_mcp], [https://github.com/mbergmann-sh/AmigaED4-IDE AmigaED4-IDE], [https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/ Turbo Rascal], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
<nowiki>*</nowiki> Commercial product.
==Misc Application 3==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->System
|<!--AROS-->[ SysExplorer], [ SysMon], [ Scout], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Terminals Shells CLIs
|<!--AROS-->[https://github.com/tomaszstaniak/limpet limpet], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->OSK On Screen Keyboard
|<!--AROS-->[],
|<!--Amiga OS-->[https://aminet.net/util/wb/OSK.lha OSK]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Magnifier Magnifying Glass Magnification
|<!--AROS-->[http://www.onyxsoft.se/files/zoomit.lha ZoomIT],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Comic Book CBR CBZ format reader viewer
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comics], [http://archives.arosworld.org/index.php?function=browse&cat=graphics/viewer comicon], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Reader
|<!--AROS-->[https://blog.alb42.de/programs/#legadon Legadon EPUB],[]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Ebook Converter
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Text to Speech tts [https://github.com/JonathanFly/bark-installer Bark], [],
|<!--AROS-->[ Echo " " >SPEAK:A1 inbuilt], [http://archives.arosworld.org/index.php?function=browse&cat=audio/misc flite],
|<!--Amiga OS-->[http://www.text2speech.com translator], [https://github.com/sidick/narrator.wyoming narrator.wyoming], [],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=search&tool=simple FLite]
|<!--MorphOS-->[http://se.aminet.net/pub/aminet/mus/misc/ FLite]
|-
|<!--Sub Menu-->Speech Voice Recognition Dictation - [http://sourceforge.net/projects/cmusphinx/files/ CMU Sphinx], [http://julius.sourceforge.jp/en_index.php?q=en/index.html Julius], [http://www.isip.piconepress.com/projects/speech/index.html ISIP],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Speech Voice Changer [], [], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Screen Display Blanker screensaver
|<!--AROS-->Blanker Commodity (built in), [https://archives.arosworld.org/index.php?function=browse&cat=graphics/screenblanker GarshneBlanker], [http://sourceforge.net/projects/gblanker/ GBlanker Src], [],
|<!--Amiga OS-->MultiCX,
|<!--AmigaOS4-->
|<!--MorphOS-->ModernArt Blanker,
|-
|<!--Sub Menu-->Fortune Cookie Quotes Sayings
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/misc AFortune],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|}
==Misc Application 4==
{| class="wikitable sortable"
|-
!width:30%;|Misc Application
!width:10%;|AROS(x86)
!width:10%;|Commodore-Amiga OS 3.1(68k)
!width:10%;|Hyperion OS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Fractals mandelbrot, etc
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/misc],
|<!--Amiga OS-->ZoneXplorer,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Landscape Rendering
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=graphics/raytrace WCS World Construction Set],
|<!--Amiga OS-->[ Vista Pro], [http://en.wikipedia.org/wiki/World_Construction_Set World Construction Set]
|<!--AmigaOS4-->[ WCS World Construction Set],
|<!--MorphOS-->[ WCS World Construction Set],
|-
|<!--Sub Menu-->Astronomy [https://sourceforge.net/projects/skychart/ skychart freepascal], [], [],
|<!--AROS-->[ Digital Almanac (ABIv0 only)],
|<!--Amiga OS-->[http://aminet.net/search?query=planetarium Aminet search], [http://aminet.net/misc/sci/DA3V56ISO.zip Digital Almanac], [https://aminet.net/package/misc/sci/da3sourceV58 Src c V58], [ Galileo renamed to Distant Suns]*, [],
|<!--AmigaOS4-->[http://sourceforge.net/projects/digital-almanac/ Digital Almanac], Distant Suns*, [http://www.digitaluniverse.org.uk/ Digital Universe]*,
|<!--MorphOS-->[http://www.aminet.net/misc/sci/da3.lha Digital Almanac], [http://www.aminet.net/package/misc/sci/da3-mos-src Src c V56],
|-
|<!--Sub Menu-->Astrology [https://sourceforge.net/projects/skylendar/ skylendar], [https://github.com/CruiserOne/Astrolog Astrolog], [https://www.astrolog.org/astrolog/astfile.htm Astrology alt site], [https://saravali.github.io/download.html Maitreya], [https://github.com/alamahant/Asteria Asteria],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Genealogy History Family Tree Ancestry Records (FreeBMD, FreeREG, and FreeCEN file formats or GEDCOM GenTree)
|<!--AROS-->
|<!--Amiga OS--> [ Origins], [ Your Family Tree], [ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Languages
|<!--AROS-->
|<!--Amiga OS-->Fun School,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Mathematics ([http://www-fourier.ujf-grenoble.fr/~parisse/install_en.html Xcas], etc.),
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/scientific mathX]
|<!--Amiga OS-->Maple V, mathX, Fun School, GCSE Maths, [ ], [ ], [ ],
|<!--AmigaOS4-->Yacas
|<!--MorphOS-->Yacas
|-
|<!--Sub Menu-->Maths Graph Function Plotting
|<!--AROS-->[https://blog.alb42.de/programs/#MUIPlot MUIPlot],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->App Utility Launcher Dock toolbar
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=utility/docky BoingBar], [],
|<!--Amiga OS-->[https://github.com/adkennan/DockBot Dockbot],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->3D Printer [https://github.com/OrcaSlicer/OrcaSlicer OrcaSlicer]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->CNC control with laser and vinyl cutting
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->PCB design
|<!--AROS-->
|<!--Amiga OS-->[ ], [ ], [ ],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Digital Signage
|<!--AROS-->Hollywood, Hollywood Designer
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->HAM radio, amateur radio, packet radio, [], [], [], [https://cemaxecuter.com/ Dragon OS], [https://github.com/km4ack/73Linux with 73 link update], [https://www.youtube.com/watch?v=YAL5KNePRSg video for],
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/punktniklas/NiKom NiKom], [https://www.amigarealm.com/amiga/amicomms/comm4.htm Comm4], [https://www.amigarealm.com/archives/comms/aarug/ TNC Terminal Node Controller with packets over serial connections on Yaesu or Woxum handheld], [https://aminet.net/comm/misc AmiCom], [ with 7Plus file encoder/decoder], [ mksstv], [ RTTYam],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->modern smart home network like Home Assistant Automation Yellow, Green, Mosquitto, EMQX,
|<!--AROS-->
|<!--Amiga OS-->[https://github.com/evil4dmin/ami2ha HA], [https://github.com/sidick/midge mtqq.lib], [https://aminet.net/package/comm/tcp/AmiHomeassist-0.7 AmiHomeassist],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Teaching classroom learning training [https://github.com/moodle/moodle moodle], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
<nowiki>*</nowiki> Commercial product.
==Games & Emulation==
Some emulators/games require OpenGL to function and to adjust ahi prefs channels, frequency and unit0 and unit1 and
[http://aros.sourceforge.net/documentation/users/shell/changetaskpri.php changetaskpri -1]
Rom patching https://www.marcrobledo.com/RomPatcher.js/ https://www.romhacking.net/patch/ (ips, ups, bps, etc) and this other site supports the latter formats https://hack64.net/tools/patcher.php
Free public domain roms for use with emulators can be found [http://www.pdroms.de/ here] as most of the rest are covered by copyright rules. If you like to read about old games see [http://retrogamingtimes.com/ here] and [http://www.armchairarcade.com/neo/ here] and a [http://www.vintagecomputing.com/ blog] about old computers. Possibly some of the [http://www.answers.com/topic/list-of-best-selling-computer-and-video-games best selling] of all time. [http://en.wikipedia.org/wiki/List_of_computer_system_emulators Wiki] with emulated systems list.
[https://archive.gamehistory.org/ Archive of VGHF], [https://library.gamehistory.org/ Video Game History Foundation Library search]
{| class="wikitable sortable"
|-
!width:10%;|Games [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Emulation]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|-
|<!--Sub Menu-->Games Emulation Amstrad CPC
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [ Caprice32 (OpenGL & pure SDL)], [ Arnold], [https://retroshowcase.gr/cpcbox-master/],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2],
|-
|<!--Sub Menu-->Games Emulation Apple2 and 2GS
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Arcade
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Mame], [ SI Emu (ABIv0 only)],
|<!--Amiga OS-->Mame,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem xmame], amiarcadia,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 Mame],
|-
|<!--Sub Menu-->Games Emulation Atari 2600 [], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Stella],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 5200 [https://github.com/wavemotion-dave/A5200DS A5200DS], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 7800
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari 400 800 130XL [https://github.com/wavemotion-dave/A8DS A8DS], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Atari800],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Lynx
|<!--AROS-->[http://myfreefilehosting.com/f/6366e11bdf_1.93MB Handy (ABIv0 only)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Atari Jaguar
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Bandai Wonderswan
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation BBC Micro and Acorn Electron [http://beehttps://bem-unix.bbcmicro.com/download.html BeebEm], [http://b-em.bbcmicro.com/ B-Em], [http://elkulator.acornelectron.co.uk/ Elkulator], [http://electrem.emuunlim.com/ ElectrEm],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Dragon 32 and Tandy CoCo [http://www.6809.org.uk/xroar/ xroar], [],
|<!--AROS-->[], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C16 Plus4
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Commodore C64
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Vice (ABIv0 only)], [],
|<!--Amiga OS-->Frodo,
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem viceplus],
|<!--MorphOS-->Vice,
|-
|<!--Sub Menu-->Games Emulation Commodore Amiga
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Janus UAE], Emumiga,
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://os4depot.net/index.php?function=browse&cat=emulation/computer UAE],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=2 UAE],
|-
|<!--Sub Menu-->Games Emulation Japanese MSX MSX2
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Intelivision
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Mattel Colecovision and Adam
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Milton Bradley (MB) Vectrex [ Vectrex OpenGL],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation PICO8 Pico-8 fantasy video game console [https://github.com/egordorichev/pemsa-sdl/ pemsa-sdl], [https://github.com/jtothebell/fake-08 fake-08], [https://github.com/Epicpkmn11/fake-08/tree/wip fake-08 fork],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo Gameboy
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem vba no sound], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem vba]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo NES
|<!--AROS-->[ EmiNES], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Fceu], [https://github.com/takahirox/nes-js?tab=readme-ov-file nes-js], [https://github.com/bfirsh/jsnes jsnes], [https://github.com/angelo-wf/NesJs NesJs],
|<!--Amiga OS-->AmiNES, [http://www.dridus.com/~nyef/darcnes/ darcNES],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem amines]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Nintendo SNES
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Zsnes],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem warpsnes]
|<!--MorphOS-->[http://fabportnawak.free.fr/snes/ Snes9x],
|-
|<!--Sub Menu-->Games Emulation Nintendo N64
*HLE and plugins [ mupen64], [https://github.com/ares-emulator/ares ares], [https://github.com/N64Recomp/N64Recomp N64Recomp], [https://github.com/rt64/rt64 rt64], [https://github.com/simple64/simple64 Simple64],
*LLE [],
|<!--AROS-->[http://code.google.com/p/mupen64plus/ Mupen64+],
|<!--Amiga OS-->[http://code.google.com/p/mupen64plus/ Mupen64+], [http://aminet.net/package/misc/emu/tr-981125_src TR64],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Gamecube Wii]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Nintendo Wii U]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/yuzu-emu Nintendo Switch]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation NEC PC Engine
|<!--AROS-->[], [], [https://github.com/yhzmr442/jspce js-pce],
|[http://www.hugo.fr.fm/ Hugo], [http://mednafen.sourceforge.net/ Mednafen],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem tgemu]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Master System (SMS)
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem Dega], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem sms],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem osmose]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Genesis/Megadrive
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem gp no sound], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem DGen],
|<!--Amiga OS-->[http://code.google.com/p/genplus-gx/ Genplus],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem genesisplus]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Saturn
*HLE [https://mednafen.github.io/ mednafen], [http://yabause.org/ yabause], [],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->[http://yabause.org/ Yabause],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sega Dreamcast
*HLE [https://github.com/flyinghead/flycast flycast], [https://code.google.com/archive/p/nulldc/downloads NullDC],
*LLE [], [],
|<!--AROS-->?
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair ZX80 and ZX81
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair Spectrum
|[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Fuse (crackly sound)], [http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer SimCoupe], [ FBZX slow], [https://jsspeccy.zxdemo.org/ jsspeccy], [http://torinak.com/qaop/games qaop],
|<!--Amiga OS-->[http://www.zophar.net/sinclair.html Speculator], [http://www.worldofspectrum.org/x128/index.html X128],
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/computer]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sinclair QL
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer], [],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/QDOS4amiga1 QDOS4amiga]
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation SNK NeoGeo Pocket
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem gngeo], NeoPop,
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation Sony PlayStation
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/gamesystem FPSE],
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem FPSE]
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS2]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[ Sony PS3]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://vita3k.org/ Sony Vita]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->[https://github.com/shadps4-emu/shadPS4 PS4]
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation [http://en.wikipedia.org/wiki/Tangerine_Computer_Systems Tangerine] Oric and Atmos
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer Oricutron]
|<!--Amiga OS-->
|<!--AmigaOS4-->[http://www.os4depot.net/index.php?function=browse&cat=emulation/gamesystem Oricutron]
|<!--MorphOS-->[http://aminet.net/package/misc/emu/oricutron Oricutron]
|-
|<!--Sub Menu-->Games Emulation TI 99/4 99/4A [https://github.com/wavemotion-dave/DS994a DS994a], [], [https://js99er.net/#/ js99er], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=emulation/computer],
|<!--Amiga OS-->[http://aminet.net/package/misc/emu/TI4Amiga TI4Amiga], [http://aminet.net/package/misc/emu/TI4Amiga_src TI4Amiga src in c],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation HP 38G 40GS 48 49G/50G Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Emulation TI 58 83 84 85 86 - 89 92 Graphing Calculators
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games emulation Ms-Dos Dosbox type
|<!--AROS-->[https://github.com/tomaszstaniak/aros-boxerapp Boxer]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
{| class="wikitable sortable"
|-
!width:10%;|Games [https://www.rockpapershotgun.com/ General]
!width:10%;|AROS(x86)
!width:10%;|AmigaOS3(68k)
!width:10%;|AmigaOS4(PPC)
!width:10%;|MorphOS(PPC)
|- style="background:lightgrey;{{text default color}}; text-align:center; font-weight:bold;"
| Games [https://www.trackawesomelist.com/michelpereira/awesome-open-source-games/ Open Source and others] || AROS || Amiga OS || Amiga OS4 || Morphos
|-
|<!--Sub Menu-->Games Action like [https://github.com/opentomb/OpenTomb opentomb], [https://github.com/LostArtefacts/TRX TRX formerly Tomb1Main], [https://github.com/TombEngine TombEngine], [http://archives.arosworld.org/index.php?function=browse&cat=game/action Thrust], [https://github.com/fragglet/sdl-sopwith sdl sopwith],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/action], [https://archives.arosworld.org/index.php?function=browse&cat=game/action BOH], [],
|<!--Amiga OS-->[https://github.com/BSzili/OpenLara/tree/amiga/src source of openlara SDL2],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Adventure like [http://dotg.sourceforge.net/ DMJ], [https://github.com/kromenak/gengine Gabriel Knight 3], [http://www.sarien.net/ Sierra Sarien], [https://github.com/klembot/twinejs twine js], [https://github.com/QSPFoundation/qspgui Quest Soft Player QSP], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/adventure dmagnetic], [https://archives.arosworld.org/?function=browse&cat=emulation/misc ScummVM], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying frotz infocom], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Board like [https://github.com/aperture-software/colditz-escape escape from colditz], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/board], [http://amigan.1emu.net/releases Africa]
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Cards
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/card], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12934#post_12934 Balatro],
|<!--AmigaOS-->[http://home.arcor.de/amigasolitaire/e/welcome.html Reko], [https://github.com/samskivert/beschei-en beschei Src],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Misc [https://github.com/michelpereira/awesome-open-source-games Awesome open], [https://github.com/bobeff/open-source-games General Open Source], [https://github.com/SAT-R/sa2 Sonic Advance 2], [https://github.com/velorek1/cwordle Wordle type],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/misc], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games FPS like [https://aminet.net/package/game/shoot/D1X_Rebirth_AGA Descent D1X src], [https://github.com/DescentDevelopers/Descent3 Descent 3], [https://github.com/Fewnity/Counter-Strike-Nintendo-DS Counter-Strike-Nintendo-DS], [https://github.com/Aleph-One-Marathon/alephone Bungie Marathon 1994], [https://zdoom.org/downloads UzDoom opengl 3.3], [https://github.com/ZDoom/gzdoom gzdoom opengl 3+], [https://zdoom.org/downloads LZDoom opengl 2.1], [https://github.com/OpenXRay/xray-16 S.T.A.L.K.E.R Xray], [https://staniks.github.io/articles/serious-engine-networking-analysis/ Serious Sam] [https://github.com/Croteam-official/Serious-Engine Serious Engine 1]
|<!--AROS-->Doom, Quake, [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Quake 3 Arena (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Assault Cube (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Cube 2 Sauerbraten (OpenGL)], [http://fodquake.net/test/ FodQuake QuakeWorld], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Duke Nukem 3D], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Darkplaces Nexuiz Xonotic], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Doom 3 SDL (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/fps Hexenworld and Hexen 2], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Aliens vs Predator Gold 2000 avp (openGL)], [https://archives.arosworld.org/index.php?function=browse&cat=game/fps Odamex (openGL doom)], [https://archives.arosworld.org/?function=showfile&file=game/fps/ zgloom], [], [https://archives.arosworld.org/?function=showfile&file=game/fps/ ab3dhd], [],
|<!--Amiga OS-->Doom, Quake, AB3D, Fears, Breathless, Gloom,
|<!--AmigaOS4-->Doom, Quake,
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12 Doom], Quake, Quake 3 Arena,
|-
|<!--Sub Menu-->Games MMORG like
|<!--AROS-->[ Eternal Lands (OpenGL)],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Platform like
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/platform], [ Maze of Galious], [ Gish]*(openGL), [ Mega Mario], [https://archives.arosworld.org/?function=showfile&file=game/platform/ thextech SMBX], [http://www.gianas-return.de/ Giana's Return], [http://www.sqrxz.de/ Sqrxz], [www.sqrxz2.de/ Sqrxz 2], [http://www.sqrxz.de/sqrxz-3/ Sqrxz 3], [http://www.sqrxz.de/sqrxz-4/ Sqrxz 4], [http://archives.arosworld.org/index.php?function=browse&cat=game/platform Cave Story], [https://bszili.morphos.me/ Frogatto], [https://bszili.morphos.me/ OpenJazz], [https://archives.arosworld.org/?function=showfile&file=game/platform/ pekkakana2], [ Aquaria], [https://archives.arosworld.org/?function=showfile&file=game/platform/ sonic CD], [],
|<!--Amiga OS-->[ Giana Sisters], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Puzzle [https://github.com/mariopartyrd/marioparty4/tree/port Party], [https://github.com/mdodis/OpenSolomonsKey OpenSolomonsKey], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle], [ Cubosphere (OpenGL)], [http://archives.arosworld.org/index.php?function=browse&cat=game/puzzle Candy Crisis], [http://bszili.morphos.me/ TailTale],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Racing [ Trigger Rally], [ VDrift], [http://www.ultimatestunts.nl/index.php?page=2&lang=en Ultimate Stunts], [http://maniadrive.raydium.org/ Mania Drive], [https://github.com/plowteam/donut Simpsons Hit and Run], [],
|<!--AROS-->[ Super Tux Kart (OpenGL)], [http://www.dusabledanslherbe.eu/AROSPage/F1Spirit.30.html F1 Spirit (OpenGL)], [http://bszili.morphos.me/index.html MultiRacer], [https://bszili.morphos.me/ Speed Dreams], [https://archives.arosworld.org/?function=showfile&file=game/driving/dethrace-0.10.1.x86_64-aros-v11.zip Carmageddon dethrace 64bit], [http://maniadrive.raydium.org/index.php?downloads=yes maniadrive like trackmania],
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://bszili.morphos.me/index.html Speed Dreams],
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12], [http://bszili.morphos.me/index.html TORCS],
|-
|<!--Sub Menu-->Games 1st first person DRPG [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/OpenEnroth/OpenEnroth OpenEnroth MM], []
|<!--AROS-->[https://github.com/BSzili/aros-stuff Arx Libertatis], [http://www.playfuljs.com/a-first-person-engine-in-265-lines/ js raycaster], [https://github.com/Dorthu/es6-crpg webgl], [https://github.com/sonountaleban/AmiShockolate System Shock], [], [],
|<!--AmigaOS-->Phantasie, Faery Tale, Dungeon Master,
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 3rd third person action CRPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/alexbatalov/fallout1-ce fallout ce], [https://github.com/rwengine/openrw gta3], [https://github.com/gta-reversed/gta-reversed gta3 sa], [https://github.com/mrxenginner/reVC gta3 vc revc], [https://github.com/jakobharder/burntime/tree/main Burntime],
|<!--AROS-->[https://archives.arosworld.org/?function=showfile&file=game/strategy/ fheroes2 homm2], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ breakhack], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ devilutionx diablo 1 hellfire], [https://archives.arosworld.org/?function=showfile&file=game/roleplaying/ fallout 1], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ stratagus], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ hostile-takeover], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games isometric RPG [https://sourceforge.net/projects/sumwars/ Summoning Wars], [https://www.solarus-games.org/ Solarus], [https://wiki.rpg.net/index.php/Open_Game_Systems Misc], [https://github.com/topics/dungeon?l=javascript Dungeon], [], [https://github.com/clintbellanger/heroine-dusk JS Dusk],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying nethack], [https://archives.arosworld.org/index.php?function=browse&cat=game/roleplaying GemRB], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games card based RPG [https://github.com/open-duelyst/duelyst Duelyst], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games turn based tactics RPG [], [], [], [], [], [],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/strategy UFO AI], [http://play.freeciv.org/ FreeCiv], [https://juen.in Aveterna online civ], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Strategy [http://rtsgus.org/ RTSgus], [http://stargus.sourceforge.net/ Stargus], [https://github.com/KD-lab-Open-Source/Perimeter Perimeter], [https://matty77.itch.io/conflict-3049 conflict-3049], [https://github.com/ZeroK-RTS/Zero-K Zero-K multi player rts lua],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=game/strategy MegaGlest (OpenGL)], [https://archives.arosworld.org/?function=showfile&file=game/strategy/ signus], [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=140&pid=12446#post_12446 Wargus warcraft 2 setup],
|<!--Amiga OS-->[https://aminet.net/package/game/strat/OpenDUNE_RTG OpenDUNE_RTG src]
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Rhythm, Beat, Step [], [], [https://clonehero.net/ clonehero], [https://github.com/MatteoGodzilla/Dj-Engine Dj-Engine],
|<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/misc Frets on Fire], [],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Shoot Em Ups [http://www.mhgames.org/oldies/formido/ Formido], [http://code.google.com/p/violetland/ Violetland],
||<!--AROS-->[https://archives.arosworld.org/index.php?function=browse&cat=game/action Open Tyrian], [http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ Alien Blaster], [https://github.com/OpenFodder/openfodder OpenFodder], [https://archives.arosworld.org/?function=showfile&file=game/action/ tbftss The Battle for the Solar System: the Pandora War]
|<!--AmigaOS-->
|<!--AmigaOS4-->[http://www.parallelrealities.co.uk/projects/starfighter.php Starfighter], [ The Battle for the Solar System: the Pandora War]
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Simulations [http://scp.indiegames.us/ Freespace 2], [http://www.heptargon.de/gl-117/gl-117.html GL117], [http://code.google.com/p/corsix-th/ Theme Hospital], [http://code.google.com/p/freerct/ Rollercoaster Tycoon], [http://hedgewars.org/ Hedgewars], [https://github.com/raceintospace/raceintospace raceintospace], [https://github.com/Return-To-The-Roots RTTR Settlers 2], [https://github.com/OoliteProject/oolite oolite elite], [https://github.com/fesh0r/newkind newkind elite], [https://github.com/bohemiainteractive/cwr Arma Cold War Src], [https://github.com/endless-sky/endless-sky endless-sky], [https://github.com/pioneerspacesim/pioneer pioneer space command],
|<!--AROS-->[https://github.com/tomaszstaniak/aros-micropolis micropolis]
|<!--Amiga OS-->SimCity, SimAnt, Sim Hospital, Theme Park, [https://github.com/angree/openttd_amiga_68k openttd amiga_68k],
|<!--AmigaOS4-->
|<!--MorphOS-->[http://morphos.lukysoft.cz/en/vypis.php?kat=12]
|-
|<!--Sub Menu-->Games Life Sim [https://github.com/ACreTeam/forest Animal Crossing], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Horror [https://github.com/Mikompilation/MikuPan Fatal Frame], [ ], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Sandbox Voxel Open World Exploration [https://github.com/ClassiCube/ Classicube],[http://www.michaelfogleman.com/craft/ Craft], [https://github.com/tothpaul/DelphiCraft DelphiCraft],[https://www.minetest.net/ Luanti formerly Minetest], [ infiniminer],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Battle Royale [https://bruh.io/ Play.Bruh.io], [https://www.coolmathgames.com/0-copter Copter Royale], [https://surviv.io/ Surviv.io], [https://nuggetroyale.io/#Ketchup Nugget Royale], [https://miniroyale2.io/ Miniroyale2.io],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Tower Defense [https://chriscourses.github.io/tower-defense/ HTML5], [https://github.com/SBardak/Tower-Defense-Game TD C++], [https://github.com/bdoms/love_defense LUA and LOVE], [https://github.com/HyOsori/Osori-WebGame HTML5], [https://github.com/PascalCorpsman/ConfigTD ConfigTD Pascal], [https://github.com/GloriousEggroll/wine-ge-custom Wine], []
|<!--AROS-->[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=1443&rowstart=180&pid=12871#post_12871 Plants vs Zombies PvZ],
|<!--Amiga OS-->[https://github.com/boingball/miggy-tower-defense miggy-tower-defense],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Visual Novel Engines [https://github.com/diane1f0cd/VisualNovelTemplate Visual Novel Template], [https://github.com/Kirilllive/tuesday-js Tuesday JS], [https://github.com/tejasnayak25/vnsutra vnsutra], [https://github.com/weetabix-su/renpsp-dev RenPSP], [https://github.com/Galladite27/ONScripter-EN ONScripter-EN], [https://github.com/NathanGuilhot/VNES-Raylib https://github.com/NathanGuilhot/VNES VNES in Raylib], [https://www.renpy.org/latest.html renpy ren'py python based],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Reality VR [https://gitlab.com/madsbuvi/openmw openmw vr], [https://github.com/Team-Beef-Studios/BeefRaiderXR BeefRaiderXR],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Table Top VTT [ Roll20], [https://www.owlbear.rodeo/ owlbear rodeo], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Computer assisted TableTop TTRPG OSR [https://www.rpgsolo.com/play.php RPGSolo], [https://github.com/fpsvogel/solo-ttrpgs Solo TTRPG], [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games 2D 3D Engines [https://github.com/fegennari/3DWorld 3DWorld], [https://github.com/GarageGames/Torque3D Torque3D], [https://github.com/gameplay3d/GamePlay GamePlay 3D], [https://www.babylonjs.com/ BabylonJS ], [ Godot], [ Ogre], [ Crystal Space], [https://github.com/JacobHess03/ Dragon-Quest like], [https://github.com/bjornbytes/lovr Lua LOVE for 2D LOVR for 3D], [],
|<!--AROS-->[https://www.arkhamdev.net/wiki.htm?id=agx Arkham Development antiryadgx 8.9 lts with register], [],
|<!--Amiga OS-->[https://github.com/alpyre/Sevgi_Engine Sevgi Engine], [], [],
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games C based game frameworks [https://github.com/orangeduck/Corange Corange], [https://github.com/scottcgi/Mojoc Mojoc], [https://orx-project.org/ Orx], [https://github.com/ioquake/ioq3 Quake 3], [https://www.mapeditor.org/ Tiled], [https://www.raylib.com/ 2d Raylib], [https://github.com/Rabios/awesome-raylib other raylib], [https://github.com/MrFrenik/gunslinger Gunslinger], [https://o3de.org/ o3d], [http://archives.aros-exec.org/index.php?function=browse&cat=development/library GLFW], [],
|<!--AROS-->[http://archives.arosworld.org/index.php?function=browse&cat=development/library Raylib 5],
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games RPGMaker MV/MZ-compatible projects [https://github.com/Psychronic-Games/RPGReactor RPGReactor js],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games Virtual Pinball [https://github.com/vpinball/vpinball vpinball], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->Games unpack unarc [], [],
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|-
|<!--Sub Menu-->
|<!--AROS-->
|<!--Amiga OS-->
|<!--AmigaOS4-->
|<!--MorphOS-->
|}
==Application Guides==
[[#top|...to the top]]
===Web Browser===
OWB is now at version 2.0 (which got an engine refresh, from July 2015 to February 2019) and 3.0.
This latest version has a good support for many/most web sites, even YouTube web page now works. [https://www.bilibili.tv/en/search untested]
This improved compatibility comes at the expense of higher RAM usage (now 1GB RAM is the absolute minimum).
Also, keep in mind that the lack of a JIT (Just-In-Time) JS compiler on the 32 bit version, makes the web surfing a bit slow.
Only the 64 bit version of OWB 2.0 will have JIT enabled, thus benefitting of more speed. There are tooltypes that can be added to the icon to provide further features JIT, MSE etc
Certificates from [https://curl.se/docs/caextract.html ca certs],
DNS tracking blocking with [https://easylist.to/easylist/easylist.txt easylist.txt] in PROGDIR:Conf before starting browser with enabled AdBlock [https://github.com/easylist/easylist/tree/master easylist], [https://gitlab.com/eyeo anti abp], [https://firebog.net/ big blocklist], [https://github.com/StevenBlack/hosts Steves], [], [],
This can be enabled with OWB Odyssey with Windows -> Content Blocking and Windows -> Messages and enter
https://www.youtube.com/api/stats/ads*
https://www.youtube.com/pagead/adview*
https://www.youtube.com#@##player-ads*
into your custom filters
Element blocker browser extension might be needed for [https://github.com/easylist/easylist/wiki/Youtube-Issues youtube], [ mid roll], [ pre roll], [ ],
OWB speed is much better when running from RAM Disk, the best way is to add the below into your S:User-Startup which copies OWB drawer from Extras:Internet/OWB to RAM Disk:
So add this :
<pre>
copy Extras:Internet/OWB Ram:OWB/ ALL CLONE >NIL:
copy Extras:Internet/OWB.info Ram: >NIL:
</pre>
Open RAM Disk and open OWB drawer and double click on OWB icon so that the above icon tooltypes are activated
Problems are that the copy time is long (around 20 seconds added in the background), but we can make it faster if we delete useless files from the OWB drawer (docs, …)
If you don’t copy the drawer back onto the HD, you won’t save your cache, cookies, passwords… So you need a script for it.
copy Extras:Internet/Amelinium/#? Ram:Amelinium/ ALL CLONE >NIL:
Error messages
SSL error "cant verify with ca-certificates", check bios clock time date is correct
Error 6, try checking networking prefs settings and Save / Use preferences again or a '''few times''' otherwise the network chipset may not be compatible with Aros
[https://www.google.com/search?q=%s&udm=14 Google search without AI overview]
[ DuckDuckGo]
[ Ecosia]
[ Qwant]
[ Swisscows]
[ Mojeek]
[ Brave Search]
[ PreSearch]
[ Startpage]
===E-mail===
Emailinium is now available for IMAP and POP3 based accounts
YAM does not support SSL and most mail providers now switched to encrypted SMTP/POP3 connections
====SimpleMail====
SimpleMail supports IMAP and appears to work with GMail, but it's never been reliable enough, it can crash with large mailboxes.
Please read more on this [http://www.freelists.org/list/simplemail-usr User list]
GMail
Be sure to activate the pop3 usage in your gmail account setup / configuration first.
pop3:
pop.gmail.com
Use SSL: Yes
Port: 995
smtp:
smtp.gmail.com (with authentication)
Use Authentication: Yes
Use SSL: Yes
Port: 465 or 587
Hotmail/MSN/outlook/Microsoft Mail mid-2017, all outlook.com accounts will be migrated to Office 365 / Exchange
Most users are currently on POP which does not allow showing folders and many other features (technical limitations of POP3). With Microsoft IMAP you will get folders, sync read/unread, and show flags. You still won't get push though, as Microsoft has not turned on the IMAP Idle command as at Sept 2013.
If you want to try it, you need to first remove (you can't edit) your pop account (long-press the account on the accounts screen, delete account). Then set it up this way:
1. Email/Password
2. Manual
3. IMAP
4.
* Incoming: imap-mail.outlook.com, port 993, SSL/TLS should be checked
* Outgoing: smtp-mail.outlook.com, port 587, SSL/TLS should be checked
* POP server name pop-mail.outlook.com, port 995, POP encryption method SSL
Yahoo Mail
On April 24, 2002 Yahoo ceased to offer POP access to its free mail service. Introducing instead a yearly payment feature, allowing users POP3 and IMAP server support, along with such benefits as larger file attachment sizes and no adverts.
Sorry to see Yahoo leaving its users to cough up for the privilege of accessing their mail. Understandable, when competing against rivals such as Gmail and Hotmail who hold a large majority of users and were hacked in 2014 as well.
Incoming Mail (IMAP) Server
* Server - imap.mail.yahoo.com
* Port - 993
* Requires SSL - Yes
Outgoing Mail (SMTP) Server
* Server - smtp.mail.yahoo.com
* Port - 465 or 587
* Requires SSL - Yes
* Requires authentication - Yes
Your login info
* Email address - Your full email address (name@domain.com)
* Password - Your account's password
* Requires authentication - Yes
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a subscription subs fee to have access to SMTP and POP3
* Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
* “Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
* “Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
* “Password” – Your Yahoo Mail password.
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
* Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
====YAM Yet Another Mailer====
YAM does not support SSL and most mail providers have now switched to encrypted SMTP/POP3 connections
This email client is POP3 only if the SSL library is available [http://www.freelists.org/list/yam YAM Freelists]
One of the downsides of using a POP3 mailer unfortunately - you have to set an option not to delete the mail if you want it left on the server. IMAP keeps all the emails on the server.
Possible issues
Sending mail issues is probably a matter of using your ISP's SMTP server, though it could also be an SSL issue.
getting a "Couldn't initialise TLSv1 / SSL error
Use of on-line e-mail accounts with this email client is not possible as it lacks the OpenSSL AmiSSl v3 compatible library
GMail
Incoming Mail (POP3) Server - requires SSL: pop.gmail.com
Use SSL: Yes
Port: 995
Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587
Account Name: your Gmail username (including '@gmail.com')
Email Address: your full Gmail email address (username@gmail.com)
Password: your Gmail password
Anyway, the SMTP is pop.gmail.com port 465 and it uses SSLLv3 Authentication. The POP3 settings are for the same server (pop.gmail.com), only on port 995 instead.
Outlook.com access
<pre >
Outlook.com SMTP server address: smtp.live.com
Outlook.com SMTP user name: Your full Outlook.com email address (not an alias)
Outlook.com SMTP password: Your Outlook.com password
Outlook.com SMTP port: 587
Outlook.com SMTP TLS/SSL encryption required: yes
</pre >
Yahoo Mail
<pre >
“POP3 Server” – Set the POP server for incoming mails as pop.mail.yahoo.com. You will have to enable “SSL” and use 995 for Port.
“SMTP Server” – Set the SMTP server for outgoing mails as smtp.mail.yahoo.com. You will also have to make sure that “SSL” is enabled and use 465 for port. you must also enable “authentication” for this to work.
“Account Name or Login Name” – Your Yahoo Mail ID i.e. your email address without the domain “@yahoo.com”.
“Email Address” – Your Yahoo Mail address i.e. your email address including the domain “@yahoo.com”. E.g. myname@yahoo.com
“Password” – Your Yahoo Mail password.
</pre >
Yahoo! Mail Plus users may have to set POP server as plus.pop.mail.yahoo.com and SMTP server as plus.smtp.mail.yahoo.com.
Note that you need to enable “Web & POP Access” in your Yahoo Mail account to send and receive Yahoo Mail messages through any other email program.
You will have to enable “Allow your Yahoo Mail to be POPed” under “POP and Forwarding”, to send and receive Yahoo mails through any other email client.
Cannot be done since 2002 unless the customer pays Yahoo a monthly fee to have access to SMTP and POP3
Microsoft Outlook Express Mail
1. Get the files to your PC.
By whatever method get the files off your Amiga onto your PC. In the YAM folder you have a number of different folders, one for each of your folders in YAM. Inside that is a file usually some numbers such as 332423.283. YAM created a new file for every single email you received.
2. Open up a brand new Outlook Express. Just configure the account to use 127.0.0.1 as mail servers. It doesn't really matter. You will need to manually create any subfolders you used in YAM.
3. You will need to do a mass rename on all your email files from YAM. Just add a .eml to the end of it. Amazing how PCs still rely mostly on the file name so it knows what sort of file it is rather than just looking at it! There are a number of multiple renamers online to download and free too.
4. Go into each of your folders, inbox, sent items etc. And do a select all then drag the files into Outlook Express (to the relevant folder obviously) Amazingly the file format that YAM used is very compatible with .eml standard and viola your emails appear. With correct dates and working attachments.
5. If you want your email into Microsoft Outlook. Open that up and create a new profile and a new blank PST file. Then go into File Import and choose to import from Outlook Express. And the mail will go into there. And viola.. you have your old email from your Amiga in a more modern day format.
===FTP===
Magellan has a great FTP module. It allows transferring files from/to a FTP server over the Internet or the local network and, even if FTP is perceived as a "thing of the past", its usability is all inside the client. The FTP thing has a nice side effect too, since every Icaros machine can be a FTP server as well, and our files can be easily transferred from an Icaros machine to another with a little configuration effort.
First of all, we need to know the 'server' IP address. Server is the Icaros machine with the file we are about to download on another Icaros machine, that we're going to call 'client'. To do that, move on the server machine and 1) run Prefs/Services to be sure "FTP file transfer" is enabled (if not, enable it and restart Icaros); 2) run a shell and enter this command:
ifconfig -a
Make a note of the IP address for the network interface used by the local area network. For cabled devices, it usually is net0:. Now go on the client machine and run Magellan:
Perform these actions: 1) click on FTP; 2) click on ADDRESS BOOK; 3) click on "New".
You can now add a new entry for your Icaros server machine:
1) Choose a name for your server, in order to spot it immediately in the address book. Enter the IP address you got before.
2) click on Custom Options:
1) go to Miscellaneous in the left menu;
2) Ensure "Passive Transfers" is NOT selected;
3) click on Use. We need to deactivate Passive Transfers because YAFS, the FTP server included in Icaros, only allows active transfers at the current stage. Now, we can finally connect to our new file source:
1) Look into the address book for the newly introduced server, be sure that name and IP address are right, and
2) click on Connect. A new lister with server's "MyWorkspace" contents will appear. You can now transfer files over the network choosing a destination among your local (client's) volumes.
Can be adapted to any FTP client on any platform of your choice, just be sure your client allows Active Transfers as well.
===IRC Internet Relay Chat===
Jabberwocky is ideal for one-to-one social media communication, use IRC if you require one to many.
Just type a message in ''lowercase''' letters and it will be posted to all in the [ AROS irc channel]. Please do not use UPPER CASE as it is a sign of SHOUTING which is annoying.
Other things to type in - replace <message> with a line of text and <nick> with a person's name
<pre>
/help
/list
/who
/whois <nick>
/msg <nick> <message>
/query <nick>
<message>s
/query
/away <message>
/away
/quit <going away message>
</pre>
[http://irchelp.org/irchelp/new2irc.html#smiley Intro guide here]. IRC Primer can be found here in [http://www.irchelp.org/irchelp/ircprimer.html html], [http://www.irchelp.org/irchelp/text/ircprimer.txt TXT], [http://www.kei.com/irc/IRCprimer1.1.ps PostScript].
Issue the command /me <text> where <text> is the text that should follow your nickname.
Example: /me slaps ajk around a bit with a large trout
/nick <newNick>
/nickserv register <password> <email address>
/ns instead of /nickserv, while others might need /msg nickserv
/nickserv identify <password>
Alternatives:
/ns identify <password>
/msg nickserv identify <password>
==== IRC WookieChat ====
WookieChat is the most complete internet client for communication across the IRC Network. WookieChat allows you to swap ideas and communicate in real-time, you can also exchange Files, Documents, Images and everything else using the application's DCC capabilities.
add smilies drawer/directory
run wookiechat from the shell and set stack to 1000000 e.g. wookiechat stack 1000000
select a server / server window
* nickname
* user name
* real name - optional
Once you configure the client with your preferred screen name, you'll want to find a channel to talk in.
servers
* New Server - click on this to add / add extra - change details in section below this click box
* New Group
* Delete Entry
* Connect to server
* connect in new tab
* perform on connect
Change details
* Servername - change text in this box to one of the below Server:
* Port number - no need to change
* Server password
* Channel - add #channel from below
* auto join - can click this
* nick registration password,
Click Connect to server button above
<pre>
Server: irc.freenode.net
Channel: #aros
</pre>
irc://irc.freenode.net/aros
<pre>
Server: chat.amigaworld.net
Channel: #amigaworld or #amigans
</pre>
<pre>
On Sunday evenings USA time usually starting around 3PM EDT (1900 UTC)
Server:irc.superhosts.net
Channel #team*amiga
</pre>
<pre>
BitlBee and Minbif are IRCd-like gateways to multiple IM networks
Server: im.bitlbee.org
Port 6667
Seems to be most useful on WookieChat as you can be connected to several servers at once. One for Bitlbee and any messages that might come through that. One for your normal IRC chat server.
</pre>
[http://www.bitlbee.org/main.php/servers.html Other servers],
<pre>
#Amiga.org - irc.synirc.net eu.synirc.net dissonance.nl.eu.synirc.net (IPv6: 2002:5511:1356:0:216:17ff:fe84:68a)
twilight.de.eu.synirc.net zero.dk.eu.synirc.net us.synirc.net avarice.az.us.synirc.net envy.il.us.synirc.net harpy.mi.us.synirc.net
liberty.nj.us.synirc.net snowball.mo.us.synirc.net - Ports 6660-6669 7001 (SSL)
</pre>
<pre>
Multiple server support
"Perform on connect" scripts and channel auto-joins
Automatic Nickserv login
Tabs for channels and private conversations
CTCP PING, TIME, VERSION, SOUND
Incoming and Outgoing DCC SEND file transfers
Colours for different events
Logging and automatic reloading of logs
mIRC colour code filters
Configurable timestamps
GUI for changing channel modes easily
Configurable highlight keywords
URL Grabber window
Optional outgoing swear word filter
Event sounds for tabs opening, highlighted words, and private messages
DCC CHAT support
Doubleclickable URL's
Support for multiple languages using LOCALE
Clone detection
Auto reconnection to Servers upon disconnection
Command aliases
Chat display can be toggled between AmIRC and mIRC style
Counter for Unread messages
Graphical nicklist and graphical smileys with a popup chooser
</pre>
====IRC Aircos ====
Double click on Aircos icon in Extras:Networking/Apps/Aircos. It has been set up with a guest account for trial purposes. Though ideally, choose a nickname and password for frequent use of irc.
====IRC and XMPP Jabberwocky====
Servers are setup and close down at random
You sign up to a server that someone else has setup and access chat services through them.
The two ways to access chat from jabberwocky
<pre >
Jabberwocky -> Server -> XMPP -> open and ad-free
Jabberwocky -> Server -> Transports (Gateways) -> Proprietary closed systems
</pre >
The Jabber.org service connects with all IM services that use XMPP, the open standard for instant messaging and presence over the Internet. The services we connect with include Google Talk (closed), Live Journal Talk, Nimbuzz, Ovi, and thousands more. However, you can not connect from Jabber.org to proprietary services like AIM, ICQ, MSN, Skype, or Yahoo because they don’t yet use XMPP components (XEP-0114) '''but''' you can use Jabber.com's servers and IM gateways (MSN, ICQ, Yahoo etc.) instead.
The best way to use jabberwocky is in conjunction with a public jabber server with '''transports''' to your favorite services, like gtalk, Facebook, yahoo, ICQ, AIM, etc.
You have to register with one of the servers, [https://list.jabber.at/ this list] or [http://www.jabberes.org/servers/ another list], [http://xmpp.net/ this security XMPP list],
Unfortunately jabberwocky can only connect to one server at a time so it is best to check what services each server offers. If you set it up with separate Facebook and google talk accounts, for example, sometimes you'll only get one or the other.
Jabberwocky open a window where the Jabber server part is typed in as well as your Nickname and Password.
Jabber ID (JID) identifies you to the server and other users.
Once registered the next step is to goto Jabberwocky's "Windows" menu and select the "Agents" option. The "Agents List" window will open.
Roster (contacts list)
[http://search.wensley.org.uk/ Chatrooms] (MUC) are available
File Transfer - can send and receive files through the Jabber service but not with other services like IRC, ICQ, AIM or Yahoo. All you need is an installed webbrowser and OpenURL.
Clickable URLs - The message window uses Mailtext.mcc and you can set a URL action in the MUI mailtext prefs like SYS:Utils/OpenURL %s NEWWIN.
There is no consistent Skype like (H.323 VoIP) video conferencing available over Jabber. The move from xmpp to Jingle should help but no support on any amiga-like systems at the moment. [http://aminet.net/package/dev/src/AmiPhoneSrc192 AmiPhone] and [http://www.lysator.liu.se/%28frame,faq,nobg,useframes%29/ahi/v4-site/ Speak Freely] was an early attempt voice only contact. SIP and Asterisk are other PBX options.
Facebook
If you're using the XMPP transport provided by Facebook themselves, chat.facebook.com, it looks like they're now requiring SSL transport. This means jabberwocky method below will no longer work. The best thing to do is to create an ID on a public jabber server which has a Facebook gateway.
<pre >
1. launch jabberwocky
2. if the login window doesn't appear on launch, select 'account' from the jabberwocky menu
3. your jabber ID will be user@chat.facebook.com where user is your user ID
4. your password is your normal facebook password
5. to save this for next time, click the popup gadget next to the ID field
6. click the 'add' button
7. click the 'close' button
8. click the 'connect' button
</pre >
you're done. you can also click the 'save as default account' button if you want. jabberwocky configured to auto-connect when launching the program, but you can configure as you like. there is amigaguide documentation included with jabberwocky.
[http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=37085&forum=32 Read more here]
for Facebook users, you can log-in directly to Facebook with jabberwocky. just sign in as @chat.facebook.com with your Facebook password as the password
Twitter
For a few years, there has been added a twitter transport. Servers include [http://jabber.hot-chilli.net/ jabber.hot-chili.net], and .
An [http://jabber.hot-chilli.net/tag/how-tos/ How-to]
:Read [http://jabber.hot-chilli.net/2010/05/09/twitter-transport-working/ more]
Instagram
no support at the moment best to use a web browser based client
ICQ
The new version (beta) of StriCQ uses a newer ICQ protocol. Most of the ICQ Jabber Transports still use an older ICQ protocol. You can only talk one-way to StriCQ using the older Transports. Only the newer ICQv7 Transport lets you talk both ways to StriCQ. Look at the server lists in the first section to check.
Register on a Jabber server, e.g. this one works: http://www.jabber.de/
Then login into Jabberwocky with the following login data e.g. xxx@jabber.de / Password: xxx Now add your ICQ account under the window->Agents->"Register". Now Jabberwocky connects via the Jabber.de server with your ICQ account.
Yahoo Messenger
although yahoo! does not use xmpp protocol, you should be able to use the transport methods to gain access and post your replies
MSN
early months of 2013 Microsoft will ditch MSN Messenger client and force everyone to use Skype...but MSN protocol and servers will keep working as usual for quite a long time....
Occasionally the Messenger servers have been experiencing problems signing in. You may need to sign in at www.outlook.com and then try again. It may also take multiple tries to sign in. (This also affects you if you’re using Skype.)
You have to check each servers' Agents List to see what transports (MSN protocol, ICQ protocol, etc.) are supported or use the list address' provided in the section above. Then register with each transport (IRC, MSN, ICQ, etc.) to which you need access. After registering you can Connect to start chatting.
msn.jabber.com/registered should appear in the window.
From this [http://tech.dir.groups.yahoo.com/group/amiga-jabberwocky/message/1378 JW group] guide which helps with this process in a clear, step by step procedure.
1. Sign up on MSN's site for a passport account. This typically involves getting a Hotmail address.
2. Log on to the Jabber server of your choice and do the following:
* Select the "Windows/Agents" menu option in Jabberwocky.
* Select the MSN Agent from the list presented by the server.
* Click the Register button to open a new window asking for:
**Username = passort account email address, typically your hotmail address.
**Nick = Screen name to be shown to anyone you add to your buddy list.
**Password = Password for your passport account/hotmail address.
* Click the Register button at the bottom of the new window.
3. If all goes well, you will see the MSN Gateway added to your buddy list. If not, repeat part 2 on another server. Some servers may show MSN in their list of available agents, but have not updated their software for the latest protocols used by MSN.
4. Once you are registered, you can now add people to your buddy list. Note that you need to include the '''msn.''' ahead of the servername so that it knows what gateway agent to use. Some servers may use a slight variation and require '''msg.gate.''' before the server name, so try both to see what works.
If my friend's msn was amiga@hotmail.co.uk and my jabber server was @jabber.meta.net.nz..
then amiga'''%'''hotmail.com@'''msn.'''jabber.meta.net.nz
or another the trick to import MSN contacts is that you don't type the hotmail URL but the passport URL... e.g. Instead of: goodvibe%hotmail.com@msn.jabber.com You type: goodvibe%passport.com@msn.jabber.com
And the thing about importing contacts I'm afraid you'll have to do it by hand, one at the time...
Google Talk
any XMPP server will work, but you have to add your contacts manually. a google talk user is typically either @gmail.com or @talk.google.com. a true gtalk transport is nice because it brings your contacts to you and (can) also support file transfers to/from google talk users.
implement Jingle a set of extensions to the IETF's Extensible Messaging and Presence Protocol (XMPP)
support ended early 2014 as Google moved to Google+ Hangouts which uses it own proprietary format
===Video Player MPlayer===
Many of the menu features (such as doubling) do not work with the current version of mplayer but using
4:3
mplayer -vf scale=800:600 file.avi
16:9
mplayer -vf scale=854:480 file.avi
if you want gui use;
mplayer -gui 1 <other params> file.avi
<pre >
stack 1000000
; using AspireOS 1.xx
; copy FROM SYS:Extras/Multimedia/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 1.x
; copy FROM SYS:Tools/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
; using Icaros Desktop 2.x
; copy FROM SYS:Utilities/MPlayer/ TO RAM:MPlayer ALL CLONE > Nil:
cd RAM:MPlayer
run MPlayer -gui > Nil:
;run MPlayer -gui -ao ahi_dev -playlist http://www.radio-paralax.de/listen.pls > Nil:
</pre >
$ mplayer rtsp://127.0.0.1:554/sample_300kbit.mp4
MPlayer supports multicast streaming, and rtp/rtsp protocols (it might require [http://www.live555.com/openRTSP/ live555 library] to work with some streams). But you might have to build it where it's disabled. Also, multicast won't work with some AmiTCP-likes. MIAMI supported it, though.
AROS supports IPv4 (old but works) and this includes the needed address space for RTP.
If you mean multicast via RTP - mplayer handles it. You can even force UDP over TCP
-rtsp-stream-over-tcp
If the rtsp Real Time Streaming Protocol server needs authentification:
-user -passwd
MPlayer - Menu - Open Playlist and load already downloaded .pls or .m3u file - auto starts around 4 percent cache
MPlayer - Menu - Open Stream and copy one of the .pls lines below into space allowed, press OK and press play button on main gui interface
Old 8bit 16bit remixes chip tune game music
http://www.radio-paralax.de/listen.pls
http://scenesat.com/
http://www.shoutcast.com/radio/Amiga
http://www.theoldcomputer.com/retro_radio/RetroRadio_Main.htm
http://www.kohina.com/
http://www.remix64.com/
http://retrogamer.net/forum/
http://retroasylum.podomatic.com/rss2.xml
http://retrogamesquad.com/
http://www.retronauts.com/
http://monsterfeet.com/noquarter/
http://www.retrogamingradio.com/
http://www.radiofeeds.co.uk/mp3.asp
[[#top|...to the top]]
====ZunePaint====
simplified typical workflow
* importing and organizing and photo management
* making global and regional local correction(s) - recalculation is necessary after each adjustment as it is not in real-time
* exporting your images in the best format available with the preservation of metadata
Whilst achieving 80% of a great photo with just a filter, the remaining 20% comes from a manual fine-tuning of specific image attributes.
For photojournalism, documentary, and event coverage, minimal touching is recommended. Stick to Camera Raw for such shots, and limit changes to level adjustment, sharpness, noise reduction, and white balance correction.
For fashion or portrait shoots, a large amount of adjustment is allowed and usually ends up far from the original. Skin smoothing, blemish removal, eye touch-ups, etc. are common. Might alter the background a bit to emphasize the subject.
Product photography usually requires a lot of sharpening, spot removal, and focus stacking.
For landscape shots, best results are achieved by doing the maximum amount of preparation before/while taking the shot. No amount of processing can match timing, proper lighting, correct gear, optimal settings, etc. Excessive post-processing might give you a dramatic shot but best avoided in the long term.
* White Balance - Left Amiga or F12 and K and under "Misc color effects" tab with a pull down for White Balance - color temperature also known as AKA tint (movies) or tones (painting) - warm temp raise red reduce green blue - cool raise blue lower red green
* Exposure - exposure compensation, highlight/shadow recovery
* Noise Reduction - during RAW development or using external software
* Lens Corrections - distortion, vignetting, chromatic aberrations
* Detail - capture sharpening and local contrast enhancement
* Contrast - black point, levels (sliders) and curves tools (F12 and K)
* Framing - straighten () and crop (F12 and F)
* Refinements - color adjustments and selective enhancements - Left Amiga or F12 and K for RGB and YUV histogram tabs -
* Resizing - enlarge for a print or downsize for the web or email (F12 and D)
* Output Sharpening - customized for your subject matter and print/screen size
White Balance - F12 and K
scan your image for a shade which was meant to be white (neutral with each RGB value being equal) like paper or plastic which is in the same light as the subject of the picture. Use the dropper tool to select this color, similar colours will shift and you will have selected the perfect white balance for your part of the image - for the whole picture make sure RAZ or CLR button at the bottom is pressed before applying to the image above.
Exposure correction
F12 and K - YUV Y luminosity - RGB extra red tint - move red curve slightly down and move blue green curves slightly up
Workflows in practice
* Undo - Right AROS key or F12 and Z
* Redo - Right AROS key or F12 and R
First flatten your image (if necessary) and then do a rotation until the picture looks level.
* Crop the picture. Click the selection button and drag a box over the area of the picture you want to keep. Press the crop button and the rest of the photo will be gone.
* Adjust your saturation, exposure, hue levels, etc., (right AROS Key and K for color correction) until you are happy with the photo. Make sure you zoom in all of the way to 100% and look the photo over, zoom back out and move around. Look for obvious problems with the picture.
* After coloring and exposure do a sharpen (Right AROS key and E for Convolution and select drop down option needed), e.g. set the matrix to 5x5 (roughly equivalent Amount to 60%) and set the Radius to 1.0. Click OK.
And save your picture
Implemented or would like to see for simplification and ease of use
basic filters (presets) like black and white, monochrome, edge detection (sobel), motion/gaussian blur,
* negative, sepiatone, retro vintage, night vision, colour tint, color gradient, color temperature, glows, fire, lightning, lens flare, emboss, filmic, pixelate mezzotint, antialias, etc.
adjust / cosmetic tools such as crop,
* reshaping tools, straighten, smear, smooth, perspective, liquify, bloat, pucker, push pixels in any direction, dispersion, transform like warp, blending with soft light, page-curl, whirl, ripple, fisheye, neon, etc.
* red eye fixing, blemish remover, skin smoothing, teeth whitener, make eyes look brighter, desaturate,
effects like oil paint, cartoon, pencil sketch, charcoal, noise/matrix like sharpen/unsharpen, (right AROS key with A for Artistic effects)
* blend two image, gradient blend, masking blend, explode, implode, custom collage, surreal painting, comic book style, needlepoint, stained glass, watercolor, mosaic, stencil/outline, crayon, chalk, etc.
borders such as
* dropshadow, rounded, blurred, color tint, picture frame, film strip polaroid, bevelled edge, etc.
brushes e.g.
* frost, smoke, etc.
and manual control of
fix lens issues including vignetting (darkening), color fringing and barrel distortion, and chromatic and geometric aberration - lens and body profiles
perspective correction
levels - directly modify the levels of the tone-values of an image, by using sliders for highlights, midtones and shadows
curves - Color Adjustment and Brightness/Contrast
color balance
one single color transparent (alpha channel (color information/selections) for masking and/or blending ) for backgrounds, etc.
Threshold indicates how much other colors will be considered mixture of the removed color and non-removed colors
decompose layer into a set of layers with each holding a different type of pattern that is visible within the image
any selection using any selecting tools like lasso tool, marquee tool etc. the selection will temporarily be save to alpha
If you create your image without transparency then the Alpha channel is not present, but you can add later.
File formats like .psd (Photoshop file has layers, masks etc. contains edited sensor data. The original sensor data is no longer available) .xcf .raw .hdr
Image Picture Formats
* low dynamic range (JPEG, PNG, TIFF 8-bit), 16-bit (PPM, TIFF), typically as a 16-bit TIFF in either ProPhoto or AdobeRGB colorspace - TIFF files are also fairly universal – although, if they contain proprietary data, such as Photoshop Adjustment Layers or Smart Filters, then they can only be opened by Photoshop making them proprietary.
* linear high dynamic range (HDR) images (PFM, [http://www.openexr.com/ ILM .EXR], jpg, [http://aminet.net/util/dtype cr2] (canon tiff based), hdr, NEF, CRW, ARW, MRW, ORF, RAF (Fuji), PEF, DCR, SRF, ERF, DNG files are RAW converted to an Adobe proprietary format - a container that can embed the raw file as well as the information needed to open it)
An old version of [http://archives.aros-exec.org/index.php?function=browse&cat=graphics/convert dcraw]
There is no single RAW file format. Each camera manufacturer has one or more unique RAW formats. RAW files contain the brightness levels data captured by the camera sensor. This data cannot be modified. A second smaller file, separate XML file, or within a database with instructions for the RAW processor to change exposure, saturation etc. The extra data can be changed but the original sensor data is still there. RAW is technically least compatible.
A raw file is high-bit (usually 12 or 14 bits of information) but a camera-generated TIFF file will be usually converted by the camera (compressed, downsampled) to 8 bits. The raw file has no embedded color balance or color space, but the TIFF has both. These three things (smaller bit depth, embedded color balance, and embedded color space) make it so that the TIFF will lose quality more quickly with image adjustments than the raw file. The camera-generated TIFF image is much more like a camera processed JPEG than a raw file. A strong advantage goes to the raw file. The power of RAW files, such as the ability to set any color temperature non-destructively and will contain more tonal values.
The principle of preserving the maximum amount of information to as late as possible in the process. The final conversion - which will always effectively represent a "downsampling" - should prevent as much loss as possible.
Once you save it as TIFF, you throw away some of that data irretrievably. When saving in the lossy JPEG format, you get tremendous file size savings, but you've irreversibly thrown away a lot of image data. As long as you have the RAW file, original or otherwise, you have access to all of the image data as captured.
Keyboard equivalence with Photoshop(tm) would help
File
PHOTOSHOP SHORTCUT GIMP
New Ctrl+n New
Open Ctrl+o Open
Close Ctrl+w Close
Save Ctrl+s Save
Save as Shift+Ctrl+s Save as
Revert F12 Revert
Print Ctrl+p Print
Exit Ctrl+q Quit
Edit
PHOTOSHOP SHORTCUT GIMP
Undo/Redo (1 level) Ctrl+z Undo (Redo is Shift+Ctrl+z)
Cut Ctrl+x Cut
Copy Ctrl+c Copy
Paste Ctrl+v Paste
Paste Into Shift+Ctrl+v Paste Into
Fill with FG color Alt+Backspace Fill with FG color
Fill with BG color Control+Backspace Fill with BG color
Image/Colors
PHOTOSHOP SHORTCUT GIMP
Levels Ctrl+l Levels
Auto Contrast Shift+Ctrl+Alt+l Stretch Contrast (same?)
Curves Ctrl+m Curves
Color Balance Ctrl+b Color Balance
Hue/Saturation Ctrl+u Hue-Saturation
Desaturate Shift+Ctrl+u Desaturate
Invert Ctrl+i Invert
Default Colors d Default Colors
Switch Colors x Switch Colors
Layer
PHOTOSHOP SHORTCUT GIMP
New Layer Shift+Ctrl+n New Layer
Layer via Copy Ctrl+j Duplicate Layer
Bring (layer) to Front Shift+Ctrl+] Layer to Top
Send (layer) to Back Shift+Ctrl+[ Layer to Bottom
Bring (layer) Forward Ctrl+] Raise Layer
Send (layer) Backward Ctrl+[ Lower Layer
Select Top Layer Shift+Alt+] Select Top Layer
Select Bottom Layer Shift+Alt+[ Select Bottom Layer
Select One Layer Forward Alt+] Select Previous Layer
Select One Layer Backward Alt+[ Select Next Layer
Merge Down Ctrl+e Merge Down
Merge Visible Shift+Ctrl+e Merge Visible
Preserve Transparency / Keep Transparency
Cycle Modes Forwards Shift+= Next Layer Mode
Cycle Modes Backwards Shift+- Previous Layer Mode
Select
PHOTOSHOP SHORTCUT GIMP
Select All Ctrl+a Select All
Deselect Ctrl+d Select None
Inverse Shift+Ctrl+i Invert
Feather Ctrl+Alt+d Feather
View
PHOTOSHOP SHORTCUT GIMP
Zoom In Ctrl+= Zoom In
Zoom Out Ctrl+- Zoom Out
Fit on Screen Ctrl+0 Zoom to Fit Window
Actual Pixels Ctrl+Alt+0 Zoom 1:1
Show/Hide Extras Ctrl+h Toggle Show Selection (close enough?)
Show/Hide Guides Ctrl+' Toggle Show Guides
Show/Hide Grid Ctrl+Alt+' Toggle Show Grid
Show/Hide Rulers Ctrl+r Toggle Show Rulers
Snap Ctrl+; Snap to Guides
Scroll View Up Page Up Scroll Page Up
Scroll View Down Page Down Scroll Page Down
Scroll View Left Ctrl+Page Up Scroll Page Left
Scroll View Right Ctrl+Page Down Scroll Page Right
Window/Dialogs
PHOTOSHOP SHORTCUT GIMP
? F5 Tools Dialog
Color Tab F6 Colors Dialog
Layers Tab F7 Layers Dialog
Info Tab F8 Image Information
Tools
PHOTOSHOP SHORTCUT GIMP
Rectangular Marquee Tool m Rect Select Tool
Elliptical Marquee Tool Shift+m Ellipse Select Tool
*This is a toggle between 'Elliptical Marquee Tool' and 'Rectangular Marquee Tool' in Photoshop
Move Tool v Move Tool
Lasso Tool l Free Select Tool
Magic Wand Tool w Fuzzy Select Tool
Crop Tool c Crop & Resize Tool
Airbrush Tool j Airbrush Tool
Paintbrush Tool b Paintbrush Tool
Clone Stamp Tool s Clone Stamp Tool
Eraser Tool e Eraser Tool
Gradient Tool g Blend Tool
Paint Bucket Tool Shift+g Bucket Fill Tool
*This is a toggle between 'Paint Bucket Tool' and 'Gradient Tool' in Photoshop
Blur Tool r Convolve Tool
Dodge Tool o DodgeBurn Tool
Type Tool t Text Tool
Pen Tool p Bezier Select Tool
Eye Dropper Tool i Color Picker Tool
Zoom Tool z Magnify Tool
Previous Brush , Previous Brush
Next Brush . Next Brush
First Brush Shift+< First Brush
Last Brush Shift+> Last Brush
Decrease Brush Size [ Decrease Brush Size
Increase Brush Size ] Increase Brush Size
Decrease Brush Hardness { Decrease Brush Hardness
Increase Brush Hardness } Increase Brush Hardness
Help
PHOTOSHOP SHORTCUT GIMP
Help F1 Help
Context Help Shift+F1 Context Help
Misc.
PHOTOSHOP SHORTCUT GIMP
Last Filter Ctrl+f Repeat Last Filter
? Shift+Ctrl+f Reshow Last Filter
Preferences Ctrl+k Preferences
Liquify Shift+Ctrl+x IWarp (close enough?)
Toggle Quick Mask q Toggle Quick Mask
Spotlights - triangle of white opaque shape
Cutting out and/or replacing unwanted background or features - select large areas with the selection option like the Magic Wand tool (aka Color Range) or the Lasso (quick and fast) with feather 2 to soften edge or the pen tool which adds points/lines/Bézier curves (better control but slower), hold down the shift button as you click to add extra points/areas of the subject matter to remove. Increase the tolerance to cover more areas. To subtract from your selection hold down alt as you're clicking.
* Layer masks are a better way of working than Erase they clip (black hides/hidden white visible/reveal). Clone Stamp can be simulated by and brushes for other areas.
* Leave the fine details like hair, fur, etc. to later with lasso and the shift key to draw a line all the way around your subject. Gradient Mapping - Inverse - Mask. i.e. Refine your selected image with edge detection and using the radius and edge options / adjuster (increase/decrease contrast) so that you will capture more fine detail from the background allowing easier removal.
Remove fringe/halo
saving image as png rather than jpg/jpeg to keep transparency background intact.
Implemented [http://colorizer.org/ colour model representations] [http://paulbourke.net/texture_colour/colourspace/ Mathematical approach] - Photo stills are spatially 2d (h and w), but are colorimetrically 3d (r g and b, or H L S, or Y U V etc.) as well.
* RGB - split cubed mapped color model for photos and computer graphics hardware using the light spectrum (adding and subtracting)
* YUV - Y-Lightness U-blue/yellow V-red/cyan (similar to YPbPr and YCbCr) used in the PAL, NTSC, and SECAM composite digital TV color [http://crewofone.com/2012/chroma-subsampling-and-transcoding/#comment-7299 video]
Histograms
White balanced (neutral) if the spike happens in the same place in each channel of the RGB graphs. If not, you're not balanced.
If you have sky you'll see the blue channel further off to the right.
RGB is best one to change colours. These elements RGB is a 3-channel format containing data for Red, Green, and Blue in your photo scale between 0 and 255. The area in a picture that appears to be brighter/whiter contains more red color as compared to the area which is relatively darker. Similarly in the green channel the area that appears to be darker contains less amount of green color as compared to the area that appears to be brighter. Similarly in the blue channel the area appears to be darker contains less amount of blue color as compared to the area that appears to be brighter. Brightness luminance histogram also matches the green histogram more than any other color - human eye interprets green better e.g. RGB rough ratio 15/55/30%
RGBA (RGB+A, A means alpha channel) . The alpha channel is used for "alpha compositing", which can mostly be associated as "opacity". AROS deals in RGB with two digits for every color (red, green, blue), in ARGB you have two additional hex digits for the alpha channel.
The shadows are represented by the left third of the graph. The highlights are represented by the right third. And the midtones are, of course, in the middle. The higher the black peaks in the graph, the more pixels are concentrated in that tonal range (total black area).
By moving the black endpoint, which identifies the shadows (darkness) and a white light endpoint (brightness) up and down either sides of the graph, colors are adjusted based on these points.
By dragging the central one, can increased the midtones and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
RGB Curves
* Move left endpoint (black point) up or right endpoint (white point) up brightens
* Move left endpoint down or right endpoint down darkens
Color Curves
* Dragging up on the Red Curve increases the intensity of the reds in the image but
* Dragging down on the Red Curve decreases the intensity of the reds and thus increases the apparent intensity of its complimentary color, cyan. Green’s complimentary color is magenta, and blue’s is yellow.
<pre>
Red <-> Cyan
Green <->Magenta
Blue <->Yellow
</pre>
YUV Best option to analyse and pull out statistical elements of any picture (i.e. separate luminance data from color data). The line in Y luma tone box represents the brightness of the image with the point in the bottom left been black, and the point in the top right as white. A low-contrast image has a concentrated clump of values nearer to the center of the graph. By comparison, a high-contrast image has a wider distribution of values across the entire width of the Histogram. A histogram that is skewed to the right would indicate a picture that is a bit overexposed because most of the color data is on the lighter side (increase exposure with higher value F), while a histogram with the curve on the left shows a picture that is underexposed. This is good information to have when using post-processing software because it shows you not only where the color data exists for a given picture, but also where any data has been clipped (extremes on edges of either side): that is, it does not exist and, therefore, cannot be edited. By dragging the endpoints of the line and as well as the central one, can increased the dark/shadows, midtones and light/bright parts and control the contrast, raise shadows levels, clip or softly eliminate unsafe levels, alter gamma, etc... in a way that is much more precise and creative .
The U and V chroma parts show color difference components of the image. It’s useful for checking whether or not the overall chroma is too high, and also whether it’s being limited too much
Can be used to create a negative image but also
With U (Cb), the higher value you are, the more you're on the blue primary color. If you go to the low values then you're on blue complementary color, i.e. yellow.
With V (Cr), this is the same principle but with Red and Cyan.
e.g. If you push U full blue and V full red, you get magenta. If you push U full yellow and V full Cyan then you get green.
YUV simultaneously adds to one side of the color equation while subtracting from the other.
using YUV to do color correction can be very problematic because each curve alters the result of each other: the mutual influence between U and V often makes things tricky. You may also be careful in what you do to avoid the raise of noise (which happens very easily). Best results are obtained with little adjustments
sunset that looks uninspiring and needs some color pop especially for the rays over the hill, a subtle contrast raise while setting luma values back to the legal range without hard clipping.
====Lunapaint====
Pixel based drawing app with onion-skin animation function
Blocking, Shading, Coloring, adding detail
<pre>
b BRUSH
e ERASER
alt eyedropper
v layer tool
z ZOOM / MAGNIFY < > n
spc panning
m marque
q lasso
w same color selection / region
</pre>
<pre>
, LM RM
v
V
f filter
F
. size
p
, pick color
[] last / next color
</pre>
There is not much missing in Lunapaint to be as good as FlipBook and then you have to take into account that Flipbook is considered to be amongst the best and easiest to use animation software out there. Ok to be honest Flipbook has some nice features that require more heavy work but those aren't so much needed right away, things like camera effects, sound, smart fill, export to different movie file formats etc.
Tried Flipbook with my tablet and compared it to Luna. The feeling is the same when sketching. LunaPaint is very responsive/fluent to draw with. Just as Flipbook is, and that responsiveness is something its users have mentioned as one of the positive sides of said software.
author was learning MUI. Some parts just have to be rewritten with proper MUI classes before new features can be added.
* add [Frame Add] / [Frame Del]
* whole animation feature is impossible to use. If you draw 2 color maybe but if you start coloring your cells then you get in trouble
* pickup the entire image as a brush, not just a selection ? And consequently remove the brush from memory when one doesn't need it anymore. can pick up a brush and put it onto a new image but cropping isn't possible, nor to load/save brushes.
* Undo is something I longed for ages in Lunapaint.
* to import into the current layer, other types of images (e.g. JPEG) besides RAW64.
* implement graphic tablet features support
**GENERAL DRAWING**
Miss it very much:
UNDO
ERASER
COLORPICKER - has to show on palette too which color got picked.
BACKGROUND COLOR -Possibility to select from "New project screen"
Miss it somewhat:
ICON for UNDO
ICON for ERASER
ICON for CLEAR SCREEN ( What can I say? I start over from scratch very often )
BRUSH - possibility to cut out as brush not just copy off image to brush
**ANIMATING**
Miss it very much:
NUMBER OF CELLS - Possibity to change total no. of cells during project
ANIM BRUSH - Possibility to pick up a selected part of cells into an animbrush
Miss it somewhat:
ADD/REMOVE FRAMES: Add/remove single frame
In general LunaPaint is really well done and it feels like a new DeluxePaint version. It works with my tablet. Sure there's much missing of course but things can always be added over time. So there is great potential in LunaPaint that's for sure. Animations could be made in it and maybe put together in QuickVideo, saving in .gif or .mng etc some day.
LAYERS
-Layers names don't get saved globally in animation frames
-Layers order don't change globally in an animation (perhaps as default?).
EXPORTING IMAGES
-Exporting frames to JPG/PNG gives problems with colors. (wrong colors. See my animatiopn --> My robot was blue now it's "gold" ) I think this only happens if you have layers.
-Trying to flatten the layers before export doesn't work if you have animation frames only the one you have visible will flatten properly all other frames are destroyed. (Only one of the layers are visible on them)
-Exporting images filenames should be for example e.g. file0001, file0002...file0010 instead as of now file1, file2...file10
LOAD/SAVE (Preferences)
-Make a setting for the default "Work" folder.
* Destroyed colors if exported image/frame has layers
* mystic color cycling of the selected color while stepping frames back/forth (annoying)
<pre>
Deluxe Paint II enhanced key shortcuts
NOTE: @ denotes the ALT key
[Technique]
F1 - Paint
F2 - Single Colour
F3 - Replace
F4 - Smear
F5 - Shade
F6 - Cycle
F7 - Smooth
M - Colour Cycle
[Brush]
B - Restore
O - Outline
h - Halve brush size
H - Double brush size
x - Flip brush on X axis
X - Double brush size on X axis only
y - Flip on Y
Y - Double on Y
z - Rotate brush 90 degrees
Z - Stretch
[Stencil]
` - Stencil On
[Miscellaneous]
F9 - Info Bar
F10 - Selection Bar
@o - Co-Ordinates
@a - Anti-alias
@r - Colourise
@t - Translucent
TAB - Colour Cycle
[Picture]
L - Load
S - Save
j - Page to Spare(Flip)
J - Page to Spare(Copy)
V - View Page
Q - Quit
[General Keys]
m - Magnify
< - Zoom In
> - Zoom Out
[ - Palette Colour Up
] - Palette Colour Down
( - Palette Colour Left
) - Palette Colour Right
, - Eye Dropper
. - Pixel / Brush Toggle
/ - Symmetry
| - Co-Ordinates
INS - Perspective Control
+/- - Brush Size (Fine Control)
w - Unfilled Polygon
W - Filled Polygon
e - Unfilled Ellipse
E - Filled Ellipse
r - Unfilled Rectangle
R - Filled Rectangle
t - Type/text tool
a - Select Font
u/U - Undo
d - Brush
D - Filled Non-Uniform Polygon
f/F - Fill Options
g/G - Grid
h/H - Brush Size (Coarse Control)
K - Clear
c - Unfilled Circle
C - Filled Circle
v - Line
b - Scissor Select and Toggle
B - Brush
{,} - Toggle between two background colours
</pre>
====Lodepaint====
Pixel based painting artwork app
====Grafx2====
Pixel based painting artwork app aesprite like
[https://www.youtube.com/watch?v=59Y6OTzNrhk aesprite workflow keys and tablet use], [],
====Vector Graphics ZuneFIG====
Vector Image Editing of files .svg .ps .eps
*Objects - raise lower rotate flip aligning snapping
*Path - unify subtract intersect exclude divide
*Colour - fill stroke
*Stroke - size
*Brushes -
*Layers -
*Effects - gaussian bevels glows shadows
*Text -
*Transform -
AmiFIG ([http://epb.lbl.gov/xfig/frm_introduction.html xfig manual])
[[File:MyScreen.png|thumb|left|alt=Showing all Windows open in AmiFIG.|All windows available to AmiFIG.]]
for drawing simple to intermediate vector graphic images for scientific and technical uses and for illustration purposes for those with talent
;Menu options
* Load - fig format but import(s) SVG
* Save - fig format but export(s) eps, ps, pdf, svg and png
* PAN = Ctrl + Arrow keys
* Deselect all points
There is no selected object until you apply the tool, and the selected object is not highlighted.
;Metrics - to set up page and styles - first window to open on new drawings
;Tools - Drawing Primitives - set Attributes window first before clicking any Tools button(s)
* Shapes - circles, ellipses, arcs, splines, boxes, polygon
* Lines - polylines
* Text "T" button
* Photos - bitmaps
* Compound - Glue, Break, Scale
* POINTs - Move, Add, Remove
* Objects - Move, Copy, Delete, Mirror, Rotate, Paste
use right mouse button to stop extra lines, shapes being formed and the left mouse to select/deselect tools button(s)
* Rotate - moves in 90 degree turns centered on clicked POINT of a polygon or square
;Attributes which provide change(s) to the above primitives
* Color
* Line Width
* Line Style
* arrowheads
;Modes
Choose from freehand, charts, figures, magnet, etc.
;Library - allows .fig clip-art to be stored
* compound tools to add .fig(s) together
;FIG 3.2 [http://epb.lbl.gov/xfig/fig-format.html Format] as produced by xfig version 3.2.5
<pre>
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
4 0 0 50 -1 0 12 0.0000 4 135 1050 1050 2475 This is a test.01
</pre>
# change the text alignment within the textbox. I can choose left, center, or right aligned by either changing the integer in the second column from 0 (left) to 1 or 2 (center, or right).
# The third integer in the row specifies fontcolor. For instance, 0 is black, but blue is 1 and Green3 is 13.
# The sixth integer in the bottom row specifies fontface. 0 is Times-Roman, but 16 is Helvetica (a MATLAB default).
# The seventh number is fontsize. 12 represents a 12pt fontsize. Changing the fontsize of an item really is as easy as changing that number to 20.
# The next number is the counter-clockwise angle of the text. Notice that I have changed the angle to .7854 (pi/4 rounded to four digits=45 degrees).
# twelfth number is the position according to the standard “x-axis” in Xfig units from the left. Note that 1200 Xfig units is equivalent to once inch.
# thirteenth number is the “y-position” from the top using the same unit convention as before.
* The nested text string is what you entered into the textbox.
* The “01″ present at the end of that line in the .fig file is the closing tag. For instance, a change to \100 appends a @ symbol at the end of the period of that sentence.
; Just to note there are no layers, no 3d functions, no shading, no transparency, no animation
[[#top|...to the top]]
===Audio===
# AHI uses linear panning/balance, which means that in the center, you will get -6dB. If an app uses panning, this is what you will get. Note that apps like Audio Evolution need panning, so they will have this problem.
# When using AHI Hifi modes, mixing is done in 32-bit and sent as 32-bit data to the driver. The Envy24HT driver uses that to output at 24-bit (always).
# For the Envy24/Envy24HT, I've made 16-bit and 24-bit inputs (called Line-in 16-bit, Line-in 24-bit etc.). There is unfortunately no app that can handle 24-bit recording.
====Music Mods====
Digital module (mods) trackers are music creation software using samples and sometimes soundfonts, audio plugins (VST, AU or RTAS), MIDI.
Generally, MODs are similar to MIDI in that they contain note on/off and other sequence messages that control the mod player. Unlike (most) midi files, however, they also contain sound samples that the sequence information actually plays. MOD files can have many channels (classic amiga mods have 4, corresponding to the inbuilt sound channels), but unlike MIDI, each channel can typically play only one note at once. However, since that note might be a sample of a chord, a drumloop or other complex sound, this is not as limiting as it sounds.
Like MIDI, notes will play indefinitely if they're not instructed to end. Most trackers record this information automatically if you play your music in live. If you're using manual note entry, you can enter a note-off command with a keyboard shortcut - usually Caps Lock.
In fact when considering file size MOD is not always the best option. Even a dummy song wastes few kilobytes for nothing when a simple SID tune could be few hundreds bytes and not bigger than 64kB. AHX is another small format, AHX tunes are never larger than 64kB excluding comments.
[https://www.youtube.com/watch?v=rXXsZfwgil Protrekkr] (previously aka [w:Juan_Antonio_Arguelles_Rius|NoiseTrekkr])
If Protrekkr does not start, please check if the Unit 0 has been setup in the AHI prefs and still not, go to the directory utilities/protrekkr and double click on the Protrekkr icon
*Sample
*Note - Effect
*Track (column) - Pattern - Order
It all starts with the Sample which is used to create Note(s) in a Track (column of a tracker)
The Note can be changed with an Effect. A Track of Note(s) can be collected into a Pattern (section of a song) and these can be given Order to create the whole song.
Patience (notes have to be entered one at a time) or playing the bassline on a midi controller (faster - see midi section above). Best approach is to wait until a melody popped into your head.
*Up-tempo means the track should be reasonably fast, but not super-fast.
*Groovy and funky imply the track should have some sort of "swing" feel, with plenty of syncopation or off beat emphasis and a recognizable, melodic bass line.
*Sweet and happy mean upbeat melodies, a major key and avoiding harsh sounds.
*Moody - minor key
First, create a quick bass sound, which is basically a sine wave, but can be hand drawn for a little more variance. It could also work for the melody part, too.
This is usually a bass guitar or some kind of synthesizer bass. The bass line is often forgotten by inexperienced composers, but it plays an important role in a musical piece. Together with the rhythm section the bass line forms the groove of a song. It's the glue between the rhythm section and the melodic layer of a song.
The drums are just pink noise samples, played at different frequencies to get a slightly different sound for the kick, snare, and hihats.
Instruments that fall into the rhythm category are bass drums, snares, hi-hats, toms, cymbals, congas, tambourines, shakers, etc. Any percussive instrument can be used to form part of the rhythm section.
The lead is the instrument that plays the main melody, on top of the chords. There are many instruments that can play a lead section, like a guitar, a piano, a saxophone or a flute. The list is almost endless. There is a lot of overlap with instruments that play chords. Often in one piece an instrument serves both roles. The lead melody is often played at a higher pitch than the chords.
Listened back to what was produced so far, and a counter-melody can be imagined, which can be added with a triangle wave.
To give the ends of phrases some life, you can add a solo part with a crunchy synth. By hitting random notes in the key of G, then edited a few of them.
For the climax of the song, filled out the texture with a gentle high-pitch pad… …and a grungy bass synth.
The arrow at A points at the pattern order list. As you see, the patterns don't have to be in numerical order. This song starts with pattern "00", then pattern "02", then "03", then "01", etcetera. Patterns may be repeated throughout a song.
The B arrow points at the song title. Below it are the global BPM and speed parameters. These determine the tempo of the song, unless the tempo is altered through effect commands during the song.
The C arrow points at the list of instruments. An instrument may consist of multiple samples. Which sample will be played depends on the note. This can be set in the Instrument Editing screen. Most instruments will consist of just one sample, though. The sample list for the selected instrument can be found under arrow D.
Here's a part of the main editing screen. This is where you put in actual notes. Up to 32 channels can be used, meaning 32 sounds can play simultaneously. The first six channels of pattern "03" at order "02" are shown here. The arrow at A points at the row number. The B arrow points at the note to play, in this case a C4. The column pointed at by the C arrow tells us which instrument is associated with that note, in this case instrument #1 "Kick".
The column at D is used (mainly) for volume commands. In this case it is left empty which means the instrument should play at its default volume. You can see the volume column being used in channel #6.
The E column tells us which effect to use and any parameters for that effect. In this case it holds the "F" effect, which is a tempo command. The "04" means it should play at tempo 4 (a smaller number means faster).
Base pattern
When I create a new track I start with what I call the base pattern. It is worthwhile to spend some time polishing it as a lot of the ideas in the base pattern will be copied and used in other patterns. At least, that's how I work. Every musician will have his own way of working. In "Wild Bunnies" the base pattern is pattern "03" at order "02".
In the section about selecting samples I talked about the four different categories of instruments: drums, bass, chords and leads. That's also how I usually go about making the base pattern. I start by making a drum pattern, then add a bass line, place some chords and top it off with a lead. This forms the base pattern from which the rest of the song will grow.
Drums
Here's a screenshot of the first four rows of the base pattern. I usually reserve the first four channels or so for the drum instruments. Right away there are a couple of tricks shown here. In the first channel the kick, or bass drum, plays some notes. Note the alternating F04 and F02 commands. The "F" command alters the tempo of the song and by quickly alternating the tempo; the song will get some kind of "swing" feel.
In the second channel the closed hi-hat plays a fairly simple pattern. Further down in the channel, not shown here, some open hi-hat notes are added for a bit of variation.
In the third and fourth channel the snare sample plays. The "8" command is for panning. One note is panned hard to the left and the other hard to the right. One sample is played a semitone lower than the other. This results in a cool flanging effect. It makes the snare stand out a little more in the mix.
Bass line
There are two different instruments used for the bass line. Instrument #6 is a pretty standard synthesized bass sound. Instrument #A sounds a bit like a slap bass when used with a quick fade out. By using two different instruments the bass line sounds a bit more ”human”. The volume command is used to cut off the notes. However, it is never set to zero. Setting the volume to a very small value will result in a reverb-like effect. This makes the song sound more "live".
The bass line hints at the chords that will be played and the key the song will be in. In this case the key of the song is D-major, a positive and happy key.
Chords
The D major chords that are being played here are chords stabs; short sounds with a quick decay (fade out). Two different instruments (#8 and #9) are used to form the chords. These instruments are quite similar, but have a slightly different sound, panning and volume decay. Again, the reason for this is to make the sound more human. The volume command is used on some chords to simulate a delay, to achieve more of a live feel. The chords are placed off-beat making for a funky rhythm.
Lead
Finally the lead melody is added. The other instruments are invaluable in holding the track together, but the lead melody is usually what catches people's attention.
A lot of notes and commands are used here, but it looks more complex than it is. A stepwise ascending melody plays in channel 13. Channel 14 and 15 copy this melody, but play it a few rows later at a lower volume. This creates an echo effect. A bit of panning is used on the notes to create some stereo depth. Like with the bass line, instead of cutting off notes the volume is set to low values for a reverb effect. The "461" effect adds a little vibrato to the note, which sounds nice on sustained notes.
Those paying close attention may notice the instrument used here for the lead melody is the same as the one used for the bass line (#6 "Square"), except played two or three octaves higher. This instrument is a looped square wave sample. Each type of wave has its own quirks, but the square wave (shown below) is a really versatile wave form.
Song structure
Good, catchy songs are often carefully structured into sections, some of which are repeated throughout the song with small variations.
A typical pop-song structure is: Intro - Verse - Chorus - Verse - Chorus - Bridge - Chorus.
Other single sectional song structures are
<pre>
Strophic or AAA Song Form - oldest story telling with refrain (often title of the song) repeated in every verse section melody
AABA Song Form - early popular, jazz and gospel fading during the 1960s
AB or Verse/Chorus Song Form - songwriting format of choice for modern popular music since the 1960s
Verse/Chorus/Bridge Song Form
ABAB Song Form
ABAC Song Form
ABCD Song Form
AAB 12-Bar Song Form - three four-bar lines or sub-sections
8-Bar Song Form
16-Bar Song Form
Hybrid / Compound Song Forms
</pre>
The most common building blocks are:
#INTRODUCTION(INTRO)
#VERSE
#REFRAIN
#PRE-CHORUS / RISE / CLIMB
#CHORUS
#BRIDGE
#MIDDLE EIGHT
#SOLO / INSTRUMENTAL BREAK
#COLLISION
#CODA / OUTRO
#AD LIB (OFTEN IN CODA / OUTRO)
The chorus usually has more energy than the verse and often has a memorable melody line. As the chorus is repeated the most often during the song, it will be the part that people will remember.
The bridge often marks a change of direction in the song. It is not uncommon to change keys in the bridge, or at least to use a different chord sequence. The bridge is used to build up tension towards the big finale, the last repetition of chorus.
Playing
RCTRL: Play song from row 0.
LSHIFT + RCTRL: Play song from current row.
RALT: Play pattern from row 0.
LSHIFT + RALT: Play pattern from current row.
Left mouse on '>': Play song from row 0.
Right mouse on '>': Play song from current row.
Left mouse on '|>': Play pattern from row 0.
Right mouse on '|>': Play pattern from current row.
Left mouse on 'Edit/Record': Edit mode on/off.
Right mouse on 'Edit/Record': Record mode on/off.
Editing
LSHIFT + ESCAPE: Switch large patterns view on/off
TAB: Go to next track
LSHIFT + TAB: Go to prev. track
LCTRL + TAB: Go to next note in track
LCTRL + LSHIFT + TAB: Go to prev. note in track
SPACE: Toggle Edit mode On & Off
(Also stop if the song is being played)
SHIFT SPACE: Toggle Record mode On & Off
(Wait for a key note to be pressed
or a midi in message to be received)
DOWN ARROW: 1 Line down
UP ARROW: 1 Line up
LEFT ARROW: 1 Row left
RIGHT ARROW: 1 Row right
PREV. PAGE: 16 Arrows Up
NEXT PAGE: 16 Arrows Down
HOME / END: Top left / Bottom right of pattern
LCTRL + HOME / END: First / last track
F5, F6, F7, F8, F9: Jump to 0, 1/4, 2/4, 3/4, 4/4 lines of the patterns
+ - (Numeric keypad): Next / Previous pattern
LCTRL + LEFT / RIGHT: Next / Previous pattern
LCTRL + LALT + LEFT / RIGHT: Next / Previous position
LALT + LEFT / RIGHT: Next / Previous instrument
LSHIFT + M: Toggle mute state of the current channel
LCTRL + LSHIFT + M: Solo the current track / Unmute all
LSHIFT + F1 to F11: Select a tab/panel
LCTRL + 1 to 4: Select a copy buffer
Tracking
1st and 2nd keys rows: Upper octave row
3rd and 4th keys rows: Lower octave row
RSHIFT: Insert a note off
/ and * (Numeric keypad)
or F1 F2: -1 or +1 octave
INSERT / BACKSPACE: Insert or Delete a line in current track
or current selected block.
LSHIFT + INSERT / BACKSPACE: Insert or Delete a line in current pattern
DELETE (NOT BACKSPACE): Empty a column or a selected block.
Blocks
(Blocks can also be selected with the mouse by holding the right button and scrolling the pattern with the mouse wheel).
LCTRL + A: Select entire current track
LCTRL + LSHIFT + A: Select entire current pattern
LALT + A: Select entire column note in a track
LALT + LSHIFT + A: Select all notes of a track
LCTRL + X: Cut the selected block and copy it into the block-buffer
LCTRL + C: Copy the selected block into the block-buffer
LCTRL + V: Paste the data from the block buffer into the pattern
LCTRL + I: Interpolate selected data from the first to the last row of a selection
LSHIFT + ARROWS
PREV. PAGE
NEXT PAGE: Select a block
LCTRL + R: Randomize the select columns of a selection, works similar to CTRL + I (interpolating them)
LCTRL + U: Transpose the note of a selection to 1 seminote higher
LCTRL + D: Transpose the note of a selection to 1 seminote lower
LCTRL + LSHIFT + U: Transpose the note of a selection to 1 seminote higher (only for the current instrument)
LCTRL + LSHIFT + D: Transpose the note of a selection to 1 seminote lower (only for the current instrument)
LCTRL + H: Transpose the note of a selection to 1 octave higher
LCTRL + L: Transpose the note of a selection to 1 octave lower
LCTRL + LSHIFT + H: Transpose the note of a selection to 1 octave higher (only for the current instrument)
LCTRL + LSHIFT + L: Transpose the note of a selection to 1 octave lower (only for the current instrument)
LCTRL + W: Save the current selection into a file
Misc
LALT + ENTER: Switch between full screen / windowed mode
LALT + F4: Exit program (Windows only)
LCTRL + S: Save current module
LSHIFT + S: Switch top right panel to synths list
LSHIFT + I: Switch top right panel to instruments list
<pre>
C-x xh xx xx hhhh Volume
B-x xh xx xx hhhh Jump to
A#x xh xx xx hhhh hhhh Slide
F-x xh xx xx hhhh Tempo
D-x xh xx xx hhhh Pattern Break
G#x xh xx xx hhhh
</pre>
h Hex 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13
d Dec 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
The Set Volume command: C. Input a note, then move the cursor to the effects command column and type a C. Play the pattern, and you shouldn't be able to hear the note you placed the C by. This is because the effect parameters are 00. Change the two zeros to a 40(Hex)/64(Dec), depending on what your tracker uses. Play back the pattern again, and the note should come in at full volume.
The Position Jump command next. This is just a B followed by the position in the playing list that you want to jump to. One thing to remember is that the playing list always starts at 0, not 1. This command is usually in Hex.
Onto the volume slide command: A. This is slightly more complex (much more if you're using a newer tracker, if you want to achieve the results here, then set slides to Amiga, not linear), due to the fact it depends on the secondary tempo. For now set a secondary tempo of 06 (you can play around later), load a long or looped sample and input a note or two. A few rows after a note type in the effect command A. For the parameters use 0F. Play back the pattern, and you should notice that when the effect kicks in, the sample drops to a very low volume very quickly. Change the effect parameters to F0, and use a low volume command on the note. Play back the pattern, and when the slide kicks in the volume of the note should increase very quickly.
This because each part of the effect parameters for command A does a different thing. The first number slides the volume up, and the second slides it down. It's not recommended that you use both a volume up and volume down at the same time, due to the fact the tracker only looks for the first number that isn't set to 0. If you specify parameters of 8F, the tracker will see the 8, ignore the F, and slide the volume up. Using a slide up and down at same time just makes you look stupid. Don't do it...
The Set Tempo command: F, is pretty easy to understand. You simply specify the BPM (in Hex) that you want to change to. One important thing to note is that values of lower than 20 (Hex) sets the secondary tempo rather than the primary.
Another useful command is the Pattern Break: D. This will stop the playing of the current pattern and skip to the next one in the playing list. By using parameters of more than 00 you can also specify which line to begin playing from.
Command 3 is Portamento to Note. This slides the currently playing note to another note, at a specified speed. The slide then stops when it reaches the desired note.
<pre>
C-2 1 000 - Starts the note playing
--- 000
C-3 330 - Starts the slide to C-3 at a speed of 30.
--- 300 - Continues the slide
--- 300 - Continues the slide
</pre>
Once the parameters have been set, the command can be input again without any parameters, and it'll still perform the same function unless you change the parameters. This memory function allows certain commands to function correctly, such as command 5, which is the Portamento to Note and Volume Slide command. Once command 3 has been set up command 5 will simply take the parameters from that and perform a Portamento to Note. Any parameters set up for command 5 itself simply perform a Volume Slide identical to command A at the same time as the Portamento to Note.
This memory function will only operate in the same channel where the original parameters were set up.
There are various other commands which perform two functions at once. They will be described as we come across them.
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 00
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 02
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 05
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 08
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0A
C-3 04 .. .. 09 00 ---> C-3 04 .. .. 09 0D
C-3 04 .. .. 09 10 ---> C-3 04 .. .. 09 10
(You can also switch on the Slider Rec to On, and perform parameter-live-recording, such as cutoff transitions, resonance or panning tweaking, etc..) Note: this command only works for volume/panning and fx datas columns.
The next command we'll look at is the Portamento up/down: 1 and 2. Command 1 slides the pitch up at a specified speed, and 2 slides it down. This command works in a similar way to the volume slide, in that it is dependent on the secondary tempo. Both these commands have a memory dependent on each other, if you set the slide to a speed of 3 with the 1 command, a 2 command with no parameters will use the speed of 3 from the 1 command, and vice versa.
Command 4 is Vibrato. Vibrato is basically rapid changes in pitch, just try it, and you'll see what I mean. Parameters are in the format of xy, where x is the speed of the slide, and y is the depth of the slide. One important point to remember is to keep your vibratos subtle and natural so a depth of 3 or less and a reasonably fast speed, around 8, is usually used. Setting the depth too high can make the part sound out of tune from the rest.
Following on from command 4 is command 6. This is the Vibrato and Volume Slide command, and it has a memory like command 5, which you already know how to use.
Command 7 is Tremolo. This is similar to vibrato. Rather than changing the pitch it slides the volume. The effect parameters are in exactly the same format. vibrato effect (0x1dxy) x = speed y = depth (can't be used if arpeggio (0x1b) is turned on)
<pre>
C-7 00 .. .. 1B37 <- Turn Arpeggio effect on
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B38 <- Change datas
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 0000
--- .. .. .. 1B00 <- Turn it off
</pre>
Command 9 is Sample Offset. This starts the playback of the sample from a different place than the start. The effect parameters specify the sample offset, but only very roughly. Say you have a sample which is 8765(Hex) bytes long, and you wanted it to play from position 4321(Hex). The effect parameter could only be as accurate as the 43 part, and it would ignore the 21.
Command B is the Playing List/Order Jump command. The parameters specify the position in the Playing List/Order to jump to. When used in conjunction with command D you can specify the position and the line to play from.
Command E is pretty complex, as it is used for a lot of different things, depending on what the first parameter is. Let's take a trip through each effect in order.
Command E0 controls the hardware filter on an Amiga, which, as a low pass filter, cuts off the highest frequencies being played back. There are very few players and trackers on other system that simulate this function, not that you should need to use it. The second parameter, if set to 1, turns on the filter. If set to 0, the filter gets turned off.
Commands E1/E2 are Fine Portamento Up/Down. Exactly the same functions as commands 1/2, except that they only slide the pitch by a very small amount. These commands have a memory the same as 1/2 as well.
Command E3 sets the Glissando control. If parameters are set to 1 then when using command 3, any sliding will only use the notes in between the original note and the note being slid to. This produces a somewhat jumpier slide than usual. The best way to understand is to try it out for yourself. Produce a slow slide with command 3, listen to it, and then try using E31.
Command E4 is the Set Vibrato Waveform control. This command controls how the vibrato command slides the pitch. Parameters are 0 - Sine, 1 - Ramp Down (Saw), 2 - Square. By adding 4 to the parameters, the waveform will not be restarted when a new note is played e.g. 5 - Sine without restart.
Command E5 sets the Fine Tune of the instrument being played, but only for the particular note being played. It will override the default Fine Tune for the instrument. The parameters range from 0 to F, with 0 being -8 and F being +8 Fine Tune. A parameter of 8 gives no Fine Tune. If you're using a newer tracker that supports more than -8 to +8 e.g. -128 to +128, these parameters will give a rough Fine Tune, accurate to the nearest 16.
Command E6 is the Jump Loop command. You mark the beginning of the part of a pattern that you want to loop with E60, and then specify with E6x the end of the loop, where x is the number of times you want it to loop.
Command E7 is the Set Tremolo Waveform control. This has exactly the same parameters as command E4, except that it works for Tremolo rather than Vibrato.
Command E9 is for Retriggering the note quickly. The parameter specifies the interval between the retrigs. Use a value of less than the current secondary tempo, or else the note will not get retrigged.
Command EA/B are for Fine Volume Slide Up/Down. Much the same as the normal Volume Slides, except that these are easier to control since they don't depend on the secondary tempo. The parameters specify the amount to slide by e.g. if you have a sample playing at a volume of 08 (Hex) then the effect EA1 will slide this volume to 09 (Hex). A subsequent effect of EB4 would slide this volume down to 05 (Hex).
Command EC is the Note Cut. This sets the volume of the currently playing note to 0 at a specified tick. The parameters should be lower than the secondary tempo or else the effect won't work.
Command ED is the Note Delay. This should be used at the same time as a note is to be played, and the parameters will specify the number of ticks to delay playing the note. Again, keep the parameters lower than the secondary tempo, or the note won't get played!
Command EE is the Pattern Delay. This delays the pattern for the amount of time it would take to play a certain number of rows. The parameters specify how many rows to delay for.
Command EF is the Funk Repeat command. Set the sample loop to 0-1000. When EFx is used, the loop will be moved to 1000- 2000, then to 2000-3000 etc. After 9000-10000 the loop is set back to 0- 1000. The speed of the loop "movement" is defined by x. E is two times as slow as F, D is three times as slow as F etc. EF0 will turn the Funk Repeat off and reset the loop (to 0-1000).
effects 0x41 and 0x42 to control the volumes of the 2 303 units
There is a dedicated panel for synth parameter editing with coherent sections (osc, filter modulation, routing, so on) the interface is much nicer, much better to navigate with customizable colors, the reverb is now customizable (10 delay lines), It accepts newer types of Waves (higher bit rates, at least 24). Has a replay routine.
It's pretty much your basic VA synth. The problem isn't with the sampler being to high it's the synth is tuned two octaves too low, but if you want your samples tuned down just set the base note down 2 octaves (in the instrument panel).
so the synth is basically divided into 3 sections from left to right: oscillators/envelopes, then filter and LFO's, and in the right column you have mod routings and global settings.
for the oscillator section you have two normal oscillators (sine, saw, square, noise), the second of which is tunable, the first one tunes with the key pressed. Attached to OSC 1 is a sub-oscillator, which is a sawtooth wave tuned one octave down. The phase modulation controls the point in the duty cycle at which the oscillator starts. The ADSR envelope sliders (grouped with oscs) are for modulation envelope 1 and 2 respectively. you can use the synth as a sampler by choosing the instrument at the top.
In the filter column, the filter settings are: 1 = lowpass, 2 = highpass, 3 = off. cutoff and resonance. For the LFOs they are LFO 1 and LFO 2, the ADSR sliders in those are for the LFO itself.
For the modulation routings you have ENV 1, LFO 1 for the first slider and ENV 2, LFO 2 for the second, you can cycle through the individual routings there, and you can route each modulation source to multiple destinations of course, which is another big plus for this synth. Finally the glide time is for portamento and master volume, well, the master volume... it can go quite loud.
The sequencer is changed too, It's more like the one in AXS if you've used that, where you can mute tracks to re-use patterns with variation.
<pre>
Support for the following modules formats:
669 (Composer 669, Unis 669),
AMF (DSMI Advanced Module Format),
AMF (ASYLUM Music Format V1.0),
APUN (APlayer), DSM (DSIK internal format),
FAR (Farandole Composer),
GDM (General DigiMusic),
IT (Impulse Tracker),
IMF (Imago Orpheus),
MOD (15 and 31 instruments),
MED (OctaMED),
MTM (MultiTracker Module editor),
OKT (Amiga Oktalyzer),
S3M (Scream Tracker 3),
STM (Scream Tracker),
STX (Scream Tracker Music Interface Kit),
ULT (UltraTracker),
UNI (MikMod),
XM (FastTracker 2),
Mid (midi format via timidity)
</pre>
Possible plugin options include [http://lv2plug.in/ LV2],
====Midi - Musical Instrument Digital Interface====
A midi file typically contains music that plays on up to 16 channels (as per the midi standard), but many notes can simultaneously play on each channel (depending on the limit of the midi hardware playing it).
'''Timidity'''
Although usually already installed, you can uncompress the [http://www.libsdl.org/projects/SDL_mixer/ timidity.tar.gz (14MB)] into a suitable drawer like below's SYS:Extras/Audio/
assign timidity: SYS:Extras/Audio/timidity
added to SYSːs/User-Startup
'''WildMidi playback'''
'''Audio Evolution 4 (2003) 4.0.23 (from 2012)'''
*Sync Menu - CAMD Receive, Send checked
*Options Menu - MIDI Machine Control - Midi Bar Display - Select CAMD MIDI in / out - Midi Remote Setup
MCB Master Control Bus
*Sending a MIDI start-command and a Song Position Pointer, you can synchronize audio with an external MIDI sequencer (like B&P).
*B&P Receive, start AE, add AudioEvolution.ptool in Bars&Pipes track, press play / record in AE then press play in Pipes
*CAMD Receive, receive MIDI start or continue commands via camd.library sync to AE
*MIDI Machine Control
*Midi Bar Display
*Select CAMD MIDI in / out
*Midi Remote Setup - open requester for external MIDI controllers to control app mixer and transport controls cc remotely
Channel - mixer(vol, pan, mute, solo), eq, aux, fx,
Subgroup - Volume, Mute, Solo
Transport - Start, End, Play, Stop, Record, Rewind, Forward
Misc - Master vol., Bank Down, Bank up
<pre>
q - quit
First 3 already opened when AE started
F1 - timeline window
F2 - mixer
F3 - control
F4 - subgroups
F5 - aux returns
F6 - sample list
i - Load sample to use
space - start/stop play
b - reset time 0:00
s - split mode
r - open recording window
a - automation edit mode with p panning, m mute and v volume
[ / ] - zoom in / out
: - previous track
* - next track
x c v f - cut copy paste cross-fade
g - snap grid
</pre>
'''[http://bnp.hansfaust.de/ Bars n Pipes sequencer]'''
BarsnPipes debug ... in shell
Menu (right mouse)
*Song - Songs load and save in .song format but option here to load/save Midi_Files .mid in FORMAT0 or FORMAT1
*Track -
*Edit -
*Tool -
*Timing - SMTPE Synchronizing
*Windows -
*Preferences - Multiple MIDI-in option
Windows (some of these are usually already opened when Bars n Pipes starts up for the first time)
*Workflow -> Tracks, .... Song Construction, Time-line Scoring, Media Madness, Mix Maestro,
*Control -> Transport (or mini one), Windows (which collects all the Windows icons together-shortcut), .... Toolbox, Accessories, Metronome,
Once you have your windows placed on the screen that suits your workflow, Song -> Save as Default will save the positions, colors, icons, etc as you'd like them
If you need a particular setup of Tracks, Tools, Tempos etc, you save them all as a new song you can load each time
Right mouse menu -> Preferences -> Environment... -> ScreenMode - Linkages for Synch (to Slave) usbmidi.out.0 and Send (Master) usbmidi.in.0 - Clock MTC
'''Tracks'''
#Double-click on B&P's icon. B&P will then open with an empty Song. You can also double-click on a song icon to open a song in B&P.
#Choose a track. The B&P screen will contain a Tracks Window with a number of tracks shown as pipelines (Track 1, Track 2, etc...). To choose a track, simply click on the gray box to show an arrow-icon to highlight it. This icon show whether a track is chosen or not. To the right of the arrow-icon, you can see the icon for the midi-input. If you double-click on this icon you can change the MIDI-in setup.
#Choose Record for the track. To the right of the MIDI-input channel icon you can see a pipe. This leads to another clickable icon with that shows either P, R or M. This stands for Play, Record or Merge. To change the icon, simply click on it. If you choose P, this track can only play the track (you can't record anything). If you choose R, you can record what you play and it overwrites old stuff in the track. If you choose M, you merge new records with old stuff in the track. Choose R now to be able to make a record.
#Chose MIDI-channel. On the most right part of the track you can see an icon with a number in it. This is the MIDI-channel selector. Here you must choose a MIDI-channel that is available on your synthesizer/keyboard. If you choose General MIDI channel 10, most synthesizer will play drum sounds. To the left of this icon is the MIDI-output icon. Double-click on this icon to change the MIDI-output configuration.
#Start recording. The next step is to start recording. You must then find the control buttons (they look like buttons on a CD-player). To be able to make a record. you must click on the R icon. You can simply now press the play button (after you have pressed the R button) and play something on you keyboard. To playback your composition, press the Play button on the control panel.
#Edit track. To edit a track, you simply double click in the middle part of a track. You will then get a new window containing the track, where you can change what you have recorded using tools provided. Take also a look in the drop-down menus for more features.
Videos to help understand [https://www.youtube.com/watch?v=A6gVTX-9900 small intro], [https://www.youtube.com/watch?v=abq_rUTiSA4&t=3s Overview], [https://www.youtube.com/watch?v=ixOVutKsYQo Workplace Setup CC PC Sysex], [https://www.youtube.com/watch?v=dDnJLYPaZTs Import Song], [https://www.youtube.com/watch?v=BC3kkzPLkv4 Tempo Mapping], [https://www.youtube.com/watch?v=sd23kqMYPDs ptool Arpeggi-8], [https://www.youtube.com/watch?v=LDJq-YxgwQg PlayMidi Song], [https://www.youtube.com/watch?v=DY9Pu5P9TaU Amiga Midi], [https://www.youtube.com/watch?v=abq_rUTiSA4 Learning Amiga bars and Pipes],
Groups like [https://groups.io/g/barsnpipes/topics this] could help
'''Tracks window'''
* blue "1 2 3 4 5 6 7 8 Group" and transport tape deck VCR-type controls
* Flags
* [http://theproblem.alco-rhythm.com/org/bp.html Track 1, Track2, to Track 16, on each Track there are many options that can be activated]
Each Track has a
*Left LHS - Click in grey box to select what Track to work on, Midi-In ptool icon should be here (5pin plug icon), and many more from the Toolbox on the Input Pipeline
*Middle - (P, R, M) Play, Record, Merge/Multi before the sequencer line and a blue/red/yellow (Thru Mute Play) Tap
*Right RHS - Output pipeline, can have icons placed uopn it with the final ptool icon(s) being the 5pin icon symbol for Midi-OUT
Clogged pipelines may need Esc pressed several times
'''Toolbox (tools affect the chosen pipeline)'''
After opening the Toolbox window you can add extra Tools (.ptool) for the pipelines like keyboard(virtual), midimonitor, quick patch, transpose, triad, (un)quantize, feedback in/out, velocity etc
right mouse -> Toolbox menu option -> Install Tool... and navigate to Tool drawer (folder) and select requried .ptool
Accompany B tool to get some sort of rythmic accompaniment, Rythm Section and Groove Quantize are examples of other tools that make use of rythms
[https://aminet.net/search?query=bars Bars & Pipes pattern format .ptrn] for drawer (folder). Load from the Menu as Track or Group
'''Accessories (affect the whole app)'''
Accessories -> Install... and goto the Accessories drawer for .paccess like adding ARexx scripting support
'''Song Construction'''
<pre>
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Duplicator
F5 Eraser
F6 Toolpad
F7 Bounding box
F8 Lock to A-B-A
A-B-A strip, section, edit flags, white boxes,
</pre>
Bars&Pipes Professional offers three track formats; basic song tracks, linear tracks — which don't loop — and finally real‑time tracks. The difference between them is that both song and linear tracks respond to tempo changes, while real‑time tracks use absolute timing, always trigger at the same instant regardless of tempo alterations
'''Tempo Map'''
F1 Pencil
F2 Magic Wand
F3 Hand
F4 Eraser
F5 Curve
F6 Toolpad
Compositions
Lyrics, Key, Rhythm, Time Signature
'''Master Parameters'''
Key, Scale/Mode
'''Track Parameters'''
Dynamics
'''Time-line Scoring'''
'''Media Madness'''
'''Mix Maestro'''
*ACCESSORIES Allows the importation of other packages and additional modules
*CLIPBOARD Full cut, copy and paste operations, enabling user‑definable clips to be shared between tracks.
*INFORMATION A complete rundown on the state of the current production and your machine.
*MASTER PARAMETERS Enables global definition of time signatures, lyrics, scales, chords, dynamics and rhythm changes.
*MEDIA MADNESS A complete multimedia sequencer which allows samples, stills, animation, etc
*METRONOME Tempo feedback via MIDI, internal Amiga audio and colour cycling — all three can be mixed and matched as required.
*MIX MAESTRO Completely automated mixdown with control for both volume and pan. All fader alterations are memorised by the software
*RECORD ACTIVATION Complete specification of the data to be recorded/merged. Allows overdubbing of pitch‑bend, program changes, modulation etc
*SET FLAGS Numeric positioning of location and edit flags in either SMPTE or musical time
*SONG CONSTRUCTION Large‑scale cut and paste of individual measures, verses or chorus, by means of bounding box and drag‑n‑drop mouse selections
*TEMPO MAP Tempo change using a variety of linear and non‑linear transition curves
*TEMPO PALETTE Instant tempo changes courtesy of four user‑definable settings.
*TIMELINE SCORING Sequencing of a selection of songs over a defined period — ideal for planning an entire set for a live performance.
*TOOLBOX Selection screen for the hundreds of signal‑processing tools available
*TRACKS Opens the main track window to enable recording, editing and the use of tools.
*TRANSPORT Main playback control window, which also provides access to user‑ defined flags, loop and punch‑in record modes.
Bars and Pipes Pro 2.5 is using internal 4-Byte IDs, to check which kind of data are currently processed.
Especially in all its files the IDs play an important role. The IDs are stored into the file in the same order they are laid out in the memory.
In a Bars 'N' Pipes file (no matter which kind) the ID "NAME" (saved as its ANSI-values) is stored on a big endian system (68k-computer) as "NAME". On a little endian system (x86 PC computer) as "EMAN". The target is to make the AROS-BnP compatible to songs, which were stored on a 68k computer (AMIGA).
If possible, setting MIDI channels for Local Control for your keyboard
http://www.fromwithin.com/liquidmidi/archive.shtml
MIDI files are essentially a stream of event data. An event can be many things, but typically "note on", "note off", "program change", "controller change", or messages that instruct a MIDI compatible synth how to play a given bit of music.
* Channel - 1 to 16 -
* Messages - PC presets, CC effects like delays, reverbs, etc
* Sequencing - MIDI instruments, Drums, Sound design,
* Recording -
* GUI - Piano roll or Tracker, Staves and Notes
MIDI events/messages like step entry e.g. Note On, Note Off
MIDI events/messages like PB, PC, CC, Mono and Poly After-Touch, Sysex, etc
MIDI sync - Midi Clocks (SPS Measures), Midi Time Code (h, m, s and frames) SMPTE
Individual track editing with audition edits so easier to test any changes. Possible to stop track playback, mix clips from the right edit flag and scroll the display using arrow keys.
Step entry, to extend a selected note hit the space bar and the note grows accordingly. Ability to cancel mouse‑driven edits by simply clicking the right mouse button — at which point everything snaps back into its original form. Lyrics can now be put in with syllable dividers, even across an entire measure or section. Autoranging when you open a edit window, the notes are automatically displayed — working from the lowest upwards.
Flag editing, shift‑click on a flag immediately open the bounds window, ready for numeric input. Ability to cancel edits using the right‑hand mouse button, plus much improved Bounding Box operations.
Icons other than the BarsnPipes icon -> PUBSCREEN=BarsnPipes (cannot choose modes higher than 8bit 256 colors)
Preferences -> Menu in Tracks window - Send MIDI defaults OFF
Prefs -> Environment -> screenmode (saved to BarsnPipes.prefs binary file)
Customization -> pics in gui drawer (folder) -
Can save as .song files and .mid General Midi
SMF is a “Standard Midi File” ([http://www.music.mcgill.ca/~ich/classes/mumt306/StandardMIDIfileformat.html SMF0, SMF1 and SMF2]), [https://github.com/stump/libsmf libsmf], [https://github.com/markc/midicomp MIDIcomp], [https://github.com/MajicDesigns/MD_MIDIFile C++ src], [], [https://github.com/newdigate/midi-smf-reader Midi player],
* SMF0 All MIDI data is stored in one track only, separated exclusively by the MIDI channel.
* SMF1 The MIDI data is stored in separate tracks/channels.
* SMF2 (rarely used) The MIDI data is stored in separate tracks, which are additionally wrapped in containers, so it's possible to have e.g. several tracks using the same MIDI channels.
Would it be possible to enrich Bars N’Pipes with software synth and sample support along with audio recording and mastering tools like in the named MAC or PC music sequencers?
On the classic AMIGA-OS this is not possible because of missing CPU-power. The hardware of the classic AMIGA is not further developed. So we must say (unfortunately) that those dreams can’t become reality
BarsnPipes is best used with external MIDI-equipment. This can be a keyboard or synthesizer with MIDI-connectors.
<pre>
MIDI can control 16 channels
There are USB-MIDI-Interfaces on the market with 16 independent MIDI-lines (multi-port), which can handle 16 MIDI devices independently – 16×16 = 256 independent MIDI-channels or instruments
handle up to 16 different USB-MIDI-Interfaces (multi-device). That is: 16X16X16 = 4096 independent MIDI-channels – theoretically
</pre>
<pre>
Librarian MIDI SYStem EXplorer (sysex) - PatchEditor and used to be supplied as a separate program like PatchMeister but currently not at present
It should support MIDI.library (PD), BlueRibbon.library (B&P), TriplePlayPlus, and CAMD.library (DeluxeMusic) and
MIDI information from a device's user manual and configure a custom interface to access parameters for all MIDI products connected to the system
Supports ALL MIDI events and the Patch/Librarian data is stored in MIDI standard format
Annette M.Crowling, Missing Link Software, Inc.
</pre>
Composers
<pre>
[https://x.com/hirasawa/status/1403686519899054086 Susumu Hirasawa]
</pre>
<pre>
1988 Todor Fay and his wife Melissa Jordan Gray, who founded the Blue Ribbon Inc
1992 Bars&Pipes Pro published
November 2000, Todor Fay announcement to release the sourcecode of Bars&Pipes Pro 2.5c beta
end of May 2001, the source of the main program and the sources of some tools and accessories were in a complete and compileable state
end of October 2009 stop further development of BarsnPipes New for now on all supported systems and made freeware
2013 Alfred Faust diagnosed with incureable illness, called „Myastenia gravis“ (weak muscles)
</pre>
Protrekkr
How to use Midi In/Out in Protrekkr ?
First of all, midi in & out capabilities of this program are rather limited.
# Go to Misc. Setup section and select a midi in or out device to use (ptk only supports one device at a time).
# Go to instrument section, and select a MIDI PRG (the default is N/A, which means no midi program selected).
# Go to track section and here you can assign a midi channel to each track of ptk.
# Play notes :]. Note off works. F'x' note cut command also works too, and note-volume command (speed) is supported.
Also, you can change midicontrollers in the tracker, using '90' in the panning row:
<pre>
C-3 02 .. .. 0000....
--- .. .. 90 xxyy.... << This will set the value
--- .. .. .. 0000.... of the controller n.'xx' to 'yy' (both in hex)
--- .. .. .. 0000....
</pre>
So "--- .. .. 90 2040...." will set the controller number $20(32) to $40(64).
You will need the midi implementation table of your gear to know what you can change with midi controller messages.
N.B. Not all MIDI devices are created equal!
Although the MIDI specification defines a large range of MIDI messages of various kinds, not every MIDI device is required to work in exactly the same way and respond to all the available messages and ways of working. For example, we don't expect a wind synthesiser to work in the same way as a home keyboard.
Some devices, the older ones perhaps, are only able to respond to a single channel. With some of those devices that channel can be altered from the default of 1 (probably) to another channel of the 16 possible.
Other devices, for instance monophonic synthesisers, are capable of producing just one note at a time, on one MIDI channel. Others can produce many notes spread across many channels.
Further devices can respond to, and transmit, "breath controller" data (MIDI controller number 2 (CC#2)) others may respond to the reception of CC#2 but not be able to create and to send it.
A controller keyboard may be capable of sending "expression pedal" data, but another device may not be capable of responding to that message.
Some devices just have the basic GM sound set. The "voice" or "instrument" is selected using a "Program Change" message on its own.
Other devices have a greater selection of voices, usually arranged in "banks", and the choice of instrument is made by responding to "Bank Select MSB" (MIDI controller 0 (CC#0)), others use "Bank Select LSB" (MIDI controller number 32 (CC#32)), yet others use both MSB and LSB sent one after the other, all followed by the Program Change message. The detailed information about all the different voices will usually be available in a published MIDI Data List.
MIDI Implementation Chart
But in the User Manual there is sometimes a summary of how the device works, in terms of MIDI, in the chart at the back of the manual, the MIDI Implementation Chart.
If you require two devices to work together you can compare the two implementation charts to see if they are "compatible". In order to do this we will need to interpret that chart.
The chart is divided into four columns headed "Function", "Transmitted" (or "Tx"), "Received" (or "Rx"), or more correctly "Recognised", and finally, "Remarks".
<pre>
The left hand column defines which MIDI functions are being described.
The 2nd column defines what the device in question is capable of transmitting to another device.
The 3rd column defines what the device is capable of responding to.
The 4th column is for explanations of the values contained within these previous two columns.
</pre>
There should then be twelve sections, with possibly a thirteenth containing extra "Notes". Finally there should be an explanation of the four MIDI "modes" and what the "X" and the "O" mean.
<pre>
Mode 1: Omni On, Poly;
Mode 2: Omni On, Mono;
Mode 3: Omni Off, Poly;
Mode 4: Omni Off, Mono.
</pre>
O means "yes" (implemented), X means "no" (not implemented).
Sometimes you will find a row of asterisks "**************", these seem to indicate that the data is not applicable in this case. Seen in the transmitted field only (unless you've seen otherwise).
Lastly you may find against some entries an asterisk followed by a number e.g. *1, these will refer you to further information, often on a following page, giving more detail.
Basic Channel
But the very first set of boxes will tell us the "Basic Channel(s)" that the device sends or receives on.
"Default" is what happens when the device is first turned on, "changed" is what a switch of some kind may allow the device to be set to.
For many devices e.g. a GM sound module or a home keyboard, this would be 1-16 for both. That is it can handle sending and receiving on all MIDI channels.
On other devices, for example a synthesiser, it may by default only work on channel 1. But the keyboard could be "split" with the lower notes e.g. on channel 2. If the synth has an arppegiator, this may be able to be set to transmit and or receive on yet another channel.
So we might see the default as "1" but the changed as "1-16".
Modes.
We need to understand Omni On and Off, and Mono and Poly, then we can decipher the four modes.
But first we need to understand that any of these four Mode messages can be sent to any MIDI channel. They don't necessarily apply to the whole device.
If we send an "Omni On" message (CC#125) to a MIDI channel of a device, we are, in effect, asking it to respond to e.g. a Note On / Off message pair, received on any of the sixteen channels. Sound strange? Read it again. Still strange? It certainly is. We normally want a MIDI channel to respond only to Note On / Off messages sent on that channel, not any other. In other words, "Omni Off".
So "Omni Off" (CC#124) tells a channel of our MIDI device to respond only to messages sent on that MIDI channel.
"Poly" (CC#127) is for e.g. a channel of a polyphonic sound module, or a home keyboard, to be able to respond to many simultaneous Note On / Off message pairs at once and produce musical chords.
"Mono" (CC#126) allows us to set a channel to respond as if it were e.g. a flute or a trumpet, playing just one note at a time. If the device is capable of it, then the overlapping of notes will produce legato playing, that is the attack portion of the second note of two overlapping notes will be removed resulting in a "smoother" transition.
So a channel with a piano voice assigned to it will have Omni Off, Poly On (Mode 3), a channel with a saxophone voice assigned could be Omni Off, Mono On (Mode 4).
We call these combinations the four modes, 1 to 4, as defined above.
Most modern devices will have their channels set to Mode 3 (Omni Off, Poly) but be switchable, on a per channel basis, to Mode 4 (Omni Off, Mono).
This second section of data will include first its default value i.e. upon device switch on. Then what Mode messages are acceptable, or X if none.
Finally, in the "Altered" field, how a Mode message that can't be implemented will be interpreted. Usually there will just be a row of asterisks effectively meaning nothing will be done if you try to switch to an unimplemented mode.
Note Number
<pre>
The next row will tell us which MIDI notes the device can send or receive, normally 0-127.
The second line, "True Voice" has the following in the MIDI specification:
"Range of received note numbers falling within the range of true notes produced by the instrument."
My interpretation is that, for instance, a MIDI piano may be capable of sending all MIDI notes (0 to 127) by transposition, but only responding to the 88 notes (21 to 108) of a real piano.
</pre>
Velocity
This will tell us whether the device we're looking at will handle note velocity, and what range from 1-127, or maybe just 64, it transmits or will recognise. So usually "O" plus a range or "X" for not implemented.
After touch
This may have one or two lines two it.
If a one liner the either "O" or "X", yes or no.
If a two liner then it may include "Keys" or "Poly" and "Channel".
This will show whether the device will respond to Polyphonic after touch or channel after touch or neither.
Pitch Bend
Again "O" for implemented, "X" for not implemented.
(Many stage pianos will have no pitch bend capability.)
It may also, in the notes section, state whether it will respond to the full 14 bits, or not, as usually encoded by the pitch bend wheel.
Control Change
This is likely to be the largest section of the chart.
It will list all those controllers, starting from CC#0, Bank Select MSB, which the device is capable of sending, and those that it will respond to using "O" or "X" respectively.
You will, almost certainly, get some further explanation of functionality in the remarks column, or in more detail elsewhere in the documentation.
Of course you will need to know what all the various controller numbers do. Lots of the official technical specifications can be found at the [www.midi.org/techspecs/ MMA], with the table of messages and control change [www.midi.org/techspecs/midimessages.php message numbers]
Program Change
Again "O" or "X" in the Transmitted or Recognised column to indicate whether or not the feature is implemented. In addition a range of numbers is shown, typically 0-127, to show what is available.
True # (number): "The range of the program change numbers which correspond to the actual number of patches selected."
System Exclusive
Used to indicate whether or not the device can send or recognise System Exclusive messages. A short description is often given in the Remarks field followed by a detailed explanation elsewhere in the documentation.
System Common - These include the following:
<pre>
MIDI Time Code Quarter Frame messages (device synchronisation).
Song Position Pointer
Song Select
Tune Request
</pre>
The section will indicate whether or not the device can send or respond to any of these messages.
System Real Time
These include the following:
<pre>
Timing Clock - often just written as "Clock"
Start
Stop
Continue
</pre>
These three are usually just referred to as "Commands" and listed.
Again the section will indicate which, if any, of these messages the device can send or respond to.
<pre>
Aux. Messages
Again "O" or "X" for implemented or not.
Aux. = Auxiliary.
Active Sense = Active Sensing.
</pre>
Often with an explanation of the action of the device.
Notes
The "Notes" section can contain any additional comments to clarify the particular implementation.
Some of the explanations have been drawn directly from the MMA MIDI 1.0 Detailed Specification.
And the detailed explanation of some of the functions will be found there, or in the General MIDI System Level 1 or General MIDI System Level 2 documents also published by the MMA.
OFFICIAL MIDI SPECIFICATIONS
SUMMARY OF MIDI MESSAGES
Table 1 - Summary of MIDI Messages
The following table lists the major MIDI messages in numerical (binary) order (adapted from "MIDI by the Numbers" by D. Valenti, Electronic Musician 2/88, and updated by the MIDI Manufacturers Association.). This table is intended as an overview of MIDI, and is by no means complete.
WARNING! Details about implementing these messages can dramatically impact compatibility with other products. We strongly recommend consulting the official MIDI Specifications for additional information.
MIDI 1.0 Specification
Message Summary Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)]
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1000nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note Off event.
This message is sent when a note is released (ended). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1001nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Note On event.
This message is sent when a note is depressed (start). (kkkkkkk) is the key (note) number. (vvvvvvv) is the velocity.
|-
|<!--Status-->1010nnnn || <!--Data-->0kkkkkkk 0vvvvvvv || <!--Description-->Polyphonic Key Pressure (Aftertouch).
This message is most often sent by pressing down on the key after it "bottoms out". (kkkkkkk) is the key (note) number. (vvvvvvv) is the pressure value.
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Control Change.
This message is sent when a controller value changes. Controllers include devices such as pedals and levers. Controller numbers 120-127 are reserved as "Channel Mode Messages" (below). (ccccccc) is the controller number (0-119). (vvvvvvv) is the controller value (0-127).
|-
|<!--Status-->1100nnnn || <!--Data-->0ppppppp || <!--Description-->Program Change. This message sent when the patch number changes. (ppppppp) is the new program number.
|-
|<!--Status-->1101nnnn || <!--Data-->0vvvvvvv || <!--Description-->Channel Pressure (After-touch). This message is most often sent by pressing down on the key after it "bottoms out". This message is different from polyphonic after-touch. Use this message to send the single greatest pressure value (of all the current depressed keys). (vvvvvvv) is the pressure value.
|-
|<!--Status-->1110nnnn || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Pitch Bend Change. This message is sent to indicate a change in the pitch bender (wheel or lever, typically). The pitch bender is measured by a fourteen bit value. Center (no pitch change) is 2000H. Sensitivity is a function of the receiver, but may be set using RPN 0. (lllllll) are the least significant 7 bits. (mmmmmmm) are the most significant 7 bits.
|}
Channel Mode Messages (See also Control Change, above)
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->1011nnnn || <!--Data-->0ccccccc 0vvvvvvv || <!--Description-->Channel Mode Messages.
This the same code as the Control Change (above), but implements Mode control and special message by using reserved controller numbers 120-127. The commands are:
*All Sound Off. When All Sound Off is received all oscillators will turn off, and their volume envelopes are set to zero as soon as possible c = 120, v = 0: All Sound Off
*Reset All Controllers. When Reset All Controllers is received, all controller values are reset to their default values. (See specific Recommended Practices for defaults) c = 121, v = x: Value must only be zero unless otherwise allowed in a specific Recommended Practice.
*Local Control. When Local Control is Off, all devices on a given channel will respond only to data received over MIDI. Played data, etc. will be ignored. Local Control On restores the functions of the normal controllers.
c = 122, v = 0: Local Control Off
c = 122, v = 127: Local Control On
* All Notes Off. When an All Notes Off is received, all oscillators will turn off.
c = 123, v = 0: All Notes Off (See text for description of actual mode commands.)
c = 124, v = 0: Omni Mode Off
c = 125, v = 0: Omni Mode On
c = 126, v = M: Mono Mode On (Poly Off) where M is the number of channels (Omni Off) or 0 (Omni On)
c = 127, v = 0: Poly Mode On (Mono Off) (Note: These four messages also cause All Notes Off)
|}
System Common Messages
System Messages (0xF0)
The final status nybble is a “catch all” for data that doesn’t fit the other statuses. They all use the most significant nybble (4bits) of 0xF, with the least significant nybble indicating the specific category.
The messages are denoted when the MSB of the second nybble is 1. When that bit is a 0, the messages fall into two other subcategories.
System Common
If the MSB of the second second nybble (4 bits) is not set, this indicates a System Common message. Most of these are messages that include some additional data bytes.
System Common Messages
Type Status Byte Number of Data Bytes Usage
<pre>
Time Code Quarter Frame 0xF1 1 Indicates timing using absolute time code, primarily for synthronization with video playback systems. A single location requires eight messages to send the location in an encoded hours:minutes:seconds:frames format*.
Song Position 0xF2 2 Instructs a sequencer to jump to a new position in the song. The data bytes form a 14-bit value that expresses the location as the number of sixteenth notes from the start of the song.
Song Select 0xF3 1 Instructs a sequencer to select a new song. The data byte indicates the song.
Undefined 0xF4 0
Undefined 0xF5 0
Tune Request 0xF6 0 Requests that the receiver retunes itself**.
</pre>
*MIDI Time Code (MTC) is significantly complex. Please see the MIDI Specification
**While modern digital instruments are good at staying in tune, older analog synthesizers were prone to tuning drift. Some analog synthesizers had an automatic tuning operation that could be initiated with this command.
System Exclusive
If you’ve been keeping track, you’ll notice there are two status bytes not yet defined: 0xf0 and 0xf7. These are used by the System Exclusive message, often abbreviated at SysEx. SysEx provides a path to send arbitrary data over a MIDI connection. There is a group of predefined messages for complex data, like fine grained control of MIDI Time code machinery. SysEx is also used to send manufacturer defined data, such as patches, or even firmware updates.
System Exclusive messages are longer than other MIDI messages, and can be any length. The messages are of the following format:
0xF0, 0xID, 0xdd, ...... 0xF7
The message is bookended with distinct bytes.
It opens with the Start Of Exclusive (SOX) data byte, 0xF0.
The next one to three bytes after the start are an identifier.
Values from 0x01 to 0x7C are one-byte vendor IDs, assigned to manufacturers who were involved with MIDI at the beginning.
If the ID is 0x00, it’s a three-byte vendor ID - the next two bytes of the message are the value.
<pre>
ID 0x7D is a placeholder for non-commercial entities.
ID 0x7E indicates a predefined Non-realtime SysEx message.
ID 0x7F indicates a predefined Realtime SysEx message.
</pre>
After the ID is the data payload, sent as a stream of bytes.
The transfer concludes with the End of Exclusive (EOX) byte, 0xF7.
The payload data must follow the guidelines for MIDI data bytes – the MSB must not be set, so only 7 bits per byte are actually usable. If the MSB is set, it falls into three possible scenarios.
An End of Exclusive byte marks the ordinary termination of the SysEx transfer.
System Real Time messages may occur within the transfer without interrupting it. The recipient should handle them independently of the SysEx transfer.
Other status bytes implicitly terminate the SysEx transfer and signal the start of new messages.
Some inexpensive USB-to-MIDI interfaces aren’t capable of handling messages longer than four bytes.
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11110000 || <!--Data-->0iiiiiii [0iiiiiii 0iiiiiii] 0ddddddd --- --- 0ddddddd 11110111 || <!--Description-->System Exclusive.
This message type allows manufacturers to create their own messages (such as bulk dumps, patch parameters, and other non-spec data) and provides a mechanism for creating additional MIDI Specification messages. The Manufacturer's ID code (assigned by MMA or AMEI) is either 1 byte (0iiiiiii) or 3 bytes (0iiiiiii 0iiiiiii 0iiiiiii). Two of the 1 Byte IDs are reserved for extensions called Universal Exclusive Messages, which are not manufacturer-specific. If a device recognizes the ID code as its own (or as a supported Universal message) it will listen to the rest of the message (0ddddddd). Otherwise, the message will be ignored. (Note: Only Real-Time messages may be interleaved with a System Exclusive.)
|-
|<!--Status-->11110001 || <!--Data-->0nnndddd || <!--Description-->MIDI Time Code Quarter Frame.
nnn = Message Type
dddd = Values
|-
|<!--Status-->11110010 || <!--Data-->0lllllll 0mmmmmmm || <!--Description-->Song Position Pointer.
This is an internal 14 bit register that holds the number of MIDI beats (1 beat= six MIDI clocks) since the start of the song. l is the LSB, m the MSB.
|-
|<!--Status-->11110011 || <!--Data-->0sssssss || <!--Description-->Song Select.
The Song Select specifies which sequence or song is to be played.
|-
|<!--Status-->11110100 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11110110 || <!--Data--> || <!--Description-->Tune Request. Upon receiving a Tune Request, all analog synthesizers should tune their oscillators.
|-
|<!--Status-->11110111 || <!--Data--> || <!--Description-->End of Exclusive. Used to terminate a System Exclusive dump.
|}
System Real-Time Messages
{| class="wikitable sortable" width="90%"
! width="10%" |Status D7----D0
! width="10%" |Data Byte(s) D7----D0
! width="20%" |Description
|-
|<!--Status-->11111000 || <!--Data--> || <!--Description-->Timing Clock. Sent 24 times per quarter note when synchronization is required.
|-
|<!--Status-->11111001 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111010 || <!--Data--> || <!--Description-->Start. Start the current sequence playing. (This message will be followed with Timing Clocks).
|-
|<!--Status-->11111011 || <!--Data--> || <!--Description-->Continue. Continue at the point the sequence was Stopped.
|-
|<!--Status-->11111100 || <!--Data--> || <!--Description-->Stop. Stop the current sequence.
|-
|<!--Status-->11111101 || <!--Data--> || <!--Description-->Undefined. (Reserved)
|-
|<!--Status-->11111110 || <!--Data--> || <!--Description-->Active Sensing. This message is intended to be sent repeatedly to tell the receiver that a connection is alive. Use of this message is optional. When initially received, the receiver will expect to receive another Active Sensing message each 300ms (max), and if it does not then it will assume that the connection has been terminated. At termination, the receiver will turn off all voices and return to normal (non- active sensing) operation.
|-
|<!--Status-->11111111 || <!--Data--> || <!--Description-->Reset. Reset all receivers in the system to power-up status. This should be used sparingly, preferably under manual control. In particular, it should not be sent on power-up.
|}
Advanced Messages
Polyphonic Pressure (0xA0) and Channel Pressure (0xD0)
Some MIDI controllers include a feature known as Aftertouch. While a key is being held down, the player can press harder on the key. The controller measures this, and converts it into MIDI messages.
Aftertouch comes in two flavors, with two different status messages.
The first flavor is polyphonic aftertouch, where every key on the controller is capable of sending its own independent pressure information. The messages are of the following format:
<pre>
0xnc, 0xkk, 0xpp
n is the status (0xA)
c is the channel nybble
kk is the key number (0 to 127)
pp is the pressure value (0 to 127)
</pre>
Polyphonic aftertouch is an uncommon feature, usually found on premium quality instruments, because every key requires a separate pressure sensor, plus the circuitry to read them all.
Much more commonly found is channel aftertouch. Instead of needing a discrete sensor per key, it uses a single, larger sensor to measure pressure on all of the keys as a group. The messages omit the key number, leaving a two-byte format
<pre>
0xnc, 0xpp
n is the status (0xD)
c is the channel number
pp is the pressure value (0 to 127)
</pre>
Pitch Bend (0xE0)
Many keyboards have a wheel or lever towards the left of the keys for pitch bend control. This control is usually spring-loaded, so it snaps back to the center of its range when released. This allows for both upward and downward bends.
Pitch Bend Wheel
The wheel sends pitch bend messages, of the format
<pre>
0xnc, 0xLL, 0xMM
n is the status (0xE)
c is the channel number
LL is the 7 least-significant bits of the value
MM is the 7 most-significant bits of the value
</pre>
You’ll notice that the bender data is actually 14 bits long, transmitted as two 7-bit data bytes. This means that the recipient needs to reassemble those bytes using binary manipulation. 14 bits results in an overall range of 214, or 0 to 16,383. Because it defaults to the center of the range, the default value for the bender is halfway through that range, at 8192 (0x2000).
Control Change (0xB0)
In addition to pitch bend, MIDI has provisions for a wider range of expressive controls, sometimes known as continuous controllers, often abbreviated CC. These are transmitted by the remaining knobs and sliders on the keyboard controller shown below.
Continuous Controllers
These controls send the following message format:
<pre>
0xnc, 0xcc, 0xvv
n is the status (0xB)
c is the MIDI channel
cc is the controller number (0-127)
vv is the controller value (0-127)
</pre>
Typically, the wheel next to the bender sends controller number one, assigned to modulation (or vibrato) depth. It is implemented by most instruments.
The remaining controller number assignments are another point of confusion. The MIDI specification was revised in version 2.0 to assign uses for many of the controllers. However, this implementation is not universal, and there are ranges of unassigned controllers.
On many modern MIDI devices, the controllers are assignable. On the controller keyboard shown in the photos, the various controls can be configured to transmit different controller numbers. Controller numbers can be mapped to particular parameters. Virtual synthesizers frequently allow the user to assign CCs to the on-screen controls. This is very flexible, but it might require configuration on both ends of the link and completely bypasses the assignments in the standard.
Program Change (0xC0)
Most synthesizers have patch storage memory, and can be told to change patches using the following command:
<pre>
0xnc, 0xpp
n is the status (0xc)
c is the channel
pp is the patch number (0-127)
</pre>
This allows for 128 sounds to be selected, but modern instruments contain many more than 128 patches. Controller #0 is used as an additional layer of addressing, interpreted as a “bank select” command. Selecting a sound on such an instrument might involve two messages: a bank select controller message, then a program change.
Audio & Midi are not synchronized, what I can do ?
Buy a commercial software package but there is a nasty trick to synchronize both. It's a bit hardcore but works for me:
Simply put one line down to all midi notes on your pattern (use Insert key)
and go to 'Misc. Setup', adjust the latency and just search a value
that will make sound sync both audio/midi.
The stock Sin/Saw/Pulse and Rnd waveforms are too simple/common, is there a way to use something more complex/rich ?
You have to ability to redirect the waveforms of the instruments through the synth pipe by selecting the "wav" option for the oscillator you're using for this synth instrument, samples can be used as wavetables to replace the stock signals.
Sound banks like soundfont (sf2) or Kontakt2 are not supported at the moment
====DAW Audio Evolution 4====
Audio Evolution 4 gives you unsurpassed power for digital audio recording and editing on the Amiga. The latest release focusses on time-saving non-linear and non-destructive editing, as seen on other platforms. Besides editing, Audio Evolution 4 offers a wide range of realtime effects, including compression, noise gate, delays, reverb, chorus and 3-band EQ.
Whether you put them as inserts on a channel or use them as auxillaries, the effect parameters are realtime adjustable and can be fully automated. Together with all other mixing parameters, they can even be controlled remotely, using more ergonomic MIDI hardware.
Non-linear editing on the time line, including cut, copy, paste, move, split, trim and crossfade actions
The number of tracks per project(s) is unlimited .... AHI limits you to recording only two at a time. i.e. not on 8 track sound cards like the Juli@ or Phase 88.
sample file import is limited to 16bit AIFF (not AIFC, important distinction as some files from other sources can be AIFC with aiff file extension). and 16bit WAV (pcm only)
Most apps use the Music Unit only but a few apps also use Unit (0-3) instead or as well.
* Set up AHI prefs so that microphone is available. (Input option near the bottom)
stereo++ allows the audio piece to be placed anywhere and the left-right adjusted to sound positionally right
hifi best for music playback if driver supports this option
Load 16bit .aif .aiff only sample(s) to use not AIFC which can have the same ending. AIFF stands for Audio Interchange File Format
sox recital.wav recital.aiff
sox recital.wav −b 16 recital.aiff channels 1 rate 16k fade 3 norm
sox input.wav output.aiff bass −b 16 rate 48k
performs the same format translation, but also applies four effects (down-mix to one channel, sample rate change, fade-in, nomalize), and stores the result at a bit-depth of 16.
rec −c 2 radio.aiff trim 0 30:00
records half an hour of stereo audio
play existing-file.wav
24bit PCM WAV or AIFF do not work
*No stream format handling. So no way to pass on an AC3 encoded stream unmodified to the digital outputs through AHI.
*No master volume handling. Each application has to set its own volume. So each driver implements its own custom driver-mixer interface for handling master volumes, mute and preamps.
*Only one output stream. So all input gets mixed into one output.
*No automatic handling of output direction based on connected cables.
*No monitor input selection. Only monitor volume control.
select the correct input (Don't mistake enabled sound for the correct input.)
The monitor will feedback audio to the lineout and hp out no matter if you have selected the correct input to the ADC. The monitor will provide sound for any valid input. This will result in free mixing when recording from the monitor input instead of mic/line because the monitor itself will provide the hardware mixing for you. Be aware that MIC inputs will give two channel mono. Only Linein will give real stereo.
Now for the not working part. Attempt to record from linein in the AE4 record window, the right channel is noise and the left channel is distorted. Even with the recommended HIFI 16bit Stereo++ mode at 48kHz.
Channels
Monitor
Gain
Inout
Output
Advanced settings - Debugging via serial port
* Options -> Soundcard In/Out
* Options -> SampleRate
* Options -> Preferences
F6 for Sample File List
Setting a grid is easy as is measuring the BPM by marking a section of the sample. Is your kick drum track "not in time" ? If so, you're stumped in AE4 as it has no fancy variable time signatures and definitely no 'track this dodgy rhythm' function like software of the nature of Logic has. So if your drum beat is freeform you will need to work in freeform mode. (Real music is free form anyway).
If the drum *is* accurate and you are just having trouble measuring the time, I usually measure over a range of bars and set the number of beats in range to say 16 as this is more accurate, Then you will need to shift the drum track to match your grid *before* applying the grid. (probably an iterative process as when the grid is active samples snap to it, and when inactive you cannot see it).
AE4 does have ARexx but the functions are more for adding samples at set offsets and starting playback / recording.
These are the usual features found in DAWs...
* Recording digital audio, midi sequencer and mixer
* virtual VST instruments and plug-ins
* automation, group channels, MIDI channels, FX sends and returns, audio and MIDI editors and music notation editor
* different track views
* mixer and track layout (but not the same as below)
* traditional two windows (track and mixer)
Mixing - mixdown
Could not figure out how to select what part I wanted to send to the aux, set it to echo and return. Pretty much the whole echo effect. Or any effect.
Take look at page17 of the manual.
When you open the EQ / Aux send popup window you will see 4 sends. Now from the menu choose the windows menu.
Menus->Windows-> Aux Returns Window
or press F5
You will see a small window with 4 volume controls and an effects button for each. Click a button and add an effects to that aux channel, then set it up as desired (note the reverb effect has a special AUX setting that improves its use with the aux channel, not compulsory but highly useful). You set the amount of 'return' on the main mix in the Aux Return window, and the amount sent from each main mixer channel in the popup for that channel. Again the aux sends are "prefade" so the volume faders on each channel do not affect them.
Tracking
Effects - fade in
To add some echoes to some vocals, tried to add an effect on a track but did not come out. This is made more complicated as I wanted to mute a vocal but then make it echo at the muting point. Want to have one word of a vocal heard and then echoed off. But when the track is mute the echo is cancelled out.
To correctly understand what is happening here you need to study the figure at the bottom of page 15 on the manual. You will see from that that the effects are applied 'prefade' So the automation you applied will naturally mute the entire signal.
There would be a number of ways to achieve the goal,
You have three real time effects slots, one for smoothing like so
Sample -> Amplify -> Delay
Then automate the gain of the amplify block so that it effectively mutes the sample just before the delay at the appropriate moment, the echo effect should then be heard.
Getting the effects in the right order will require experimentation as they can only be added top down and it's not obvious which order they are applied to the signal, but there only two possibilities, so it wont take long to find out.
Using MUTE can cause clicks to the Amplify can be used to mute more smoothly so that's a secondary advantage.
Signal Processing -
Overdub
[[#top|...to the top]]
===Office===
====Spreadsheet Leu====
Support for some xlsx, and ods functions
====Spreadsheet Ignition====
; Needs ABIv1 to be completed before more can be done
File formats supported
* ascii #?.txt and #?.csv (single sheets with data only).
* igs and TurboCalc(WIP) #?.tc for all sheets with data, formats and formulas.
There is '''no''' support for xls, xlsx, ods or uos ([http://en.wikipedia.org/wiki/Uniform_Office_Format Uniform Unified Office Format]) at the moment.
* Always use Esc key after editing Spreadsheet cells.
* copy/paste seems to copy the first instance only so go to Edit -> Clipboard to manage the list of remembered actions.
* Right mouse click on row (1 or 2 or 3) or column header (a or b or c) to access optimal height or width of the row or column respectively
* Edit -> Insert -> Row seems to clear the spreadsheet or clears the rows after the inserted row until undo restores as it should be...
Change Sheet name by Object -> Sheet -> Properties
Click in the cell which will contain the result, and click '''down arrow button''' to the right of the formula box at the bottom of the spreadsheet and choose the function required from the list provided. Then click on the start cell and click on the bottom right corner, a '''very''' small blob, which allows stretching a bounding box (thick grey outlines) across many cells This grey bounding box can be used to '''copy a formula''' to other cells.
Object -> Cell -> Properties to change cell format - Currency only covers DM and not $, Euro, Renminbi, Yen or Pound etc.
Shift key and arrow keys selects a range of cells, so that '''formatting can be done to all highlighted cells'''.
View -> Overview then select ALL with one click (in empty cell in the top left hand corner of the sheet).
Default mode is relative cell referencing e.g. a1+a2 but absolute e.g. $a$1+$a$2 can be entered.
* #sheet-name to '''absolute''' reference another sheet-name cell unless reference() function used.
;Graphs
use shift key and arrow keys to select a bunch of cells to be graph'ed making sure that x axes represents and y axes represents
* value() - 0 value, 1 percent, 2 date, 3 time, 4 unit ...
;Dates
* Excel starts a running count from the 1st Jan 1900 and Ignition starts from 1st Jan 1AD '''(maybe this needs to change)'''
Set formatting Object -> Cell -> Properties and put date in days
;Time
Set formatting Object -> Cell -> Properties and put time in seconds taken
;Database (to be done by someone else)
type - standard, reference (bezug), search criterion (suchkriterium),
* select a bunch of cells and Object -> Database -> Define to set Datenbank (database) and Felder (fields not sure how?)
* Neu (new) or loschen (delete) to add/remove database headings e.g. Personal, Start Date, Finish Date (one per row?)
* Object -> Database -> Index to add fields (felder) like Surname, First Name, Employee ID, etc. to ?
Filtering done with dbfilter(), dbproduct() and dbposition().
Activities with dbsum(), dbaverage(), dbmin() and dbmax().
Table sorting -
;Scripts (Arexx)
;Excel(TM) to Ignition - commas ''',''' replaced by semi-colons ''';''' to separate values within functions
*SUM(),
*AVERAGE(), MAX(), MIN(), INT(), PRODUCT(), MEDIAN(), VAR() becomes Variance(), Percentile(),
*IF(), AND, OR, NOT
*LEFT(), RIGHT(), MID() becomes MIDDLE(), LEN() becomes LENGTH(),
*LOWER() becomes LOWERCASE(), UPPER() becomes UPPERCASE(),
* DATE(yyyy,mm,dd) becomes COMPUTEDATE(dd;mm;yyyy),
*TODAY(), DAY(),WEEK(), MONTH(),=YEAR(TODAY()),
*EOMONTH() becomes MONTHLENGTH(),
*NOW() should be date and time becomes time only, SECOND(), MINUTE(), HOUR(),
*DBSUM() becomes DSUM(),
;Missing and possibly useful features/functions needed for ignition to have better support of Excel files
There is no Merge and Join Text over many cells, no protect and/or freeze row or columns or books but can LOCK sheets, no define bunch of cells as a name, Macros (Arexx?), conditional formatting, no Solver, no Goal Seek, no Format Painter, no AutoFill, no AutoSum function button, no pivot tables, (30 argument limit applies to Excel)
*HLOOKUP(), VLOOKUP(), [http://production-scheduling.com/excel-index-function-most-useful/ INDEX(), MATCH()], CHOOSE(), TEXT(),
*TRIM(), FIND(), SUBSTITUTE(), CONCATENATE() or &, PROPER(), REPT(),
*[https://acingexcel.com/excel-sumproduct-function/ SUMPRODUCT()], ROUND(), ROUNDUP(), *ROUNDDOWN(), COUNT(), COUNTA(), SUMIF(), COUNTIF(), COUNTBLANK(), TRUNC(),
*PMT(), PV(), FV(), POWER(), SQRT(), MODE(), TRUE, FALSE,
*MODE(), LARGE(), SMALL(), RANK(), STDEV(),
*DCOUNT(), DCOUNTA(), WEEKDAY(),
;Excel Keyboard [http://dmcritchie.mvps.org/excel/shortx2k.htm shortcuts needed to aid usability in Ignition]
<pre>
Ctrl Z - Undo
Ctrl D - Fill Down
Ctrl R - Fill right
Ctrl F - Find
Ctrl H - Replace
Ctrl 1 - Formatting of Cells
CTRL SHIFT ~ Apply General Formatting ie a number
Ctrl ; - Todays Date
F2 - Edit cell
F4 - toggle cell absolute / relative cell references
</pre>
====Document Scanning - Scandal====
Scanner usually needs to be connected via a USB port and not via a hub or extension lead.
Check in Trident Prefs -> Devices that the USB Scanner is not bound to anything (e.g. Bindings None)
If not found then reboot the computer and recheck.
Start Scandal, choose Settings from Menu strip at top of screen and in Scanner Driver choose the ?#.device of the scanner (e.g. epson2.device).
The next two boxes - leave empty as they are for morphos SCSI use only
or put ata.device (use the selection option in bigger box below) and Unit as 0 this is needed for gt68xx
* gt68xx - no editing needed in s/gt68xx.conf but needs a firmware file that corresponds to the scanner [http://www.meier-geinitz.de/sane/gt68xx-backend/ gt68xx firmwares] in sys:s/gt68xx.
* epson2 - Need to edit the file epson2.conf in sys/s that corresponds to the scanner being used
'''Save''' the settings but do not press the Use button (aros freezes)
Back to the Picture Scan window and the right-hand sections.
Click on the '''Information''' tab and press Connect button and the scanner should now be detected.
Go next to the '''Scanner''' tab next to Information Tab should have Color, Black and White, etc. and dpi settings now. Selecting an option Color, B/W etc. can cause dpi settings corruption (especially if the settings are in one line) so set '''dpi first'''. Make sure if Preview is set or not.
In the '''Scan''' Tab, press Scan and the scanner will do its duty.
Be aware that nothing is saved to disk yet.
In the Save tab, change format JPEG, PNG or IFF DEEP. Tick incremental and base filename if necessary and then click the Save button. The image will now be saved to permanent storage.
The driver ignores a device if it is already bond to another USB class, rejects it from being usable. However, open Trident prefs, select your device and use the right mouse button to open. Select "NONE" to prevent poseidon from touching the device. Now save settings. It should always work now.
[[#top|...to the top]]
===Emulators===
==== Amiberry ====
==== Amiga Emu - Janus UAE ====
With Amibridge, AROS attempts to make the UAE emulator seem embedded within but it still is acting as an app
There is no dynarec m68k for each hardware that Aros supports or direct patching of motorola calls to AROS hardware accelerated ones unless the emulator has that included
Try starting Janus with a priority of -1 like this little script:
<pre>
cd sys:system/AmiBridge/emulator
changetaskpri -1
run janus-uae -f my_uaerc.config >nil:
cd sys:prefs
endcli
</pre>
This stops Janus hogging all the CPU time.
===Miscellaneous===
====Screensaver Blanker====
Most blankers on the amiga (i.e. aros) run as commodities (they are in the tools/commodities drawer). Double click on blanker.
Control is with an app called Exchange, which you need to run first (double click on app) or run QUIET sys:tools/commodities/Exchange >NIL: but subsequently can use (Cntrl Alt h).
Icon tool types (may be broken) or command line options
<pre>
seconds=number
</pre>
Once the timing is right then add the following to s:icaros-sequence or s:user-startup
e.g. for 5 minutes
run QUIET sys:tools/commodities/Blanker seconds=300 >NIL:
*[http://archives.aros-exec.org/index.php?function=showfile&file=graphics/screenblanker/gblanker.i386-aros.zip Garshneblanker] can make Aros unstable or slow. Certain blankers crashes in Icaros 2.0.x like Dragon, Executor.
*[ Acuario AROS version], the aquarium screen saver.
Startup: extras:acuariofv-aros/acuario
Kill: c:break name=extras:acuariofv-aros/acuario
Managed to start Acuario by the Executor blanker.
<pre>
cx_priority=
cx_popkey= ie CX_POPKEY="Shift F1"
cx_popup=Yes or No
</pre>
<pre>
Qualifier String Input Event Class
---------------- -----------------
"lshift" IEQUALIFIER_LSHIFT
"rshift" IEQUALIFIER_RSHIFT
"capslock" IEQUALIFIER_CAPSLOCK
"control" IEQUALIFIER_CONTROL
"lalt" IEQUALIFIER_LALT
"ralt" IEQUALIFIER_RALT
"lcommand" IEQUALIFIER_LCOMMAND
"rcommand" IEQUALIFIER_RCOMMAND
"numericpad" IEQUALIFIER_NUMERICPAD
"repeat" IEQUALIFIER_REPEAT
"midbutton" IEQUALIFIER_MIDBUTTON
"rbutton" IEQUALIFIER_RBUTTON
"leftbutton" IEQUALIFIER_LEFTBUTTON
"relativemouse" IEQUALIFIER_RELATIVEMOUSE
</pre>
<pre>
Synonym Synonym
String Identifier
------- ----------
"shift" IXSYM_SHIFT /* look for either shift key */
"caps" IXSYM_CAPS /* look for either shift key or capslock */
"alt" IXSYM_ALT /* look for either alt key */
Highmap is one of the following strings:
"space", "backspace", "tab", "enter", "return", "esc", "del",
"up", "down", "right", "left", "f1", "f2", "f3", "f4", "f5",
"f6", "f7", "f8", "f9", "f10", "help".
</pre>
[[#top|...to the top]]
==== World Construction Set WCS (Version 2.031) ====
WCS is a fractal landscape software such as Scenery Animator, Vista Pro and Panorama. Open sourced February 2022, World Construction Set [https://3dnature.com/downloads/legacy-software/ legally and for free] and [https://github.com/AlphaPixel/3DNature c source].
Announced August 1994 this version dates from April 1996 developed by Gary R. Huber and Chris "Xenon" Hanson" from Questar
<pre>
Assign "WCSProjects:" "Volume:Dir/Dir/WCSProjects"
Assign "WCSFrames:" "Volume:Dir/Dir/WCSFrames"
</pre>
<pre>
Load projects .proj by accessing pull down menu Project -> Open then click on CanyonSunset.proj
OK to changing .par file and enlarge Status Log window to show what is happening
Render by pull down menu Modules -> Render with End equal 1 not 300 then click bottom middle button Render
</pre>
[https://www.youtube.com/watch?v=CxQDmf1ZWG0 Youtube walkthrough of above], [], [],
Also try working with the already built file ColoDemo - Then open with the drop-down menu: Project/Open, then WCSProject:ColoDemo.proj
Which allows you to use altimetric DEM files already included and Loading scene parameters from ColoDemo.par
Once this is done, save everything with a new name to start working exclusively on your project.
Then drop-down menu and select Save As ("NewName".proj name), then drop-down menu to open parameter and select Save All ( .par name)
After launching the software, there is a the Module Control Panel composed of five icons.
It is a dock type shortcut of the first few functions of the drop-down menu
*Database - Load (#?.proj), Append, Create, Edit, Save, Dir List (of WCSProject drawer),
*Data Ops - Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
*Map View - Database file Loader leading to Map View Control with option to the Database Editor
*Parameters - Editor for Motion, Color, Ecosystem, Clouds, Waves, management of altimeter files DEM, sclock settings etc
*Render - rendering terrain
These are more in the pull down menu but not in the dock
*Motion Editor
*Color Editor
*Ecosys Editor
Simple minimal workflow
*Load database (1st icon - 1st)
*Set parameters and save .par file (4th icon)
*Render scene (5th icon)
[https://www.youtube.com/watch?v=ZbTwwR2qcc4 Youtube], [],
<pre>
.proj new project name which creates a drawer of additional files
.binary array, ascii array .xyz , z buffer, DTED .dt0, vista 1990s dem, iff conversion
.Obj with .elev, .frd with .hdr maps, - digital elevation model (DEM) is a 3D representation of elevation data in various formats
USGS 7.5MinDEM,
.par
</pre>
Since for the time being no project is loaded, a query window indicates a procedural error when clicking on the rendering icon (right end of the bar). The menu is quite traditional; it varies according to the activity of the windows. To display any altimetric file in the "Mapview" (third icon of the panel), There are three possibilities:
* Loading of a demonstration project.
* The import of a DEM file, followed by texturing and packaging from the "Database-Editor" and the "Color-Editor".
* The creation of an altimetric file in WCS format, then texturing.
The altimeter file editing (display in the menu) is only made possible if the "Mapview" window is active.
The software is made up of many windows and won't be able to describe them all. Know that "Color-Editor" and the "Data-Editor" comprise sufficient functions for obtaining an almost real rendering quality. You have the possibility of inserting vector objects in the "Data-Editor" (creation of roads, railways, etc.)
The Map View (MapView) window
*Database - Objects and Topos
*View - Align, Center, Zoom, Pan, Move
*Draw - Maps and distance
*Object - Find, highlight, add points, conform topo, duplicate
*Motion - Camera, Focus, path, elevation
*Windows - DEM designer, Cloud (.cld) and wave (.wve) editor,
You will notice that by selecting this window and simply moving the pointer to various points on the map you will see latitude and longitude values change, along with the height.
Drop-down menu and Modules, then select MapView and change the width of the window with the map to arrange it in the best way on the screen. With the Auto button the center. Window that then displays the contents of my DEM file, in this case the Grand Canyon. MapView allows you to observe the shape of the landscape from above
ZOOM button
Press the Zoom button and then with the pointer position on a point on the map, press the left mouse button and then move to the opposite corner to circumscribe the chosen area and press the left mouse button again, then we will see the enlarged area selected on the map.
Would add that there is a box next to the Zoom button that allows the direct insertion of a value which, the larger it is, the smaller the magnification and the smaller the value, the stronger the magnification. At each numerical change you will need to press the DRAW button to update the view.
PAN button
Under Zoom you will find the PAN button which allows you to move the map at will in all directions by the amount you want. This is done by drawing a line in one direction, then press PAN and point to an area on the map with the pointer and press the left mouse button. At this point, leave it and move the pointer in one direction by drawing a line and press the left mouse button again to trigger the movement of the map on the screen (origin and end points). Do some experiments and then use the Auto button immediately below to recenter everything.
There are parameters such as TOPO, VEC to be left checked and immediately below one that allows different views of the map with the Style command (Single, Multi, Surface, Emboss, Slope, Contour), each with its own particularities to highlight different details.
Now you have the first basics to manage your project visually on the map. Close the MapView window and go further...
Let's start working on ECOSYSTEMS
If we select Emboss from the MapView Style command we will have a clear idea of how the landscape appears, realizing that it is a predominantly desert region of our planet. Therefore we will begin to act on any vegetation present and the appearance of the landscape.
With WCS we will begin to break down the elements of the landscape by assigning defined characteristics. It will be necessary to determine the classes of the ecosystem (Class) with parameters of Elevation Line (maximum altitude), Relative Elevation (arrangement on basins or convexities with respectively positive or negative parameters), Min Slope and Max Slope (slope). WCS offers the possibility of making ecosystems coexist on the same terrain with the UnderEco function, by setting a Density value.
Ecosys Ecosystem Editor
Let's open it from Modules, then Ecosys Editor. In the left pane you will find the list of ecosystems referring to the files present in our project. It will be necessary to clean up that box to leave only the Water and Snow landscapes and a few other predefined ones. We can do this by selecting the items and pressing the Remove button (be careful not for all elements the button is activated, therefore they cannot all be eliminated).
Once this is done we can start adding new ecosystems. Scroll through the various Unused and as soon as the Name item at the top is activated allowing you to write, type the name of your ecosystem, adding the necessary parameters.
<pre>
Ecosystem1: Name: RockBase Class: Rock Density: 80 MinSlope: 15 UnderEco: Terrain
Ecosystem2: Name: RockIncl Clss: Rock Density: 80 MinSlope: 30 UnderEco: Terrain
Ecosystem3: Name: Grass Class Low Veg Density: 50 Height: 1 Elev Line : 1500 Rel El Eff: 5
Max Slope: 10 – Min Slope: 0 UnderEco: Terrain
Ecosistema4: Name: Shrubs Class: Low Veg Density: 40 Height: 8 Elev Line: 3000
Rel El Eff: -2 Max Slope: 20 Min Slope : 5 UnderEco: Terrain
Ecosistema5: Name: Terrain Class: Ground Density: 100 UnderEco: Terrain
</pre>
Now we need to identify an intermediate ecosystem that guarantees a smooth transition between all, therefore we select as Understory Ecosystem the one called Terrain in all ecosystems, except Snow and Water .
Now we need to 'emerge' the Colorado River in the Canyon and we can do this by raising the sea level to 900 (Sea Level) in the Ecosystem called Water.
Please note that the order of the ecosystem list gives priority to those that come after. So our list must have the following order: Water, Snow, Shrubs, RockIncl, RockBase, Terrain. It is possible to carry out all movements with the Swap button at the bottom. To put order you can also press Short List. Press Keep to confirm all the work done so far with Ecosystem Editor.
Remember every now and then to save both the Project 'Modules/Save' and 'Parameter/Save All'
EcoModels are made up of .etp .fgp .iff8 for each model
Color Editor
Now it's time to define the colors of our scene and we can do this by going to Modules and then Color Editor. In the list we focus on our ecosystems, created first.
Let's go to the bottom of the list and select the first white space, assigning the name 'empty1', with a color we like and then we will find this element again in other environments... It could serve as an example for other situations!
So we move to 'grass' which already exists and assign the following colors: R 60 G 70 B50
<pre>
'shrubs': R 60 G 80 B 30
'RockIncl' R 110 G 65 B 60
'RockBase' R 110 G 80 B 80
' Terrain' R 150 G 30 B 30
<pre>
Now we can work on pre-existing colors
<pre>
'SunLight' R 150 G 130 B 130
'Haze and Fog' R 190 G 170 B 170
'Horizon' R 209 G 185 B 190
'Zenith' R 140 G 150 B 200
'Water' R 90 G 125 B 170
</pre>
Ambient R 0 G 0 B 0
So don't forget to close Color Editor by pressing Keep.
Go once again to Ecosystem Editor and assign the corresponding color to each environment by selecting it using the Ecosystem Color button. Press it several times until the correct one appears. Then save the project and parameters again, as done previously.
Motion Editor
Now it's time to take care of the framing, so let's go to Modules and then to Motion Editor. An extremely feature-rich window will open. Following is the list of parameters regarding the Camera, position and other characteristics:
<pre>
-Camera Altitude: 7.0
-Camera Latitude: 36.075
-Camera Longitude: 112.133
-Focus Attitude: -2.0
-Focus Latitude: 36.275
-Focus Longitude: 112.386
-Camera : 512 → rendering window
-Camera Y: 384 → rendering window
-View Arc: 80 → View width in degrees
-Sun Longitude: 172
-Sun Latitude: -0.9
-Haze Start: 3.8
-Haze Range: 78, 5
</pre>
As soon as the values shown in the relevant sliders have been modified, we will be ready to open the CamView window to observe the wireframe preview. Let's not consider all the controls that will appear.
Well from the Motion Editor if you have selected Camera Altitude and open the CamView panel, you can change the height of the camera by holding down the right mouse button and moving the mouse up and down. To update the view, press the Terrain button in the adjacent window. As soon as you are convinced of the position, confirm again with Keep. You can carry out the same work with the other functions of the camera, such as Focus Altitude...
Let's now see the next positioning step on the Camera map, but let's leave the CamView preview window open while we go to Modules to open the window at the same time MapView. We will thus be able to take advantage of the view from the other together with a subjective one.
From the MapView window, select with the left mouse button and while it is pressed, move the Camera as desired. To update the subjective preview, always click on Terrain.
While with the same procedure you can intervene on the direction of the camera lens, by selecting the cross and with the left button pressed you can choose the desired view. So with the pressure of Terrain I update the Preview. Possibly can enlarge or reduce the Map View using the Zoom button, for greater precision.
Also write that the circle around the cameras indicates the beginning of the haze, there are two types (haze and fog) linked to the altitude. Would also add that the camera height is editable through the Motion Editor panel.
The sun
Let's see that changing the position of the sun from the Motion Editor. Press the SUN button at the bottom right and set the time and the date. Longitude and latitude are automatically obtained by the program. Always open the View Arc command from the Motion Editor panel, an item present in the Parameter List box.
Once again confirm everything with Keep and then save again.
Animation
The animation part is not left-back and also occupies a window. The settings possibilities are enormous. A time line with dragging functions ("slide", "drag"...) comparable to that of LightWave completes this window.
A small window is available for positioning the stars as a function of a date, in order to vary the seasons and their various events (and yes...).
At the bottom of the "Motion-Editor", a "cam-view" function will give you access to a control panel. Different preview modes are possible. The rendering is also accessible through a window. No less than nine pages compose it. At this level, you will be able to determine the backup name of your images ("path"), the type of texture to be calculated, the resolution of the images, activate or deactivate functions such as the depth buffer ("zbuffer"), the blur, the background image, etc.
Once all these parameters have been set, all you have to do is click on the "Render" button.
For rendering go to Modules and then Render. Select the resolution, then under IMA select the name of the image. Move to FRA and indicate the level of fractal detail which of 4 is quite good. Then Keep to confirm and then reopen the window, pressing Render you will see the result. The image will be opened with any viewing program.
Strengths:
* Multi-window.
* Quality of rendering.
* Accuracy.
* Opening, preview and rendering on CyberGraphX screen.
* Extract / Convert Interp DEM, Import DLG, DXF, WDB and export LW map 3d formats
* The "zbuffer" function.
Weaknesses:
* No OpenGL management
* Calculation time.
* No network computing tool.
====Writing CD / DVD - Frying Pan====
Can be backup DVDs (4GB ISO size limit due to use of FileInfoBlock), create audio cds from mp3's, and put .iso files on discs
If using for the first time - click Drive button and Device set to ata.device and unit to 0 (zero)
Click Tracks Button - Drive 1 - Create New Disc or Import Existing Disc Image (iso bin/cue etc.) - Session File open cue file
If you're making a data cd, with files and drawers from your hard drive, you should be using the ISO Builder.. which is the MUI page on the left. ("Data/Audio Tracks" is on the right).
You should use the "Data/Audio tracks" page if you want to create music cds with AIFF/WAV/MP3 files, or if you download an .iso file, and you want to put it on a cd.
Click WRITE Button - set write speed - click on long Write button
Examples
Easiest way would be to burn a DATA CD, simply go to "Tracks" page "ISO Builder" and "ADD" everything you need to burn.
On the "Write" page i have "Masterize Disc (DAO)", "Close Disc" and "Eject after Write" set.
One must not "Blank disc before write" if one uses a CDR
AUDIO CD from MP3's are as easy but tricky to deal with. FP only understands one MP3 format, Layer II, everything else will just create empty tracks
Burning bootable CD's works only with .iso files. Go to "Tracks" page and "Data/Audio Tracks" and add the .iso
====odf====
Every ODF file is a collection of several subdocuments within a package (ZIP file), each of which stores part of the complete document.
* content.xml – Document content and automatic styles used in the content.
* styles.xml – Styles used in the document content and automatic styles used in the styles themselves.
* meta.xml – Document meta information, such as the author or the time of the last save action.
* settings.xml – Application-specific settings, such as the window size or printer information.
To read document follow these steps:
* Extracting .ods file.
* Getting content.xml file (which contains sheets data).
* Creating XmlDocument object from content.xml file.
* Creating DataSet (that represent Spreadsheet file).
* With XmlDocument select “table:table” elements, and then create adequate DataTables.
* Parse child’s of “table:table” element and fill DataTables with those data.
* At the end, return DataSet and show it in application’s interface.
To write document follow these steps:
* Extracting template.ods file (.ods file that we use as template).
* Getting content.xml file.
* Creating XmlDocument object from content.xml file.
* Erasing all “table:table” elements from the content.xml file.
* Reading data from our DataSet and composing adequate “table:table” elements.
* Adding “table:table” elements to content.xml file.
* Zipping that file as new .ods file.
XLS file format
The XLS file format contains streams, substreams, and records.
These sheet substreams include worksheets, macro sheets, chart sheets, dialog sheets, and VBA module sheets.
All the records in an XLS document start with a 2-byte unsigned integer to specify Record Type (rt), and another for Count of Bytes (cb). A record cannot exceed 8224 bytes. If larger than the rest is stored in one or more continue records.
* Workbook stream
**Globals substream
***BoundSheet8 record - info for Worksheet substream i.e. name, location, type, and visibility. (4bytes the lbPlyPos FilePointer, specifies the position in the Workbook stream where the sheet substream starts)
**Worksheet substream (sheet) - Cell Table - Row record - Cells (2byte=row 2byte=column 2byte=XF format)
***Blank cell record
***RK cell record 32-bit number.
***BoolErr cell record (2-byte Bes structure that may be either a Boolean value or an error code)
***Number cell record (64-bit floating-point number)
***LabelSst cell record (4-byte integer that specifies a string in the Shared Strings Table (SST). Specifically, the integer corresponds to the array index in the RGB field of the SST)
***Formula cell record (FormulaValue structure in the 8 bytes that follow the cell structure. The next 6 bytes can be ignored, and the rest of the record is a CellParsedFormula structure that contains the formula itself)
***MulBlank record (first 2 bytes give the row, and the next 2 bytes give the column that the series of blanks starts at. Next, a variable length array of cell structures follows to store formatting information, and the last 2 bytes show what column the series of blanks ends on)
***MulRK record
***Shared String Table (SST) contains all of the string values in the workbook.
ACCRINT(), ACCRINTM(), AMORDEGRC(), AMORLINC(),
COUPDAYBS(), COUPDAYS(), COUPDAYSNC(), COUPNCD(), COUPNUM(), COUPPCD(),
CUMIPMT(), CUMPRINC(),
DB(), DDB(), DISC(),
DOLLARDE(), DOLLARFR(),
DURATION(), EFFECT(), FV(), FVSCHEDULE(),
INTRATE(), IPMT(), IRR(), ISPMT(), MDURATION(), MIRR(), NOMINAL(), NPER(), NPV(),
ODDFPRICE(), ODDFYIELD(), ODDLPRICE(), ODDLYIELD(),
PMT(), PPMT(), PRICE(), PRICEDISC(), PRICEMAT(), PV(), RATE(),
RECEIVED(), SLN(), SYD(), TBILLEQ(), TBILLPRICE(), TBILLYIELD(),
VDB(), XIRR(), XNPV(), YIELD(), YIELDDISC(), YIELDMAT(),
<pre>
</pre>
<pre>
</pre>
<pre>
</pre>
{{BookCat}}
k56kzqv052jylg5nc88dcv28zix7y1f
OpenSSH/Client Configuration Files
0
248402
4674756
4618814
2026-10-06T16:40:31Z
Larsnooden
430753
MLDSA44-Ed25519
4674756
wikitext
text/x-wiki
Client configuration files can be per user or system wide, with the former taking precedence over the latter and run-time arguments in the shell overriding both. In these configuration files, one parameter per line is allowed. The syntax is the parameter name followed by its value or values. Empty lines and lines starting with the hash ('''#''') are ignored. An equal sign ('''=''') can be used instead of whitespace between the parameter name and the values. Values are case-sensitive, but parameter names are not. The first value assigned is used. For key files, the format is different.
With either type of file, there is no substitute for reading the relevant manual pages on the actual systems involved, especially because they match the specific versions which are in use.
==System-wide Client Configuration Files==
System-wide client files set the default configuration for all users of OpenSSH clients on that system. These defaults can be overridden in most cases by the user's own default settings in a local configuration file. Both can be overridden, in many cases, by specifying various options or parameters at run time. The prioritization is as follows:
# run time arguments via the shell
# user's own configuration
# system-wide configuration
The first value obtained is used. The user's own configuration file and the system-wide configuration file can also point to additional configuration files to be included using the '''Include''' directive starting with OpenSSH 7.3. The '''Include''' directive can be specified anywhere in the configuration file even inside a '''Match''' or '''Host''' block. Care should be used when nesting configurations.
===''/etc/ssh/ssh_config''===
This file defines all the default settings for the client utilities for all users on that system. It must be readable by all users. The configuration options are described in detail in [http://man.openbsd.org/ssh_config.5 ssh_config(5)].
Below a shortcut is made for connecting to ''arc.example.org''.
<syntaxhighlight lang="apache" line="1">
Host arc
Port 2022
HostName arc.example.org
User fred
IdentityFile ~/.ssh/id_rsa_arc
</syntaxhighlight>
So with that configuration, it is enough to enter <code>ssh arc</code> and the rest of the information gets filled in automatically.
===''/etc/ssh/ssh_known_hosts''===
This contains the system-wide list of known host keys used to verify the identity of the remote host and thus hinder impersonation or eavesdropping. This file should be prepared by the system administrator to contain the public host keys of all necessary hosts. It should be world-readable.
See '''~/.ssh/known_hosts''' below for more explanation or see [http://man.openbsd.org/sshd.8 sshd(8)] for further details of the format of this file.
===''/etc/ssh/sshrc''===
This file resides on the server and programs in this file are executed there by [http://man.openbsd.org/ssh.1 ssh(1)] when the user logs in, just before the user's shell or designated program is started. It is not run as root, but instead as the user who is logging in. See the [http://man.openbsd.org/sshd.8 sshd(8)] manual page in the section "SSHRC" for more information. If it sends anything to '''stdout''' that will interfere with SFTP sessions, among others. So if any output is produced at all, it should be sent to '''stderr''' or else a log file.
==User-specific Client Configuration Files==
Users can override the default system-wide client settings and choose their own defaults. For situations where the same change is made repeatedly it is recommended to add it to the user's local configuration.
===Client-Side Files===
These files reside on the client machine.
====''~/.ssh/config''====
The user's own configuration file which, where applicable, overrides the settings in the global client configuration file, '''/etc/ssh/ssh_config'''. The configuration options are described in detail in [http://man.openbsd.org/ssh_config.5 ssh_config(5)].
This file must ''not'' be accessible to other users in any way. Set strict permissions: read/write for the user, and not accessible by others. It may group-writable if and only if that user is the only member of the group in question.
=====Local Override of Client Defaults=====
The file is usually named '''~/.ssh/config'''. However, a different configuration file can be specified at runtime using the '''-F''' option. General options intended to apply to all hosts can be set by matching all hosts and should be done at the end of the configuration file. The first match takes precedence, therefore more specific definitions must come first and more general overrides at the end of the file.
<syntaxhighlight lang="apache" line="1">
Host server1
ServerAliveInterval 200
HostName 203.0.113.76
Host *
ExitOnForwardFailure yes
Protocol 2
ServerAliveInterval 400
</syntaxhighlight>
Options given as runtime arguments will override even those in the configuration file. However, not all options can be set or overriden by the user. Those options which may not be set or overridden will be ignored.
====''~/.ssh/known_hosts''====
This file is local to the user account and contains the known keys for remote hosts. Often these are collected from the hosts when connecting for the first time, but they can be added manually. As with those keys stored in the global file, '''/etc/ssh/ssh_known_hosts''', these keys are used to verify the identity of the remote host, thus protecting against impersonation or man-in-the-middle attacks. With each subsequent connection the key will be compared to the key provided by the remote server. If there is a match, the connection will proceed. If the match fails, [http://man.openbsd.org/ssh.1 ssh(1)] will fail with an error message. If there is no key at all listed for that remote host, then the key's fingerprint will be displayed and there will be the option to automatically add the key to the file. This file can be created and edited manually, but if it does not exist it will be created automatically by [http://man.openbsd.org/ssh.1 ssh(1)] when it first connects to a remote host.
The '''~/.ssh/known_hosts''' file can use either hashed or clear text host names. Even with hashed names, it can still be searched using [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] using the '''-F''' option.
<syntaxhighlight lang="shell">
$ ssh-keygen -F server3.example.com
</syntaxhighlight>
The default file to be searched will be '''~/.ssh/known_hosts''' and the key is printed if found. A different file can be searched using the '''-f''' option. If a key must be removed from the file, the '''-R''' option works similarly to search by host and then remove it if found even if the host name is hashed.
<syntaxhighlight lang="shell">
$ ssh-keygen -R server4.example.com -f ~/.ssh/known_hosts
</syntaxhighlight>
When a key is removed, it will then be appended to the file '''~/.ssh/known_hosts.old''' in case it is needed later. Again, see the manual page for [http://man.openbsd.org/sshd.8 sshd(8)] for the format of these '''known_host''' files.
If a non-default file is used with either '''-F''' or '''-R''' then the name including the path must be specified using '''-f'''. But '''-f''' is optional if the default file is intended.
If the global file '''/etc/ssh/ssh_known_hosts''' is used then it should be prepared by the system administrator to contain the public host keys of all necessary hosts and it should be world-readable.
=====Manually Adding Public Keys to ~/.ssh/known_hosts =====
Manually adding public host keys to '''known_hosts''' is a matter of adding one unbroken line per key. How the key is obtained is not important, as long as it is complete, valid, and '''guaranteed to be the real key and not a fake'''. The utility [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] can fetch a key and [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] can be used to show the fingerprint for verification. See examples in the cookbook chapter on [[OpenSSH/Cookbook/Public_Key_Authentication | Public Key Authentication]] for methods of verification.
Again, the corresponding system-wide file is '''/etc/ssh/ssh_known_hosts'''
=====About the Contents of the known_hosts Files=====
The '''known_hosts''' file is for verifying the identity of other systems. [http://man.openbsd.org/ssh.1 ssh(1)] can automatically add keys to the user's file, but they can be added manually as well. The file contains a list of public keys for all the hosts which the user has connected to. It can also include public keys for hosts that the user plans to log into but are not already in the system-wide list of known host keys. Usually when connecting to a host for the first time, [http://man.openbsd.org/ssh.1 ssh(1)] adds the remote host's public key to the user's '''known_hosts''' file, but this behavior can be tuned.
The format is one public key or certificate per unbroken line. Each line in contains a host name, number of bits, exponent, and modulus. At the beginning of the line is either the host name or a hash representing the host name. An optional comment can follow at the end of the line. These can be preceded by an optional marker to indicate a certificate authority, if an SSH certificate is used instead of a SSH key. These fields are separated by spaces. It is possible to use a comma-separated list of hosts in the host name field if a host has multiple names or if the same key is used on multiple machines in a server pool. Here are two examples for hosts with the basic host names:
<pre>
anoncvs.fr.openbsd.org,93.184.34.123 ssh-rsa AAAA...njvPw==
anoncvs.eu.openbsd.org ssh-rsa AAAAB3Nz...cTqGvaDhgtAhw==
</pre>
Non-standard ports can be indicated by enclosing the host name with square brackets and following with a colon and the port number. Here are three examples referring to hosts listening for SSH on non-standard ports:
<pre>
[ssh.example.org]:2222 ssh-rsa AAAAB3Nz...AKy2R2OE=
[127.0.0.2]:4922 ssh-rsa AAAAB4mV...1d6j=
[anga.funkfeuer.at]:2022,[78.41.115.130]:2022 ssh-rsa AAAAB...fgTHaojQ==
</pre>
Host name patterns can be created using "'''*'''" and "'''?'''" as wildcards and "'''!'''" to indicate negation.
Up to one optional marker per line is allowed. If present it must be either '''@cert-authority''' or '''@revoked'''. The former shows that the key is a certificate authority key, the latter flags the key as revoked and not acceptable for use.
See [http://man.openbsd.org/sshd.8 sshd(8)] for further details on the format of this file and [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] for managing the keys.
===Server-Side Client Files===
These client files reside on the server. By default they are kept in the user's directory. However, the server can be configured to look for them in other locations if needed.
====''~/.ssh/authorized_keys''====
'''authorized_keys''' is a one-key-per-line register of public ECDSA, RSA, ED25519, and MLDSA44-Ed25519 keys that this account can use to log in with. The file's contents are not highly sensitive, but the recommended permissions are read/write for the user and not accessible by others. As always, the whole key including options and comments must be on a single, unbroken line.
<pre>
ssh-rsa AAAAB3NzaC1yc2EAAA...41Ev521Ei2hvz7S2QNr1zAiVaOFy5Lwc8Lo+Jk=
</pre>
Lines starting with a hash (#) are ignored and can be used as comments. Whitespace separates the key's fields, which are in sequence an optional list of login options, the key type (usually ssh-rsa or better like ecdsa-sha2-nistp256), the key itself encoded as base64, and an optional comment.
If a key is followed by an annotation, the comment does not need to be wrapped in quotes. It has no effect on what the key does or how it works. Here is an annotated key, the comment having been generated with the '''-C''' option [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]:
<pre>
ssh-rsa AAAAB3NzaC1yc2EAAA...zAiVaOFy5Lwc8Lo+Jk= Fred @ Project FOOBAR
</pre>
Keys can be preceded by a comma-separated list of options to affect what happens upon successful login. The first key below forces the session to launch '''tinyfugue''' automatically, the second forcibly sets the PATH environment variable:
<pre>
command="/usr/bin/tinyfugue" ssh-rsa AAAAB3NzaC1yc2EAAA...OFy5Lwc8Lo+Jk=
environment="PATH=/bin:/usr/bin/:/opt/gtm/bin" ssh-rsa AAAAB3N...4Y2t1j=
</pre>
The format of '''authorized_keys''' is described in the [http://man.openbsd.org/sshd.8 sshd(8)] manual page. Old keys should be deleted from the file when no longer needed. The server can specify multiple locations for '''authorized_keys'''. See the next section, [[#Server-Side_Client_Key_Login_Options|Server-Side Client Key Login Options]], for details.
====''~/.ssh/authorized_principals''====
By default this file does not exist. If it is specified in [http://man.openbsd.org/sshd_config.5 sshd_config(5)], it contains a list of names which can be used in place of the username when authorizing a certificate. This option is useful for role accounts, disjoint account namespaces and "user@realm"-style naming policies in certificates. Principals can also be specified in '''authorized_keys'''.
====''~/.ssh/environment''====
If the server is configured to accept user-supplied, automatic changes to environment variables as part of the login process, then these changes can be set in this file.
If the server, the environment file and an authorization key all try to change the same variable, the file '''environment''' takes precedence over what a key might contain. Either one will override any environment variables that might have been passed by [http://man.openbsd.org/ssh.1 ssh(1)] using '''SendEnv'''.
Authentication keys stored in '''authorized_keys''' can also be used to set variables. See also the '''AcceptEnv''' and '''PermitUserEnvironment''' directives in the manual page for [http://man.openbsd.org/sshd_config.5 sshd_config(5)].
====''~/.ssh/rc''====
This is a script which is executed by [http://man.openbsd.org/sh.1 sh(1)] just before the user's shell or command is started. It is not run if '''ForceCommand''' is used. The script is run after reading the environment variables. The corresponding global file, '''/etc/ssh/sshrc''', is not run if the user's '''rc''' script exists.
===Local Account Public / Private Key Pairs===
People might have a variety ECDSA, Ed25519, and RSA keys stored in the file system. Since version 8.2, two new key types ECDSA-SK and Ed25519-SK, along with corresponding certificate types are available for keys tied to FIDO/U2F tokens. Though individual accounts can maintain their own list of keys or certificates for authentication or to verify the identity of remote hosts in any directory, the most common location is in the '''~/.ssh/''' directory. The naming convention for keys is only a convention but recommended to follow anyway. Public keys usually have the same name as the private key, but with '''.pub''' appended to the name. Trouble can arise if the names of the public and private keys do not match. If there is more than one key pair, then [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] can use the '''-f''' option when generating keys to produce a useful name along with the '''-C''' option which embeds a relevant comment inside the key pair.
People, programs, and scripts can authenticate using a private key stored on the system, or even a private key fetched from a smartcard, if the corresponding public key is stored in '''authorized_keys''' on the remote system. The '''authorized_keys''' file is not highly sensitive, but the recommended permissions are read/write for the user, and not accessible by others. The private keys, however, are very sensitive and should not be readable or even visible to other accounts. They should never leave the client and should certainly never be put on the server. See the chapter on [[OpenSSH/Cookbook/Public_Key_Authentication | Public Key Authentication]] for more discussion and examples.
The keys can be preceded by a comma-separated list of options. The whole key must be on a single, unbroken line. No spaces are permitted, except within double quotes. Any text after the key itself is considered a comment. The '''authorized_keys''' file is a one-key-per line register of public RSA, Ed25519, ECDSA, Ed25519-SK, and ECDSA-SK keys that can be used to log into a particular account. See the section above on the '''authorized_keys''' file for more discussion.
DSA support has been removed from OpenSSH starting with 10.0 in 2025 and was considered deprecated since 2015. Therefore the time has passed for DSA keys. They are no longer considered safe and should be replaced with better keys.
Per-account [[OpenSSH/Cookbook/Host-based_Authentication| Host-based Authentication Configuration]] is also possible using the '''~/.shosts''', '''~/.rhosts''', '''~/.ssh/environment''', and '''~/.ssh/rc''' files.
====Client Public Keys====
These are only the default names for the public keys. The actual file name can be anything and the location be any directory.
'''~/.ssh/id_ecdsa.pub''' '''~/.ssh/id_ed25519.pub''' '''~/.ssh/id_rsa.pub''' '''~/.ssh/id_ecdsa-sk.pub''' '''~/.ssh/id_ed25519-sk.pub''' '''~/.ssh/id_ecdsa-sk_rk.pub''' '''~/.ssh/id_ed25519-sk_rk.pub'''
Again, it can be a good idea to give more relevant names to keys. The '''*-sk.pub''' keys are those bound with a hardware security token and the '''*-sk_rk.pub''' keys are those generated from resident keys stored within hardware security token.
Public keys are mainly used on the remote server for key-based authentication. Public keys are not sensitive and are allowed to be readable by anyone, unlike the private keys, but don't need to be. A public key, minus comments and restriction options, can be regenerated from a private key if lost. So while it can be useful to keep backups of the public key, it is not essential unlike for private keys.
====Client Private Keys====
Like with the client's public keys, the actual file names for the private keys can be anything and their location be in any directory. Here are the default names for client private keys.
'''~/.ssh/id_ecdsa''' '''~/.ssh/id_ed25519''' '''~/.ssh/id_rsa''' '''~/.ssh/id_ecdsa-sk''' '''~/.ssh/id_ed25519-sk''' '''~/.ssh/id_ecdsa-sk_rk''' '''~/.ssh/id_ed25519-sk_rk'''
Private keys are always considered sensitive data and should be readable only by the user and not accessible by others. In other words, they use mode 0600. The directory they are in should also have mode 0700 or 0500. If a private key file is accessible by others, [http://man.openbsd.org/ssh.1 ssh(1)] will ignore it.
It is possible to specify a passphrase when generating the key which will be used to encrypt the sensitive part of this file using AES128. Until version 5.3, the cipher 3DES was used to encrypt the passphrase. Old keys using 3DES that are given new passphrases will use AES128 when they are modified.
Private keys stored in hardware tokens as resident keys can be extracted and automatically used to generate their corresponding public key using [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] with the '''-K''' option. Such keys will default to being named '''id_ecdsa-sk_rk''' or '''id_ed25519-sk_rk''', depending on the key type, though the file names can be changed after extraction. A passphrase can be assigned to the private key upon extraction from the token to a file.
While public keys can be generated from private keys, new private keys cannot be regenerated from public keys if the private keys are lost. Nor can a new passphrase be set if the current one is forgotten. Gone is gone, unlike the public keys, which can be regenerated from an existing private key if the private key is lost or forgotten then a whole new key pair must be generated and deployed.
===Legacy Files===
These files might be encountered on very old or out of date systems but not on up-to-date ones.
====''~/.shosts''====
====''~/.rhosts''====
'''.rhosts''' is a legacy from rsh containing a local list of trusted host-user pairs that are allowed to log in. Login requests matching an entry were granted access.
See also the global list of trusted host-user pairs, '''/etc/hosts.equiv'''
'''rhosts''' can be used as part of host-based authentication. Otherwise it is recommended not to use rhosts for authentication, there are a lot of ways to misconfigure the '''.rhosts''' file.
====Legacy DSA Keys ~/.ssh/id_dsa ~/.ssh/id_dsa.pub====
Deprecated DSA keys might be found named as '''id_dsa''' and '''id_dsa.pub''', but regardless of the name any usage should be tracked down. Support for DSA both on the server and client was discontinued in OpenSSH 7.0 and fully removed in OpenSSH 10.0. If DSA keys are found, the pair should be removed and replaced with a better type of key.
====Legacy SSH1 Protocol Keys ~/.ssh/identity ~/.ssh/identity.pub====
The files '''identity''' and '''identity.pub''' were for SSH protocol version 1, and thus deprecated. If found they should be investigated as to what, if anything, uses them and why. Then once any remaining usage is resolved they should be removed and replaced with newer key types.
==Mapping Client Options And Configuration Directives==
Many run-time options for the SSH client have corresponding configuration directives and vice versa. The following is a quick overview. It is not a substitute for getting familiar with the relevant manual pages, [https://man.openbsd.org/ssh.1 ssh(1)] and [https://man.openbsd.org/ssh_config.5 ssh_config(5)] which are the relevant, authoritative, up-to-date resources on the matter.
{| class="wikitable" style="caption-side: bottom;"
|+ Lookup Table of OpenSSH Client Options Versus Configuration Directives
|- style="border-bottom: thick solid #000;"
! Directive
! Option
! Description
|-
! AddressFamily
! -4 / -6
| Limit connections to IPv4 or IPv6 only.
|-
! ForwardAgent
! -A / -a
| Forward or block forwarding from the authentication agent.
|-
! BindInterface
! -B
| Bind the outgoing connection to this network interface.
|-
! BindAddress
! -b
| Bind the outgoing connection to this network address.
|-
! Compression
! -C
| Specify whether to compress the data using [http://man.openbsd.org/gzip.1 gzip(1)].
|-
! Ciphers
! -c
| Specify which cipher to use.
|-
! DynamicForward
! -D
| Designate a local port to be forwarded, say for SOCKS5.
|-
! EscapeChar
! -e
| Specify an escape character for PTY sessions.
|-
! ForkAfterAuthentication
! -f
| Drop client to background right before command execution.
|-
! GatewayPorts
! -g
| Whether other hosts are allowed to connect to local forwarded ports.
|-
! PKCS11Provider
! -I
| Specify the path to the shared PKCS#11 library.
|-
! IdentityFile
! -i
| Specify a particular certificate or private key to use for authentication.
|-
! ProxyJump
! -J
| Connect to the destination via this host or hosts first.
|-
! GSSAPIAuthentication
! -K / -k
| Enable or disable Generic Security Services Application Program Interface (GSSAPI) authentication.
|-
! LocalForward
! -L
| Specify which local port or socket to forward to the specified remote system.
|-
! User
! -l
| Designate which account on the remote system to try.
|-
! ControlMaster
! -M
| Allow multiplexing of SSH sessions over a single TCP connection.
|-
! MACs
! -m
| Designate which message authentication code (MAC) algorithms to try.
|-
! SessionType
! -N / -s
| Invoke a designated subsystem or even prevent any command execution at all.
|-
! StdinNull
! -n
| Prevent reading from '''stdin'''.
|-
! Tag
! -P
| Tag for use within '''Match'''.
|-
! Port
! -p
| Connect to this port on the remote system.
|-
! LogLevel
! -q / -v
| Adjust the verbosity of logging messages from the client.
|-
! RemoteForward
! -R
| Specify which remote port or socket to forward to the specified local system.
|-
! ControlPath
! -S
| Designate the control socket for multiplexing over this connection.
|-
! RequestTTY
! -T / -t
| Prohibit or request a pseudo-TTY for the session.
|-
! ForwardX11
! -X / -x
| Enable or prohibit X11 forwarding.
|}
As of version 8.7 the '''-f''', '''-N''', and '''-n''' options also have corresponding client configuration directives in [https://man.openbsd.org/ssh_config.5 ssh_config(5)]. Other directives, like WarnWeakCrypto do not have run time options.
==Server-Side Client Key Login Options==
The login options available for use in the local user authorized keys file might be overridden or blocked by the server's own settings. However, within that constraint, the following options can be used.
'''cert-authority'''
Specifies that the listed key is a certification authority (CA) trusted to validate signed certificates for user authentication. Certificates may encode access restrictions similar to key options. If both certificate restrictions and key restrictions are present, then the most restrictive union of the two is applied.
'''command="''program''"'''
Specifies a program and its options to be executed when the key is used for authentication. This is a good way of forcing a program to restrict a key to a single, specific operation such as a remote backup. However, TCP and X11 forwarding are still allowed unless explicitly disabled elsewhere.
The program is run on a PTY if the client requests it, otherwise the default is to run without a TTY. The default, running without a TTY, provides an 8-bit clean channel. If the default has been changed, specify '''no-pty''' to get an 8-bit clean channel. If no programs are allowed, then use an empty string "" to prevent anything from running.
<pre>
no-pty,command="" ssh-rsa AAAAB3NzaC1yc2EAAA...OFy5Lwc8Lo+Jk=
</pre>
If only one program is allowed, with specific options, then it can be spelled out explicitly.
<pre>
restrict,command="/usr/bin/svnserve -t --tunnel-user=fred" ssh-ed25519 AAAAC3NzaC1lZDI1NT...skSUlrRPoLyUq
</pre>
Quotes provided in the program's options must be escaped using a backslash. ('\')
<pre>
command="sh -c \"mysqldump db1 -u fred1 -p\"" ssh-rsa AAAAB3NzaC1yc...Lwc8OFy5Lo+kU=
</pre>
This option applies to execution of the shell, another program, or a subsystem. Thus any other programs specified by the user are ignored when '''command''' is present. However, the program originally specified by the client remains available as the environment variable '''SSH_ORIGINAL_COMMAND'''. That can be used by a script in a multiple-choice case statement, for example, to allow the account to select from a limited range of actions.
'''environment="''NAME''=''value''"'''
Sets the value of an environment variable when this key is used to log in. It overrides default values of the variable, if they exist. This option can be repeated to set multiple variables up to 1024 discrete names. First match wins in the case of repetition. This option is only allowed if the '''PermitUserEnvironment''' option is set in the SSH server's configuration. The default is that it is disabled. This option used to be disabled automatically when '''UseLogin''' was enabled, but '''UseLogin''' has been deprecated.
'''expiry-time="''timespec''"'''
Sets a date or date-time, either as a YYYYMMDD date or a YYYYMMDDHHMM[SS], after which the key will not be allowed to authenticate. Otherwise the key will be considered valid indefinitely. The system time zone is used.
'''from="''pattern-list''"'''
Either the canonical name of the remote host or its IP address required in addition to the key. Addresses and host names can be listed using a comma-separated list of patterns, see PATTERNS in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] for more information on patterns, or use the CIDR address/masklen notation.
'''no-agent-forwarding / agent-forwarding'''
This option forbids the authentication agent from forwarding the key when it is used for authentication. Alternately, it allows agent forwarding even if it was otherwise previously disabled by the '''restrict''' option.
'''no-port-forwarding / port-forwarding'''
Forbids TCP forwarding and any port forward requests by the client will return an error when this key is used for authentication. Alternately, override the '''restrict''' option and allow port forwarding. See also '''permitopen'''.
'''no-pty / pty'''
TTY allocation is prohibited and any request to allocate a PTY will fail. Alternately, TTY allocation is permitted, even if previously disabled by the '''restrict''' option.
'''no-touch-required'''
FIDO keys which have been created with the '''-O no-touch-required''' can use this method which makes the client skip the check for user presence.
'''no-user-rc / user-rc'''
Use the '''no-user-rc''' option in '''authorized_keys''' to disable execution of '''~/.ssh/rc '''. Alternately, use '''user-rc''' to override the '''restrict''' option.
'''no-X11-forwarding / x11-forwarding'''
Prevent X11 forwarding when this key is used for authentication and requests to forward X11 will return an error. Alternately, override the '''restrict''' option and allow X11 forwarding.
'''permitlisten="[''host'':]''port''"'''
'''permitopen="''host'':''port''"'''
The '''permitlisten''' setting limits remote port forwarding (<code>ssh -R</code>) to only the specified port and, optionally, host. In contrast, '''permitopen''' limits local port forwarding (<code>ssh -L</code>) to only the specified host and port. IPv6 addresses can be specified with an alternative syntax: host/port. Multiple '''permitopen''' or '''permitlisten''' options may be used and must be separated by commas. No pattern matching is performed on the specified host names, they must be literal host names or IP addresses. Can be used in conjunction with agent-forwarding.
'''principals="''name1''[,''name2'',...]"'''
Specify a list of names that may be used in place of the username when authorizing a certificate trusted via the '''TrustedCAKeys''' option described in [http://man.openbsd.org/sshd_config.5 sshd_config(5)].
'''restrict'''
Disable all options, such as TTY allocation, port forwarding, agent forwarding, user-rc, and X11 forwarding all at once. Specific options can then be explicitly allowed on an individual basis.
'''tunnel="''n''"'''
Select a specific [http://man.openbsd.org/tun.4 tun(4)] device on the server. Otherwise when a tunnel device is requested without this option the next available device will be used.
'''verify-required'''
Require user-verification, such as with a PIN, with FIDO keys.
==Managing Keys==
When working with keys there are some basic, hopefully common sense, actions that should take place to prevent problems. The two most beneficial approaches are to use sensible names for the key files and to embed comments. The '''-f''' option for [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] allows a custom name to be set. The '''-C''' option allows a comment to be embedded in both the public and private keys. With the comment inside the private key, it can be regenerated automatically if a replacement public key is ever made using the '''-y''' option.
Other than that, there are three main rules of thumb for managing keys:
* Keys should use strong passphrases. If autonomous logins are required, then the keys should be first loaded into an agent and used from there. See [http://man.openbsd.org/ssh-add.1 ssh-add(1)] to get started there. It uses [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)] which many systems have installed and some have running by default.
* Keys should always be stored in protected locations, even on the client side. This is especially important for private keys. The private keys should not have read permissions for any user or group other than their owner. They should also be kept in a directory that is not accessible by anyone other than the owner in order to limit exposure.
* Old and unused keys should be removed from the server. In particular, keys without a known, valid purpose should be removed and not allowed to accumulate. Using the comment field in the public key for annotation can help eliminate some of the confusion as to the purpose and owner once some time has passed. Along those lines, keys should be rotated at intervals. Rotation means generating new key pairs and removing the old ones. This gives a chance to remove old and unused keys. It is also an opportunity to review access needs, whether access is required and if so at what level.
Following the principle of least privilege can limit the chance for accidents or abuse. If a key is only needed to run a specific application or script, then its login options should be limited to just what is needed. See [http://man.openbsd.org/sshd.8 sshd(8)] for the "AUTHORIZED_KEYS FILE FORMAT" section on key login options. For root level access, it is important to remember to configure '''/etc/sudoers''' or '''/etc/doas.conf''' appropriately. Access there can be granted to a specific application and even limit that application to specific options.
One major drawback to keys is that they never expire and are valid indefinitely in principle. In contrast, certificates can be assigned a validity interval with an end date, after which they can no longer be used.
<noinclude>{{OpenSSH/TOC|mini}}</noinclude>
{{BookCat}}
{{status|100%}}
9f3vt261i81mjma0srrkbz8ntwerjiu
4674759
4674756
2026-10-06T16:59:19Z
Larsnooden
430753
MLDSA44-E25519
4674759
wikitext
text/x-wiki
Client configuration files can be per user or system wide, with the former taking precedence over the latter and run-time arguments in the shell overriding both. In these configuration files, one parameter per line is allowed. The syntax is the parameter name followed by its value or values. Empty lines and lines starting with the hash ('''#''') are ignored. An equal sign ('''=''') can be used instead of whitespace between the parameter name and the values. Values are case-sensitive, but parameter names are not. The first value assigned is used. For key files, the format is different.
With either type of file, there is no substitute for reading the relevant manual pages on the actual systems involved, especially because they match the specific versions which are in use.
==System-wide Client Configuration Files==
System-wide client files set the default configuration for all users of OpenSSH clients on that system. These defaults can be overridden in most cases by the user's own default settings in a local configuration file. Both can be overridden, in many cases, by specifying various options or parameters at run time. The prioritization is as follows:
# run time arguments via the shell
# user's own configuration
# system-wide configuration
The first value obtained is used. The user's own configuration file and the system-wide configuration file can also point to additional configuration files to be included using the '''Include''' directive starting with OpenSSH 7.3. The '''Include''' directive can be specified anywhere in the configuration file even inside a '''Match''' or '''Host''' block. Care should be used when nesting configurations.
===''/etc/ssh/ssh_config''===
This file defines all the default settings for the client utilities for all users on that system. It must be readable by all users. The configuration options are described in detail in [http://man.openbsd.org/ssh_config.5 ssh_config(5)].
Below a shortcut is made for connecting to ''arc.example.org''.
<syntaxhighlight lang="apache" line="1">
Host arc
Port 2022
HostName arc.example.org
User fred
IdentityFile ~/.ssh/id_rsa_arc
</syntaxhighlight>
So with that configuration, it is enough to enter <code>ssh arc</code> and the rest of the information gets filled in automatically.
===''/etc/ssh/ssh_known_hosts''===
This contains the system-wide list of known host keys used to verify the identity of the remote host and thus hinder impersonation or eavesdropping. This file should be prepared by the system administrator to contain the public host keys of all necessary hosts. It should be world-readable.
See '''~/.ssh/known_hosts''' below for more explanation or see [http://man.openbsd.org/sshd.8 sshd(8)] for further details of the format of this file.
===''/etc/ssh/sshrc''===
This file resides on the server and programs in this file are executed there by [http://man.openbsd.org/ssh.1 ssh(1)] when the user logs in, just before the user's shell or designated program is started. It is not run as root, but instead as the user who is logging in. See the [http://man.openbsd.org/sshd.8 sshd(8)] manual page in the section "SSHRC" for more information. If it sends anything to '''stdout''' that will interfere with SFTP sessions, among others. So if any output is produced at all, it should be sent to '''stderr''' or else a log file.
==User-specific Client Configuration Files==
Users can override the default system-wide client settings and choose their own defaults. For situations where the same change is made repeatedly it is recommended to add it to the user's local configuration.
===Client-Side Files===
These files reside on the client machine.
====''~/.ssh/config''====
The user's own configuration file which, where applicable, overrides the settings in the global client configuration file, '''/etc/ssh/ssh_config'''. The configuration options are described in detail in [http://man.openbsd.org/ssh_config.5 ssh_config(5)].
This file must ''not'' be accessible to other users in any way. Set strict permissions: read/write for the user, and not accessible by others. It may group-writable if and only if that user is the only member of the group in question.
=====Local Override of Client Defaults=====
The file is usually named '''~/.ssh/config'''. However, a different configuration file can be specified at runtime using the '''-F''' option. General options intended to apply to all hosts can be set by matching all hosts and should be done at the end of the configuration file. The first match takes precedence, therefore more specific definitions must come first and more general overrides at the end of the file.
<syntaxhighlight lang="apache" line="1">
Host server1
ServerAliveInterval 200
HostName 203.0.113.76
Host *
ExitOnForwardFailure yes
Protocol 2
ServerAliveInterval 400
</syntaxhighlight>
Options given as runtime arguments will override even those in the configuration file. However, not all options can be set or overriden by the user. Those options which may not be set or overridden will be ignored.
====''~/.ssh/known_hosts''====
This file is local to the user account and contains the known keys for remote hosts. Often these are collected from the hosts when connecting for the first time, but they can be added manually. As with those keys stored in the global file, '''/etc/ssh/ssh_known_hosts''', these keys are used to verify the identity of the remote host, thus protecting against impersonation or man-in-the-middle attacks. With each subsequent connection the key will be compared to the key provided by the remote server. If there is a match, the connection will proceed. If the match fails, [http://man.openbsd.org/ssh.1 ssh(1)] will fail with an error message. If there is no key at all listed for that remote host, then the key's fingerprint will be displayed and there will be the option to automatically add the key to the file. This file can be created and edited manually, but if it does not exist it will be created automatically by [http://man.openbsd.org/ssh.1 ssh(1)] when it first connects to a remote host.
The '''~/.ssh/known_hosts''' file can use either hashed or clear text host names. Even with hashed names, it can still be searched using [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] using the '''-F''' option.
<syntaxhighlight lang="shell">
$ ssh-keygen -F server3.example.com
</syntaxhighlight>
The default file to be searched will be '''~/.ssh/known_hosts''' and the key is printed if found. A different file can be searched using the '''-f''' option. If a key must be removed from the file, the '''-R''' option works similarly to search by host and then remove it if found even if the host name is hashed.
<syntaxhighlight lang="shell">
$ ssh-keygen -R server4.example.com -f ~/.ssh/known_hosts
</syntaxhighlight>
When a key is removed, it will then be appended to the file '''~/.ssh/known_hosts.old''' in case it is needed later. Again, see the manual page for [http://man.openbsd.org/sshd.8 sshd(8)] for the format of these '''known_host''' files.
If a non-default file is used with either '''-F''' or '''-R''' then the name including the path must be specified using '''-f'''. But '''-f''' is optional if the default file is intended.
If the global file '''/etc/ssh/ssh_known_hosts''' is used then it should be prepared by the system administrator to contain the public host keys of all necessary hosts and it should be world-readable.
=====Manually Adding Public Keys to ~/.ssh/known_hosts =====
Manually adding public host keys to '''known_hosts''' is a matter of adding one unbroken line per key. How the key is obtained is not important, as long as it is complete, valid, and '''guaranteed to be the real key and not a fake'''. The utility [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] can fetch a key and [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] can be used to show the fingerprint for verification. See examples in the cookbook chapter on [[OpenSSH/Cookbook/Public_Key_Authentication | Public Key Authentication]] for methods of verification.
Again, the corresponding system-wide file is '''/etc/ssh/ssh_known_hosts'''
=====About the Contents of the known_hosts Files=====
The '''known_hosts''' file is for verifying the identity of other systems. [http://man.openbsd.org/ssh.1 ssh(1)] can automatically add keys to the user's file, but they can be added manually as well. The file contains a list of public keys for all the hosts which the user has connected to. It can also include public keys for hosts that the user plans to log into but are not already in the system-wide list of known host keys. Usually when connecting to a host for the first time, [http://man.openbsd.org/ssh.1 ssh(1)] adds the remote host's public key to the user's '''known_hosts''' file, but this behavior can be tuned.
The format is one public key or certificate per unbroken line. Each line in contains a host name, number of bits, exponent, and modulus. At the beginning of the line is either the host name or a hash representing the host name. An optional comment can follow at the end of the line. These can be preceded by an optional marker to indicate a certificate authority, if an SSH certificate is used instead of a SSH key. These fields are separated by spaces. It is possible to use a comma-separated list of hosts in the host name field if a host has multiple names or if the same key is used on multiple machines in a server pool. Here are two examples for hosts with the basic host names:
<pre>
anoncvs.fr.openbsd.org,93.184.34.123 ssh-rsa AAAA...njvPw==
anoncvs.eu.openbsd.org ssh-rsa AAAAB3Nz...cTqGvaDhgtAhw==
</pre>
Non-standard ports can be indicated by enclosing the host name with square brackets and following with a colon and the port number. Here are three examples referring to hosts listening for SSH on non-standard ports:
<pre>
[ssh.example.org]:2222 ssh-rsa AAAAB3Nz...AKy2R2OE=
[127.0.0.2]:4922 ssh-rsa AAAAB4mV...1d6j=
[anga.funkfeuer.at]:2022,[78.41.115.130]:2022 ssh-rsa AAAAB...fgTHaojQ==
</pre>
Host name patterns can be created using "'''*'''" and "'''?'''" as wildcards and "'''!'''" to indicate negation.
Up to one optional marker per line is allowed. If present it must be either '''@cert-authority''' or '''@revoked'''. The former shows that the key is a certificate authority key, the latter flags the key as revoked and not acceptable for use.
See [http://man.openbsd.org/sshd.8 sshd(8)] for further details on the format of this file and [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] for managing the keys.
===Server-Side Client Files===
These client files reside on the server. By default they are kept in the user's directory. However, the server can be configured to look for them in other locations if needed.
====''~/.ssh/authorized_keys''====
'''authorized_keys''' is a one-key-per-line register of public ECDSA, RSA, ED25519, and MLDSA44-Ed25519 keys that this account can use to log in with. The file's contents are not highly sensitive, but the recommended permissions are read/write for the user and not accessible by others. As always, the whole key including options and comments must be on a single, unbroken line.
<pre>
ssh-rsa AAAAB3NzaC1yc2EAAA...41Ev521Ei2hvz7S2QNr1zAiVaOFy5Lwc8Lo+Jk=
</pre>
Lines starting with a hash (#) are ignored and can be used as comments. Whitespace separates the key's fields, which are in sequence an optional list of login options, the key type (usually ssh-rsa or better like ecdsa-sha2-nistp256), the key itself encoded as base64, and an optional comment.
If a key is followed by an annotation, the comment does not need to be wrapped in quotes. It has no effect on what the key does or how it works. Here is an annotated key, the comment having been generated with the '''-C''' option [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)]:
<pre>
ssh-rsa AAAAB3NzaC1yc2EAAA...zAiVaOFy5Lwc8Lo+Jk= Fred @ Project FOOBAR
</pre>
Keys can be preceded by a comma-separated list of options to affect what happens upon successful login. The first key below forces the session to launch '''tinyfugue''' automatically, the second forcibly sets the PATH environment variable:
<pre>
command="/usr/bin/tinyfugue" ssh-rsa AAAAB3NzaC1yc2EAAA...OFy5Lwc8Lo+Jk=
environment="PATH=/bin:/usr/bin/:/opt/gtm/bin" ssh-rsa AAAAB3N...4Y2t1j=
</pre>
The format of '''authorized_keys''' is described in the [http://man.openbsd.org/sshd.8 sshd(8)] manual page. Old keys should be deleted from the file when no longer needed. The server can specify multiple locations for '''authorized_keys'''. See the next section, [[#Server-Side_Client_Key_Login_Options|Server-Side Client Key Login Options]], for details.
====''~/.ssh/authorized_principals''====
By default this file does not exist. If it is specified in [http://man.openbsd.org/sshd_config.5 sshd_config(5)], it contains a list of names which can be used in place of the username when authorizing a certificate. This option is useful for role accounts, disjoint account namespaces and "user@realm"-style naming policies in certificates. Principals can also be specified in '''authorized_keys'''.
====''~/.ssh/environment''====
If the server is configured to accept user-supplied, automatic changes to environment variables as part of the login process, then these changes can be set in this file.
If the server, the environment file and an authorization key all try to change the same variable, the file '''environment''' takes precedence over what a key might contain. Either one will override any environment variables that might have been passed by [http://man.openbsd.org/ssh.1 ssh(1)] using '''SendEnv'''.
Authentication keys stored in '''authorized_keys''' can also be used to set variables. See also the '''AcceptEnv''' and '''PermitUserEnvironment''' directives in the manual page for [http://man.openbsd.org/sshd_config.5 sshd_config(5)].
====''~/.ssh/rc''====
This is a script which is executed by [http://man.openbsd.org/sh.1 sh(1)] just before the user's shell or command is started. It is not run if '''ForceCommand''' is used. The script is run after reading the environment variables. The corresponding global file, '''/etc/ssh/sshrc''', is not run if the user's '''rc''' script exists.
===Local Account Public / Private Key Pairs===
People might have a variety ECDSA, Ed25519, MLDSA44-Ed25519, and RSA keys stored in the file system. Since version 8.2, two new key types ECDSA-SK and Ed25519-SK, along with corresponding certificate types are available for keys tied to FIDO/U2F tokens. Since 10.6 there can be keys which use the MLDSA44-Ed25519 post-quantum signature algorithm. Though individual accounts can maintain their own list of keys or certificates for authentication or to verify the identity of remote hosts in any directory, the most common location is in the '''~/.ssh/''' directory. The naming convention for keys is only a convention but recommended to follow anyway. Public keys usually have the same name as the private key, but with '''.pub''' appended to the name. Trouble can arise if the names of the public and private keys do not match. If there is more than one key pair, then [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] can use the '''-f''' option when generating keys to produce a useful name along with the '''-C''' option which embeds a relevant comment inside the key pair.
People, programs, and scripts can authenticate using a private key stored on the system, or even a private key fetched from a smartcard, if the corresponding public key is stored in '''authorized_keys''' on the remote system. The '''authorized_keys''' file is not highly sensitive, but the recommended permissions are read/write for the user, and not accessible by others. The private keys, however, are very sensitive and should not be readable or even visible to other accounts. They should never leave the client and should certainly never be put on the server. See the chapter on [[OpenSSH/Cookbook/Public_Key_Authentication | Public Key Authentication]] for more discussion and examples.
The keys can be preceded by a comma-separated list of options. The whole key must be on a single, unbroken line. No spaces are permitted, except within double quotes. Any text after the key itself is considered a comment. The '''authorized_keys''' file is a one-key-per line register of public RSA, Ed25519, MLDSA44-Ed25519, ECDSA, Ed25519-SK, and ECDSA-SK keys that can be used to log into a particular account. See the section above on the '''authorized_keys''' file for more discussion.
DSA support has been removed from OpenSSH starting with 10.0 in 2025 and was considered deprecated since 2015. Therefore the time has passed for DSA keys. They are no longer considered safe and should be replaced with better keys.
Per-account [[OpenSSH/Cookbook/Host-based_Authentication| Host-based Authentication Configuration]] is also possible using the '''~/.shosts''', '''~/.rhosts''', '''~/.ssh/environment''', and '''~/.ssh/rc''' files.
====Client Public Keys====
These are only the default names for the public keys. The actual file name can be anything and the location be any directory.
'''~/.ssh/id_ecdsa.pub''' '''~/.ssh/id_ed25519.pub''' '''~/.ssh/id_rsa.pub''' '''~/.ssh/id_ecdsa-sk.pub''' '''~/.ssh/id_ed25519-sk.pub''' '''~/.ssh/id_ecdsa-sk_rk.pub''' '''~/.ssh/id_ed25519-sk_rk.pub''' '''~/.ssh/id_mldsa44-ed25519.pub'''
Again, it can be a good idea to give more relevant names to keys. The '''*-sk.pub''' keys are those bound with a hardware security token and the '''*-sk_rk.pub''' keys are those generated from resident keys stored within hardware security token.
Public keys are mainly used on the remote server for key-based authentication. Public keys are not sensitive and are allowed to be readable by anyone, unlike the private keys, but don't need to be. A public key, minus comments and restriction options, can be regenerated from a private key if lost. So while it can be useful to keep backups of the public key, it is not essential unlike for private keys.
====Client Private Keys====
Like with the client's public keys, the actual file names for the private keys can be anything and their location be in any directory. Here are the default names for client private keys.
'''~/.ssh/id_ecdsa''' '''~/.ssh/id_ed25519''' '''~/.ssh/id_rsa''' '''~/.ssh/id_ecdsa-sk''' '''~/.ssh/id_ed25519-sk''' '''~/.ssh/id_ecdsa-sk_rk''' '''~/.ssh/id_ed25519-sk_rk''' '''~/.ssh/id_mldsa44-ed25519'''
Private keys are always considered sensitive data and should be readable only by the user and not accessible by others. In other words, they use mode 0600. The directory they are in should also have mode 0700 or 0500. If a private key file is accessible by others, [http://man.openbsd.org/ssh.1 ssh(1)] will ignore it.
It is possible to specify a passphrase when generating the key which will be used to encrypt the sensitive part of this file using AES128. Until version 5.3, the cipher 3DES was used to encrypt the passphrase. Old keys using 3DES that are given new passphrases will use AES128 when they are modified.
Private keys stored in hardware tokens as resident keys can be extracted and automatically used to generate their corresponding public key using [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] with the '''-K''' option. Such keys will default to being named '''id_ecdsa-sk_rk''', '''id_ed25519-sk_rk''', or '''id_mldsa44-ed25519''', depending on the key type, though the file names can be changed after extraction. A passphrase can be assigned to the private key upon extraction from the token to a file.
While public keys can be generated from private keys, new private keys cannot be regenerated from public keys if the private keys are lost. Nor can a new passphrase be set if the current one is forgotten. Gone is gone, unlike the public keys, which can be regenerated from an existing private key if the private key is lost or forgotten then a whole new key pair must be generated and deployed.
===Legacy Files===
These files might be encountered on very old or out of date systems but not on up-to-date ones.
====''~/.shosts''====
====''~/.rhosts''====
'''.rhosts''' is a legacy from rsh containing a local list of trusted host-user pairs that are allowed to log in. Login requests matching an entry were granted access.
See also the global list of trusted host-user pairs, '''/etc/hosts.equiv'''
'''rhosts''' can be used as part of host-based authentication. Otherwise it is recommended not to use rhosts for authentication, there are a lot of ways to misconfigure the '''.rhosts''' file.
====Legacy DSA Keys ~/.ssh/id_dsa ~/.ssh/id_dsa.pub====
Deprecated DSA keys might be found named as '''id_dsa''' and '''id_dsa.pub''', but regardless of the name any usage should be tracked down. Support for DSA both on the server and client was discontinued in OpenSSH 7.0 and fully removed in OpenSSH 10.0. If DSA keys are found, the pair should be removed and replaced with a better type of key.
====Legacy SSH1 Protocol Keys ~/.ssh/identity ~/.ssh/identity.pub====
The files '''identity''' and '''identity.pub''' were for SSH protocol version 1, and thus deprecated. If found they should be investigated as to what, if anything, uses them and why. Then once any remaining usage is resolved they should be removed and replaced with newer key types.
==Mapping Client Options And Configuration Directives==
Many run-time options for the SSH client have corresponding configuration directives and vice versa. The following is a quick overview. It is not a substitute for getting familiar with the relevant manual pages, [https://man.openbsd.org/ssh.1 ssh(1)] and [https://man.openbsd.org/ssh_config.5 ssh_config(5)] which are the relevant, authoritative, up-to-date resources on the matter.
{| class="wikitable" style="caption-side: bottom;"
|+ Lookup Table of OpenSSH Client Options Versus Configuration Directives
|- style="border-bottom: thick solid #000;"
! Directive
! Option
! Description
|-
! AddressFamily
! -4 / -6
| Limit connections to IPv4 or IPv6 only.
|-
! ForwardAgent
! -A / -a
| Forward or block forwarding from the authentication agent.
|-
! BindInterface
! -B
| Bind the outgoing connection to this network interface.
|-
! BindAddress
! -b
| Bind the outgoing connection to this network address.
|-
! Compression
! -C
| Specify whether to compress the data using [http://man.openbsd.org/gzip.1 gzip(1)].
|-
! Ciphers
! -c
| Specify which cipher to use.
|-
! DynamicForward
! -D
| Designate a local port to be forwarded, say for SOCKS5.
|-
! EscapeChar
! -e
| Specify an escape character for PTY sessions.
|-
! ForkAfterAuthentication
! -f
| Drop client to background right before command execution.
|-
! GatewayPorts
! -g
| Whether other hosts are allowed to connect to local forwarded ports.
|-
! PKCS11Provider
! -I
| Specify the path to the shared PKCS#11 library.
|-
! IdentityFile
! -i
| Specify a particular certificate or private key to use for authentication.
|-
! ProxyJump
! -J
| Connect to the destination via this host or hosts first.
|-
! GSSAPIAuthentication
! -K / -k
| Enable or disable Generic Security Services Application Program Interface (GSSAPI) authentication.
|-
! LocalForward
! -L
| Specify which local port or socket to forward to the specified remote system.
|-
! User
! -l
| Designate which account on the remote system to try.
|-
! ControlMaster
! -M
| Allow multiplexing of SSH sessions over a single TCP connection.
|-
! MACs
! -m
| Designate which message authentication code (MAC) algorithms to try.
|-
! SessionType
! -N / -s
| Invoke a designated subsystem or even prevent any command execution at all.
|-
! StdinNull
! -n
| Prevent reading from '''stdin'''.
|-
! Tag
! -P
| Tag for use within '''Match'''.
|-
! Port
! -p
| Connect to this port on the remote system.
|-
! LogLevel
! -q / -v
| Adjust the verbosity of logging messages from the client.
|-
! RemoteForward
! -R
| Specify which remote port or socket to forward to the specified local system.
|-
! ControlPath
! -S
| Designate the control socket for multiplexing over this connection.
|-
! RequestTTY
! -T / -t
| Prohibit or request a pseudo-TTY for the session.
|-
! ForwardX11
! -X / -x
| Enable or prohibit X11 forwarding.
|}
As of version 8.7 the '''-f''', '''-N''', and '''-n''' options also have corresponding client configuration directives in [https://man.openbsd.org/ssh_config.5 ssh_config(5)]. Other directives, like WarnWeakCrypto do not have run time options.
==Server-Side Client Key Login Options==
The login options available for use in the local user authorized keys file might be overridden or blocked by the server's own settings. However, within that constraint, the following options can be used.
'''cert-authority'''
Specifies that the listed key is a certification authority (CA) trusted to validate signed certificates for user authentication. Certificates may encode access restrictions similar to key options. If both certificate restrictions and key restrictions are present, then the most restrictive union of the two is applied.
'''command="''program''"'''
Specifies a program and its options to be executed when the key is used for authentication. This is a good way of forcing a program to restrict a key to a single, specific operation such as a remote backup. However, TCP and X11 forwarding are still allowed unless explicitly disabled elsewhere.
The program is run on a PTY if the client requests it, otherwise the default is to run without a TTY. The default, running without a TTY, provides an 8-bit clean channel. If the default has been changed, specify '''no-pty''' to get an 8-bit clean channel. If no programs are allowed, then use an empty string "" to prevent anything from running.
<pre>
no-pty,command="" ssh-rsa AAAAB3NzaC1yc2EAAA...OFy5Lwc8Lo+Jk=
</pre>
If only one program is allowed, with specific options, then it can be spelled out explicitly.
<pre>
restrict,command="/usr/bin/svnserve -t --tunnel-user=fred" ssh-ed25519 AAAAC3NzaC1lZDI1NT...skSUlrRPoLyUq
</pre>
Quotes provided in the program's options must be escaped using a backslash. ('\')
<pre>
command="sh -c \"mysqldump db1 -u fred1 -p\"" ssh-rsa AAAAB3NzaC1yc...Lwc8OFy5Lo+kU=
</pre>
This option applies to execution of the shell, another program, or a subsystem. Thus any other programs specified by the user are ignored when '''command''' is present. However, the program originally specified by the client remains available as the environment variable '''SSH_ORIGINAL_COMMAND'''. That can be used by a script in a multiple-choice case statement, for example, to allow the account to select from a limited range of actions.
'''environment="''NAME''=''value''"'''
Sets the value of an environment variable when this key is used to log in. It overrides default values of the variable, if they exist. This option can be repeated to set multiple variables up to 1024 discrete names. First match wins in the case of repetition. This option is only allowed if the '''PermitUserEnvironment''' option is set in the SSH server's configuration. The default is that it is disabled. This option used to be disabled automatically when '''UseLogin''' was enabled, but '''UseLogin''' has been deprecated.
'''expiry-time="''timespec''"'''
Sets a date or date-time, either as a YYYYMMDD date or a YYYYMMDDHHMM[SS], after which the key will not be allowed to authenticate. Otherwise the key will be considered valid indefinitely. The system time zone is used.
'''from="''pattern-list''"'''
Either the canonical name of the remote host or its IP address required in addition to the key. Addresses and host names can be listed using a comma-separated list of patterns, see PATTERNS in [http://man.openbsd.org/ssh_config.5 ssh_config(5)] for more information on patterns, or use the CIDR address/masklen notation.
'''no-agent-forwarding / agent-forwarding'''
This option forbids the authentication agent from forwarding the key when it is used for authentication. Alternately, it allows agent forwarding even if it was otherwise previously disabled by the '''restrict''' option.
'''no-port-forwarding / port-forwarding'''
Forbids TCP forwarding and any port forward requests by the client will return an error when this key is used for authentication. Alternately, override the '''restrict''' option and allow port forwarding. See also '''permitopen'''.
'''no-pty / pty'''
TTY allocation is prohibited and any request to allocate a PTY will fail. Alternately, TTY allocation is permitted, even if previously disabled by the '''restrict''' option.
'''no-touch-required'''
FIDO keys which have been created with the '''-O no-touch-required''' can use this method which makes the client skip the check for user presence.
'''no-user-rc / user-rc'''
Use the '''no-user-rc''' option in '''authorized_keys''' to disable execution of '''~/.ssh/rc '''. Alternately, use '''user-rc''' to override the '''restrict''' option.
'''no-X11-forwarding / x11-forwarding'''
Prevent X11 forwarding when this key is used for authentication and requests to forward X11 will return an error. Alternately, override the '''restrict''' option and allow X11 forwarding.
'''permitlisten="[''host'':]''port''"'''
'''permitopen="''host'':''port''"'''
The '''permitlisten''' setting limits remote port forwarding (<code>ssh -R</code>) to only the specified port and, optionally, host. In contrast, '''permitopen''' limits local port forwarding (<code>ssh -L</code>) to only the specified host and port. IPv6 addresses can be specified with an alternative syntax: host/port. Multiple '''permitopen''' or '''permitlisten''' options may be used and must be separated by commas. No pattern matching is performed on the specified host names, they must be literal host names or IP addresses. Can be used in conjunction with agent-forwarding.
'''principals="''name1''[,''name2'',...]"'''
Specify a list of names that may be used in place of the username when authorizing a certificate trusted via the '''TrustedCAKeys''' option described in [http://man.openbsd.org/sshd_config.5 sshd_config(5)].
'''restrict'''
Disable all options, such as TTY allocation, port forwarding, agent forwarding, user-rc, and X11 forwarding all at once. Specific options can then be explicitly allowed on an individual basis.
'''tunnel="''n''"'''
Select a specific [http://man.openbsd.org/tun.4 tun(4)] device on the server. Otherwise when a tunnel device is requested without this option the next available device will be used.
'''verify-required'''
Require user-verification, such as with a PIN, with FIDO keys.
==Managing Keys==
When working with keys there are some basic, hopefully common sense, actions that should take place to prevent problems. The two most beneficial approaches are to use sensible names for the key files and to embed comments. The '''-f''' option for [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] allows a custom name to be set. The '''-C''' option allows a comment to be embedded in both the public and private keys. With the comment inside the private key, it can be regenerated automatically if a replacement public key is ever made using the '''-y''' option.
Other than that, there are three main rules of thumb for managing keys:
* Keys should use strong passphrases. If autonomous logins are required, then the keys should be first loaded into an agent and used from there. See [http://man.openbsd.org/ssh-add.1 ssh-add(1)] to get started there. It uses [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)] which many systems have installed and some have running by default.
* Keys should always be stored in protected locations, even on the client side. This is especially important for private keys. The private keys should not have read permissions for any user or group other than their owner. They should also be kept in a directory that is not accessible by anyone other than the owner in order to limit exposure.
* Old and unused keys should be removed from the server. In particular, keys without a known, valid purpose should be removed and not allowed to accumulate. Using the comment field in the public key for annotation can help eliminate some of the confusion as to the purpose and owner once some time has passed. Along those lines, keys should be rotated at intervals. Rotation means generating new key pairs and removing the old ones. This gives a chance to remove old and unused keys. It is also an opportunity to review access needs, whether access is required and if so at what level.
Following the principle of least privilege can limit the chance for accidents or abuse. If a key is only needed to run a specific application or script, then its login options should be limited to just what is needed. See [http://man.openbsd.org/sshd.8 sshd(8)] for the "AUTHORIZED_KEYS FILE FORMAT" section on key login options. For root level access, it is important to remember to configure '''/etc/sudoers''' or '''/etc/doas.conf''' appropriately. Access there can be granted to a specific application and even limit that application to specific options.
One major drawback to keys is that they never expire and are valid indefinitely in principle. In contrast, certificates can be assigned a validity interval with an end date, after which they can no longer be used.
<noinclude>{{OpenSSH/TOC|mini}}</noinclude>
{{BookCat}}
{{status|100%}}
18k2b06718jf384s6yoqnsv8d61ciqj
OpenSSH/Utilities
0
248410
4674760
4656823
2026-10-06T17:04:37Z
Larsnooden
430753
MLDSA44-Ed25519
4674760
wikitext
text/x-wiki
: [http://man.openbsd.org/ssh-agent.1 ssh-agent(1)] - An authentication agent that can store private keys.
: [http://man.openbsd.org/ssh-add.1 ssh-add(1)] - A tool which adds or removes keys to or from the above agent.
: [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] - A key generation tool.
: [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] - A utility for gathering public host keys from a number of hosts.
: [http://linux.die.net/man/1/ssh-copy-id ssh-copy-id(1)] - Install a public key in a remote machine's '''authorized_keys''' register.
: ssh-vulnkey(1) - Check a key against blacklist of compromised keys
==ssh-agent==
[http://man.openbsd.org/ssh-agent.1 ssh-agent(1)] is a tool to hold private keys in memory for re-use during a session. Usually it is started at the beginning of a session and subsequent windows or programs run as clients to the agent. The environment variable '''SSH_AUTH_SOCK''' points applications to the socket used to communicate with the agent.
==ssh-add==
[http://man.openbsd.org/ssh-add.1 ssh-add(1)] is a tool to load key identities into an agent for re-use. It can also be used to remove identities from the agent. The agent holds the private keys used for authentication.
==ssh-keyscan==
[http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] has been part of the OpenSSH suite since OpenSSH version 2.5.1 and is used to retrieve public keys. Keys retrieved using [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)], or any other method, must be verified by checking the key fingerprint to ensure the authenticity of the key and reduce the possibility of a man-in-the-middle attack. The default is to request an ECDSA key using SSH protocol 2. David Mazieres wrote the initial version of [http://man.openbsd.org/ssh-keyscan.1 ssh-keyscan(1)] and Wayne Davison added support for SSH protocol version 2.
==ssh-keygen==
[http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] is for generating key pairs or certificates for use in authentication, update and manage keys, or to verify key fingerprints. It works with SSH keys and can do the following activities:
* generate new key pairs, either ECDSA, Ed25519, MLDSA44-Ed25519, RSA, ECDSA-SK or Ed25519-SK.
* remove keys from known hosts
* regenerate a public key from a private key
* change the passphrase of a private key
* change the comment text of a private key
* show the fingerprint of a specific public key
* show ASCII art fingerprint of a specific public key
* load or read a key to or from a smartcard, if the reader is available
If the legacy protocol, SSH1, is used, then [http://man.openbsd.org/ssh-keygen.1 ssh-keygen(1)] can only generate RSA keys. However, SSH1 is long since deprecated and the systems should be re-tooled if found in use. Also, although DSA keys can be generated, they are deprecated and should be replaced if found.
One important use for key fingerprints is when connecting to a machine for the first time. A fingerprint is a hash or digest of the public key. Fingerprints can be transferred out of band and loaded into either the '''~/.ssh/known_hosts''' or '''/etc/ssh/ssh_known_hosts''' files in advance of the first connection. The verification data for the key should be sent out of band. It can be sent ahead of time by post, fax, SMS or a phone call instead or otherwise communicated in some way such that you can be sure it is authentic and unchanged.
<syntaxhighlight lang="shell-session">
$ ssh -l fred zaxxon.example.org
The authenticity of host 'zaxxon.example.org (203.0.113.114)' can't be established.
RSA key fingerprint is SHA256:DnCHntWa4jeadiUWLUPGg9FDTAopFPR0c5TgjU/iXfw.
Are you sure you want to continue connecting (yes/no)?
</syntaxhighlight>
If you see that message and the key's fingerprint matches the one you were given in advance, then the connection is probably good. If you see that and the key's fingerprint is different than what you were given in advance, then stop and disconnect and get on the phone or VoIP to work out the mistake. Once the SSH client has accepted the key from the server, it is saved in '''known_hosts'''.
<syntaxhighlight lang="shell-session">
$ ssh -l fred galaga.example.org
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:QIWi4La8svQSf5ZYow8wBHN4tF0jtRlkIaLCUQRlxRI.
Please contact your system administrator.
Add correct host key in /home/fred/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/fred/.ssh/known_hosts:1
ECDSA host key for galaga.example.org has changed and you have requested strict checking.
Host key verification failed.
</syntaxhighlight>
If you start to connect to a known host and you get an error like the one above, then either the first connection was to an impostor or the current connection is to an impostor, or something very foolish was done to the machine. Regardless, disconnect and don't try to log in. Contact the system administrator out of band to find out what is going on.<ref name="SecurityFocus2004">{{cite web |author=Brian Hatch |url=http://www.securityfocus.com/infocus/1806 |title=SSH Host Key Protection |publisher=SecurityFocus |year=2004 |accessdate=2013-04-14}}</ref> It is possible that the server was reinstalled, either the whole operating system or just the OpenSSH server, without saving the old keys. That would result in new keys being generated and explain their presence. Either way, check with the system administrator before connecting to be sure.
Hashed host names and addresses can be looked up in '''known_hosts''' using '''-F'''. Or else '''-R''' can be used to delete them.
<syntaxhighlight lang="shell-session">
$ ssh-keygen -F sftp.example.org -f ~/.ssh/known_hosts
# Host sftp.example.org found: line 7 type RSA
|1|slYCk3msDPyGQ8l0lq82IbUTzBU=|KN7HPqVnJHOFX5LFmTXS6skjK4o= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA3cqqA6fZtgexZ7+4wxoLN1+YDvPfBtt4/m+N/RI8o95CXqvqZMIQjuVarVKjwRwt9pTJIVzf6bwjcNkrUx9dQqZNpNBkcvBRdmd775opWCAfkHEueKxkNx3Kb1yitz0dUaFkRwfTsXAjh+NleBq2ofAfjowu/zzCnnbAKy2R2OE=
</syntaxhighlight>
==ssh-copy-id==
'''ssh-copy-id''' is included in some distros to install a public key into a remote machine's '''authorized_keys''' file. It is a simple shell script and the '''authorized_keys''' file should still be checked manually after first login to verify that everything went ok and that the key was copied as it should be.
==ssh-vulnkey==
'''ssh-vulnkey''' was included in some versions of some GNU/Linux distros to check a key against a blacklist of compromised keys. The blacklist was made necessary when a broken version of OpenSSL was distributed by some distros<ref name="Debian_OpenSSL_vuln">{{cite web |author=Jake Edge |url=https://lwn.net/Articles/282230/ |title=Debian vulnerability has widespread effects |publisher=LWN |year=2008|accessdate=2013-04-14}}</ref>, resulting in bad keys that were easily predicted and compromised. Keys made while that broken version was in use that are found to have been compromised cannot be repaired and must be replaced. The problem has since been fixed and new keys should be all right.
<noinclude>
== References ==
{{reflist}}
{{OpenSSH/TOC|mini}}
</noinclude>
{{BookCat}}
{{status|100%}}
cmpt0gju55v1rghkdohtvsm7mwrs0sv
Assembly Language and Computer Organization/Introduction and Overview
0
277791
4674708
4673864
2026-10-06T13:22:49Z
ShakespeareFan00
46022
4674708
wikitext
text/x-wiki
This chapter introduces the basics of computer architecture and computer arithmetic.
== What Computers Do ==
In order to explore how computers operate, we must first arrive at an
explanation of what computers actually do. No doubt, you have some
idea of what computers are capable of. After all, odds are high that
you are reading this on a computer right now! If we tried to list all
the functions of computers, we would come up with a staggeringly
complex array of functions and features. Instead, what we need to do
is peal back all the layers of functionality and see what's going on
in the background.
[[File:BasicComputer.png|frame|right|A Basic Computer]]
If we look at a computer at its most abstract level, what they do is
process information. We could represent this sort of abstract machine
as some sort of memory and some sort of processor. The processor can
read and write items in the memory according to some list of
instructions, while the memory simply remembers the data it has been
given. The list of instructions executed by the processor are known
as a '''computer program'''. The details of how this arrangement is
accomplished determines the nature of the computer itself. Using this
definition, quite a wide range of devices can be classified as
computers. Most of the devices we call "computers" are, in fact,
universal computers. That is, if they were given an infinite amount
of memory, they would be able to compute any computable function. The
requirements for a universal computer are actually very simple.
Basically, a machine is universal if it is able to do the following:
# Read a value from memory.
# Based on the read value, determine a new value to write to memory.
# Based on the read value, determine which instruction to execute next.
A machine following these rules is said to be "Turing Complete." A
complete definition of Turing Completeness is beyond the scope of this
book. If you are interested, please see the articles on
[[w:Turing_Machine|Turing Machines]] and [[w:Turing_Complete|Turing
Completeness]].
Trying to create programs in terms of the constraints of universal
computers would be very difficult. It would be more convenient to
create a list of more useful instructions such as "add", "subtract",
"multiply", and "divide." The list of instructions that the processor
can execute is called the machine's '''instruction set'''. This
instruction set helps to define the behavior of the machine, and
further define the nature of the programs which will run on the
machine.
Another defining characteristic of the machine answers the question of
"Where does the program get stored?" You'll note that in our diagram
of the basic computer, we did not show where the program resides.
This was done with purpose as answering this question helps to define
the different types of computers. Breaking down the components of the
system further is the topic of the next section.
== Computer Architecture ==
Another defining characteristic of computers is the logical layout of
the system. This property is called the computer's architecture.
'''Computer architecture''' describes how a machine is logically
organized and how its instruction set is actually implemented. One of
the most important architectural decision made in designing a computer
is how its memory is organized, and how programs are loaded into the
machine. In the early history of computers, there was a distinction
between stored program and hardwired computers. For example, the
first general purpose electronic computer, the ENIAC, was programmed
by wiring units of the machine to devices called function tables.
Later machines, like the EDSAC, stored programs as data in program
memory. Of course, stored programs proved to be much more
convenient. Rewiring a machine simply takes too long when compared to
the process of simply loading new data into the machine. In the
current era of computing, almost all computers are stored program
computers. In this book, we will be focusing on stored program
computer architectures.
Having settled on storing programs as data, we now have to turn our
attention to where, and how, programs are stored in memory. In the
past, many different solutions to this problem have been proposed, but
today there are two main high level variants. These are the Von
Neumann architecture, and the Harvard Architecture.
=== Von Neumann Architecture ===
The '''Von Neumann Architecture''' is, by far, the most common
architecture in existence today. PCs, Macs, and even Android phones
are examples of Von Neumann computers.
The Von Neumann Architecture is a
stored program computer which consists of the following components:
# A CPU (Central Processing Unit) which executes program instructions.
# A Memory which stores both programs and data.
# Input and Output Devices
The defining characteristic of the Von Neumann Architecture is that
the both data and instructions are stored in the same memory device.
Programs are stored as a collection of binary patterns which the CPU
decodes in order to execute instructions. Of course, the data are
stored as bit patterns in memory as well. The CPU can only
distinguish between data and program code by the context in which it
encounters the data in memory. The CPU in this architecture begins
executing instructions at some memory location, and continues to step
through instructions. Anything it encounters while stepping through
the program is treated as program instructions. When the CPU is
issued instructions to read or write data in the memory, the CPU
treats the numbers in memory as data. Of course, this also means that
a Von Neumann machine is perfectly capable of modifying its own
program.
== Computer Arithmetic ==
Computers spend a great deal of their time working out simple
arithmetic expressions. In fact if we were to think in terms of
"computation" arithmetic is what immediately springs to mind. How
computers deal with numbers is, therefore, an important part of the
study of computer architecture. The earliest electronic computer,
ENIAC, represented numbers in much the same way that humans do, using
decimal arithmetic with its operations. The problem with this
approach is that you have to have 10 distinguishable states (0 through
9) which greatly increases the complexity of the machines that
operates on them. Representing and distinguishing 10 states requires
very precise electronics. If we want to produce easy representation
with electronics, the simplest and easiest to distinguish is two
states "on" and "off." This does not require nearly as much precision
to detect and propogate so it greatly simplifies the physical
implementation of a machine, however it does bring up the question of
"How do we do math with only two symbols?"
The answer to this is that we use the binary number system where these
states map to 0 and 1. So we could think of 0 as being "off" and 1
being "on". This section explains how this system of numbers works
and introduces convenient methods of representing these numbers.
=== Representation of Numbers and Basis ===
In order to understand binary we need to first understand the nature of
integers themselves. We will have to delve a little bit into the
realm of number theory, but I promise it will be painless! We'll
start off with a simple example. What do you see below?
<math>145</math>
In words, you may say that this is the number "one hundred and
forty-five." However, this would not be be accurate. What you are
really seeing is a representation of this quantity. From grade school
on up, you are taught a specific way of writing numbers down. This
system is called the "base 10" or "decimal" number system. When you
see "145" you are really seeing a convention where:
<math>145 = 1 \cdot 100 + 4 \cdot 10 + 5 \cdot 1</math>
Notice that each of these terms is a power of ten. So we could
rewrite this as:
<math>145 = 1 \cdot 10^2 + 4 \cdot 10^1 + 5 \cdot 10^0</math>
Colloquially, we call the positions in a number the "Ones, Tens, and
Hundreds" places. If we extended on, each position takes on a power
of 10 one greater than the one before it. Thus we could build the
sort of table, which I am sure you have seen before.
<math>
\begin{array}{|c|r|l|}
\hline
\textrm{Exponent} & \textrm{Number} & \textrm{Place Name} \\
\hline
10^0 & 1 & \textrm{Ones}\\
10^1 & 10 & \textrm{Tens}\\
10^2 & 100 & \textrm{Hundreds}\\
10^3 & 1,000 & \textrm {Thousands}\\
10^4 & 10,000 & \textrm{Ten Thousands}\\
10^5 & 100,000 & \textrm{Hundred Thousands}\\
\hline
\end{array}
</math>
Of course, we can continue this on into infinity adding new place
values by simply incrementing the exponent. We could generalize this
for the decimal system by saying that the value of a sequence of
<math>k</math> digits is expressed as a polynomial:
<math>
\langle d_k \ldots d_2 d_1 d_0 \rangle = \sum_{i=0}^{k} 10^i
</math>
Note that we can express this for any arbitrary number base. So we
could generalize the above and say that for an arbitrary base
<math>b</math> the value of a sequence of <math>k</math> digits is:
<math>
\langle d_k \ldots d_2 d_1 d_0 \rangle = \sum_{i=0}^{k} b^i
</math>
This opens up the door to many possibilities of representing numbers.
You can choose any arbitrary base you like. The numeric base you are
working in determines what symbols are used in representing numbers
and how those symbols are interpreted. Generally speaking, for a base
<math>b</math> we must have <math>b</math> symbols to represent it.
For base 10, we have 10 symbols (0, 1, 2, 3, 4, 5, 6, 7, 8, 9).
Notice that the highest valued symbol used in each place has the value
<math>b-1</math>. Hence we can come up with any base of numbers we
choose, so long as we have a set of symbols to support it.
=== Binary Numbers ===
We can now turn our attention to a number base which matches the two
easily detectable states of "on" and "off". This is the binary, or
base 2, number system. From the above observations, the binary number
system consists only of the symbols (0, 1). And its "places" are
defined as shown in the following table:
<math>
\begin{array}{|c|r|l|}
\hline
\textrm{Exponent} & \textrm{Number} & \textrm{Place Name} \\
\hline
2^0 & 1 & \textrm{Ones} \\
2^1 & 2 & \textrm{Twos} \\
2^2 & 4 & \textrm{Fours} \\
2^3 & 8 & \textrm{Eights} \\
2^4 & 16 & \textrm{Sixteens} \\
2^5 & 32 & \textrm{Thirty-Twos} \\
2^6 & 64 & \textrm{Sixty-Fours}\\
2^7 & 128 & \textrm{One Hundred Twenty Eights}\\
\hline
\end{array}
</math>
Just like in decimal, we can continue this on into infinity by simply
increasing the exponent. I have left it off after 8 digits because
this is the unit we most often work with in computers, as we shall see
later. So then, suppose we had the following binary number:
<math>10010001</math>
How can we determine its value? Remember this follows the same rules
as a decimal number, so working from left to right we can convert this
number to decimal as:
<math>1 \cdot 128 + 0 \cdot 64 + 0 \cdot 32 + 1 \cdot 16 + 0 \cdot 8
+ 0 \cdot 4 + 0 \cdot 2 + 1 \cdot 1 = 145</math>
Now that we've seen how to convert from binary (or really any number
base) into decimal, you are probably wondering how we can go in the
other direction. That is, how can we convert a decimal number into
binary (or any arbitrary base.) The answer is quite simple. We can
change from decimal to any number base by repeatedly dividing by the
target base. The remainder of each division for the digits, from
right to left, of the converted number. Proving why this works is
left as an exercise to the reader. Let's test this out by converting
our good friend, 145, into binary.
<math>
\begin{align}
145 \div 2 & = & 72 ~ & R=1 \\
72 \div 2 & = & 36 ~ & R=0 \\
36 \div 2 & = & 18 ~ & R=0 \\
18 \div 2 & = & 9 ~ & R=0 \\
9 \div 2 & = & 4 ~ & R=1 \\
4 \div 2 & = & 2 ~ & R=0 \\
2 \div 2 & = & 1 ~ & R=0 \\
1 \div 2 & = & 0 ~ & R=1 \\
\end{align}
</math>
Note we can stop once the quotient is 0 as it will remain 0 from here
on out. Thus, we can read the binary number by reading the
remainders in reverse order:
<math>10010001</math>
=== Hexadecimal Numbers ===
Hexadecimal Numbers
Hexadecimal, or hex, is a positional number system with base 16. It uses sixteen symbols:
'''0–9 represent the values zero through nine.'''
'''A–F represent the values ten through fifteen.'''
The hexadecimal digits correspond to four binary bits, making hexadecimal convenient for representing binary data.
For example:
2F₁₆ = 2 × 16¹ + 15 × 16⁰ = 47₁₀
The binary representation of 2F₁₆ is:
0010 1111₂
'''Hexadecimal is commonly used in computer science to represent memory addresses, machine instructions, color values, and other binary data in a more compact form.'''
=== Bits, Bytes, and Nibbles ===
A bit is the '''smallest unit''' of digital information. It can have one of two values:
0 or 1
A byte consists of 8 bits. An 8-bit byte can represent 256 different values, from 0 to 255 when interpreted as an unsigned integer.
A nibble is a group of 4 bits. Since four bits can represent 16 different values, one hexadecimal digit corresponds exactly to one nibble.
For example:
1010 1101₂
can be divided into two nibbles:
1010 | 1101
These correspond to the hexadecimal digits A and D, giving:
AD₁₆
Thus:
1 nibble = 4 bits
1 byte = 8 bits
1 byte = 2 nibbles
1 hexadecimal digit = 1 nibble
=== Arithmetic in Arbitrary Bases ===
{{BookCat}}
A number base, or radix, defines the set of symbols available and the way positional values are determined. In base b, each position represents a power of b.
For instance, in base 10:
345₁₀ = 3 × 10² + 4 × 10¹ + 5 × 10⁰
In base 2:
1011₂ = 1 × 2³ + 0 × 2² + 1 × 2¹ + 1 × 2⁰ = 11₁₀
Arithmetic operations can be executed directly within any positional number system, with the key distinction being that carrying and borrowing occur when a digit reaches the base value.
Addition
In base b, a carry happens when the sum of two digits is at least b.
Example in hexadecimal:
2A
+ 17
----
41
Here, A₁₆ + 7₁₆ = 17₁₆, so 7 is written and 1 carried to the next position. Then:
2 + 1 + 1 = 4, resulting in 41₁₆.
Subtraction
Subtraction follows the same positional logic. When a digit is too small, a unit is borrowed from the next position, worth b units in the current position.
Multiplication
Multiplication in any base resembles decimal multiplication, with intermediate results expressed in that base’s digits.
Example in binary:
101
× 11
-----
101
101
-----
1111
Thus:
101₂ × 11₂ = 1111₂
Base Conversion
Conversion between bases can be achieved through positional expansion or repeated division.
Example: converting 45₁₀ to hexadecimal:
45 ÷ 16 = 2 remainder 13
The remainder 13 corresponds to D in hexadecimal, giving:
45₁₀ = 2D₁₆
Binary and hexadecimal conversions are straightforward since each hexadecimal digit maps precisely to four binary bits.
dyl17bnvnzm5obb8eamex485c0845wi
On 2D Inverse Problems
0
279393
4674703
4674451
2026-10-06T12:46:55Z
DVD206
724793
parabola and exponential curve
4674703
wikitext
text/x-wiki
[[File:Book cover.jpg|thumbnail|DVD cover]]
<!-- EDIT BELOW THIS LINE -->
'''ON VERSE PROBLEMS'''
DVD version
== [[On 2D Inverse Problems/Preface|Pretty preface]] ==
== [[On 2D Inverse Problems/Body|Theory & "no problems..."]] ==
== [[On 2D Inverse Problems/Bibliography|Bubbles]] ==
=== [[On 2D Inverse Problems/About the author|"who is talking?"]] ===
== [[On 2D Inverse Problems/Ai|The volume II: AI DVD!?]] ==
=== [[On 2D Inverse Problems/Papirus|Papirus]] ===
=== [[On 2D Inverse Problems/Rotation|Spinning Spectrum]] ===
=== [[On 2D Inverse Problems/Spatial|Spatial Spectrum]] ===
== [[On 2D Inverse Problems/Characteristic|Characteristic: companion and circulant]] ==
=== [[On 2D Inverse Problems/Area|Energy Integral]] ===
=== [[On 2D Inverse Problems/Orthogonal|Gravity is Optional]] ===
{{Shelves|Mathematical collections}}
{{Alphabetical|2}}
{{status|25%}}
{{reading level|Beginner}}
{{BookCat}}
m3i1y02fkucjlw29o7aalbj1e7jnns1
Structural Biochemistry/Nucleic Acid/RNA/RNA modification/Ribonucleases
0
281770
4674825
3714396
2026-10-07T08:44:25Z
Jcb
90773
4674825
wikitext
text/x-wiki
==Ribonuclease==
Ribonuclease is a type of enzyme that is capable of cleaving the phosphodiester bond between each unit of nucleic acid that form the RNA backbone. A phosphodiester bond in a single RNA strand is formed by the linkage between the 3’ carbon atom of one ribose sugar molecule and the 5’ carbon atom of another ribose sugar attached to an adjacent nucleoside. These enzymes have overlapping functions as the small nuclear RNAs acting on mRNAs, such that they catalyze RNA degradation by breaking down RNA into shorter partial strands.
Ribonuclease can be grouped into two categories: endoribonucleases and exoribonucleases.
[[File:Nucleic acid.gif|300px]] a picture of two RNA nucleotides with base adenine and cytosine
===Endoribonucleases===
Endoribonulcases, much like the restriction endonucleases, are able to recognize certain RNA nucleotides within RNA and cleave at a specific site. These enzymes are able to break apart both single or double-stranded RNAs.
===Exoribonucleases===
Exoribonucleases cleave RNA by removing terminal nucleotides from either the 5’ end or the 3’ end of the RNA strand. Enzymes that remove nucleotides from the 5' end are called 5'-3' exoribonucleases, and enzymes that remove nucleotides from the 3' end are called 3'-5' exoribonucleases.
Both endonucleases and exoribonucleases can be further broken down into sub-classes of ribonucleases based on their chemical cleaving mechanisms, such as phosphorolytic and hydrolytic activations. They exist in all kingdoms of life, the bacteria, archaea, and eukaryotes. They are involved in the degradation of many different RNA species, such as messenger RNA, transfer RNA, ribosomal RNA, microRNA, etc.
[[File:3' RNA degradation.png|400px|The left side shows the hydrolytic activity of RNases in which a water molecule intercepts the 3’ ester bond between the phosphate group and the 5’ –OH group of the adjacent sugar, breaking off one nucleotide. The left side shows the phosphorolytic activity of RNases in which a phosphate group intercepts the 3’ ester bond between the phosphate group and the 5’ –OH group of the adjacent sugar, breaking off a nucleotide with two phosphate groups on it.]]
The left side shows the hydrolytic activity of RNases in which a water molecule intercepts the 3’ ester bond between the phosphate group and the 5’ –OH group of the adjacent sugar, breaking off one nucleotide. The left side shows the phosphorolytic activity of RNases in which a phosphate group intercepts the 3’ ester bond between the phosphate group and the 5’ –OH group of the adjacent sugar, breaking off a nucleotide with two phosphate groups on it.
[[File:Cleaves types.jpg|500px]]
The left side shows a strand of mRNA, protected by a G-cap and a poly-A-tail. The Dcp1/2 protein recognizes the G-cap at the 5’ end of the RNA, takes it away, and exoribonuclease Xrn1 comes and starts chewing off the RNA strand from the 5’ end. The right side shows the deadenylase protein recognizing the poly-A-tail and starts chewing it off. Then comes the exosome, another exoribonuclease that degrade RNA from the 3’ to 5’ direction. The middle shows an endoribonuclease binding to a specific sequence within the RNA and cleaving it internally.
==Important RNase==
===RNase A===
[[File:RNase A.jpeg|thumbnail]]
The structure of RNase A was first crystalized 50 years ago. It was the first enzyme and the third protein whose amino sequence was determined. It is a single chain protein that contains 4 disulfide bridges. It contains 124 amino residues and 19 out of the 20 amino acids, except for tryptophan. These enzymes were found in the exocrine cells of the bovine pancreas. They are very tough and highly stabilized enzymes, mostly due to their structures and folding patterns. Its molecular formula is C575H907N171O192S12 and the general structure consists of 2 sheets of alpha helices and beta sheets cross-linked by four disulfide bridges. RNase A has basic properties. It specifically attacks at the 3’ phosphate of a pyridine nucleotide. The cleavage involves simply two steps: 1). the 3’,5’-phosphodiester bond is cleaved to generate a 2’,3’-cyclic phosphodiester intermediate and 2). the cyclic phosphodiester is hydrolyzed to a 3’-monophosphate.
Example: pG-pG-pC-pA-pG undergoes RNase A cleavage would result in 2 sequences: pG-pG-pCp and A-pG.
RNase A can be activated by potassium and sodium salt and inhibited by alkylation of His12 or His119 in initiate RNA cleaving. It utilizes both phosphorolytic and hydrolytic activities to cleave a strand of RNA.
===RNase P===
[[File:RNase P.png|thumbnail]]
Sidney Altman discovered and named RNase P while working in the Laboratory of Molecular Biology in Cambridge, England, focusing on the functions of tRNA. He proposed that by altering spatial relationships in tRNA, either by insertion of new nucleotides or deletion of existing nucleotides, would affect or change the function of the tRNA. His experiments with E. coli. have shown that mutated tRNAs could not develop into a full mature tRNA, which in turn could not serve its functions of delivering amino acids during protein synthesis. However, these dysfunctional tRNAs quickly resolved back to wild-type tRNAs. By isolating the DNA to RNA transcript of tRNA, Altman had found that there are extra nucleotides hanging off of the 5’ and 3’ ends of tRNAs. When these tRNAs were introduced to a live medium, an enzyme was observed to cut off the extra nucleotides through the cleave of a phosphodiester bond, exposing the 5’ end of the molecule. This RNase was different than other previous known RNase because of its specificity at the 5’ end of the tRNA. Altman also showed that RNase P-like activities were present in cells extracted from a variety of organisms, including humans.
RNase P is unique that it is ribozyme. While it cleave other RNAs, it cleaves itself as well, meaning it self-destructs during reaction. It is a single stranded protein containing 120 amino residues. They are found in many organisms such as archaea, bacteria and eukarya as well as chloroplasts in plants. The make-up of RNase P differ from one organism to another, but their functionalities are the same because of orthogonal properties. RNase P is a crucial component in the production of functional tRNA molecules.
===RNase T2===
[[File:Overall structure of RNase T2 proteins.png|thumbnail]]
T2 family Ribonucleases are considered to be transferase type RNases and are distinguished from the RNaseA and RNaseT1 protein families based on three features.
- First of all T2 ribonucleases are more evenly distributed and are found in bacteria, plants, protozoans, animals and even viruses, whereas RNase T1 enzymes exist only in bacterial and fungal organisms and RNaseA family enzymes are highly represented in animals.
- Secondly, the optimal pH of activity of many T2 ribonucleases is between 4 and 5.
By contrast, RNaseT1 and RNaseA families have optimal pH activity at alkaline (pH 7-8) or weakly acidic (pH ~7).
- Thirdly, T2 ribonucleases do not discriminate their cleavage sites. T2 families generally cleave at all four bases, whereas RNaseA and RNaseT1 families tend to be specific for pyrimidine or guanosine bases respectively.
The biological role for T2 Ribonucleases varies. These endoribonucleases are ubiquitously represented in organisms across kingdoms and have been show to perform a variety of functions in different organisms besides it's ability to hydrolyze RNA. Some examples of biological roles include the scavenging of nucleic acids, the degradation of self-RNA, modulation of a host immune response, and serving as cellular cytotoxins.
===Other T2 RNase Properties===
T2 RNase are transferase-type RNases and catalyze the cleavage of ssRNA (single-stranded RNA) through a 2',3'-cyclic phosphate intermediate. The result of this catalyzed reaction are mono- or oligonucleotides with a 3' phosphate group. Typically, these RNases are secreted from the cell or specific special locations within the cell such as vacuoles, which may prove important to how their activity is modulated within the cell. This family of RNases has a specific structure and mechanism that is well known from x-ray crystallography. Likewise, crystallography has defined specific places such as specific binding sites, called B1 for sites with a 5' end and B2 for site with a 3' end, as well as a core made up of alpha and beta structures. Additionally, the catalysis of T2 RNase starts with one to three histidine residues. It should be noted that alteration or mutation of these residues causes inactivation of the RNase. The two main steps of this catalysis are transphosphorylation and hydrolysis. Further study is being conducted in the following areas for these specific RNases:
# Discovering how RNases from this family can function independent of catalysis
# Mutational analysis to determine the regions necessary for nuclease-independent functions
# How these RNases enter the cell to reveal how proteins cross membranes, while many things cannot
== References ==
1. T2 Family ribonucleases: ancient enzymes with diverse roles.
Luhtala N, Parker R.
Trends Biochem Sci. 2010
2. Raines, Ronald T. "Ribonuclease A." Chem Rev. Wisconsins: University of Wisconsins, 1998. 1045-065. Print.
3. Gopalan, Venkat, Agustin Vioque, and Sidney Altman. "RNase P: Variations and Uses*." RNase P: Variations and Uses. JBC Papers in Press, 10 Dec. 2011. Web. 20 Nov. 2012. <http://www.jbc.org/content/277/9/6759.full>.
4. Cuchillo, C. M.; Nogués, M. V.; Raines, R. T. (2011). "Bovine pancreatic ribonuclease: Fifty years of the first enzymatic reaction mechanism". Biochemistry 50: 7835-7841. PMC 3172371. {{PMID|21838247}}.
5. J. Holzmann, P. Frank, E. Löffler, K. Bennett, C. Gerner & W. Rossmanith (2008). "RNase P without RNA: Identification and functional reconstitution of the human mitochondrial tRNA processing enzyme". Cell 135 (3): 462–474. doi:10.1016/j.cell.2008.09.013. {{PMID|18984158}}.
dkusj30droxt5056mcswdwlurtpbli3
Aros/Platforms/Arm Raspberry Pi support
0
286123
4674733
4674566
2026-10-06T14:29:19Z
Jeff1138
301139
4674733
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189, 190 and 184 out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
1.27, 1.28, 1.29, 1.30, 1.31(bad) youtube video and audio - js button for javascript must be on/shaded
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie... ?
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
4venk4sk8pkx0ogxxg4etx32plsxb0y
4674734
4674733
2026-10-06T14:52:06Z
Jeff1138
301139
4674734
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189, 190 and 184 out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
1.27, 1.28, 1.29, 1.30, 1.31(bad) youtube video and audio - js button for javascript must be on/shaded
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... ?
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
q99n0tm7xzt3sk4t2k77yxigbtyxm6s
4674736
4674734
2026-10-06T15:09:23Z
Jeff1138
301139
4674736
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189, 190 and 184 out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
1.27, 1.28, 1.29, 1.30, 1.31 youtube video and audio - js button for javascript must be on/shaded
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well after ??
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
esfl5carim7lypy86y0k4h3tx6kbutf
4674739
4674736
2026-10-06T15:28:39Z
Jeff1138
301139
4674739
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189, 190 and 184 out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again
1.27, 1.28, 1.29, 1.30, 1.31 youtube video and audio - js button for javascript must be on/shaded
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well after ??
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
ghp9m8vfmnar1ej22nbhaq3mvljnkk1
4674740
4674739
2026-10-06T15:35:58Z
Jeff1138
301139
4674740
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189, 190, 184, ???, 300 out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again
1.27, 1.28, 1.29, 1.30, 1.31 youtube video and audio - js button for javascript must be on/shaded
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
bt509u3ziolfdev1loz7i21k770968z
4674741
4674740
2026-10-06T15:56:37Z
Jeff1138
301139
4674741
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes works now with 1.31
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
ix8knfmix5nh0mjn4d4312zq12ak0sz
4674743
4674741
2026-10-06T16:07:20Z
Jeff1138
301139
4674743
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
tshbby413k4lo5mh19dcjrfpruxir8p
4674745
4674743
2026-10-06T16:15:13Z
Jeff1138
301139
4674745
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31, uses up 3Mb cache per minute on playback for a while then stopped
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
phtubr12l0gcpl83xmnx6xwivqeejq2
4674747
4674745
2026-10-06T16:17:19Z
Jeff1138
301139
4674747
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31, on long videos it uses up 3Mb cache per minute on playback for a while then none (cache filled??)
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
ihmrhjywl9njfcf2po7ddsby2rlvvxq
4674751
4674747
2026-10-06T16:21:30Z
Jeff1138
301139
4674751
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31, on long videos it can cutout after a minute or so losing video and then audio completely
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
9avr8tuaz06eb57whdff9524v0ve4mh
4674752
4674751
2026-10-06T16:24:30Z
Jeff1138
301139
4674752
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31, on long videos it can cutout after a while, losing video and then audio completely
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
ra3czxkviurqks44pldwuz51i9t6m5y
4674753
4674752
2026-10-06T16:36:45Z
Jeff1138
301139
4674753
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31 mostly good, on long videos it may cutout after a while, losing video and then audio completely not sure why
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
9aahict6tsqw927j8feysrxpmro808f
4674754
4674753
2026-10-06T16:37:41Z
Jeff1138
301139
4674754
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31 mostly good, on long videos it may cutout after a while, losing video and then audio completely not sure why, still experimenting
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
ojrowicy2ztc4u26zomwsp6ksj0pem4
4674755
4674754
2026-10-06T16:39:23Z
Jeff1138
301139
4674755
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages apps.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again - repeat until it works again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31 mostly good, on long videos it may cutout after a while, losing video and then audio completely not sure why, still experimenting
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
t49mi5aquowz3abwlmx8av3yspopjwb
4674758
4674755
2026-10-06T16:52:45Z
Jeff1138
301139
4674758
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages / apps. apkg can be used to inspect and install applications.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again - repeat until it works again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31 mostly good, on long videos it may cutout after a while, losing video and then audio completely not sure why, still experimenting
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
lvriol5iegqes8cvmal559ave0awtcx
4674761
4674758
2026-10-06T17:12:20Z
Jeff1138
301139
4674761
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages / apps. apkg can be used to inspect and install applications.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555, most Amiga browsers around 360.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again - repeat until it works again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31 mostly good, on long videos it may cutout after a while, losing video and then audio completely not sure why, still experimenting
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
8x3pn7x4gia4s4hoxj953tbfkrc86aq
4674762
4674761
2026-10-06T17:14:29Z
Jeff1138
301139
4674762
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages / apps. apkg can be used to inspect and install applications.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555, some bigger Amiga browsers are around 360.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again - repeat until it works again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31 mostly good, on long videos it may cutout after a while, losing video and then audio completely not sure why, still experimenting
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
ek1gbb5jkc3torg8b8eo94a6gli53p7
4674764
4674762
2026-10-06T17:37:34Z
Jeff1138
301139
4674764
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages / apps. apkg can be used to inspect and install applications.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555, some bigger Amiga browsers are around 360.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again - repeat until it works again
youtube video and audio - js button for javascript must be on/shaded - AHI setting
*sometimes 50/50 works now with 1.31 mostly good, on long videos it may cutout after a while, losing video and then audio completely not sure why, still experimenting
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
Settings -> Soundoutput - AHI
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; Painting, then, cannot reach the movie...DNS lookup failed... but randomly can play well
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
6b3tyg6268ohdje0oq1cpn6cx0v3fl8
4674856
4674764
2026-10-07T10:52:17Z
Jeff1138
301139
4674856
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages / apps. apkg can be used to inspect and install applications.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555, some bigger Amiga browsers are around 360.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again - repeat until it works again
youtube video and audio - js button for javascript must be on/shaded - Settings -> Soundoutput - AHI
*sometimes 50/50 works now with 1.31 mostly good, on long videos it may cutout after a while, losing video and then audio completely not sure why, investigating
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; randomly can play well (DNS issues)
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
bi8ls1yl7w2zds1j4u2g1zvvb2gnnxu
4674858
4674856
2026-10-07T10:56:00Z
Jeff1138
301139
4674858
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages / apps. apkg can be used to inspect and install applications.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555, some bigger Amiga browsers are around 360.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again - repeat until it works again
youtube video and audio - js button for javascript must be on/shaded - Settings -> Soundoutput - AHI
*sometimes 50/50 works now with 1.31 mostly good, on long videos it may cutout after a while, losing video and then audio completely not sure why, investigating
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; randomly can play well (DNS issues at other times)
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
l8c4dmts5mh7lfsf6w1ql3qdk7sxo0l
4674862
4674858
2026-10-07T11:20:25Z
Jeff1138
301139
4674862
wikitext
text/x-wiki
{{ArosNav}}
[[#Native]]
[[#Hosted]]
[[#Build]]
[[#Hardware]]
[[#References]]
[[#Future]]
==Introduction==
[[File:Scalos00.png|thumb|Scalos on Aros Pi3b]]
Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running
Options to boot from using a good power source to prevent the yellow lightning symbol.
*With Pi3b+ the max you can get is 5.1V 2.5A with micro usb.
*With Pi4 5.1V 3A with usb-c
*With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c
* Pi500+ keyboard wedge - working
* Pi500 wedge - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 D0 (rev1.1) - untested
* Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) - untested
* Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok - wifi and lan ethernet testing -
* Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6
* Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsink/fan on 3b to prevent cpu 82C+ throttling
* Pi02W - Quad A53 64bit - boots but [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 usb not working but did in the past],
* Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible
* Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible
* Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible
===Native===
* 2013-03 Kalamatee starts work
* 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb
* 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 and 5 64bit]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5]
* 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM]
====64bit====
'''Download''' A [https://archive.org/details/piAROS Pi Distribution (Distro) has started] and the contents copied to fat32 8GB+ microSD card (there will be drawers/folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi. And power on. [https://pi.amiga.icu/ Repository]
[https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 nightly builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] which is a test beta limited apps version with both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd to a SD or SSD as appropriate.
64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Remember Aros Arm uses FAT32 and Aros can detect issues with this format very acutely (once fault found, FAT 0x0FFFFFF7 bad cluster so no files written after that, no repair). Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80 Aros Raspberry pi 3 64bit thread] and on the [https://forums.raspberrypi.com/viewtopic.php?p=2387984#p2387984 Raspberry Pi forum thread]. Any bugs or issues can be [https://github.com/aros-development-team/AROS/issues described here to fix]
Boots with '''USB3''' port based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5
Pi 3 B+ is pre-configured for USB sata3 boot - untested
Pi 3 B may need [https://www.youtube.com/watch?v=ubnwvxF3Klc PiOS to set OTP to boot from usb - do so at your own risk] - if OTP set to usb, boot works but slower than SD card
Speed write wise (top faster)
<pre>
*NVME Pi5 untested >1000MB/sec or faster if matched correctly
*Sata3 ssd 500MB/sec
*SD V90 90MB/sec 4K maybe 8K
*SD V60 60MB/sec 1080p
*SD U3 V30 30MB/sec 720p
*SD C10 U1 V10 A1 A2 10MB/sec minimum should be used now
*SD C06 6MB/sec
*SD C04 4MB/sec
</pre>
As a homage to the past, Aros shows a reduced number of icons but this can be changed by left mouse click in the window and then right click down to Window -> View -> All files
Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only.
Zune like MUI gui interface, has a unique quirk in that after changing a setting in a text box, you may sometimes need to press Enter/Return before clicking OK, Save, etc
Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application.
Esc escape key usually closes open windows even the desktop
In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon exchange in works
For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage
If your cursor should '''appear''' to vanish, fear not it is still there. Please head to the top of the screen i.e. the title bar, hold down the left click mouse and drag the screen down a little and the cursor will appear again. Then you can drag the screen up again.
Like most amiga like OSs the audio and networking need to be setup manually
Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice
For wireless, please use the Wifi prefs and already selected device bwfm.device. Press Scan and double right click on the router and enter password. You may need to setup after every power off
*if asking for password again - press cancel and go to Network Prefs, Wireless Networks tab and highlight the router line and hit the remove button and press the cancel button. Retry with Wifi prefs again
*...waiting for an address - Disconnect and try Connect
Until, Connected to <router> - 192.168.x.x
For lan ethernet port, please use Network prefs and the following hardware is
*lan9514 Pi3b Pi2 no support at the moment
*lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s)
*bcmgenet Pi4 Pi400 choose for Device bcmgenet.device
(network prefs still forgets random information when rebooted)
Summary
*3b ethernet not supported, usb ethernet not working but wifi prefs setup works
*3b+ wifi working but ethernet untested
*4 untested
*400 wifi and ethernet untested
*5
*500
*500+
Type in 'aarch64' in the [https://archives.arosworld.org/index.php?function=search&tool=simple search box] and you will see available software packages / apps. apkg can be used to inspect and install applications.
[http://archives.arosworld.org/index.php?function=browse&cat=network/browser amelinium web browser (JS 1.6 ES9 ECMASCript 2018)] is available with an [https://eab.abime.net/showthread.php?t=122494&page=51 eab thread] reminiscent of [https://github.com/zapek/Voyager Voyager] and to a lesser extent [https://github.com/amigazen/aweb3/ Aweb JavaScript 1.5 (ECMAScript 3)] as css and javascript websites can be slow to load and nothing from facebook, reddit etc. Doubtful, on any [https://www.web3d.org/ Web3d] [https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API WebGL] or [https://github.com/immersive-web/webxr WebXR] [https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API Device API] [https://developer.mozilla.org/en-US/docs/Web/API/XRInputSource XRInputSource] support.
Press Cancel at screenmode selector or -wb argument to get windowed version. You could use the Shift + Del shortcut or mouse wheel should work to delete all text at once. To view wikibooks set Agent to Android (telefon) aka Google Chrome 126 or iPhone aka Safari 17 setting in menus. Html5test gives 189 (1.29) to 300 (1.31) out of 555, some bigger Amiga like browsers are around 370.
You may have to delete the cache (Menu -> Page -> Delete cache) to fully retest big Amelinium updates or free up space.
Be aware [https://pianetaamiga.it/en/reportage-pianeta-amiga-2026/ some site pages] can use up hundreds of MBs of cache very quickly
DNS lookup failed... close browser and reboot and setup wifi again - repeat until it works again
youtube video and audio - js button for javascript must be on/shaded - Settings -> Soundoutput - AHI
*sometimes 50/50 works now with 1.31 mostly good, on long videos it may cutout after a while, losing video and then audio completely not sure why, investigating
*audio streams aac/mp3; Playing the live stream and Ready and play button and time 00:00 shown and plays
*stream.radioparadise.com/mp3-192; randomly can play well (DNS issues at other times)
*
identify #?.mp4 shows as system/binary where ArosOne has Pictures/MP4, identify #?.aac shows as SOUND/AAC
Telegram https://t.me/s/channel_name for public easy to view messages only
There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware]
*Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero 2W
*Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4
*Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5
*bthid keyboard mouse support
*btserial serial
*btpan short range wireless connecting devices
Only the Pi5 has a RTC real time clock, the other Pis will need to use Extras:Networking/utils/ntpsync/ time.cloudflare.com pool.ntp.org or Cloudflare 162.159.200.1, 162.159.200.123, 2606:4700:f1::1, 2606:4700:f1::123 or [https://archives.arosworld.org/index.php?function=browse&cat=network PiNTP -s goodtime.ijs.si or ntp1.ptb.de] to get the date and time from the internet. Can use date in a shell e.g. date 24-Dec-2026 23:59:59 but this will need to be done again after every reset/power off. Maybe [https://github.com/aros-development-team/AROS/commit/28674a157bc56175aa668e7b62dca6fa740578dc ds3231 rtc]
It helps to have all usb devices already plugged in before power on to detect at the moment. Even then some usb devices will freeze the mouse cursor and the only resolution is to remove the offending usb device and reinsert. Sometimes, the reinsert leads to the mouse cursor vanishing, it is still there and responds to left mouse clicks, top of the screen and pull down the screen.
USB classes support from Prefs/Trident is still work in process
*usbaudio working on usb3 port (blue) on pi4, 400 but not working (no rt isochronous) on usb2otg (white or black) for pi3b, zero 2w
*[https://aminet.net/package/mus/midi/camd camdusbmidi] detects midi devices without a preferences file (Prefs/Env-Archive/sys/midi.prefs) as [https://www.youtube.com/watch?v=RBxHkwy4Nrw auto setup now] possibly with [https://github.com/metaneutrons/mt32-pi metaneutrons mt32-pi] [https://github.com/rtzor/mt32-pi mt32-pi fork] [https://github.com/ahmadexp/mt32-pi fork] [https://github.com/gmcn42/mt32-pi-control control of] [https://github.com/dwhinham/mt32-pi mt32-pi pi3+], [https://homspace.nl/samplerbox/ SamplerBox] or [] as well as need developer gcc tools to look at 64bit ports of [https://archives.arosworld.org/?function=showfile&file=driver/audio/usbmidi.i386-aros.lha usbmidi], [https://aminet.net/package/mus/midi/CAMD_Toolkit CAMD_Toolkit], [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/cnvogelg/amiditools amiditools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], [https://arosarchives.os4depot.net/?function=showfile&file=audio/misc/timidity.lha timidity],
Regarding 680x0 emulation, there are several options (not implemented yet) that could be considered
*[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones
*[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games
*[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k]
*[https://scriptedamigaemulator.net/ Scripted Amiga] with [https://github.com/naTmeg/ScriptedAmigaEmulator ScriptedAmigaEmulator] or older [https://github.com/gbraad-amiga/ScriptedAmigaEmulator2 ScriptedAmigaEmulator2]
[https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout]
Some exceptions:
*Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used
*The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V
*For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15).
With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented.
Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behavior, and that shorting the power supplies can cause instant death of the Pi.
In the shell (Cntrl + C to end)
GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K
Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ '''please test'''
*PIN -- (Required) Target GPIO pin number (e.g. 12).
*SET -- Set pin output value to 0 (LOW) or 1 (HIGH).
*GET -- Read and print current digital input level (0 or 1).
*MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate).
*PULL -- Configure pull resistor: NONE, UP, DOWN.
EXAMPLES
<pre>
GPIO 12 MODE OUT
GPIO 12 SET 1
GPIO 12 GET
GPIO 13 PULL UP
</pre>
[https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP]
Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion]
Youtube
[], [], [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b],
[], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+],
[], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400],
[], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board],
[https://www.youtube.com/watch?v=zQM4CD64xDE&t=612s&pp=ugUEEgJlbg%3D%3D Performance under Linux] but on Aros...
{| class="wikitable sortable" width="90%"
! width="10%" |Pi
! width="10%" |Single Core 2D
! width="10%" |Single Core 3D
! width="10%" |Single Core 3D
! width="10%" |SMP 2D
! width="10%" |SMP 3D
! width="10%" |SMP 3D
! width="35%" |Comments
|-
| <!--Pi-->Pi3
| <!--Single Core 2D-->
| <!--Single Core 3D-->
| <!--Single Core 3D-->
| <!--SMP 2D-->
| <!--SMP 3D-->
| <!--SMP 3D-->
| <!--Comments-->
|-
|}
==== 32bit ====
For the Pi1 Pi2 Pi2B the status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD
===Hosted===
AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use [https://github.com/jonx/Macaros/issues MACAros github] for issues, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here]
[http://www.aros.org/snapshots1.html old linux and android hosted 32bit]
==== Hosted ====
=====64bit=====
[https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Ubuntu Linux PC hosted Pi compiler build]
[https://github.com/BlitterStudio/aros-compiler-docker Docker based cross compiler for various Aros systems],
=====32bit=====
Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013]
../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib
arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux)
*armel - many of the "android" machines require since the entire OS is made for soft float VFP.
*armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP)
Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI.
Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets.
*needs an AROS code compiler for ARM target
*as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes.
with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port.
Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example:
<pre>
enum test {foo, bar};
enum test testvar;
</pre>
sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example.
Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts.
Android is the same. $KERNEL_CC is incompatible with AROS.
compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations.
No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work.
If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same):
-isystem $(GENINCDIR) $(KERNEL_INCLUDES)
$(KERNEL_INCLUDES) expands to:
-isystem <your_os_includes> -isystem <host_OS_gcc_private_includes>
-nostdinc
This makes AROS compiler adhering to host OS APIs.
If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH).
Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one.
Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types.
Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output.
*armel = typically Debian 6, Ubuntu Maverick, Android,
*armhf = typically Debian 7, Debian 8, Ubuntu Precise,
Cross-compiling Ubuntu ARM softfp
<pre>
sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel
</pre>
<pre>
./configure --target=linux-arm --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabi/include
</pre>
Cross-compiling Ubuntu ARM hard-float
<pre>
sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf
</pre>
<pre>
./configure --target=linux-armhf --x-includes=/usr/include \
--enable-includes=/usr/arm-linux-gnueabihf/include
</pre>
Now, the AROS build is configured properly and all you need to do is:
make
==Build==
===64bit===
===32bit===
# download/checkout the source someplace, e.g. /build/AROS-Src/
# make a directory to store external sources AROS downloads, e.g. /build/Ports
# make a build directory, e.g. /build/aros-raspi-armhf
# cd into the build dir, configure, and then run make -:
<pre>
>cd /build/aros-raspi-armhf
>/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports
>make
>make arosboot-raspi
</pre>
then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it.
You should then be able to boot the sdcard on your RasPi.
The current W.I.P tree to svn. it can be built as follows ..
<pre>
./configure --target=raspi-armhf
make arosboot-raspi
</pre>
That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder.
NB - if you have a Linux/other install, backup the existing config.txt first
arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library
arosraspi.rom contains all the other components needed to boot AROS.
The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom).
the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO)
Help building AROS hosted on Linux ARM
Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device.
Compilation stops after build libpopupmenu.a and trying to build libatomic have this error:
<pre>
Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
configure: WARNING: unrecognized options: --disable-nls, --without-x
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-aros
checking target system type... arm-unknown-aros
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc
checking whether the C compiler works... no
configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic':
configure: error: C compiler cannot create executables
See config.log' for more details
make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77
[MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512
[MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory
make[1]: *** [Makefile:361: linklibs-libatomic] Error 10
make: *** [Makefile:183: crosstools] Error 2
</pre>
looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic
found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi
so do make linklibs-aeabi-arm-quick
and the missing lib was built.
now the next stop is at
fatal error: bits/libc-header-start.h: No such file or directory
and
fatal error: sys/cdefs.h: No such file or directory
in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf
so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed?
fixed with adding
-I/usr/include/arm-linux-gnueabihf
to where is missing on mmakefiles like
USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES)
P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles.
Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again.
My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux.
Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild).
The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC.
For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script.
Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir.
Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh
Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there:
#MM- linklibs-armhd : libklibs-aeabi-arm
Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this.
Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick".
Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile
To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case.
With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with
"cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok.
== Hardware ==
===64bit===
====BCM2712====
With the Pi5
Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3. x265 HEVC accelerated untested, x264/h.264 and VP9 cpu only.
*Raspberry Pi M.2 HAT+ Expansion Board
*Geekworm X1001 PCIe to M.2 Key-M NVMe
*Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5
*Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4
*Hat+ Gen2 Gen3 Nvme
*GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2
*
*2024 RPI AI HAT - Hailo 20TOPs no LLMs
*2026 RPI AI HAT+ 2 - Hailo 40TOPs slightly better?
[https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi]
*Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor
*Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor
*Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels
====BCM2711====
With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3
the 2711b line used more power when idle, compared to the 2711c
*2018 Raspberry Pi PoE HAT Power Over Ethernet Hat - design issues
*2020 Raspberry Pi PoE+ HAT Power Over Ethernet Hat Pi3b+ Pi4 only - better design
*Waveshare PoE HAT (B) with cooling fan for Raspberry Pi 3B+/4B 802.3af PoE
*[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different
The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles.
The instruction encoding for the QPUs is different, but the core instructions are the same.
Instructions for packed 8 bit int math has been dropped, along with most of the pack modes.
Instructions for packed 16bit float math has been added (2 floats at in a single operation)
With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register.
the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions
the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block)
The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use.
*vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers.
*vc5 added a four thread per QPU mode, with 16 registers per thread.
*vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads.
With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible
The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer)
A MMU, allowing a much simpler/faster kernel driver.
Many more texture formats, framebuffer formats.
h264/x264 as Pi3
All the features needed for opengl es 3.0
H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1
HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates
Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs
If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised
Possible maximum performance
<pre>
VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s
VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s
VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s
</pre>
Faster LPDDR4 memory.
====BCM2837====
With the Pi3
* Broadcom BCM43438 chip provides 2.4 GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515]
The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur.
Dual VDP and scalable QPU in VC4 and x.264/h.264 accelerated untested only and VP9 on cpu or neon help
ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’.
===32bit===
=== Core Kernel ===
====BCM2708(family)====
which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700 MHz CPU + VideoCore IV GPU + up to 1GB RAM)
*Framebuffer (fb) using mailbox
*IRQ scheduler, etc
*Arasan based SD Card controller
*Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver],
*[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip
*CMOS RAM
*VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc
*Audio Driver
*Serial Peripheral Interface Bus (SPI)
*[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers]
*I2S
*Universal Asynchronous Receiver Transmitter (UART)
*[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO]
BCM2836
* For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board
*[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features],
Implemented so far...
# Modify the configure system so that it correctly builds for the arm hardware float raspi target.
# Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display.
# Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function.
# Implemented serial debug support
# Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc)
# Implemented a timer.device to utilise the hardware timers.
# Implemented a very basic gfx driver to expose the hardware's framebuffer.
# Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media.
# Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot.
# Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else.
# fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi ..
Improvements...
# Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v)
# Implement a driver for the USB NIC (a few weeks - depends on USB above)
# Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI]
# fix syscall bug in the current raspi kernel code
# Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting".
# [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support]
# [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86
# The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate.
Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards
On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition.
The boot sequence carries out several pre-boot tasks
*On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf
*The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it
*configures the memory split for the CPU and GPU
*reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings)
*loads the “kernel.img” file, again from the same partition
*activates the CPU to begin executing the loaded kernel image
The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU.
RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem)
Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf.
You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling.
At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules
<pre>
? - alias for 'help'
mtest - simple RAM test
autoscr - run script from memory
base - print or set address offset
bbm - BBM sub-system
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
go - start application at address 'addr'
help - print online help
iminfo - print header information for application image
itest - return true/false on integer compare
jade -
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
rarpboot - boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
saves - save S-Record file over serial line
setenv - set environment variables
sleep - delay execution for some time
tftpboot - boot image via network using TFTP protocol
USB - USB sub-system
usbboot - boot from USB device
version - print monitor version
</pre>
And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot.
Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1,
the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for
hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC.
IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system.
Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea.
Can someone please enlighten me a little on how the scheduler is meant to work?
Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example.
You miss what happens next...
1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch().
2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible:
2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run.
2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list.
My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop.
There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures.
The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table.
The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :)
Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this:
movw r0, #:lower16:label
movt r0, #:upper16:label
In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations.
There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need.
Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files.
GPU
VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute.
The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly.
The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later.
Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected.
have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled.
If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work.
L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled.
Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics.
Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever.
I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp).
#warning "TODO: lookup optimal mmu table settings for raspi memory"
/* Set up an identity-mapping for all 4GB */
for(x = 0; x < 4096; x ++)
{
pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04);
}
Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages?
Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device).
You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached)
So ..
pagetable[x] = x<<20 | 2;
should be enough?
No, for RAM you need to change the '| 0x40' to '| 0x80'
tell dosboot the correct defaults to use
Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff.
Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it.
they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context).
AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM
marked as chip.
BTW, is the video processing code you mention CPU code or GPU code?
Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox.
All hosted and x86 native ports should use proper context formats.
trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET).
Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units.
The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ.
Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port?
It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource.
You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs.
So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work.
Also make sure to add shell.resource and shellcommands.resource for this.
That should have done it.
If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output?
have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display?
Im assuming it exposes a fake filesystem that tricks aros into booting?
The contents of which are: ECON:AROS.boot
Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm.
To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen.
Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks).
have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress..
was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression.
Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist.
it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks.
Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS or Amiga OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs splintering.
It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right)
The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian.
The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode).
What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest?
Have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems?
You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it.
So, AROS creates the framebuffer bitmap (verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses)
So far have -:
vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well
vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object.
vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise
vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer,
vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers.
RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls.
The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required.
The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied.
The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds).
must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address.
For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data.
The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out).
openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface
To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits.
Actually MEMF_CHIP has to present, for historical reasons.
This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP.
Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting.
As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there.
struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol.
<pre>
redmask: 0x0000F800
greenmask: 0x000007E0
bluemask: 0x0000001F
alphamask: 0
redshift: 16
greenshift: 21
blueshift: 27
alphashift: 0
</pre>
It should likely be vHidd_StdPixFmt_RGB16_LE
This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory,
ignoring endianess. So for example:
ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines.
The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending
on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and
stdpixfmt_be.h in rom/hidds/graphics/).
With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine
to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag.
(RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to
be accessed as GGGBBBBBRRRRRGGGG).
The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31).
The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered,
the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system,
and if so, it uses the already existing one and does not create a new one.
In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the
gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use
HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt
tag list based on that.
15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5
(or swapped) but it's actually still using 16 bit R5G6B5 (or swapped).
aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count.
But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses
in the entry where you have looked up shifts/masks/etc.
Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you
are running on little endian machine) that matches the pixfmt that its meant to be.
0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32)
0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32)
0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32)
it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B.
read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment .
Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening.
The output image looks to have too much green/blue, and very weak red.
Kickstart
The idea is to minimize amount of archirecture-specific modules to make the user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's.
Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem').
USB
Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard).
AFAIK its HCI 1.0 compliant but not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong.
Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running.
Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup.
* Model A and B limited to 150 mA per port.
* Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub.
Implementing the hardware driver that Poseidon uses to interact with the USB components.
Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals.
The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”).
There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg].
The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code.
The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port).
Probably only need provision of relevant changes to dwc_common_port. Other things to consider....
* Provision of necessary headers to get it to compile
* Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) )
* Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start.
the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB.
Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts.
After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself.
The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again.
Trident saw this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
and this:
Product : Vendor: Vdr=0424/PID=EC00
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 255
SubClass : 0
DevProto : 1
VendorID : 1060
ProductID : 60416
DevVers : 0200
and even this:
Product : Hub: Vdr=0424/PID=9514
Manufacturer: Standard Microsystems Corp.
SerialNumber: n/a
/Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200
Class : 9
SubClass : 0
DevProto : 2
VendorID : 1060
ProductID : 38164
DevVers : 0200
What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;)
So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version.
[http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio]
Audio
The Pi 4B is the only Pi that can output HD Audio as an HD Audio passthrough bitstream, and it does it over HDMI. It's possible to use the two HDMI output for separate HDMI video and HDMI audio outputs to allow UHD HDR video and HD Audio with non-UHD HDR compatible AVRs.
The Pi3B+ and earlier will decode to PCM 5.1/7.1 and output over HDMI. HDMI is the only interconnect that has a standard for carrying Dolby True HD, DTS HD MA etc. as a bitstream - you can't carry it as a bitstream on any other interface.
Pi3 and Pi4 audio jack output derived from 12bit pulse width modulation is relatively poor. For better, choose USB Audio or I2C versions.
[https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI]
The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality
the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures
Analogue audio
Audio over HDMI rev 1.3 & 1.4
Ethernet
10/100 BaseT Ethernet RJ45 socket
GPIO
GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins)
Probably a resource rather than a device...
Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p
GPU graphics with 2D and 3D acceleration
Sadly none yet for 32bit but for 64bit...
Miscellanous
hdmi issues
Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there.
You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal.
If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode
Do not set hdmi_safe=1 as that overrides many of the previous options.
Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA.
If you see a problem with the red colour - either absent, or interference - then try a boost
composite video
changing the RCA cable, then the composite port worked out of the box
Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't?
Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result?
Put back config.txt What's the result?
for PAL mode sdtv_mode=2
dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached
hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected
<pre>
# NOOBS Auto-generated Settings:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
#disable_overscan=0
start_x=1
gpu_mem=128
</pre>
tvservice -c "PAL 4:3"
<pre>
/opt/vc/bin/tvservice -s or tvservice -s
state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m CEA
Group CEA has 1 modes:
(native) mode 16: 1920x1080 @ 60 Hz, progressive
/opt/vc/bin/tvservice -m DMT
Group DMT has 0 modes:
</pre>
sudo amixer cset numid=3 1
forces the audio to the headphone jack, even with the HDMI video output plugged in
config.txt
the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says
There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others.
What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground.
The wiring for the 4 pole are:
TIP (LEFT AUDIO CHANNEL)
RING 1 (RIGHT AUDIO CHANNEL)
RING 2 (GROUND/EARTH)
RING 3 BASE/SLEEVE (VIDEO) YELLOW
Most Apple based Players and the Microsoft Zune (TM) are wired this way.
Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug.
Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one.
External devices
* Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850 nm, peak at 880 nm and trails off at 940 nm wavelengths
* Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally -
* Branded WIFI usb BCM43143 dongle
N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C.
The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters.
Static electricity maybe an issue for the camera module and slightly less for the pi board.
== References ==
===Good sites to visit===
*[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build]
*[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation]
*[https://rpilocator.com/ RPiLocator]
Linux only
*[https://github.com/raspberrypi/linux Raspberry Pi Linux Build]
*[https://dietpi.com/ DietPi]
*[http://www.tinycorelinux.net/ports.html piCore]
*[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux]
*[https://github.com/armbian/build Armbian]
*[ FydeOS]
*[ TwisterOS based on ChromiumOS]
*[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD]
*[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST]
*[ PiMiga for pi4 and pi5]
*[ amibian for pi2 and pi3]
*[ retropie pi1 and 2]
Other alternative lighter smaller than Pi OS
*[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core]
*[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4]
*[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers]
*[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b]
*[https://github.com/stevereaver/uaos uaOS with Emu68k]
*[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference]
*[ HaikuOS]
*[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN]
*[https://github.com/maxnet/berryboot berryboot]
*[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit]
Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc
[https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit]
*Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested
*Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested
*Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5
*Green BentoIO CMX0 - untested
*Box EDATec ED-CLAWBOX - untested
*Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested
*Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested
*Box Waveshare [ CM5-POE-BOX-A] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested
*Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested
*Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested
*[https://carboncomputers.us/products/pi-flux piFlux]
*[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only -
*Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested
*Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested
*Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested
*Purple Pi Hut Cytron CM4 Maker Board - untested
*Black DeskPi Super6C Cluster Mini-ITX Board - untested
*[ KubeSail PiBox mini 2]
*Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested
*[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-C Waveshare CM4-IO-BASE-C] - untested but binary blobs Rev01 Rev02
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs
*Blue [https://www.waveshare.com/wiki/CM4-NANO-B Waveshare CM4-NANO] - untested but usb and audio turned off or rerouted
*Black [ Seeed Studio with BigTreeTech BTT pad 7] - bin blobs?
CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029
*Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not'''
*Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested
*Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued, 3 x Pi4 homelab maybe better
*Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs
*Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob
*[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested
*[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested
*[ pi-top v4] box has 128x64 oled display, micro hdmi, 19Whr battery with pi4 and 15V PD 36W min needed
*[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad,
*[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS
*[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor
*[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2
<pre>
2008 Trustees collected for Foundation
2009 Pi Foundation charity status gained
2010
2011 First Raspberry prototypes
2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835
2012 First million sold - more than the 10,000 original planned and anticipated
2013 First Alpha Experimental builds of AROS Native for the 32bit Pi
2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training
2013 Over two million sold
2014 Over three million sold
2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory
2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller -
2015 Over four million first gen pis sold
2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port
2016 Pi0 1.3 released with camera csi connector
2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless
2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash -
2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V]
2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip -
2015 Over a million pi2s sold
2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module
2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip
2016 PIs total over 10 million worldwide
2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue
1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage
2017 12 million pis sold in total
2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip
2019 Over 15 million sold
2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet -
2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required
1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC
2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam
2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge
2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram
2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support
2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port -
2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board
CM4101000 1Gb RAM Lite SOM
CM4102000 2GB RAM Lite
CM4104000 4GB RAM Lite
CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules
CM4104032 4GB RAM 32GB emmc
CM4108000 8GB RAM Lite
CM4008016 8GB RAM 16Gb eMMc
2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost -
CM4S01000 1GB RAM Lite
CM4S01008 1GB RAM 8GB eMMC Flash
CM4S02000 2GB RAM Lite
CM4S04000 4GB RAM Lite
CM4S08000 8GB RAM Lite
2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry -
2021-48 Raspberry Pi 4 model B v1.5 2GB
2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu
2024 Pi 5 2GB DDR4 version uses BCM2712D0
2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard
2024 Pi 5 v1.1
2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board
CM5004000 04GB RAM 0GB eMMC Lite
CM5008000 08GB RAM 0GB eMMC Lite
CM5016000 16GB RAM 0GB eMMC Lite
2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches
2025 Pi5 1GB DDR4 announced
2022 PiOS linux goes 64bit
2024 Pi Trading IPO stockmarket stock exchange listing
2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom
2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added
2026 Late July daily 64bit Pi3 LE little endian builds start
2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5
2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started,
2026
2027
2028 Pi 6
</pre>
The vcgencmd can be used to inspect and dump the current system configuration.
vcgencmd runs on top of VCHIQ as an RPC. The mailbox interface is an alternate but much simpler RPC.
VCHIQ is a bridge (queue) between the CPU and the GPU so they can communicate with the firmware.
Loads of [https://github.com/6by9/rpi3-gpiovirtbuf/blob/master/rpi3-gpiovirtbuf.c mailbox] which uses the GPIO control calls. [https://github.com/raspberrypi/firmware/wiki/Mailboxes may also be of interest]
A fair number of vcgencmd examples (search for vc_vchi_gencmd_init). [https://www.raspberrypi.org/forums/viewtopic.php?t=229203#p1406112 sends the relevant vcgencmd commands] to update the scaling kernel, but the [https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/gencmd/gencmd.c command] is just a text string. Parsing and execution of the instructions is performed by the VideoCore firmware.
The Raspberry Pi runs two separate operating systems: Linux/Aros on the ARM, and a threedx RTOS called vcos running on the Videocore 4 VPU: vcos is commonly called "the firmware". Vcos is tasked with performing certain system services, for example running the display and audio outputs. The VCHI driver provides an interface to allow drivers to talk to vcos.
*if Playing the soundtrack; nothing heard... ?
*if playing in own screen; cursor trapped in box top left but blank display... ?
*choose Play here button; Youtube did not answer for http://inv.nadeko.net/watch?v= ... ?
*choose Original page button; Page script is waiting for a result - please wait, Esc aborts ... ?
*This video has no 360p stream or no separate stream... ?
==Future==
[https://github.com/ARMSX2/ARMSX2 Arm pi of pcsx2]
{{BookCat}}
5u4p50lijlxina2j73m821fq322josq
Gynecologic Oncology/Ovarian Carcinoma/Early Stage Cancer (EOC)
0
294946
4674833
2591741
2026-10-07T09:23:50Z
Jcb
90773
4674833
wikitext
text/x-wiki
==== Staging Surgery ====
'''54-year-old with a recent laparoscopic removal of her right ovary by a general OB/GYN. Her final pathology comes back as grade 3 papillary serous carcinoma contained in the ovary. The mass was not ruptured and was removed in a laparoscopic bag. Washings were obtained and were negative. The operative report mentions no evidence of any abnormality was noted on the laparoscopic survey. The patient is otherwise healthy and has recovered from the surgery well.'''
* ''Improved prognostic information: Clear Benefit'' <br />
:* ACTION trial: N=448 Early ovarian cancer patients after surgery randomized to adjuvant chemotherapy vs observation (See ACTION trial in chemotherapy section for details)
:* 10 years {{PMID|20445161}}: More cancer-specific survival (CSS) observed in optimally staged patients compared to non-optimally staged patients 89% vs 69% (SS) in the observation arm. However in chemotherapy arm 85% vs 80% (NS). Therefore, non-optimally staged patients should be restaged or given chemotherapy if restaging is not feasible.
:* Subgroup analysis {{PMID|21495216}}: Observation arm of ACTION trial analyzed. Group A (Complete staging) 14.6% recurrences; Group B (all staging steps except LNs) - 34.8% recurrences and Groups C (All staging steps done except blind biopsies of peritoneum) - 35.7% recurrences (SS)<br />
* ''Survival Benefit: Unclear''<br />
:* Level 1 data: RCT comparing lymphadenectomy (radical/complete/systematic) to lymph node sampling in patients with early ovarian cancer (EOC) {{PMID|16940979}}
<br />
'''20-year-old female presents to the emergency room with 15 cm simple cyst. She has been complaining of what seems like history of intermittent torsion. She was taken to the operating room and a single port laparoscopic removal of the ovary is accomplished. During removal the cyst ruptured. Frozen section of the removed tissue reveals mucinous cystadenoma. Patient did well and is discharged from the hospital postoperative day #1. Final pathology revealed high grade mucinous carcinoma. What should be the further management of this patient?'''
Answer:
{{BookCat}}
tf85v9rusuozyzb7afbrm2iv8pze0fu
User:Danielravennest/papers/Mars21
2
296327
4674836
4674677
2026-10-07T09:28:40Z
Danielravennest
13526
/* 9.3 - Phase 5C: Venus and Mercury Locations */ minor update
4674836
wikitext
text/x-wiki
{{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}}
<div style="font-size:125%;font-family:'Georgia', serif;">
:'''Dani Eder,'''
:''The Seed Factory Project,''
:''6485 Rivertown Rd, Fairburn, GA, 30213''
:''email: danielravennest@gmail.com''
:'''Aug 2026'''
'''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set.
<div class="nonumtoc">{{TOCright}}</div>
=='''0.0 - Summary'''==
 
  National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort.
 Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory.
 Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment.
 The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high.
 It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea.
=='''1.0 - Problems of Past Space Programs'''==
 
 Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology.
:'''Outdated Assumptions'''
 Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions:
* It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface.
* Because the number of missions is small and they are short, it is not economic to develop many local resources.
* Most or all equipment and supplies are launched from Earth.
* High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions.
 Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other.
:'''High Cost'''
 Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings.
 The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress.
:'''Low Returns'''
 In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them.
 If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly.
:'''Focus on the Moon and Mars'''
 The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination.
 The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay.
 Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places.
 A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth.
=='''2.0 - New Knowledge and Technologies'''==
 
 Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment.
==='''2.1 - The Modern Solar System'''===
 
 The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year.
 Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System.
 In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier.
:'''Material Resources'''
 '''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction.
 This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth.
 The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects.
 Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating.
[[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]]
 91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found.
 Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones.
 '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them.
[[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]]
 The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible.
:'''Energy Resources'''
 The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies.
 It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space.
 Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher.
 In addition to solar, there are various energy sources that are more limited in scale and availability. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment.
:'''The Illusion of Scarcity'''
 Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer.
 The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area.
 The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth.
 A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used.
==='''2.2 - New Technologies'''===
 
 For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology.
:'''Seed Factories'''
 Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient.
 We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways:
* Making parts for additional copies of current equipment.
* Making new types of items not in the starter set, and
* Making different versions of existing equipment (larger, more accurate, etc.).
 While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally.
 The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere.
 When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better.
:'''Locations and MakerNets'''
 When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects.
 The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost.
 Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials.
:'''Space Technologies'''
 New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include:
* '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past.
* '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved.
* '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology.
 Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications.
 Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer.
 
=='''3.0 - New Program Concept'''==
 
 For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods.
 This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas.
:<u>'''Goal 1 - Benefits on Earth'''</u>
 Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult.
 Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget.
 The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same.
 The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire.
 As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate.
 A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects.
 Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel.
:<u>'''Goal 2 - Benefits from Space'''</u>
 Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this:
* Access to materials on Earth is limited vertically because temperatures and pressure increase with depth.
* Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy
* Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment.
* There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space.
 So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment.
 Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations.
 Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed.
 Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society.
:<u>'''Program Advantages'''</u>
 Our new approach has a number of advantages:
* It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects.
* Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable.
* In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites.
* A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems.
* Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth.
==='''3.1 - Program Sequence'''===
 
 Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this:
* The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them.
* We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise.
* New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable.
* We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches.
[[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]]
 In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...).
[[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]]
 Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below.
==='''3.2 - Phases 0 to 3: Earth Locations'''===
 
 Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth.
 Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves.
 This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are:
: <u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed.
: <u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed.
: <u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products.
: <u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay.
: A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials.
==='''3.3 - Phases 4-6: Space Locations'''===
 
 The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space.
 At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet.
 As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are:
: <u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant.
: The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun.
: <u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots.
: <u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for.
 
=='''4.0 - Seed Factory Technology'''==
 
 Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology.
 '''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products.
 Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways:
* <u>Replication</u> - making copies of existing parts and equipment,
* <u>Diversification</u> - making parts for new equipment not in the current set,
* <u>Quality</u> - making items stronger, more accurate, or from different materials, and
* <u>Scaling</u> - making different size parts (usually larger) than the current ones.
 A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees.
 The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory.
:'''Self-Replication and Distributed Production'''
 A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine.
 Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring.
 Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating.
 Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products.
:'''Operations and Functions'''
 Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include:
* <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment.
* <u>Supply power</u> - this includes electricity, thermal heating, and other sources.
* <u>Extract materials</u> - mining and harvesting raw materials.
* <u>Process materials</u> - converting raw materials to usable inventory.
* <u>Fabricate parts</u> - use inventory stock to produce finished parts.
* <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed.
* <u>Assemble elements</u> - combine finished parts and materials to produce completed products.
* <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production.
 Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms.
 Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally.
 We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely.
 
 
=='''5.0 - Phase 0: Research and Development (R&D)'''==
 
 The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents.
 A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations.
:'''R&D Goals'''
 Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills.
 Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space.
:'''Production by R&D Phase'''
 Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use.
 Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs.
 Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases.
:'''Sharing Our Results'''
 We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally.
 The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them.
:'''R&D Tasks and Projects'''
 The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed.
 New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process.
 The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks.
 Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge.
 
=='''6.0 - Moderate Locations'''==
 
 Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences.
 Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial.
==='''6.1 - Phase 1: Starter Locations and Network'''===
 
:'''Goals'''
 The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. By site we mean an individual place like a home or commercial building, while a location is at the scale of a city or metropolitan area that travel and transport across is reasonably easy. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places.
 Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site.
:'''Starting Points'''
 Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed.
 Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged.
 Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty.
 Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones.
:'''Later Improvements'''
 Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food.
 The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built.
 Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions.
==='''6.2 - Phase 2A: Distributed Locations'''===
 
:'''Goals'''
 The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation.
:'''Evolution'''
 Phase 1 locations in general would accumulate skills and equipment. Some sites within the location will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets.
 When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places.
 Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate.
:'''Ownership'''
 In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills.
 When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently.
 By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners.
==='''6.3 - Phase 2B: Industrial Locations'''===
 
:'''Goals'''
 The main goal of this phase is to reach the most efficient production levels by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2.
:'''Growth and Specialization'''
 Industrial sites can evolve from distributed small business or commercial sites by continuing self-improvement and growth. They can also be built as new sites of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding.
 Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big site that can satisfy all of them.
 The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase.
 A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products.
 The overall production network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed.
 Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation.
 
=='''7.0 - Other Earth Locations'''==
 
:'''Goal'''
 The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress.
:'''Method'''
 One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials.
:'''New Locations'''
 Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started.
 Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range.
 If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people.
 We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects.
 The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity.
 That capacity then supplies products and services for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth.
==='''7.1 - Phase 3A: Difficult Earth Locations'''===
 
 We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are:
 '''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth.
 '''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay.
 '''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range.
 '''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters
 '''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are.
 Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply.
 Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere.
 '''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items.
 '''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year.
 A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population.
 Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs.
 '''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition.
 On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance.
 '''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days.
 '''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services.
 Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations.
 '''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation.
 On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits.
 Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with.
==='''7.2 - Phase 3B: Extreme Earth Locations'''===
 
 We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are:
 '''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts.
 '''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests.
 '''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground.
 '''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock.
 '''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty.
 '''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur.
 '''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically.
 '''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable.
 '''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation.
 '''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations.
 '''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used.
 
=='''8.0 - Phase 4: Orbital Locations'''==
 
[[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]]
:'''Goals'''
 The main goals of phases 4 through 6 are using space to bring benefits to Earth, and to help with some long-term problems and risks that can't be handled any other way.
 Figure 8.0-1 is an early concept for a rotating '''[https://en.wikipedia.org/wiki/Space_station Space Station]''', made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since the first practical silicon solar cell would not be made until 2 years later. We show this concept as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 75 years in the future. Despite that, we have to start somewhere and then make updates as needed.
:'''Approach'''
 This section (8.0) 9.0, and 10.0 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. We expect the various sub-phases to have different starting times due to relative difficulty in reaching their locations and distance from Earth. But once started the sub-phases would overlap and continue in parallel.
 Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) come next. They share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from than orbital locations in similar solar orbits. The local environments are also different on and around these bodies. Phase 6 (Interstellar Locations) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work.
:'''Current and Near-Term Space Industry'''
 Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According the '''[https://orbitalradar.com/how-many-satellites-in-orbit Orbital Radar]''' site there were over 18,000 active satellites orbiting the Earth in September 2026. There were also about 10,700 pieces of debris and leftover rocket parts. There are a smaller number of spacecraft and other items that have been sent beyond Earth orbit, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving.
 '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $429 billion as of 2025, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs.
 Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and over 3,000 '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level.
 Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight.
 Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. Replacing the equipmwnt adds to the cost of operating in space. Refueling, maintenance, and repair of space hardware is very limited. New production, upgrades, and recycling in space is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism.
:'''Long-Term Sustainability'''
 As of 2025 fossil fuels supplied 81.9% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it.
 These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is.
 Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant but low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both.
 At the same time, the world's population is growing, and not everyone has the benefits of high income economies. Full development of such economies would demand even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it would not reduce it to zero.
:'''Civilization-Level Risks'''
 Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release.
 Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce that risk. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent.
 There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery.
==='''8.1 - Using Space to Solve Earth's Problems'''===
 
 There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores.
 There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy output to equipment mass ratio is roughly 50 times higher.
 There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above.
:'''Lowering Space Operations Cost'''
 Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement.
 There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need.
 A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development.
 Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down.
 More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost".
:'''Space Development Process'''
 Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock.
 Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence.
 In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions.
 Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost.
 Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it.
:'''General Space Environment Features'''
 Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce.
 The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity.
 The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''.
* '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature.
* '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 times Earth's distance from the Sun (3 AU), where temperatures are low enough for ice to be stable in a vacuum.
* '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres.
* '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets.
* '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy.
: Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors.
* '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure.
* '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset.
: Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Space transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks.
* '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet.
* '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades.
* '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years.
* '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg.
==='''8.2 - Phase 4A: Low Orbit Locations'''===
 
 Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started.
 We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon.
:'''Low Orbit Features'''
 Earth orbits exist in a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''.
 Objects in low orbits are in the Earth's shadow about 22-40% of the time, reducing available solar energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time to a particular orbit location from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay.
 The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbit height and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially.
 Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations.
:'''Economic Uses'''
 We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the International Space Station and Hubble Telescope, and national security.
 Future uses may include tourism, orbital assembly and maintenance, payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others.
 We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position.
:'''Transport from Earth'''
 Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites.
 Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth requiring a minimum energy to reach orbit, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities:
[[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]]
 '''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices.
 A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in kilomdeters rather than meters lower g-forces and operating pressures. But the forces are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on a mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch.
 Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets.
 The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth.
 '''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option.
 High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense.
:'''Mining and Production'''
 Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there.
 There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks.
 When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end.
 A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse.
 Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere.
==='''8.3 - Phase 4B: High Orbit Locations'''===
 
:'''High Orbit Features'''
 We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as distance increases.
 The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations.
 High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold '''[https://en.wikipedia.org/wiki/Cosmic_microwave_background Cosmic Microwave Background]''', but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy.
 Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies.
:'''Economic Uses'''
 One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts.
 Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity varies with the Earth's distance from the Sun, and the Moon's orbit is not circular or in the same plane as the Earth and Sun. So uncontrolled objects will move around the region.
 Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can begin with transporting fuel and other items up or down through the region, to or from more distant early interplanetary locations and low orbit. This and other possible future activities depend on bringing transport costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels.
 There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They would let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Hazardous solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts.
 The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 750 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources could make civilization sustainable as long as the Sun lasts.
:'''Transport from Other Orbits'''
 Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years.
 Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://commons.wikimedia.org/wiki/File:Best_Research-Cell_Efficiencies.svg Solar Cell Efficiency Chart]'''). The engines are low thrust, which would expose unprotected people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, protected or more advanced transport methods can be used.
 Bulk materials mined from NEOs (Section 2.1 Material Resources) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed.
 The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all these types would supply the widest range of raw materials to make the widest range of products.
:'''High Orbit Production'''
 Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, plus active refrigeration if needed.
 A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations.
 Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth.
 Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies.
 Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, and a small amount of carbon added to make a steel alloy, and then cast into basic shapes.
 Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials.
 Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction.
 '''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. Reflectors and shades can be used in all kinds of industrial processes for thermal processing of materials.
 In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing is easier than trying to make them locally in space.
:'''Living in High Orbit'''
 After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities.
 Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear by adding at the ends, or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels.
 Layered growth adds new pressure shells with compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved or added to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed.
 
==='''8.4 - Phase 4C: Inner Interplanetary Locations'''===
 
:'''Inner Interplanetary Features'''
 These are orbits detached from the Earth's dominant gravity and orbit the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun and out to 1.8 times the Earth's average distance from the Sun (1.8 AU). This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, and Mars, and orbits around them, which are part of Phase 5 - Planetary Locations (Section 9.0 below).
 Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time.
 Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side.
 As noted in section 2.1, there are over 42,500 known near Earth Objects (NEOs) as of September 2026, and the number is currently increasing by 3,200 a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large.
 Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions.
 There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us.
:'''Economic Uses'''
 There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces.
 Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally.
:'''Inner Interplanetary Transport'''
 The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion.
 '''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit.
 Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region.
 Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal.
 Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space.
:'''Inner Interplanetary Production'''
 Global artificial primary energy consumption on Earth was 20.3 TeraWatts in 2025. Note that primary energy does not include sunlight used by plants. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits.
 Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it.
 The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with.
 If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain a civilization.
:'''Living Beyond Earth Orbit'''
 Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time.
 It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the equipment stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy.
 
==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''===
 
 Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials.
:'''Mid-Interplanetary Features'''
[[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]]
 This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2026 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.44 million other Main Belt asteroids, over 7300 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 16,700 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. New discoveries of mostly smaller objects has been about 80,000 a year. The region does not include Jupiter itself and the region within 20 million km of the planet (see Section 9.4).
 There are also around 500 known '''[https://en.wikipedia.org/wiki/Comet Comets]''' that cross the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements in the Universe, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of water ice, and if their orbits don't bring them closer can hold them permanently.
 Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years for minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including relays to avoid direct communication paths through the Sun.
 The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun.
:'''Economic Uses'''
 This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable starting with mining and transport to previous locations. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization.
:'''Mid-Interplanetary Transport'''
 The same transport methods can be used in this region as for the inner interplanetary region. The main difference would be adding lightweight reflectors to solar panels if needed to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, those methods also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency.
:'''Mid-Interplanetary Production'''
 The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels can benefit from reflectors to increase the light intensity like they do for transport/ Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials that are not at the bottom of gravity wells of large bodies.
 Many asteroids are covered with a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area can be covered to contain loose material.
 More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs if needed to factories for later production steps. For larger operations, a shell can surround the whole asteroid or comet, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter.
 
==='''8.6 - Phase 4E: Outer Interplanetary Locations'''===
 
 This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials.
:'''Outer Interplanetary Features'''
 Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2026 there are over 700 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also 4,470 known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 5,170 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered.
 Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from -113 to -223C for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours.
 The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the larger ones 'minor planets'.
:'''Outer Interplanetary Activities'''
 This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is uncertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them.
 Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, radioactives can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced.
 As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of distance. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region.
 We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule.
 If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop.
==='''8.7 - Phase 4F: Distant Orbit Locations'''===
 
 The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'.
:'''Distant Orbit Features'''
 Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's gravitational dominance at about 100,000 AU. As of 2026 there are about 1900 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a larger number of
'''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets.
 A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and from 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region.
 Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit.
 Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years.
:'''Distant Orbit Activities'''
 Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens.
 To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative for now. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must also remain speculative for now.
 
=='''9.0 - Phase 5 - Planetary System Locations'''==
 
 The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative to objects in the orbital regions, and third is the diversity of conditions found on and around the planets.
 Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest from Earth, and is preceded by orbital transport that can reach the locations carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time.
==='''9.1 - Phase 5A: Lunar Locations'''===
 
 Earth is one of the eight major planets in the Solar System. It is already occupied and developed. We covered using the self-improving systems approach on it earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities will be more similar to those for smaller planets and the larger moons of the other planets.
:'''Lunar Features'''
 The Lunar region includes the Moon itself, and '''[https://en.wikipedia.org/wiki/Lunar_orbit Lunar Orbits]''' with semi-major axes less than 35,000 km in size. These are close enough to the Moon to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field. The Earth and Sun are also much more massive than the Moon, and their gravity has significant effects on objects orbiting the Moon.
 The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location (Figure 9.1-1).
 Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Orbit velocities are 1680 m/s or less, and adding 700 m/s or less to them reaches escape. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increases the total exposed surface area.
[[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]]
 Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same.
 The Moon is '''[https://en.wikipedia.org/wiki/Tidal_lockingt Tidally locked]''' to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day.
 Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth.
 The Moon has a somewhat variable and reasonably well understood surface '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and from '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements.
 The Moon is too small and warm to keep an atmosphere. With nothing to stop incoming objects, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles can cause rocks to crack near the surface.
:'''Economic Uses'''
 The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water ice]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits.
 Surface mining the regolith can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without heavy mining methods and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment.
 Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space.
:'''Lunar Transport'''
 Early landings on the Moon would not have the support of local infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth to support activities. '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous]''' type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and largely replace Earth propellant and life support supplies. How much would come from each source will depend on cost and availability.
 Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the Moon's surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials to a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location.
 Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to and from the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. This can't be done directly on the surface because the variable gravity field and heights of lunar mountains and crater walls can cause collisions.
 If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by high efficiency electric propulsion.
 Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of local lunar materials can provide shielding. With this combination people can live comfortably and safely. They would be close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions to low gravity are using rotating habitats on the surface or limiting stay times.
:'''Lunar Production'''
 The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. The disadvantage is there are few volatile (low boiling-point) materials left on the Moon. It formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space. Some products are also too hard or expensive to make there relative to delivery from Earth. So two-way trade would be needed for lunar activities to support themselves.
 Early Lunar production can start with mining bulk surface material for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory starter sets can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease.
 Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful.
 Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore.
 Other energy options for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night.
:'''Living in Lunar Locations'''
 Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time.
 We have essentially no data on how much gravity is enough between zero and full Earth gravity. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control.
 The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best.
 
==='''9.2 - Phase 5B: Mars Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between.
:'''Mars Features'''
 The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin.
 Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding.
 Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way.
 The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. Their origins are uncertain, but are low density and appear similar to carbonaceous asteroids.
[[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]]
 Mars' atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass.
 Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps.
:'''Economic Uses'''
 Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids.
 Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available.
 As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth.
:'''Mars Transport'''
 In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit.
 Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more.
 Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs.
 When the transfer station is built up enough, a set of crew can detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface.
 Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems.
 Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred.
:'''Mars Production'''
 Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries.
 Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first.
:'''Living in Mars Locations'''
 Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats.
 '''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier.
 An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection.
 
==='''9.3 - Phase 5C: Venus and Mercury Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. Only 2.7% of known asteroids and comets come near Earth or closer to the Sun. This limits materials to start orbital development at Venus and Mercury.
:'''Venus and Mercury Features'''
 The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU.
 Solar flux is 1.9 times higher at Venus than near Earth, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the thick atmosphere mostly eliminates temperature changes.
 Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively.
 The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters
:'''Economic Uses'''
 Near-term use of Venus and Mercury is more difficult because of the higher velocities to reach and enter orbit, and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats at Venus are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed.
 Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry.
 It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric engines. This does not account for gravity assists or skyhook transfers. Electric propulsion require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun.
:'''Venus and Mercury Transport'''
 Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow.
 For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines.
:'''Venus and Mercury Production'''
 Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from from obit around Venus. There are only 3500 known asteroids whose orbit is smaller than Earth's. This is only 0.2% of the total known, so many materials may have to be imported from farther away.
 Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time.
:'''Living at Venus and Mercury'''
 Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term.
==='''9.4 - Phase 5D: Jupiter System Locations'''===
 
 Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow the Mid-Interplanetary (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury.
:'''Jupiter System Features'''
 The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2023 there are 91 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reaxonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system.
 Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above the atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations.
 Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmopshere from orbit.
 The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth.
 Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side.
:'''Economic Uses'''
 Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 12,500 Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges.
 The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility.
:'''Jupiter System Transport'''
 Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required. The other Gas Giants are easier to access and have milder radiation belts.
:'''Jupiter System Production'''
 Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat.
:'''Living in the Jupiter System'''
 Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it.
==='''9.5 - Phase 5E: Outer Giant Locations'''===
 
 The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from distance and lower solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around.
:'''Outer Giant Features'''
 The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 83 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''' as of 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars).
 Uranus' region is 24 million km in radius, and has 27 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 14 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter. The larger moons of all three can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby.
 Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips.
 Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System.
 Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% hethane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible.
:'''Economic Uses'''
 The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 124 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now.
 Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research.
 If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time.
:'''Outer Giant Transport'''
 Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been developed. Current work is on small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical.
 Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System are already filled with it anyway. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be.
:'''Outer Giant Production and Living'''
 We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question.
=='''10.0 - Interstellar Locations'''==
 
 The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Deveopment of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance.
 Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order.
==='''10.1 - Phase 6A: Interstellar Space Locations'''===
 
:'''Interstellar Features'''
 We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun.
 Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2023 there are 131 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average.
 The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System.
 The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is.
:'''Economic Uses'''
 We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities.
:'''Interstellar Transport'''
 Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development.
 Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue.
&emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now.
:'''Interstellar Production'''
 We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now is what they bring with them. If they start with a large reserve, such as a captured comet nucleus, it can be used for supplies, maintenance, and upgrades.
==='''10.2 - Phase 6B: Stellar Locations'''===
 
:'''Stellar System Features'''
 We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 94 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any cometary cloud bound to them.
 Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits.
 The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and over 5000 by 2023. 59 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks.
:'''Economic Uses'''
 Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars.
:'''Exostellar Transport'''
 Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources.
:'''Exostellar Production'''
 As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available.
</div>
40camp7es47muxjoxa7v59s3vqlbh52
4674848
4674836
2026-10-07T09:59:40Z
Danielravennest
13526
/* 9.4 - Phase 5D: Jupiter System Locations */ minor update
4674848
wikitext
text/x-wiki
{{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}}
<div style="font-size:125%;font-family:'Georgia', serif;">
:'''Dani Eder,'''
:''The Seed Factory Project,''
:''6485 Rivertown Rd, Fairburn, GA, 30213''
:''email: danielravennest@gmail.com''
:'''Aug 2026'''
'''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set.
<div class="nonumtoc">{{TOCright}}</div>
=='''0.0 - Summary'''==
 
  National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort.
 Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory.
 Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment.
 The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high.
 It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea.
=='''1.0 - Problems of Past Space Programs'''==
 
 Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology.
:'''Outdated Assumptions'''
 Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions:
* It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface.
* Because the number of missions is small and they are short, it is not economic to develop many local resources.
* Most or all equipment and supplies are launched from Earth.
* High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions.
 Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other.
:'''High Cost'''
 Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings.
 The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress.
:'''Low Returns'''
 In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them.
 If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly.
:'''Focus on the Moon and Mars'''
 The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination.
 The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay.
 Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places.
 A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth.
=='''2.0 - New Knowledge and Technologies'''==
 
 Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment.
==='''2.1 - The Modern Solar System'''===
 
 The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year.
 Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System.
 In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier.
:'''Material Resources'''
 '''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction.
 This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth.
 The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects.
 Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating.
[[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]]
 91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found.
 Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones.
 '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them.
[[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]]
 The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible.
:'''Energy Resources'''
 The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies.
 It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space.
 Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher.
 In addition to solar, there are various energy sources that are more limited in scale and availability. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment.
:'''The Illusion of Scarcity'''
 Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer.
 The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area.
 The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth.
 A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used.
==='''2.2 - New Technologies'''===
 
 For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology.
:'''Seed Factories'''
 Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient.
 We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways:
* Making parts for additional copies of current equipment.
* Making new types of items not in the starter set, and
* Making different versions of existing equipment (larger, more accurate, etc.).
 While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally.
 The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere.
 When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better.
:'''Locations and MakerNets'''
 When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects.
 The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost.
 Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials.
:'''Space Technologies'''
 New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include:
* '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past.
* '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved.
* '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology.
 Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications.
 Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer.
 
=='''3.0 - New Program Concept'''==
 
 For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods.
 This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas.
:<u>'''Goal 1 - Benefits on Earth'''</u>
 Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult.
 Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget.
 The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same.
 The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire.
 As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate.
 A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects.
 Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel.
:<u>'''Goal 2 - Benefits from Space'''</u>
 Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this:
* Access to materials on Earth is limited vertically because temperatures and pressure increase with depth.
* Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy
* Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment.
* There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space.
 So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment.
 Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations.
 Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed.
 Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society.
:<u>'''Program Advantages'''</u>
 Our new approach has a number of advantages:
* It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects.
* Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable.
* In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites.
* A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems.
* Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth.
==='''3.1 - Program Sequence'''===
 
 Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this:
* The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them.
* We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise.
* New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable.
* We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches.
[[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]]
 In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...).
[[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]]
 Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below.
==='''3.2 - Phases 0 to 3: Earth Locations'''===
 
 Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth.
 Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves.
 This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are:
: <u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed.
: <u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed.
: <u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products.
: <u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay.
: A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials.
==='''3.3 - Phases 4-6: Space Locations'''===
 
 The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space.
 At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet.
 As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are:
: <u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant.
: The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun.
: <u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots.
: <u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for.
 
=='''4.0 - Seed Factory Technology'''==
 
 Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology.
 '''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products.
 Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways:
* <u>Replication</u> - making copies of existing parts and equipment,
* <u>Diversification</u> - making parts for new equipment not in the current set,
* <u>Quality</u> - making items stronger, more accurate, or from different materials, and
* <u>Scaling</u> - making different size parts (usually larger) than the current ones.
 A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees.
 The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory.
:'''Self-Replication and Distributed Production'''
 A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine.
 Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring.
 Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating.
 Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products.
:'''Operations and Functions'''
 Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include:
* <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment.
* <u>Supply power</u> - this includes electricity, thermal heating, and other sources.
* <u>Extract materials</u> - mining and harvesting raw materials.
* <u>Process materials</u> - converting raw materials to usable inventory.
* <u>Fabricate parts</u> - use inventory stock to produce finished parts.
* <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed.
* <u>Assemble elements</u> - combine finished parts and materials to produce completed products.
* <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production.
 Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms.
 Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally.
 We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely.
 
 
=='''5.0 - Phase 0: Research and Development (R&D)'''==
 
 The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents.
 A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations.
:'''R&D Goals'''
 Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills.
 Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space.
:'''Production by R&D Phase'''
 Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use.
 Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs.
 Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases.
:'''Sharing Our Results'''
 We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally.
 The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them.
:'''R&D Tasks and Projects'''
 The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed.
 New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process.
 The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks.
 Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge.
 
=='''6.0 - Moderate Locations'''==
 
 Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences.
 Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial.
==='''6.1 - Phase 1: Starter Locations and Network'''===
 
:'''Goals'''
 The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. By site we mean an individual place like a home or commercial building, while a location is at the scale of a city or metropolitan area that travel and transport across is reasonably easy. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places.
 Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site.
:'''Starting Points'''
 Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed.
 Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged.
 Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty.
 Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones.
:'''Later Improvements'''
 Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food.
 The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built.
 Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions.
==='''6.2 - Phase 2A: Distributed Locations'''===
 
:'''Goals'''
 The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation.
:'''Evolution'''
 Phase 1 locations in general would accumulate skills and equipment. Some sites within the location will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets.
 When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places.
 Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate.
:'''Ownership'''
 In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills.
 When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently.
 By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners.
==='''6.3 - Phase 2B: Industrial Locations'''===
 
:'''Goals'''
 The main goal of this phase is to reach the most efficient production levels by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2.
:'''Growth and Specialization'''
 Industrial sites can evolve from distributed small business or commercial sites by continuing self-improvement and growth. They can also be built as new sites of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding.
 Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big site that can satisfy all of them.
 The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase.
 A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products.
 The overall production network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed.
 Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation.
 
=='''7.0 - Other Earth Locations'''==
 
:'''Goal'''
 The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress.
:'''Method'''
 One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials.
:'''New Locations'''
 Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started.
 Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range.
 If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people.
 We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects.
 The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity.
 That capacity then supplies products and services for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth.
==='''7.1 - Phase 3A: Difficult Earth Locations'''===
 
 We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are:
 '''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth.
 '''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay.
 '''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range.
 '''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters
 '''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are.
 Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply.
 Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere.
 '''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items.
 '''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year.
 A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population.
 Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs.
 '''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition.
 On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance.
 '''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days.
 '''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services.
 Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations.
 '''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation.
 On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits.
 Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with.
==='''7.2 - Phase 3B: Extreme Earth Locations'''===
 
 We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are:
 '''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts.
 '''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests.
 '''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground.
 '''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock.
 '''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty.
 '''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur.
 '''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically.
 '''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable.
 '''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation.
 '''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations.
 '''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used.
 
=='''8.0 - Phase 4: Orbital Locations'''==
 
[[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]]
:'''Goals'''
 The main goals of phases 4 through 6 are using space to bring benefits to Earth, and to help with some long-term problems and risks that can't be handled any other way.
 Figure 8.0-1 is an early concept for a rotating '''[https://en.wikipedia.org/wiki/Space_station Space Station]''', made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since the first practical silicon solar cell would not be made until 2 years later. We show this concept as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 75 years in the future. Despite that, we have to start somewhere and then make updates as needed.
:'''Approach'''
 This section (8.0) 9.0, and 10.0 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. We expect the various sub-phases to have different starting times due to relative difficulty in reaching their locations and distance from Earth. But once started the sub-phases would overlap and continue in parallel.
 Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) come next. They share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from than orbital locations in similar solar orbits. The local environments are also different on and around these bodies. Phase 6 (Interstellar Locations) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work.
:'''Current and Near-Term Space Industry'''
 Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According the '''[https://orbitalradar.com/how-many-satellites-in-orbit Orbital Radar]''' site there were over 18,000 active satellites orbiting the Earth in September 2026. There were also about 10,700 pieces of debris and leftover rocket parts. There are a smaller number of spacecraft and other items that have been sent beyond Earth orbit, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving.
 '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $429 billion as of 2025, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs.
 Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and over 3,000 '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level.
 Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight.
 Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. Replacing the equipmwnt adds to the cost of operating in space. Refueling, maintenance, and repair of space hardware is very limited. New production, upgrades, and recycling in space is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism.
:'''Long-Term Sustainability'''
 As of 2025 fossil fuels supplied 81.9% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it.
 These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is.
 Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant but low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both.
 At the same time, the world's population is growing, and not everyone has the benefits of high income economies. Full development of such economies would demand even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it would not reduce it to zero.
:'''Civilization-Level Risks'''
 Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release.
 Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce that risk. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent.
 There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery.
==='''8.1 - Using Space to Solve Earth's Problems'''===
 
 There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores.
 There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy output to equipment mass ratio is roughly 50 times higher.
 There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above.
:'''Lowering Space Operations Cost'''
 Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement.
 There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need.
 A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development.
 Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down.
 More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost".
:'''Space Development Process'''
 Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock.
 Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence.
 In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions.
 Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost.
 Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it.
:'''General Space Environment Features'''
 Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce.
 The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity.
 The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''.
* '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature.
* '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 times Earth's distance from the Sun (3 AU), where temperatures are low enough for ice to be stable in a vacuum.
* '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres.
* '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets.
* '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy.
: Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors.
* '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure.
* '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset.
: Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Space transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks.
* '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet.
* '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades.
* '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years.
* '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg.
==='''8.2 - Phase 4A: Low Orbit Locations'''===
 
 Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started.
 We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon.
:'''Low Orbit Features'''
 Earth orbits exist in a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''.
 Objects in low orbits are in the Earth's shadow about 22-40% of the time, reducing available solar energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time to a particular orbit location from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay.
 The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbit height and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially.
 Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations.
:'''Economic Uses'''
 We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the International Space Station and Hubble Telescope, and national security.
 Future uses may include tourism, orbital assembly and maintenance, payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others.
 We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position.
:'''Transport from Earth'''
 Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites.
 Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth requiring a minimum energy to reach orbit, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities:
[[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]]
 '''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices.
 A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in kilomdeters rather than meters lower g-forces and operating pressures. But the forces are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on a mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch.
 Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets.
 The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth.
 '''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option.
 High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense.
:'''Mining and Production'''
 Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there.
 There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks.
 When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end.
 A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse.
 Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere.
==='''8.3 - Phase 4B: High Orbit Locations'''===
 
:'''High Orbit Features'''
 We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as distance increases.
 The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations.
 High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold '''[https://en.wikipedia.org/wiki/Cosmic_microwave_background Cosmic Microwave Background]''', but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy.
 Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies.
:'''Economic Uses'''
 One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts.
 Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity varies with the Earth's distance from the Sun, and the Moon's orbit is not circular or in the same plane as the Earth and Sun. So uncontrolled objects will move around the region.
 Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can begin with transporting fuel and other items up or down through the region, to or from more distant early interplanetary locations and low orbit. This and other possible future activities depend on bringing transport costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels.
 There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They would let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Hazardous solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts.
 The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 750 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources could make civilization sustainable as long as the Sun lasts.
:'''Transport from Other Orbits'''
 Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years.
 Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://commons.wikimedia.org/wiki/File:Best_Research-Cell_Efficiencies.svg Solar Cell Efficiency Chart]'''). The engines are low thrust, which would expose unprotected people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, protected or more advanced transport methods can be used.
 Bulk materials mined from NEOs (Section 2.1 Material Resources) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed.
 The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all these types would supply the widest range of raw materials to make the widest range of products.
:'''High Orbit Production'''
 Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, plus active refrigeration if needed.
 A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations.
 Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth.
 Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies.
 Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, and a small amount of carbon added to make a steel alloy, and then cast into basic shapes.
 Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials.
 Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction.
 '''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. Reflectors and shades can be used in all kinds of industrial processes for thermal processing of materials.
 In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing is easier than trying to make them locally in space.
:'''Living in High Orbit'''
 After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities.
 Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear by adding at the ends, or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels.
 Layered growth adds new pressure shells with compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved or added to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed.
 
==='''8.4 - Phase 4C: Inner Interplanetary Locations'''===
 
:'''Inner Interplanetary Features'''
 These are orbits detached from the Earth's dominant gravity and orbit the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun and out to 1.8 times the Earth's average distance from the Sun (1.8 AU). This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, and Mars, and orbits around them, which are part of Phase 5 - Planetary Locations (Section 9.0 below).
 Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time.
 Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side.
 As noted in section 2.1, there are over 42,500 known near Earth Objects (NEOs) as of September 2026, and the number is currently increasing by 3,200 a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large.
 Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions.
 There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us.
:'''Economic Uses'''
 There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces.
 Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally.
:'''Inner Interplanetary Transport'''
 The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion.
 '''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit.
 Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region.
 Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal.
 Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space.
:'''Inner Interplanetary Production'''
 Global artificial primary energy consumption on Earth was 20.3 TeraWatts in 2025. Note that primary energy does not include sunlight used by plants. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits.
 Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it.
 The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with.
 If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain a civilization.
:'''Living Beyond Earth Orbit'''
 Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time.
 It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the equipment stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy.
 
==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''===
 
 Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials.
:'''Mid-Interplanetary Features'''
[[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]]
 This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2026 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.44 million other Main Belt asteroids, over 7300 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 16,700 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. New discoveries of mostly smaller objects has been about 80,000 a year. The region does not include Jupiter itself and the region within 20 million km of the planet (see Section 9.4).
 There are also around 500 known '''[https://en.wikipedia.org/wiki/Comet Comets]''' that cross the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements in the Universe, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of water ice, and if their orbits don't bring them closer can hold them permanently.
 Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years for minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including relays to avoid direct communication paths through the Sun.
 The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun.
:'''Economic Uses'''
 This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable starting with mining and transport to previous locations. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization.
:'''Mid-Interplanetary Transport'''
 The same transport methods can be used in this region as for the inner interplanetary region. The main difference would be adding lightweight reflectors to solar panels if needed to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, those methods also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency.
:'''Mid-Interplanetary Production'''
 The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels can benefit from reflectors to increase the light intensity like they do for transport/ Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials that are not at the bottom of gravity wells of large bodies.
 Many asteroids are covered with a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area can be covered to contain loose material.
 More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs if needed to factories for later production steps. For larger operations, a shell can surround the whole asteroid or comet, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter.
 
==='''8.6 - Phase 4E: Outer Interplanetary Locations'''===
 
 This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials.
:'''Outer Interplanetary Features'''
 Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2026 there are over 700 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also 4,470 known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 5,170 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered.
 Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from -113 to -223C for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours.
 The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the larger ones 'minor planets'.
:'''Outer Interplanetary Activities'''
 This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is uncertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them.
 Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, radioactives can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced.
 As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of distance. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region.
 We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule.
 If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop.
==='''8.7 - Phase 4F: Distant Orbit Locations'''===
 
 The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'.
:'''Distant Orbit Features'''
 Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's gravitational dominance at about 100,000 AU. As of 2026 there are about 1900 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a larger number of
'''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets.
 A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and from 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region.
 Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit.
 Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years.
:'''Distant Orbit Activities'''
 Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens.
 To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative for now. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must also remain speculative for now.
 
=='''9.0 - Phase 5 - Planetary System Locations'''==
 
 The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative to objects in the orbital regions, and third is the diversity of conditions found on and around the planets.
 Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest from Earth, and is preceded by orbital transport that can reach the locations carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time.
==='''9.1 - Phase 5A: Lunar Locations'''===
 
 Earth is one of the eight major planets in the Solar System. It is already occupied and developed. We covered using the self-improving systems approach on it earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities will be more similar to those for smaller planets and the larger moons of the other planets.
:'''Lunar Features'''
 The Lunar region includes the Moon itself, and '''[https://en.wikipedia.org/wiki/Lunar_orbit Lunar Orbits]''' with semi-major axes less than 35,000 km in size. These are close enough to the Moon to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field. The Earth and Sun are also much more massive than the Moon, and their gravity has significant effects on objects orbiting the Moon.
 The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location (Figure 9.1-1).
 Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Orbit velocities are 1680 m/s or less, and adding 700 m/s or less to them reaches escape. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increases the total exposed surface area.
[[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]]
 Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same.
 The Moon is '''[https://en.wikipedia.org/wiki/Tidal_lockingt Tidally locked]''' to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day.
 Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth.
 The Moon has a somewhat variable and reasonably well understood surface '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and from '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements.
 The Moon is too small and warm to keep an atmosphere. With nothing to stop incoming objects, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles can cause rocks to crack near the surface.
:'''Economic Uses'''
 The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water ice]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits.
 Surface mining the regolith can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without heavy mining methods and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment.
 Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space.
:'''Lunar Transport'''
 Early landings on the Moon would not have the support of local infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth to support activities. '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous]''' type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and largely replace Earth propellant and life support supplies. How much would come from each source will depend on cost and availability.
 Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the Moon's surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials to a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location.
 Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to and from the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. This can't be done directly on the surface because the variable gravity field and heights of lunar mountains and crater walls can cause collisions.
 If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by high efficiency electric propulsion.
 Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of local lunar materials can provide shielding. With this combination people can live comfortably and safely. They would be close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions to low gravity are using rotating habitats on the surface or limiting stay times.
:'''Lunar Production'''
 The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. The disadvantage is there are few volatile (low boiling-point) materials left on the Moon. It formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space. Some products are also too hard or expensive to make there relative to delivery from Earth. So two-way trade would be needed for lunar activities to support themselves.
 Early Lunar production can start with mining bulk surface material for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory starter sets can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease.
 Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful.
 Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore.
 Other energy options for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night.
:'''Living in Lunar Locations'''
 Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time.
 We have essentially no data on how much gravity is enough between zero and full Earth gravity. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control.
 The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best.
 
==='''9.2 - Phase 5B: Mars Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between.
:'''Mars Features'''
 The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin.
 Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding.
 Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way.
 The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. Their origins are uncertain, but are low density and appear similar to carbonaceous asteroids.
[[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]]
 Mars' atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass.
 Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps.
:'''Economic Uses'''
 Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids.
 Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available.
 As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth.
:'''Mars Transport'''
 In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit.
 Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more.
 Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs.
 When the transfer station is built up enough, a set of crew can detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface.
 Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems.
 Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred.
:'''Mars Production'''
 Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries.
 Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first.
:'''Living in Mars Locations'''
 Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats.
 '''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier.
 An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection.
 
==='''9.3 - Phase 5C: Venus and Mercury Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. Only 2.7% of known asteroids and comets come near Earth or closer to the Sun. This limits materials to start orbital development at Venus and Mercury.
:'''Venus and Mercury Features'''
 The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU.
 Solar flux is 1.9 times higher at Venus than near Earth, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the thick atmosphere mostly eliminates temperature changes.
 Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively.
 The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters
:'''Economic Uses'''
 Near-term use of Venus and Mercury is more difficult because of the higher velocities to reach and enter orbit, and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats at Venus are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed.
 Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry.
 It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric engines. This does not account for gravity assists or skyhook transfers. Electric propulsion require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun.
:'''Venus and Mercury Transport'''
 Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow.
 For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines.
:'''Venus and Mercury Production'''
 Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from from obit around Venus. There are only 3500 known asteroids whose orbit is smaller than Earth's. This is only 0.2% of the total known, so many materials may have to be imported from farther away.
 Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time.
:'''Living at Venus and Mercury'''
 Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term.
 
==='''9.4 - Phase 5D: Jupiter System Locations'''===
 
 Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow Mid-Interplanetary location (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury.
:'''Jupiter System Features'''
 The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2026 there are 111 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reasonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system.
 Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above Jupiter's atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations.
 Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmosphere from orbit.
 The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth.
 Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side.
:'''Economic Uses'''
 Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 16,700 known Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges.
 The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility.
:'''Jupiter System Transport'''
 Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required to reach the surface. The other Gas Giants are easier to access and have milder radiation belts.
:'''Jupiter System Production'''
 Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat.
:'''Living in the Jupiter System'''
 Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it.
==='''9.5 - Phase 5E: Outer Giant Locations'''===
 
 The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from distance and lower solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around.
:'''Outer Giant Features'''
 The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 83 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''' as of 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars).
 Uranus' region is 24 million km in radius, and has 27 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 14 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter. The larger moons of all three can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby.
 Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips.
 Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System.
 Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% hethane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible.
:'''Economic Uses'''
 The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 124 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now.
 Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research.
 If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time.
:'''Outer Giant Transport'''
 Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been developed. Current work is on small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical.
 Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System are already filled with it anyway. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be.
:'''Outer Giant Production and Living'''
 We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question.
=='''10.0 - Interstellar Locations'''==
 
 The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Deveopment of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance.
 Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order.
==='''10.1 - Phase 6A: Interstellar Space Locations'''===
 
:'''Interstellar Features'''
 We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun.
 Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2023 there are 131 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average.
 The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System.
 The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is.
:'''Economic Uses'''
 We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities.
:'''Interstellar Transport'''
 Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development.
 Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue.
&emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now.
:'''Interstellar Production'''
 We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now is what they bring with them. If they start with a large reserve, such as a captured comet nucleus, it can be used for supplies, maintenance, and upgrades.
==='''10.2 - Phase 6B: Stellar Locations'''===
 
:'''Stellar System Features'''
 We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 94 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any cometary cloud bound to them.
 Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits.
 The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and over 5000 by 2023. 59 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks.
:'''Economic Uses'''
 Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars.
:'''Exostellar Transport'''
 Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources.
:'''Exostellar Production'''
 As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available.
</div>
7vkyshfv342dqbdg2c7soqr1bwszybb
4674853
4674848
2026-10-07T10:42:34Z
Danielravennest
13526
/* 9.5 - Phase 5E: Outer Giant Locations */ Update to end
4674853
wikitext
text/x-wiki
{{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}}
<div style="font-size:125%;font-family:'Georgia', serif;">
:'''Dani Eder,'''
:''The Seed Factory Project,''
:''6485 Rivertown Rd, Fairburn, GA, 30213''
:''email: danielravennest@gmail.com''
:'''Aug 2026'''
'''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set.
<div class="nonumtoc">{{TOCright}}</div>
=='''0.0 - Summary'''==
 
  National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort.
 Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory.
 Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment.
 The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high.
 It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea.
=='''1.0 - Problems of Past Space Programs'''==
 
 Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology.
:'''Outdated Assumptions'''
 Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions:
* It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface.
* Because the number of missions is small and they are short, it is not economic to develop many local resources.
* Most or all equipment and supplies are launched from Earth.
* High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions.
 Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other.
:'''High Cost'''
 Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings.
 The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress.
:'''Low Returns'''
 In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them.
 If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly.
:'''Focus on the Moon and Mars'''
 The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination.
 The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay.
 Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places.
 A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth.
=='''2.0 - New Knowledge and Technologies'''==
 
 Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment.
==='''2.1 - The Modern Solar System'''===
 
 The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year.
 Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System.
 In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier.
:'''Material Resources'''
 '''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction.
 This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth.
 The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects.
 Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating.
[[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]]
 91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found.
 Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones.
 '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them.
[[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]]
 The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible.
:'''Energy Resources'''
 The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies.
 It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space.
 Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher.
 In addition to solar, there are various energy sources that are more limited in scale and availability. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment.
:'''The Illusion of Scarcity'''
 Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer.
 The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area.
 The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth.
 A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used.
==='''2.2 - New Technologies'''===
 
 For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology.
:'''Seed Factories'''
 Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient.
 We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways:
* Making parts for additional copies of current equipment.
* Making new types of items not in the starter set, and
* Making different versions of existing equipment (larger, more accurate, etc.).
 While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally.
 The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere.
 When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better.
:'''Locations and MakerNets'''
 When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects.
 The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost.
 Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials.
:'''Space Technologies'''
 New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include:
* '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past.
* '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved.
* '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology.
 Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications.
 Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer.
 
=='''3.0 - New Program Concept'''==
 
 For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods.
 This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas.
:<u>'''Goal 1 - Benefits on Earth'''</u>
 Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult.
 Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget.
 The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same.
 The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire.
 As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate.
 A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects.
 Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel.
:<u>'''Goal 2 - Benefits from Space'''</u>
 Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this:
* Access to materials on Earth is limited vertically because temperatures and pressure increase with depth.
* Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy
* Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment.
* There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space.
 So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment.
 Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations.
 Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed.
 Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society.
:<u>'''Program Advantages'''</u>
 Our new approach has a number of advantages:
* It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects.
* Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable.
* In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites.
* A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems.
* Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth.
==='''3.1 - Program Sequence'''===
 
 Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this:
* The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them.
* We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise.
* New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable.
* We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches.
[[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]]
 In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...).
[[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]]
 Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below.
==='''3.2 - Phases 0 to 3: Earth Locations'''===
 
 Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth.
 Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves.
 This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are:
: <u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed.
: <u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed.
: <u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products.
: <u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay.
: A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials.
==='''3.3 - Phases 4-6: Space Locations'''===
 
 The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space.
 At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet.
 As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are:
: <u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant.
: The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun.
: <u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots.
: <u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for.
 
=='''4.0 - Seed Factory Technology'''==
 
 Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology.
 '''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products.
 Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways:
* <u>Replication</u> - making copies of existing parts and equipment,
* <u>Diversification</u> - making parts for new equipment not in the current set,
* <u>Quality</u> - making items stronger, more accurate, or from different materials, and
* <u>Scaling</u> - making different size parts (usually larger) than the current ones.
 A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees.
 The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory.
:'''Self-Replication and Distributed Production'''
 A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine.
 Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring.
 Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating.
 Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products.
:'''Operations and Functions'''
 Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include:
* <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment.
* <u>Supply power</u> - this includes electricity, thermal heating, and other sources.
* <u>Extract materials</u> - mining and harvesting raw materials.
* <u>Process materials</u> - converting raw materials to usable inventory.
* <u>Fabricate parts</u> - use inventory stock to produce finished parts.
* <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed.
* <u>Assemble elements</u> - combine finished parts and materials to produce completed products.
* <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production.
 Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms.
 Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally.
 We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely.
 
 
=='''5.0 - Phase 0: Research and Development (R&D)'''==
 
 The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents.
 A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations.
:'''R&D Goals'''
 Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills.
 Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space.
:'''Production by R&D Phase'''
 Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use.
 Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs.
 Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases.
:'''Sharing Our Results'''
 We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally.
 The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them.
:'''R&D Tasks and Projects'''
 The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed.
 New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process.
 The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks.
 Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge.
 
=='''6.0 - Moderate Locations'''==
 
 Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences.
 Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial.
==='''6.1 - Phase 1: Starter Locations and Network'''===
 
:'''Goals'''
 The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. By site we mean an individual place like a home or commercial building, while a location is at the scale of a city or metropolitan area that travel and transport across is reasonably easy. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places.
 Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site.
:'''Starting Points'''
 Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed.
 Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged.
 Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty.
 Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones.
:'''Later Improvements'''
 Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food.
 The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built.
 Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions.
==='''6.2 - Phase 2A: Distributed Locations'''===
 
:'''Goals'''
 The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation.
:'''Evolution'''
 Phase 1 locations in general would accumulate skills and equipment. Some sites within the location will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets.
 When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places.
 Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate.
:'''Ownership'''
 In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills.
 When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently.
 By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners.
==='''6.3 - Phase 2B: Industrial Locations'''===
 
:'''Goals'''
 The main goal of this phase is to reach the most efficient production levels by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2.
:'''Growth and Specialization'''
 Industrial sites can evolve from distributed small business or commercial sites by continuing self-improvement and growth. They can also be built as new sites of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding.
 Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big site that can satisfy all of them.
 The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase.
 A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products.
 The overall production network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed.
 Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation.
 
=='''7.0 - Other Earth Locations'''==
 
:'''Goal'''
 The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress.
:'''Method'''
 One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials.
:'''New Locations'''
 Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started.
 Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range.
 If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people.
 We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects.
 The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity.
 That capacity then supplies products and services for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth.
==='''7.1 - Phase 3A: Difficult Earth Locations'''===
 
 We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are:
 '''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth.
 '''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay.
 '''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range.
 '''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters
 '''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are.
 Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply.
 Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere.
 '''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items.
 '''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year.
 A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population.
 Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs.
 '''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition.
 On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance.
 '''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days.
 '''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services.
 Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations.
 '''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation.
 On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits.
 Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with.
==='''7.2 - Phase 3B: Extreme Earth Locations'''===
 
 We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are:
 '''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts.
 '''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests.
 '''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground.
 '''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock.
 '''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty.
 '''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur.
 '''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically.
 '''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable.
 '''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation.
 '''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations.
 '''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used.
 
=='''8.0 - Phase 4: Orbital Locations'''==
 
[[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]]
:'''Goals'''
 The main goals of phases 4 through 6 are using space to bring benefits to Earth, and to help with some long-term problems and risks that can't be handled any other way.
 Figure 8.0-1 is an early concept for a rotating '''[https://en.wikipedia.org/wiki/Space_station Space Station]''', made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since the first practical silicon solar cell would not be made until 2 years later. We show this concept as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 75 years in the future. Despite that, we have to start somewhere and then make updates as needed.
:'''Approach'''
 This section (8.0) 9.0, and 10.0 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. We expect the various sub-phases to have different starting times due to relative difficulty in reaching their locations and distance from Earth. But once started the sub-phases would overlap and continue in parallel.
 Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) come next. They share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from than orbital locations in similar solar orbits. The local environments are also different on and around these bodies. Phase 6 (Interstellar Locations) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work.
:'''Current and Near-Term Space Industry'''
 Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According the '''[https://orbitalradar.com/how-many-satellites-in-orbit Orbital Radar]''' site there were over 18,000 active satellites orbiting the Earth in September 2026. There were also about 10,700 pieces of debris and leftover rocket parts. There are a smaller number of spacecraft and other items that have been sent beyond Earth orbit, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving.
 '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $429 billion as of 2025, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs.
 Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and over 3,000 '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level.
 Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight.
 Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. Replacing the equipmwnt adds to the cost of operating in space. Refueling, maintenance, and repair of space hardware is very limited. New production, upgrades, and recycling in space is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism.
:'''Long-Term Sustainability'''
 As of 2025 fossil fuels supplied 81.9% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it.
 These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is.
 Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant but low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both.
 At the same time, the world's population is growing, and not everyone has the benefits of high income economies. Full development of such economies would demand even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it would not reduce it to zero.
:'''Civilization-Level Risks'''
 Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release.
 Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce that risk. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent.
 There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery.
==='''8.1 - Using Space to Solve Earth's Problems'''===
 
 There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores.
 There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy output to equipment mass ratio is roughly 50 times higher.
 There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above.
:'''Lowering Space Operations Cost'''
 Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement.
 There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need.
 A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development.
 Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down.
 More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost".
:'''Space Development Process'''
 Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock.
 Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence.
 In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions.
 Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost.
 Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it.
:'''General Space Environment Features'''
 Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce.
 The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity.
 The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''.
* '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature.
* '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 times Earth's distance from the Sun (3 AU), where temperatures are low enough for ice to be stable in a vacuum.
* '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres.
* '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets.
* '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy.
: Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors.
* '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure.
* '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset.
: Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Space transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks.
* '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet.
* '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades.
* '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years.
* '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg.
==='''8.2 - Phase 4A: Low Orbit Locations'''===
 
 Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started.
 We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon.
:'''Low Orbit Features'''
 Earth orbits exist in a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''.
 Objects in low orbits are in the Earth's shadow about 22-40% of the time, reducing available solar energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time to a particular orbit location from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay.
 The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbit height and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially.
 Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations.
:'''Economic Uses'''
 We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the International Space Station and Hubble Telescope, and national security.
 Future uses may include tourism, orbital assembly and maintenance, payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others.
 We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position.
:'''Transport from Earth'''
 Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites.
 Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth requiring a minimum energy to reach orbit, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities:
[[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]]
 '''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices.
 A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in kilomdeters rather than meters lower g-forces and operating pressures. But the forces are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on a mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch.
 Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets.
 The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth.
 '''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option.
 High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense.
:'''Mining and Production'''
 Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there.
 There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks.
 When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end.
 A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse.
 Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere.
==='''8.3 - Phase 4B: High Orbit Locations'''===
 
:'''High Orbit Features'''
 We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as distance increases.
 The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations.
 High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold '''[https://en.wikipedia.org/wiki/Cosmic_microwave_background Cosmic Microwave Background]''', but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy.
 Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies.
:'''Economic Uses'''
 One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts.
 Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity varies with the Earth's distance from the Sun, and the Moon's orbit is not circular or in the same plane as the Earth and Sun. So uncontrolled objects will move around the region.
 Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can begin with transporting fuel and other items up or down through the region, to or from more distant early interplanetary locations and low orbit. This and other possible future activities depend on bringing transport costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels.
 There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They would let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Hazardous solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts.
 The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 750 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources could make civilization sustainable as long as the Sun lasts.
:'''Transport from Other Orbits'''
 Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years.
 Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://commons.wikimedia.org/wiki/File:Best_Research-Cell_Efficiencies.svg Solar Cell Efficiency Chart]'''). The engines are low thrust, which would expose unprotected people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, protected or more advanced transport methods can be used.
 Bulk materials mined from NEOs (Section 2.1 Material Resources) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed.
 The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all these types would supply the widest range of raw materials to make the widest range of products.
:'''High Orbit Production'''
 Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, plus active refrigeration if needed.
 A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations.
 Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth.
 Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies.
 Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, and a small amount of carbon added to make a steel alloy, and then cast into basic shapes.
 Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials.
 Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction.
 '''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. Reflectors and shades can be used in all kinds of industrial processes for thermal processing of materials.
 In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing is easier than trying to make them locally in space.
:'''Living in High Orbit'''
 After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities.
 Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear by adding at the ends, or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels.
 Layered growth adds new pressure shells with compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved or added to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed.
 
==='''8.4 - Phase 4C: Inner Interplanetary Locations'''===
 
:'''Inner Interplanetary Features'''
 These are orbits detached from the Earth's dominant gravity and orbit the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun and out to 1.8 times the Earth's average distance from the Sun (1.8 AU). This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, and Mars, and orbits around them, which are part of Phase 5 - Planetary Locations (Section 9.0 below).
 Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time.
 Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side.
 As noted in section 2.1, there are over 42,500 known near Earth Objects (NEOs) as of September 2026, and the number is currently increasing by 3,200 a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large.
 Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions.
 There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us.
:'''Economic Uses'''
 There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces.
 Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally.
:'''Inner Interplanetary Transport'''
 The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion.
 '''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit.
 Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region.
 Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal.
 Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space.
:'''Inner Interplanetary Production'''
 Global artificial primary energy consumption on Earth was 20.3 TeraWatts in 2025. Note that primary energy does not include sunlight used by plants. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits.
 Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it.
 The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with.
 If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain a civilization.
:'''Living Beyond Earth Orbit'''
 Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time.
 It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the equipment stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy.
 
==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''===
 
 Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials.
:'''Mid-Interplanetary Features'''
[[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]]
 This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2026 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.44 million other Main Belt asteroids, over 7300 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 16,700 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. New discoveries of mostly smaller objects has been about 80,000 a year. The region does not include Jupiter itself and the region within 20 million km of the planet (see Section 9.4).
 There are also around 500 known '''[https://en.wikipedia.org/wiki/Comet Comets]''' that cross the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements in the Universe, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of water ice, and if their orbits don't bring them closer can hold them permanently.
 Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years for minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including relays to avoid direct communication paths through the Sun.
 The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun.
:'''Economic Uses'''
 This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable starting with mining and transport to previous locations. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization.
:'''Mid-Interplanetary Transport'''
 The same transport methods can be used in this region as for the inner interplanetary region. The main difference would be adding lightweight reflectors to solar panels if needed to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, those methods also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency.
:'''Mid-Interplanetary Production'''
 The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels can benefit from reflectors to increase the light intensity like they do for transport/ Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials that are not at the bottom of gravity wells of large bodies.
 Many asteroids are covered with a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area can be covered to contain loose material.
 More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs if needed to factories for later production steps. For larger operations, a shell can surround the whole asteroid or comet, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter.
 
==='''8.6 - Phase 4E: Outer Interplanetary Locations'''===
 
 This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials.
:'''Outer Interplanetary Features'''
 Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2026 there are over 700 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also 4,470 known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 5,170 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered.
 Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from -113 to -223C for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours.
 The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the larger ones 'minor planets'.
:'''Outer Interplanetary Activities'''
 This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is uncertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them.
 Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, radioactives can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced.
 As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of distance. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region.
 We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule.
 If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop.
==='''8.7 - Phase 4F: Distant Orbit Locations'''===
 
 The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'.
:'''Distant Orbit Features'''
 Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's gravitational dominance at about 100,000 AU. As of 2026 there are about 1900 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a larger number of
'''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets.
 A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and from 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region.
 Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit.
 Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years.
:'''Distant Orbit Activities'''
 Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens.
 To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative for now. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must also remain speculative for now.
 
=='''9.0 - Phase 5 - Planetary System Locations'''==
 
 The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative to objects in the orbital regions, and third is the diversity of conditions found on and around the planets.
 Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest from Earth, and is preceded by orbital transport that can reach the locations carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time.
==='''9.1 - Phase 5A: Lunar Locations'''===
 
 Earth is one of the eight major planets in the Solar System. It is already occupied and developed. We covered using the self-improving systems approach on it earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities will be more similar to those for smaller planets and the larger moons of the other planets.
:'''Lunar Features'''
 The Lunar region includes the Moon itself, and '''[https://en.wikipedia.org/wiki/Lunar_orbit Lunar Orbits]''' with semi-major axes less than 35,000 km in size. These are close enough to the Moon to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field. The Earth and Sun are also much more massive than the Moon, and their gravity has significant effects on objects orbiting the Moon.
 The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location (Figure 9.1-1).
 Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Orbit velocities are 1680 m/s or less, and adding 700 m/s or less to them reaches escape. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increases the total exposed surface area.
[[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]]
 Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same.
 The Moon is '''[https://en.wikipedia.org/wiki/Tidal_lockingt Tidally locked]''' to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day.
 Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth.
 The Moon has a somewhat variable and reasonably well understood surface '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and from '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements.
 The Moon is too small and warm to keep an atmosphere. With nothing to stop incoming objects, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles can cause rocks to crack near the surface.
:'''Economic Uses'''
 The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water ice]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits.
 Surface mining the regolith can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without heavy mining methods and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment.
 Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space.
:'''Lunar Transport'''
 Early landings on the Moon would not have the support of local infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth to support activities. '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous]''' type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and largely replace Earth propellant and life support supplies. How much would come from each source will depend on cost and availability.
 Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the Moon's surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials to a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location.
 Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to and from the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. This can't be done directly on the surface because the variable gravity field and heights of lunar mountains and crater walls can cause collisions.
 If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by high efficiency electric propulsion.
 Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of local lunar materials can provide shielding. With this combination people can live comfortably and safely. They would be close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions to low gravity are using rotating habitats on the surface or limiting stay times.
:'''Lunar Production'''
 The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. The disadvantage is there are few volatile (low boiling-point) materials left on the Moon. It formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space. Some products are also too hard or expensive to make there relative to delivery from Earth. So two-way trade would be needed for lunar activities to support themselves.
 Early Lunar production can start with mining bulk surface material for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory starter sets can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease.
 Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful.
 Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore.
 Other energy options for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night.
:'''Living in Lunar Locations'''
 Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time.
 We have essentially no data on how much gravity is enough between zero and full Earth gravity. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control.
 The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best.
 
==='''9.2 - Phase 5B: Mars Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between.
:'''Mars Features'''
 The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin.
 Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding.
 Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way.
 The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. Their origins are uncertain, but are low density and appear similar to carbonaceous asteroids.
[[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]]
 Mars' atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass.
 Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps.
:'''Economic Uses'''
 Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids.
 Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available.
 As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth.
:'''Mars Transport'''
 In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit.
 Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more.
 Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs.
 When the transfer station is built up enough, a set of crew can detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface.
 Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems.
 Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred.
:'''Mars Production'''
 Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries.
 Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first.
:'''Living in Mars Locations'''
 Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats.
 '''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier.
 An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection.
 
==='''9.3 - Phase 5C: Venus and Mercury Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. Only 2.7% of known asteroids and comets come near Earth or closer to the Sun. This limits materials to start orbital development at Venus and Mercury.
:'''Venus and Mercury Features'''
 The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU.
 Solar flux is 1.9 times higher at Venus than near Earth, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the thick atmosphere mostly eliminates temperature changes.
 Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively.
 The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters
:'''Economic Uses'''
 Near-term use of Venus and Mercury is more difficult because of the higher velocities to reach and enter orbit, and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats at Venus are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed.
 Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry.
 It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric engines. This does not account for gravity assists or skyhook transfers. Electric propulsion require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun.
:'''Venus and Mercury Transport'''
 Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow.
 For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines.
:'''Venus and Mercury Production'''
 Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from from obit around Venus. There are only 3500 known asteroids whose orbit is smaller than Earth's. This is only 0.2% of the total known, so many materials may have to be imported from farther away.
 Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time.
:'''Living at Venus and Mercury'''
 Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term.
 
==='''9.4 - Phase 5D: Jupiter System Locations'''===
 
 Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow Mid-Interplanetary location (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury.
:'''Jupiter System Features'''
 The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2026 there are 111 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reasonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system.
 Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above Jupiter's atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations.
 Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmosphere from orbit.
 The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth.
 Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side.
:'''Economic Uses'''
 Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 16,700 known Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges.
 The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility.
:'''Jupiter System Transport'''
 Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required to reach the surface. The other Gas Giants are easier to access and have milder radiation belts.
:'''Jupiter System Production'''
 Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat.
:'''Living in the Jupiter System'''
 Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it.
 
==='''9.5 - Phase 5E: Outer Giant Locations'''===
 
 The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from their distance and lower available solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around.
:'''Outer Giant Features'''
 The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 293 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''', including many small ones discovered around 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars).
 Uranus' region is 24 million km in radius, and has 29 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 16 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter, and 5 others are more than 100 km in size. The larger moons of all three planets can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby.
 Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips.
 Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System.
 Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% methane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible.
:'''Economic Uses'''
 The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 338 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now.
 Saturn's moon Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research.
 If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time.
:'''Outer Giant Transport'''
 Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been used. Current work is in progress for small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical.
 Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System already have high radiation levels. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be.
:'''Outer Giant Production and Living'''
 We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question.
=='''10.0 - Interstellar Locations'''==
 
 The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Deveopment of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance.
 Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order.
==='''10.1 - Phase 6A: Interstellar Space Locations'''===
 
:'''Interstellar Features'''
 We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun.
 Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2023 there are 131 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average.
 The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System.
 The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is.
:'''Economic Uses'''
 We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities.
:'''Interstellar Transport'''
 Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development.
 Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue.
&emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now.
:'''Interstellar Production'''
 We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now is what they bring with them. If they start with a large reserve, such as a captured comet nucleus, it can be used for supplies, maintenance, and upgrades.
==='''10.2 - Phase 6B: Stellar Locations'''===
 
:'''Stellar System Features'''
 We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 94 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any cometary cloud bound to them.
 Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits.
 The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and over 5000 by 2023. 59 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks.
:'''Economic Uses'''
 Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars.
:'''Exostellar Transport'''
 Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources.
:'''Exostellar Production'''
 As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available.
</div>
pi7lfhleh6f7nnzzmwcpb30teih6r7e
4674861
4674853
2026-10-07T11:19:16Z
Danielravennest
13526
/* 10.0 - Interstellar Locations */
4674861
wikitext
text/x-wiki
{{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}}
<div style="font-size:125%;font-family:'Georgia', serif;">
:'''Dani Eder,'''
:''The Seed Factory Project,''
:''6485 Rivertown Rd, Fairburn, GA, 30213''
:''email: danielravennest@gmail.com''
:'''Aug 2026'''
'''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set.
<div class="nonumtoc">{{TOCright}}</div>
=='''0.0 - Summary'''==
 
  National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort.
 Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory.
 Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment.
 The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high.
 It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea.
=='''1.0 - Problems of Past Space Programs'''==
 
 Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology.
:'''Outdated Assumptions'''
 Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions:
* It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface.
* Because the number of missions is small and they are short, it is not economic to develop many local resources.
* Most or all equipment and supplies are launched from Earth.
* High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions.
 Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other.
:'''High Cost'''
 Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings.
 The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress.
:'''Low Returns'''
 In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them.
 If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly.
:'''Focus on the Moon and Mars'''
 The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination.
 The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay.
 Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places.
 A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth.
=='''2.0 - New Knowledge and Technologies'''==
 
 Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment.
==='''2.1 - The Modern Solar System'''===
 
 The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year.
 Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System.
 In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier.
:'''Material Resources'''
 '''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction.
 This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth.
 The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects.
 Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating.
[[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]]
 91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found.
 Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones.
 '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them.
[[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]]
 The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible.
:'''Energy Resources'''
 The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies.
 It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space.
 Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher.
 In addition to solar, there are various energy sources that are more limited in scale and availability. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment.
:'''The Illusion of Scarcity'''
 Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer.
 The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area.
 The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth.
 A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used.
==='''2.2 - New Technologies'''===
 
 For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology.
:'''Seed Factories'''
 Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient.
 We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways:
* Making parts for additional copies of current equipment.
* Making new types of items not in the starter set, and
* Making different versions of existing equipment (larger, more accurate, etc.).
 While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally.
 The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere.
 When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better.
:'''Locations and MakerNets'''
 When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects.
 The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost.
 Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials.
:'''Space Technologies'''
 New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include:
* '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past.
* '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved.
* '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology.
 Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications.
 Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer.
 
=='''3.0 - New Program Concept'''==
 
 For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods.
 This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas.
:<u>'''Goal 1 - Benefits on Earth'''</u>
 Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult.
 Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget.
 The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same.
 The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire.
 As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate.
 A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects.
 Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel.
:<u>'''Goal 2 - Benefits from Space'''</u>
 Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this:
* Access to materials on Earth is limited vertically because temperatures and pressure increase with depth.
* Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy
* Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment.
* There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space.
 So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment.
 Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations.
 Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed.
 Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society.
:<u>'''Program Advantages'''</u>
 Our new approach has a number of advantages:
* It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects.
* Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable.
* In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites.
* A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems.
* Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth.
==='''3.1 - Program Sequence'''===
 
 Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this:
* The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them.
* We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise.
* New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable.
* We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches.
[[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]]
 In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...).
[[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]]
 Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below.
==='''3.2 - Phases 0 to 3: Earth Locations'''===
 
 Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth.
 Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves.
 This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are:
: <u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed.
: <u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed.
: <u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products.
: <u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay.
: A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials.
==='''3.3 - Phases 4-6: Space Locations'''===
 
 The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space.
 At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet.
 As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are:
: <u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant.
: The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun.
: <u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots.
: <u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for.
 
=='''4.0 - Seed Factory Technology'''==
 
 Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology.
 '''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products.
 Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways:
* <u>Replication</u> - making copies of existing parts and equipment,
* <u>Diversification</u> - making parts for new equipment not in the current set,
* <u>Quality</u> - making items stronger, more accurate, or from different materials, and
* <u>Scaling</u> - making different size parts (usually larger) than the current ones.
 A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees.
 The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory.
:'''Self-Replication and Distributed Production'''
 A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine.
 Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring.
 Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating.
 Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products.
:'''Operations and Functions'''
 Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include:
* <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment.
* <u>Supply power</u> - this includes electricity, thermal heating, and other sources.
* <u>Extract materials</u> - mining and harvesting raw materials.
* <u>Process materials</u> - converting raw materials to usable inventory.
* <u>Fabricate parts</u> - use inventory stock to produce finished parts.
* <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed.
* <u>Assemble elements</u> - combine finished parts and materials to produce completed products.
* <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production.
 Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms.
 Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally.
 We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely.
 
 
=='''5.0 - Phase 0: Research and Development (R&D)'''==
 
 The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents.
 A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations.
:'''R&D Goals'''
 Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills.
 Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space.
:'''Production by R&D Phase'''
 Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use.
 Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs.
 Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases.
:'''Sharing Our Results'''
 We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally.
 The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them.
:'''R&D Tasks and Projects'''
 The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed.
 New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process.
 The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks.
 Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge.
 
=='''6.0 - Moderate Locations'''==
 
 Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences.
 Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial.
==='''6.1 - Phase 1: Starter Locations and Network'''===
 
:'''Goals'''
 The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. By site we mean an individual place like a home or commercial building, while a location is at the scale of a city or metropolitan area that travel and transport across is reasonably easy. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places.
 Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site.
:'''Starting Points'''
 Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed.
 Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged.
 Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty.
 Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones.
:'''Later Improvements'''
 Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food.
 The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built.
 Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions.
==='''6.2 - Phase 2A: Distributed Locations'''===
 
:'''Goals'''
 The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation.
:'''Evolution'''
 Phase 1 locations in general would accumulate skills and equipment. Some sites within the location will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets.
 When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places.
 Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate.
:'''Ownership'''
 In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills.
 When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently.
 By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners.
==='''6.3 - Phase 2B: Industrial Locations'''===
 
:'''Goals'''
 The main goal of this phase is to reach the most efficient production levels by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2.
:'''Growth and Specialization'''
 Industrial sites can evolve from distributed small business or commercial sites by continuing self-improvement and growth. They can also be built as new sites of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding.
 Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big site that can satisfy all of them.
 The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase.
 A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products.
 The overall production network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed.
 Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation.
 
=='''7.0 - Other Earth Locations'''==
 
:'''Goal'''
 The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress.
:'''Method'''
 One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials.
:'''New Locations'''
 Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started.
 Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range.
 If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people.
 We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects.
 The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity.
 That capacity then supplies products and services for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth.
==='''7.1 - Phase 3A: Difficult Earth Locations'''===
 
 We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are:
 '''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth.
 '''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay.
 '''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range.
 '''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters
 '''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are.
 Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply.
 Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere.
 '''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items.
 '''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year.
 A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population.
 Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs.
 '''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition.
 On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance.
 '''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days.
 '''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services.
 Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations.
 '''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation.
 On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits.
 Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with.
==='''7.2 - Phase 3B: Extreme Earth Locations'''===
 
 We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are:
 '''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts.
 '''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests.
 '''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground.
 '''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock.
 '''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty.
 '''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur.
 '''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically.
 '''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable.
 '''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation.
 '''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations.
 '''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used.
 
=='''8.0 - Phase 4: Orbital Locations'''==
 
[[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]]
:'''Goals'''
 The main goals of phases 4 through 6 are using space to bring benefits to Earth, and to help with some long-term problems and risks that can't be handled any other way.
 Figure 8.0-1 is an early concept for a rotating '''[https://en.wikipedia.org/wiki/Space_station Space Station]''', made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since the first practical silicon solar cell would not be made until 2 years later. We show this concept as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 75 years in the future. Despite that, we have to start somewhere and then make updates as needed.
:'''Approach'''
 This section (8.0) 9.0, and 10.0 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. We expect the various sub-phases to have different starting times due to relative difficulty in reaching their locations and distance from Earth. But once started the sub-phases would overlap and continue in parallel.
 Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) come next. They share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from than orbital locations in similar solar orbits. The local environments are also different on and around these bodies. Phase 6 (Interstellar Locations) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work.
:'''Current and Near-Term Space Industry'''
 Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According the '''[https://orbitalradar.com/how-many-satellites-in-orbit Orbital Radar]''' site there were over 18,000 active satellites orbiting the Earth in September 2026. There were also about 10,700 pieces of debris and leftover rocket parts. There are a smaller number of spacecraft and other items that have been sent beyond Earth orbit, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving.
 '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $429 billion as of 2025, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs.
 Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and over 3,000 '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level.
 Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight.
 Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. Replacing the equipmwnt adds to the cost of operating in space. Refueling, maintenance, and repair of space hardware is very limited. New production, upgrades, and recycling in space is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism.
:'''Long-Term Sustainability'''
 As of 2025 fossil fuels supplied 81.9% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it.
 These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is.
 Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant but low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both.
 At the same time, the world's population is growing, and not everyone has the benefits of high income economies. Full development of such economies would demand even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it would not reduce it to zero.
:'''Civilization-Level Risks'''
 Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release.
 Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce that risk. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent.
 There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery.
==='''8.1 - Using Space to Solve Earth's Problems'''===
 
 There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores.
 There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy output to equipment mass ratio is roughly 50 times higher.
 There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above.
:'''Lowering Space Operations Cost'''
 Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement.
 There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need.
 A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development.
 Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down.
 More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost".
:'''Space Development Process'''
 Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock.
 Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence.
 In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions.
 Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost.
 Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it.
:'''General Space Environment Features'''
 Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce.
 The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity.
 The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''.
* '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature.
* '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 times Earth's distance from the Sun (3 AU), where temperatures are low enough for ice to be stable in a vacuum.
* '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres.
* '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets.
* '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy.
: Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors.
* '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure.
* '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset.
: Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Space transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks.
* '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet.
* '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades.
* '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years.
* '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg.
==='''8.2 - Phase 4A: Low Orbit Locations'''===
 
 Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started.
 We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon.
:'''Low Orbit Features'''
 Earth orbits exist in a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''.
 Objects in low orbits are in the Earth's shadow about 22-40% of the time, reducing available solar energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time to a particular orbit location from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay.
 The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbit height and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially.
 Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations.
:'''Economic Uses'''
 We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the International Space Station and Hubble Telescope, and national security.
 Future uses may include tourism, orbital assembly and maintenance, payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others.
 We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position.
:'''Transport from Earth'''
 Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites.
 Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth requiring a minimum energy to reach orbit, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities:
[[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]]
 '''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices.
 A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in kilomdeters rather than meters lower g-forces and operating pressures. But the forces are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on a mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch.
 Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets.
 The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth.
 '''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option.
 High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense.
:'''Mining and Production'''
 Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there.
 There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks.
 When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end.
 A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse.
 Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere.
==='''8.3 - Phase 4B: High Orbit Locations'''===
 
:'''High Orbit Features'''
 We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as distance increases.
 The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations.
 High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold '''[https://en.wikipedia.org/wiki/Cosmic_microwave_background Cosmic Microwave Background]''', but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy.
 Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies.
:'''Economic Uses'''
 One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts.
 Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity varies with the Earth's distance from the Sun, and the Moon's orbit is not circular or in the same plane as the Earth and Sun. So uncontrolled objects will move around the region.
 Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can begin with transporting fuel and other items up or down through the region, to or from more distant early interplanetary locations and low orbit. This and other possible future activities depend on bringing transport costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels.
 There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They would let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Hazardous solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts.
 The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 750 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources could make civilization sustainable as long as the Sun lasts.
:'''Transport from Other Orbits'''
 Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years.
 Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://commons.wikimedia.org/wiki/File:Best_Research-Cell_Efficiencies.svg Solar Cell Efficiency Chart]'''). The engines are low thrust, which would expose unprotected people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, protected or more advanced transport methods can be used.
 Bulk materials mined from NEOs (Section 2.1 Material Resources) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed.
 The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all these types would supply the widest range of raw materials to make the widest range of products.
:'''High Orbit Production'''
 Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, plus active refrigeration if needed.
 A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations.
 Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth.
 Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies.
 Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, and a small amount of carbon added to make a steel alloy, and then cast into basic shapes.
 Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials.
 Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction.
 '''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. Reflectors and shades can be used in all kinds of industrial processes for thermal processing of materials.
 In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing is easier than trying to make them locally in space.
:'''Living in High Orbit'''
 After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities.
 Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear by adding at the ends, or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels.
 Layered growth adds new pressure shells with compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved or added to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed.
 
==='''8.4 - Phase 4C: Inner Interplanetary Locations'''===
 
:'''Inner Interplanetary Features'''
 These are orbits detached from the Earth's dominant gravity and orbit the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun and out to 1.8 times the Earth's average distance from the Sun (1.8 AU). This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, and Mars, and orbits around them, which are part of Phase 5 - Planetary Locations (Section 9.0 below).
 Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time.
 Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side.
 As noted in section 2.1, there are over 42,500 known near Earth Objects (NEOs) as of September 2026, and the number is currently increasing by 3,200 a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large.
 Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions.
 There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us.
:'''Economic Uses'''
 There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces.
 Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally.
:'''Inner Interplanetary Transport'''
 The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion.
 '''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit.
 Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region.
 Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal.
 Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space.
:'''Inner Interplanetary Production'''
 Global artificial primary energy consumption on Earth was 20.3 TeraWatts in 2025. Note that primary energy does not include sunlight used by plants. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits.
 Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it.
 The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with.
 If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain a civilization.
:'''Living Beyond Earth Orbit'''
 Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time.
 It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the equipment stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy.
 
==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''===
 
 Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials.
:'''Mid-Interplanetary Features'''
[[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]]
 This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2026 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.44 million other Main Belt asteroids, over 7300 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 16,700 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. New discoveries of mostly smaller objects has been about 80,000 a year. The region does not include Jupiter itself and the region within 20 million km of the planet (see Section 9.4).
 There are also around 500 known '''[https://en.wikipedia.org/wiki/Comet Comets]''' that cross the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements in the Universe, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of water ice, and if their orbits don't bring them closer can hold them permanently.
 Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years for minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including relays to avoid direct communication paths through the Sun.
 The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun.
:'''Economic Uses'''
 This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable starting with mining and transport to previous locations. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization.
:'''Mid-Interplanetary Transport'''
 The same transport methods can be used in this region as for the inner interplanetary region. The main difference would be adding lightweight reflectors to solar panels if needed to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, those methods also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency.
:'''Mid-Interplanetary Production'''
 The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels can benefit from reflectors to increase the light intensity like they do for transport/ Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials that are not at the bottom of gravity wells of large bodies.
 Many asteroids are covered with a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area can be covered to contain loose material.
 More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs if needed to factories for later production steps. For larger operations, a shell can surround the whole asteroid or comet, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter.
 
==='''8.6 - Phase 4E: Outer Interplanetary Locations'''===
 
 This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials.
:'''Outer Interplanetary Features'''
 Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2026 there are over 700 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also 4,470 known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 5,170 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered.
 Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from -113 to -223C for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours.
 The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the larger ones 'minor planets'.
:'''Outer Interplanetary Activities'''
 This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is uncertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them.
 Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, radioactives can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced.
 As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of distance. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region.
 We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule.
 If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop.
==='''8.7 - Phase 4F: Distant Orbit Locations'''===
 
 The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'.
:'''Distant Orbit Features'''
 Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's gravitational dominance at about 100,000 AU. As of 2026 there are about 1900 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a larger number of
'''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets.
 A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and from 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region.
 Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit.
 Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years.
:'''Distant Orbit Activities'''
 Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens.
 To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative for now. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must also remain speculative for now.
 
=='''9.0 - Phase 5 - Planetary System Locations'''==
 
 The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative to objects in the orbital regions, and third is the diversity of conditions found on and around the planets.
 Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest from Earth, and is preceded by orbital transport that can reach the locations carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time.
==='''9.1 - Phase 5A: Lunar Locations'''===
 
 Earth is one of the eight major planets in the Solar System. It is already occupied and developed. We covered using the self-improving systems approach on it earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities will be more similar to those for smaller planets and the larger moons of the other planets.
:'''Lunar Features'''
 The Lunar region includes the Moon itself, and '''[https://en.wikipedia.org/wiki/Lunar_orbit Lunar Orbits]''' with semi-major axes less than 35,000 km in size. These are close enough to the Moon to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field. The Earth and Sun are also much more massive than the Moon, and their gravity has significant effects on objects orbiting the Moon.
 The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location (Figure 9.1-1).
 Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Orbit velocities are 1680 m/s or less, and adding 700 m/s or less to them reaches escape. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increases the total exposed surface area.
[[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]]
 Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same.
 The Moon is '''[https://en.wikipedia.org/wiki/Tidal_lockingt Tidally locked]''' to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day.
 Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth.
 The Moon has a somewhat variable and reasonably well understood surface '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and from '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements.
 The Moon is too small and warm to keep an atmosphere. With nothing to stop incoming objects, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles can cause rocks to crack near the surface.
:'''Economic Uses'''
 The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water ice]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits.
 Surface mining the regolith can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without heavy mining methods and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment.
 Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space.
:'''Lunar Transport'''
 Early landings on the Moon would not have the support of local infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth to support activities. '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous]''' type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and largely replace Earth propellant and life support supplies. How much would come from each source will depend on cost and availability.
 Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the Moon's surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials to a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location.
 Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to and from the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. This can't be done directly on the surface because the variable gravity field and heights of lunar mountains and crater walls can cause collisions.
 If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by high efficiency electric propulsion.
 Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of local lunar materials can provide shielding. With this combination people can live comfortably and safely. They would be close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions to low gravity are using rotating habitats on the surface or limiting stay times.
:'''Lunar Production'''
 The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. The disadvantage is there are few volatile (low boiling-point) materials left on the Moon. It formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space. Some products are also too hard or expensive to make there relative to delivery from Earth. So two-way trade would be needed for lunar activities to support themselves.
 Early Lunar production can start with mining bulk surface material for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory starter sets can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease.
 Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful.
 Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore.
 Other energy options for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night.
:'''Living in Lunar Locations'''
 Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time.
 We have essentially no data on how much gravity is enough between zero and full Earth gravity. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control.
 The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best.
 
==='''9.2 - Phase 5B: Mars Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between.
:'''Mars Features'''
 The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin.
 Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding.
 Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way.
 The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. Their origins are uncertain, but are low density and appear similar to carbonaceous asteroids.
[[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]]
 Mars' atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass.
 Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps.
:'''Economic Uses'''
 Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids.
 Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available.
 As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth.
:'''Mars Transport'''
 In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit.
 Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more.
 Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs.
 When the transfer station is built up enough, a set of crew can detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface.
 Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems.
 Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred.
:'''Mars Production'''
 Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries.
 Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first.
:'''Living in Mars Locations'''
 Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats.
 '''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier.
 An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection.
 
==='''9.3 - Phase 5C: Venus and Mercury Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. Only 2.7% of known asteroids and comets come near Earth or closer to the Sun. This limits materials to start orbital development at Venus and Mercury.
:'''Venus and Mercury Features'''
 The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU.
 Solar flux is 1.9 times higher at Venus than near Earth, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the thick atmosphere mostly eliminates temperature changes.
 Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively.
 The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters
:'''Economic Uses'''
 Near-term use of Venus and Mercury is more difficult because of the higher velocities to reach and enter orbit, and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats at Venus are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed.
 Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry.
 It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric engines. This does not account for gravity assists or skyhook transfers. Electric propulsion require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun.
:'''Venus and Mercury Transport'''
 Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow.
 For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines.
:'''Venus and Mercury Production'''
 Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from from obit around Venus. There are only 3500 known asteroids whose orbit is smaller than Earth's. This is only 0.2% of the total known, so many materials may have to be imported from farther away.
 Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time.
:'''Living at Venus and Mercury'''
 Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term.
 
==='''9.4 - Phase 5D: Jupiter System Locations'''===
 
 Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow Mid-Interplanetary location (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury.
:'''Jupiter System Features'''
 The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2026 there are 111 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reasonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system.
 Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above Jupiter's atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations.
 Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmosphere from orbit.
 The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth.
 Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side.
:'''Economic Uses'''
 Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 16,700 known Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges.
 The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility.
:'''Jupiter System Transport'''
 Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required to reach the surface. The other Gas Giants are easier to access and have milder radiation belts.
:'''Jupiter System Production'''
 Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat.
:'''Living in the Jupiter System'''
 Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it.
 
==='''9.5 - Phase 5E: Outer Giant Locations'''===
 
 The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from their distance and lower available solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around.
:'''Outer Giant Features'''
 The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 293 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''', including many small ones discovered around 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars).
 Uranus' region is 24 million km in radius, and has 29 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 16 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter, and 5 others are more than 100 km in size. The larger moons of all three planets can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby.
 Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips.
 Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System.
 Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% methane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible.
:'''Economic Uses'''
 The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 338 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now.
 Saturn's moon Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research.
 If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time.
:'''Outer Giant Transport'''
 Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been used. Current work is in progress for small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical.
 Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System already have high radiation levels. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be.
:'''Outer Giant Production and Living'''
 We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question.
 
=='''10.0 - Interstellar Locations'''==
 
 The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Development of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance.
 Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order.
==='''10.1 - Phase 6A: Interstellar Space Locations'''===
 
:'''Interstellar Features'''
 We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun.
 Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2026 there are 133 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average.
 The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System.
 The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is.
:'''Economic Uses'''
 We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities.
:'''Interstellar Transport'''
 Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development.
 Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make sense unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue.
&emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now.
:'''Interstellar Production'''
 We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now uses what they bring with them. If they start with a large reserve, such as an asteroid or captured comet nucleus, it can be used for supplies, maintenance, and upgrades.
==='''10.2 - Phase 6B: Stellar Locations'''===
 
:'''Stellar System Features'''
 We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 95 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any comet cloud bound to them.
 Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits.
 The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and 6375 by 1 October 2026. 51 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks.
:'''Economic Uses'''
 Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars.
:'''Exostellar Transport'''
 Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources.
:'''Exostellar Production'''
 As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available.
</div>
mf0upbx17rb12kforc2m371g3tmv7wp
4674863
4674861
2026-10-07T11:20:33Z
Danielravennest
13526
4674863
wikitext
text/x-wiki
{{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}}
<div style="font-size:125%;font-family:'Georgia', serif;">
:'''Dani Eder,'''
:''The Seed Factory Project,''
:''6485 Rivertown Rd, Fairburn, GA, 30213''
:''email: danielravennest@gmail.com''
:'''Oct 2026'''
'''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set.
<div class="nonumtoc">{{TOCright}}</div>
=='''0.0 - Summary'''==
 
  National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort.
 Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory.
 Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment.
 The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high.
 It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea.
=='''1.0 - Problems of Past Space Programs'''==
 
 Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology.
:'''Outdated Assumptions'''
 Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions:
* It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface.
* Because the number of missions is small and they are short, it is not economic to develop many local resources.
* Most or all equipment and supplies are launched from Earth.
* High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions.
 Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other.
:'''High Cost'''
 Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings.
 The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress.
:'''Low Returns'''
 In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them.
 If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly.
:'''Focus on the Moon and Mars'''
 The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination.
 The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay.
 Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places.
 A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth.
=='''2.0 - New Knowledge and Technologies'''==
 
 Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment.
==='''2.1 - The Modern Solar System'''===
 
 The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year.
 Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System.
 In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier.
:'''Material Resources'''
 '''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction.
 This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth.
 The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects.
 Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating.
[[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]]
 91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found.
 Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones.
 '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them.
[[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]]
 The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible.
:'''Energy Resources'''
 The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies.
 It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space.
 Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher.
 In addition to solar, there are various energy sources that are more limited in scale and availability. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment.
:'''The Illusion of Scarcity'''
 Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer.
 The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area.
 The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth.
 A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used.
==='''2.2 - New Technologies'''===
 
 For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology.
:'''Seed Factories'''
 Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient.
 We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways:
* Making parts for additional copies of current equipment.
* Making new types of items not in the starter set, and
* Making different versions of existing equipment (larger, more accurate, etc.).
 While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally.
 The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere.
 When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better.
:'''Locations and MakerNets'''
 When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects.
 The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost.
 Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials.
:'''Space Technologies'''
 New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include:
* '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past.
* '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved.
* '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology.
 Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications.
 Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer.
 
=='''3.0 - New Program Concept'''==
 
 For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods.
 This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas.
:<u>'''Goal 1 - Benefits on Earth'''</u>
 Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult.
 Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget.
 The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same.
 The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire.
 As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate.
 A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects.
 Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel.
:<u>'''Goal 2 - Benefits from Space'''</u>
 Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this:
* Access to materials on Earth is limited vertically because temperatures and pressure increase with depth.
* Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy
* Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment.
* There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space.
 So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment.
 Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations.
 Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed.
 Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society.
:<u>'''Program Advantages'''</u>
 Our new approach has a number of advantages:
* It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects.
* Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable.
* In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites.
* A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems.
* Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth.
==='''3.1 - Program Sequence'''===
 
 Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this:
* The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them.
* We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise.
* New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable.
* We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches.
[[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]]
 In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...).
[[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]]
 Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below.
==='''3.2 - Phases 0 to 3: Earth Locations'''===
 
 Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth.
 Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves.
 This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are:
: <u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed.
: <u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed.
: <u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products.
: <u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay.
: A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials.
==='''3.3 - Phases 4-6: Space Locations'''===
 
 The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space.
 At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet.
 As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are:
: <u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant.
: The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun.
: <u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots.
: <u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for.
 
=='''4.0 - Seed Factory Technology'''==
 
 Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology.
 '''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products.
 Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways:
* <u>Replication</u> - making copies of existing parts and equipment,
* <u>Diversification</u> - making parts for new equipment not in the current set,
* <u>Quality</u> - making items stronger, more accurate, or from different materials, and
* <u>Scaling</u> - making different size parts (usually larger) than the current ones.
 A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees.
 The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory.
:'''Self-Replication and Distributed Production'''
 A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine.
 Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring.
 Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating.
 Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products.
:'''Operations and Functions'''
 Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include:
* <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment.
* <u>Supply power</u> - this includes electricity, thermal heating, and other sources.
* <u>Extract materials</u> - mining and harvesting raw materials.
* <u>Process materials</u> - converting raw materials to usable inventory.
* <u>Fabricate parts</u> - use inventory stock to produce finished parts.
* <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed.
* <u>Assemble elements</u> - combine finished parts and materials to produce completed products.
* <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production.
 Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms.
 Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally.
 We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely.
 
 
=='''5.0 - Phase 0: Research and Development (R&D)'''==
 
 The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents.
 A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations.
:'''R&D Goals'''
 Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills.
 Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space.
:'''Production by R&D Phase'''
 Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use.
 Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs.
 Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases.
:'''Sharing Our Results'''
 We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally.
 The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them.
:'''R&D Tasks and Projects'''
 The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed.
 New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process.
 The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks.
 Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge.
 
=='''6.0 - Moderate Locations'''==
 
 Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences.
 Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial.
==='''6.1 - Phase 1: Starter Locations and Network'''===
 
:'''Goals'''
 The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. By site we mean an individual place like a home or commercial building, while a location is at the scale of a city or metropolitan area that travel and transport across is reasonably easy. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places.
 Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site.
:'''Starting Points'''
 Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed.
 Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged.
 Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty.
 Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones.
:'''Later Improvements'''
 Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food.
 The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built.
 Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions.
==='''6.2 - Phase 2A: Distributed Locations'''===
 
:'''Goals'''
 The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation.
:'''Evolution'''
 Phase 1 locations in general would accumulate skills and equipment. Some sites within the location will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets.
 When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places.
 Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate.
:'''Ownership'''
 In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills.
 When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently.
 By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners.
==='''6.3 - Phase 2B: Industrial Locations'''===
 
:'''Goals'''
 The main goal of this phase is to reach the most efficient production levels by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2.
:'''Growth and Specialization'''
 Industrial sites can evolve from distributed small business or commercial sites by continuing self-improvement and growth. They can also be built as new sites of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding.
 Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big site that can satisfy all of them.
 The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase.
 A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products.
 The overall production network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed.
 Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation.
 
=='''7.0 - Other Earth Locations'''==
 
:'''Goal'''
 The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress.
:'''Method'''
 One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials.
:'''New Locations'''
 Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started.
 Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range.
 If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people.
 We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects.
 The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity.
 That capacity then supplies products and services for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth.
==='''7.1 - Phase 3A: Difficult Earth Locations'''===
 
 We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are:
 '''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth.
 '''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay.
 '''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range.
 '''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters
 '''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are.
 Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply.
 Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere.
 '''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items.
 '''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year.
 A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population.
 Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs.
 '''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition.
 On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance.
 '''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days.
 '''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services.
 Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations.
 '''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation.
 On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits.
 Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with.
==='''7.2 - Phase 3B: Extreme Earth Locations'''===
 
 We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are:
 '''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts.
 '''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests.
 '''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground.
 '''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock.
 '''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty.
 '''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur.
 '''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically.
 '''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable.
 '''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation.
 '''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations.
 '''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used.
 
=='''8.0 - Phase 4: Orbital Locations'''==
 
[[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]]
:'''Goals'''
 The main goals of phases 4 through 6 are using space to bring benefits to Earth, and to help with some long-term problems and risks that can't be handled any other way.
 Figure 8.0-1 is an early concept for a rotating '''[https://en.wikipedia.org/wiki/Space_station Space Station]''', made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since the first practical silicon solar cell would not be made until 2 years later. We show this concept as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 75 years in the future. Despite that, we have to start somewhere and then make updates as needed.
:'''Approach'''
 This section (8.0) 9.0, and 10.0 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. We expect the various sub-phases to have different starting times due to relative difficulty in reaching their locations and distance from Earth. But once started the sub-phases would overlap and continue in parallel.
 Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) come next. They share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from than orbital locations in similar solar orbits. The local environments are also different on and around these bodies. Phase 6 (Interstellar Locations) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work.
:'''Current and Near-Term Space Industry'''
 Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According the '''[https://orbitalradar.com/how-many-satellites-in-orbit Orbital Radar]''' site there were over 18,000 active satellites orbiting the Earth in September 2026. There were also about 10,700 pieces of debris and leftover rocket parts. There are a smaller number of spacecraft and other items that have been sent beyond Earth orbit, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving.
 '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $429 billion as of 2025, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs.
 Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and over 3,000 '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level.
 Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight.
 Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. Replacing the equipmwnt adds to the cost of operating in space. Refueling, maintenance, and repair of space hardware is very limited. New production, upgrades, and recycling in space is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism.
:'''Long-Term Sustainability'''
 As of 2025 fossil fuels supplied 81.9% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it.
 These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is.
 Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant but low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both.
 At the same time, the world's population is growing, and not everyone has the benefits of high income economies. Full development of such economies would demand even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it would not reduce it to zero.
:'''Civilization-Level Risks'''
 Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release.
 Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce that risk. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent.
 There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery.
==='''8.1 - Using Space to Solve Earth's Problems'''===
 
 There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores.
 There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy output to equipment mass ratio is roughly 50 times higher.
 There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above.
:'''Lowering Space Operations Cost'''
 Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement.
 There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need.
 A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development.
 Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down.
 More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost".
:'''Space Development Process'''
 Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock.
 Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence.
 In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions.
 Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost.
 Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it.
:'''General Space Environment Features'''
 Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce.
 The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity.
 The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''.
* '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature.
* '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 times Earth's distance from the Sun (3 AU), where temperatures are low enough for ice to be stable in a vacuum.
* '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres.
* '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets.
* '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy.
: Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors.
* '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure.
* '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset.
: Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Space transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks.
* '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet.
* '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades.
* '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years.
* '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg.
==='''8.2 - Phase 4A: Low Orbit Locations'''===
 
 Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started.
 We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon.
:'''Low Orbit Features'''
 Earth orbits exist in a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''.
 Objects in low orbits are in the Earth's shadow about 22-40% of the time, reducing available solar energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time to a particular orbit location from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay.
 The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbit height and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially.
 Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations.
:'''Economic Uses'''
 We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the International Space Station and Hubble Telescope, and national security.
 Future uses may include tourism, orbital assembly and maintenance, payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others.
 We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position.
:'''Transport from Earth'''
 Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites.
 Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth requiring a minimum energy to reach orbit, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities:
[[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]]
 '''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices.
 A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in kilomdeters rather than meters lower g-forces and operating pressures. But the forces are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on a mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch.
 Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets.
 The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth.
 '''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option.
 High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense.
:'''Mining and Production'''
 Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there.
 There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks.
 When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end.
 A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse.
 Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere.
==='''8.3 - Phase 4B: High Orbit Locations'''===
 
:'''High Orbit Features'''
 We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as distance increases.
 The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations.
 High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold '''[https://en.wikipedia.org/wiki/Cosmic_microwave_background Cosmic Microwave Background]''', but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy.
 Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies.
:'''Economic Uses'''
 One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts.
 Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity varies with the Earth's distance from the Sun, and the Moon's orbit is not circular or in the same plane as the Earth and Sun. So uncontrolled objects will move around the region.
 Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can begin with transporting fuel and other items up or down through the region, to or from more distant early interplanetary locations and low orbit. This and other possible future activities depend on bringing transport costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels.
 There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They would let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Hazardous solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts.
 The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 750 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources could make civilization sustainable as long as the Sun lasts.
:'''Transport from Other Orbits'''
 Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years.
 Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://commons.wikimedia.org/wiki/File:Best_Research-Cell_Efficiencies.svg Solar Cell Efficiency Chart]'''). The engines are low thrust, which would expose unprotected people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, protected or more advanced transport methods can be used.
 Bulk materials mined from NEOs (Section 2.1 Material Resources) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed.
 The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all these types would supply the widest range of raw materials to make the widest range of products.
:'''High Orbit Production'''
 Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, plus active refrigeration if needed.
 A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations.
 Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth.
 Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies.
 Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, and a small amount of carbon added to make a steel alloy, and then cast into basic shapes.
 Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials.
 Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction.
 '''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. Reflectors and shades can be used in all kinds of industrial processes for thermal processing of materials.
 In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing is easier than trying to make them locally in space.
:'''Living in High Orbit'''
 After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities.
 Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear by adding at the ends, or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels.
 Layered growth adds new pressure shells with compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved or added to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed.
 
==='''8.4 - Phase 4C: Inner Interplanetary Locations'''===
 
:'''Inner Interplanetary Features'''
 These are orbits detached from the Earth's dominant gravity and orbit the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun and out to 1.8 times the Earth's average distance from the Sun (1.8 AU). This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, and Mars, and orbits around them, which are part of Phase 5 - Planetary Locations (Section 9.0 below).
 Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time.
 Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side.
 As noted in section 2.1, there are over 42,500 known near Earth Objects (NEOs) as of September 2026, and the number is currently increasing by 3,200 a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large.
 Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions.
 There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us.
:'''Economic Uses'''
 There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces.
 Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally.
:'''Inner Interplanetary Transport'''
 The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion.
 '''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit.
 Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region.
 Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal.
 Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space.
:'''Inner Interplanetary Production'''
 Global artificial primary energy consumption on Earth was 20.3 TeraWatts in 2025. Note that primary energy does not include sunlight used by plants. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits.
 Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it.
 The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with.
 If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain a civilization.
:'''Living Beyond Earth Orbit'''
 Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time.
 It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the equipment stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy.
 
==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''===
 
 Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials.
:'''Mid-Interplanetary Features'''
[[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]]
 This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2026 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.44 million other Main Belt asteroids, over 7300 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 16,700 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. New discoveries of mostly smaller objects has been about 80,000 a year. The region does not include Jupiter itself and the region within 20 million km of the planet (see Section 9.4).
 There are also around 500 known '''[https://en.wikipedia.org/wiki/Comet Comets]''' that cross the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements in the Universe, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of water ice, and if their orbits don't bring them closer can hold them permanently.
 Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years for minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including relays to avoid direct communication paths through the Sun.
 The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun.
:'''Economic Uses'''
 This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable starting with mining and transport to previous locations. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization.
:'''Mid-Interplanetary Transport'''
 The same transport methods can be used in this region as for the inner interplanetary region. The main difference would be adding lightweight reflectors to solar panels if needed to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, those methods also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency.
:'''Mid-Interplanetary Production'''
 The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels can benefit from reflectors to increase the light intensity like they do for transport/ Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials that are not at the bottom of gravity wells of large bodies.
 Many asteroids are covered with a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area can be covered to contain loose material.
 More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs if needed to factories for later production steps. For larger operations, a shell can surround the whole asteroid or comet, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter.
 
==='''8.6 - Phase 4E: Outer Interplanetary Locations'''===
 
 This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials.
:'''Outer Interplanetary Features'''
 Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2026 there are over 700 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also 4,470 known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 5,170 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered.
 Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from -113 to -223C for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours.
 The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the larger ones 'minor planets'.
:'''Outer Interplanetary Activities'''
 This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is uncertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them.
 Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, radioactives can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced.
 As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of distance. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region.
 We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule.
 If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop.
==='''8.7 - Phase 4F: Distant Orbit Locations'''===
 
 The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'.
:'''Distant Orbit Features'''
 Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's gravitational dominance at about 100,000 AU. As of 2026 there are about 1900 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a larger number of
'''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets.
 A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and from 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region.
 Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit.
 Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years.
:'''Distant Orbit Activities'''
 Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens.
 To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative for now. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must also remain speculative for now.
 
=='''9.0 - Phase 5 - Planetary System Locations'''==
 
 The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative to objects in the orbital regions, and third is the diversity of conditions found on and around the planets.
 Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest from Earth, and is preceded by orbital transport that can reach the locations carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time.
==='''9.1 - Phase 5A: Lunar Locations'''===
 
 Earth is one of the eight major planets in the Solar System. It is already occupied and developed. We covered using the self-improving systems approach on it earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities will be more similar to those for smaller planets and the larger moons of the other planets.
:'''Lunar Features'''
 The Lunar region includes the Moon itself, and '''[https://en.wikipedia.org/wiki/Lunar_orbit Lunar Orbits]''' with semi-major axes less than 35,000 km in size. These are close enough to the Moon to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field. The Earth and Sun are also much more massive than the Moon, and their gravity has significant effects on objects orbiting the Moon.
 The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location (Figure 9.1-1).
 Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Orbit velocities are 1680 m/s or less, and adding 700 m/s or less to them reaches escape. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increases the total exposed surface area.
[[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]]
 Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same.
 The Moon is '''[https://en.wikipedia.org/wiki/Tidal_lockingt Tidally locked]''' to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day.
 Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth.
 The Moon has a somewhat variable and reasonably well understood surface '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and from '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements.
 The Moon is too small and warm to keep an atmosphere. With nothing to stop incoming objects, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles can cause rocks to crack near the surface.
:'''Economic Uses'''
 The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water ice]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits.
 Surface mining the regolith can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without heavy mining methods and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment.
 Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space.
:'''Lunar Transport'''
 Early landings on the Moon would not have the support of local infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth to support activities. '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous]''' type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and largely replace Earth propellant and life support supplies. How much would come from each source will depend on cost and availability.
 Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the Moon's surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials to a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location.
 Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to and from the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. This can't be done directly on the surface because the variable gravity field and heights of lunar mountains and crater walls can cause collisions.
 If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by high efficiency electric propulsion.
 Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of local lunar materials can provide shielding. With this combination people can live comfortably and safely. They would be close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions to low gravity are using rotating habitats on the surface or limiting stay times.
:'''Lunar Production'''
 The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. The disadvantage is there are few volatile (low boiling-point) materials left on the Moon. It formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space. Some products are also too hard or expensive to make there relative to delivery from Earth. So two-way trade would be needed for lunar activities to support themselves.
 Early Lunar production can start with mining bulk surface material for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory starter sets can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease.
 Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful.
 Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore.
 Other energy options for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night.
:'''Living in Lunar Locations'''
 Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time.
 We have essentially no data on how much gravity is enough between zero and full Earth gravity. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control.
 The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best.
 
==='''9.2 - Phase 5B: Mars Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between.
:'''Mars Features'''
 The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin.
 Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding.
 Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way.
 The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. Their origins are uncertain, but are low density and appear similar to carbonaceous asteroids.
[[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]]
 Mars' atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass.
 Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps.
:'''Economic Uses'''
 Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids.
 Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available.
 As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth.
:'''Mars Transport'''
 In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit.
 Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more.
 Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs.
 When the transfer station is built up enough, a set of crew can detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface.
 Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems.
 Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred.
:'''Mars Production'''
 Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries.
 Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first.
:'''Living in Mars Locations'''
 Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats.
 '''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier.
 An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection.
 
==='''9.3 - Phase 5C: Venus and Mercury Locations'''===
 
 '''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. Only 2.7% of known asteroids and comets come near Earth or closer to the Sun. This limits materials to start orbital development at Venus and Mercury.
:'''Venus and Mercury Features'''
 The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU.
 Solar flux is 1.9 times higher at Venus than near Earth, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the thick atmosphere mostly eliminates temperature changes.
 Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively.
 The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters
:'''Economic Uses'''
 Near-term use of Venus and Mercury is more difficult because of the higher velocities to reach and enter orbit, and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats at Venus are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed.
 Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry.
 It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric engines. This does not account for gravity assists or skyhook transfers. Electric propulsion require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun.
:'''Venus and Mercury Transport'''
 Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow.
 For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines.
:'''Venus and Mercury Production'''
 Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from from obit around Venus. There are only 3500 known asteroids whose orbit is smaller than Earth's. This is only 0.2% of the total known, so many materials may have to be imported from farther away.
 Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time.
:'''Living at Venus and Mercury'''
 Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term.
 
==='''9.4 - Phase 5D: Jupiter System Locations'''===
 
 Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow Mid-Interplanetary location (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury.
:'''Jupiter System Features'''
 The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2026 there are 111 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reasonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system.
 Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above Jupiter's atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations.
 Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmosphere from orbit.
 The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth.
 Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side.
:'''Economic Uses'''
 Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 16,700 known Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges.
 The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility.
:'''Jupiter System Transport'''
 Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required to reach the surface. The other Gas Giants are easier to access and have milder radiation belts.
:'''Jupiter System Production'''
 Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat.
:'''Living in the Jupiter System'''
 Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it.
 
==='''9.5 - Phase 5E: Outer Giant Locations'''===
 
 The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from their distance and lower available solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around.
:'''Outer Giant Features'''
 The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 293 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''', including many small ones discovered around 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars).
 Uranus' region is 24 million km in radius, and has 29 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 16 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter, and 5 others are more than 100 km in size. The larger moons of all three planets can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby.
 Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips.
 Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System.
 Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% methane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible.
:'''Economic Uses'''
 The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 338 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now.
 Saturn's moon Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research.
 If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time.
:'''Outer Giant Transport'''
 Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been used. Current work is in progress for small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical.
 Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System already have high radiation levels. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be.
:'''Outer Giant Production and Living'''
 We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question.
 
=='''10.0 - Interstellar Locations'''==
 
 The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Development of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance.
 Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order.
==='''10.1 - Phase 6A: Interstellar Space Locations'''===
 
:'''Interstellar Features'''
 We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun.
 Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2026 there are 133 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average.
 The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System.
 The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is.
:'''Economic Uses'''
 We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities.
:'''Interstellar Transport'''
 Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development.
 Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make sense unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue.
&emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now.
:'''Interstellar Production'''
 We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now uses what they bring with them. If they start with a large reserve, such as an asteroid or captured comet nucleus, it can be used for supplies, maintenance, and upgrades.
==='''10.2 - Phase 6B: Stellar Locations'''===
 
:'''Stellar System Features'''
 We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 95 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any comet cloud bound to them.
 Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits.
 The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and 6375 by 1 October 2026. 51 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks.
:'''Economic Uses'''
 Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars.
:'''Exostellar Transport'''
 Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources.
:'''Exostellar Production'''
 As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available.
</div>
cnvo1e1402tsqzy1jj3mshf4rqtdjdg
Radiation Oncology/NSCLC/Recurrent
0
384797
4674819
3227895
2026-10-07T08:37:43Z
Jcb
90773
4674819
wikitext
text/x-wiki
{{Radiation Oncology/NSCLC/TOC}}
==Non-small cell lung cancer Recurrence==
*'''MD Anderson; 2017''' {{PMID|28259750}} -- "Long-Term Outcomes of Salvage Stereotactic Ablative Radiotherapy for Isolated Lung Recurrence of Non-Small Cell Lung Cancer: A Phase II Clinical Trial." (Sun B, J Thorac Oncol. 2017 Jun;12(6):983-992. doi: 10.1016/j.jtho.2017.02.018. Epub 2017 Mar 1.)
**Phase II. 59 patients with isolated NSCLC local recurrence or lung parenchyma metastasis <=3 cm. Prior definitive treatment. Median age 70 years. SABR 50/4. Median F/U 4.8 years
**Outcome: Re-recurrence 32%. 5-year local failure 5%, regional failure 10%, DM 22%. 5-year PFS 41%. 5-year OS 56%
**Toxicity: Grade 3+ 5%; no Grade 4-5 events
**Conlusion: Salvage SABR provides excellent control with minimal toxicity
bd72dd0guyj1ldhc2vfw48cztkgrwz2
Calculus of Variations
0
391605
4674778
4612223
2026-10-06T19:34:22Z
~2026-53817-10
3627761
/* CONTENTS */
4674778
wikitext
text/x-wiki
<div style="text-align:center; font-size:4em;margin:.5em">'''Calculus of Variations'''</div>
This wikibook is a transcribed version of Lectures on the Calculus of Variations (the Weierstrassian theory) by Harris Hancock in 1904. The scanned original is available [https://archive.org/details/cu31924060288986 here] from Cornell University.
== CONTENTS ==
[[/PREFACE/]]
[[/CHAPTER I/]]: PRESENTATION OF THE PRINCIPAL PROBLEMS OF THE CALCULU OF VARIATIONS.
*1 The connection between the Calculus of Variations and the Theory of Maxima and Minima.
:''Problem I. The curve which generates a minimal surface area when rotated about a given axis.''
*2,3,4 The solution of this problem by the methods of Maxima and Minima.
*5,6 The difference between the Calculus of Variations and the Theory of Maxima and Minima.
*7 The coordinates <math>x</math>, <math>y</math> expressed as functions of a parameter <math>t</math>. ''Problem I'' formulated in terms of the parameter <math>t</math>.
*8,9 ''Problem II. The brachistochrone.''
*10 ''Problem III. The shortest line on a given surface.''
*11 The advantage of formulating the problems in terms of the parameter <math>t</math>.
*12 ''Problem IV. The surface of revolution of least resistance.''
*13 The general problem stated.
*14 The variation of the endpoints.
*15 ''Problem V. The isoperimetrical problem.''
*16 ''Problem VI. The curve whose center of gravity lies lowest.''
*17 Statement of the general problem in ''Relative Maxima and Minima.''
*18 Generalizations that may be made.
*19 Variation of a curve. Analytical definition of ''maximum'' and ''minimum''. ''Neighboring curves.''
*20 A different statement of the general problem.
*21 Inadmissibility of the presupposed existence of a maximum or a minimum.
*Problems
[[/CHAPTER II/]]: EXAMPLES OF SPECIAL VARIATIONS OF CURVES. APPLICATIONS TO THE CATENARY.
*22 ''Total variation'' in the case of Problem I, Chapter I.
*23 A ''bundle of neighboring'' curves.
*24 The first variation.
*25 The integral <math>I = \int_{x_{0}}^{x_{1}} F\left(x,y,\frac{\text{d}y}{\text{d}x}\right)\text{d}x</math>
*26 The vanishing of the first variation.
*27 Application to ''Problem I''.
*28 The differential equation of this problem.
*29 The integral <math>I = \int_{x_{0}}^{x_{1}} F(y,y')\text{d}x</math>
*30 Solution of the differential equation of Art. 26.
*31 The notion of a ''region'' within which two neighboring curves do not intersect.
*32 The catenary.
[[/CHAPTER III/]]: PROPERTIES OF THE CATENARY.
*33 Preliminary remarks.
*34 The general equation of the catenary.
*35 Geometrical construction of its tangent.
*36 Geometrical construction of the catenary.
*37 The catenary uniquely determined when a point on it and the direction of the tangent at this point are given.
*38 Limits within which the catenary must lie.
*39,40,41 The number of catenaries that may be drawn through two fixed points.
*42 The functions <math>f_{1}(m)</math> and <math>f_{2}(m)</math>.
*43 The discussion of the function <math>f_{1}(m)</math>.
*44 The discussion of the function <math>f_{2}(m)</math>.
*45 An approximate geometrical construction for the root of a transcendental equation.
*46,47,48 Graphical representation of the functions <math>f_{1}(m)</math> and <math>f_{2}(m)</math>.
*49,50 The different cases that arise and the corresponding number of catenaries.
*50,51,52 The position of the intersection of the tangents through the two fixed points for each case.
*53,54 The common tangents to two catenaries.
*55 Catenaries having the same parameter which intersect in only one point.
*56 Lindelöf's Theorem.
*57 A second proof of the same theorem.
*58,59 Discussion of the several cases for the possibility of a minimal surface of rotation.
*60,61 Application to soap bubbles.
[[/CHAPTER IV/]]: PROPERTIES OF THE FUNCTION <math>F(x,y,x',y')</math>.
*62 The function <math>F</math> defined as a function of its arguments.
*63,64,65,66,67 Necessary conditions and sufficient conditions.
*68 The function <math>F(x,y, x',y')</math> must be homogeneous of the first degree in <math>x'</math> and <math>y'</math>.
*69 Integrability of the function <math>F(x,y, x',y')</math>.
*70 The integral <math>I = \int_{x_{0}}^{x_{1}} F\left(x,y,1,\frac{\text{d}y}{\text{d}x}\right)\text{d}x</math>, when <math>x</math> and <math>y</math> are one-valued functions of each other.
*71 Introduction of the variable <math>t</math> or <math>s</math>.
*72 Analytical condition for the function <math>F</math>.
*73 Introduction of the function <math>F_{1}</math>.
[[/CHAPTER V/]]: THE VARIATION OF CURVES EXPRESSED ANALYTICALLY. THE FIRST VARIATION.
*74 General forms of the variations hitherto employed.
*75 The functions <math>\xi</math> and <math>\eta</math>. Their continuity.
*76 Neighboring curves. The first variation.
*77 The functions <math>G</math>, <math>G_{1}</math> and <math>G_{2}</math>.
*78 Proof of an important ''lemma''.
*79 The vanishing of the first variation and the differential equation <math>G=0</math>.
*80 The ''curvature'' expressed in terms of <math>F</math> and <math>F_{1}</math>.
*81 The components <math>w_{N}</math> and <math>w_{T}</math> in the directions of the normal and the tangent.
*82 Variations in the direction of the tangent and in the direction of the normal.
*83 Discontinuities in the path of integration. Irregular curves.
*84,85 Problem of Euler illustrating the preceding article.
*86 Summary.
[[/CHAPTER VI/]]: THE FORM OF THE SOLUTIONS OF THE DIFFERENTIAL EQUATION <math>G=0</math>.
*87 Another form of the differential equation <math>G=0</math>.
*88 Another form of the function <math>F_{1}</math>.
*89 Integration in power-series.
*90 The solutions <math>x=\phi(t,\alpha,\beta)</math>, <math>y=\psi(t,\alpha,\beta)</math> of the differential equation <math>G=0</math>.
*91,92 The case when <math>F_{1}=0</math> at the initial-point of the curve.
*93 The form of the differential equation <math>G=0</math> when <math>s</math> is the independent variable.
*94 The solution of this equation.
*95 The curve can have no singular points within the interval in question. coordinates of any point of the curve expressed as power-series in <math>s</math>.
[[/CHAPTER VII/]]: REMOVAL OF CERTAIN LIMITATIONS THAT HAVE BEEN MADE. INTEGRATION OF THE DIFFERENTIAL EQUATION <math>G=0</math> FOR THE PROBLEMS OF CHAPTER I.
*96 Instead of a sing-le regular trace, the curve may consist of a finite number of such traces.
*97 The first derivatives of <math>F</math> with respect to <math>x'</math> and <math>y'</math> vary in a continuous manner for the curve <math>G=0</math>, even if there are sudden changes in the direction of this curve.
*98 Explanation of the result given in the preceding article.
*99 Summary.
*100 Solution of the differential equation for Problem I of Chapter I.
*101,102 The discontinuous solution.
*103 The equation <math>G=0</math> solved for Problem II, Article 9.
*104 The two fixed points must lie on the same loop of the cycloid.
*105 Through two points may be drawn one and only one cycloidal-loop, which does not include a cusp.
*106 ''Problem III.'' Problem of the shortest line on a surface.
*107 The same result derived in a different manner.
*108 ''Problem IV.'' Surface of rotation which offers the least resistance.
*109,110 Solution of the equation <math>G=0</math> for Problem IV of Chapter I.
[[/CHAPTER VIII/]]: THE SECOND VARIATION; ITS SIGN DETERMINED BY THAT OF THE FUNCTION <math>F_{1}</math>.
*111 Nature and existence of the substitutions introduced.
*112 The total variation.
*113,114 The second variation of the function <math>F</math>.
*115 The second variation of the integral <math>I</math>. The sign of the second variation in the determination of maximum or minimum values.
*116 Discontinuities.
*117 The sign of the second variation made to depend upon that of <math>F_{1}</math>.
*118 The admissibility of a transformation that has been made. The differential equation <math>J=0</math>.
*119 A simple form of the second variation.
*120 A general property of a linear differential equation of the second order.
*121 The second variation and the function <math>F_{1}</math>. The function <math>F{1}</math> cannot change sign and must be different from <math>0</math> and <math>\infty</math> in order that there may be a maximum or a minimum.
[[/CHAPTER IX/]]: CONJUGATE POINTS.
*122 The second variation of the differential equation <math>J=0</math>.
*123,124 The solutions of the equations <math>G=0</math> and <math>J=0</math>. The second variation derived from the first variation.
*125 Variations of the constants in the solutions of <math>G=0</math>.
*126 The solutions <math>u_{1}</math> and <math>u_{2}</math> of the differential equation <math>J=0</math>.
*127 These solutions are independent of each other.
*128 The function <math>\Theta(t,t')</math>. ''Conjugate points''.
*129 The relative position of conjugate points on a curve.
*130 Graphical representation of the ratio <math>\frac{u_{1}}{u_{2}}</math>.
*131 Summary.
*132 Points of intersection of the curves <math>G=0</math> and <math>\delta G=0</math>.
*133 The second variation when two conjugate points are the limits of integration, and when a pair of conjugate points are situated between these limits.
[[/CHAPTER X/]]: THE CRITERIA THAT HAVE BEEN DERIVED UNDER THE ASSUMPTION OF CERTAIN SPECIAL VARIATIONS ARE ALSO SUFFICIENT FOR THE ESTABLISHMENT OF THE FORMULAE HITHERTO EMPLOYED.
*134 The process employed is one of progressive exclusion.
*135 Summary of the three necessary conditions that have been derived.
*136,137 Special variations. The total variation.
*138 A theorem in quadratic forms.
*139 Establishment of the conditions that have been derived from the second variation.
*140,141,142,143,144 Application to the first four problems of Chapter I.
[[/CHAPTER XI/]]: THE NOTION OF A FIELD ABOUT THE CURVE WHICH OFFERS A MINIMUM OR A MAXIMUM VALUE OF THE INTEGRAL. THE GEOMETRICAL MEANING OF THE CONJUGATE POINTS.
*145 Notion of a field.
*146 Neighboring curves which belong to the family of curves <math>G=0</math>.
*147 A general theorem in the reversion of series.
*148 The coordinates of a neighboring curve expressed in power-series of <math>k</math>, where <math>k</math> is the trigonometric tangent between the initial directions of the neighboring curve and the original curve.
*149 A curve which satisfies the equation <math>G=0</math> is determined as soon as its initial point and the direction of the tangent at this point are known.
*150 Limits assigned to <math>k</math>. Extension of the notion of a field.
*151 Intersection of two neighboring curves. Conjugate points.
*152 A point cannot be its own conjugate. The derivative of <math>\Theta(t,t')</math> does not vanish at a point which causes the function itself to vanish.
[[/CHAPTER XII/]]: A FOURTH AND FINAL CONDITION FOR THE EXISTENCE OF A MAXIMUM OR A MINIMUM, AND A PROOF THAT THE CONDITIONS WHICH HAVE BEEN GIVEN ARE SUFFICIENT.
*153 The notion of a field continued from the preceding Chapter.
*154 The function <math>\mathcal{E}(x,y,p,q,\bar{p},\bar{q})</math>.
*155 The function <math>\mathcal{E}</math> must have the same sign for every point of the curve.
*156 The sufficiency of the above condition.
*157 Another form of the function <math>\mathcal{E}</math>.
*158 Still another form.
*159,160 The signs of the function <math>\mathcal{E}</math> and <math>F_{1}</math>.
*161 Another proof of the sufficiency of the condition as given in Article 156.
*162 The function <math>\mathcal{E}</math> cannot be zero along an entire curve in the given field.
*163 The envelope of conjugate points.
*164 The curve may be composed of a finite number of regular traces.
*165 Cases where the traces are not regular.
*166 Generalizations in the Integral Calculus.
*167,168,169,170,171,172 Applications to the four problems already considered.
*173 When <math>F(x, y, x',y')</math> is a rational function of <math>x'</math> and <math>y'</math>, there can exist neither a maximum nor a minimum value of the integral.
*174 General summary.
*175 Extensions and generalizations: Instead of the determination of a structure of the first kind in the domain of two variables, it may be required to determine a structure of the first kind in the domain of <math>n</math> quantities.
*176 When equations of condition exist among the variables.
*177 When the second and higher derivatives appear.
*178 The Calculus of variations applied to the determination of structures of a higher kind. The ''minimal surfaces''.
RELATIVE MAXIMA AND MINIMA
[[/CHAPTER XIII/]]: STATEMENT OF THE PROBLEM. DERIVATION OF THE NECESSARY CONDITIONS.
*179 The general problem stated.
*180 Existence of substitutions by which one integral remains unchanged while the other is caused to vary. An exceptional case.
*181 Case of two variables. Convergence of the series that appear.
*182 The nature of the substitutions that have been introduced.
*183 Formation of certain quotients which depend only upon the nature of the curve.
*184 Generalization, in which several integrals are to retain fixed values.
*185 The quotient of two definite integrals being denoted by <math>\lambda</math>, it is shown that <math>\lambda</math> has the same constant value for the whole curve.
*186 The differential equation <math>G^{(0)}-\lambda G^{(1)}=0</math>.
*187 Extension of the theorem of Article 97.
*188 Discontinuities, etc.
*189 The second variation: the three conditions formulated in Article 135 are also necessary here.
[[/CHAPTER XIV/]]: THE ISOPERIMETRICAL PROBLEM.
*190 Statement of the problem.
*191 A simpler form of the integral that appears.
*192 The function <math>F_{1}</math> for this problem.
*193 Integration of the differential equation that occurs.
*194 An immediate consequence is the theorem of Steiner: ''Those portions of curve that are free to vary, are the arcs of equal circles''.
*195 If there exists a curve, which with a given periphery incloses the greatest surface area, that curve is a circle.
*196 The admissibility that this property belongs to the circle.
[[/CHAPTER XV/]]: RESTRICTED VARIATIONS. THE THEOREMS OF STEINER.
*197 Variations along two different portions of curve.
*198 Variation where a point must remain upon a fixed curve.
*199 Application to a particular case.
*200 Variation where a part of the curve coincides with a fixed curve.
*201 Generalizations involving several variables and several integrals.
*202 The isoperimetrical problem when the circle (Art. 195) which incloses the given area cannot be inscribed within fixed boundaries.
*203 Statement of two problems due to Steiner. Criticism of his assertion that the Calculus of Variations was not sufficient for the proof of these problems.
*204 Two problems due to Weierstrass which are more general than Steiner's and their proof by means of the Calculus of Variations.
*205 The behavior of the <math>\mathcal{E}</math>-function at fixed boundaries.
*206 Further discussion regarding this function.
*207 The case that there is a sudden change in the direction of the boundary curve at the point where it is approached by the curve that is free to vary.
*208 The case where the curve meets the boundary at a point and then leaves it.
*209 The tangents to the two portions of curve make equal angles with the tangent to the fixed curve.
*210 The isoperimetrical problem reversed.
*211 Consideration of the problem: ''Three points not lying in the same straight line are given in the plane. It is required to draw a line through them in a definite order which with a given length includes the greatest possible surface area''.
*212 Expression for portions of the curve that overlap.
*213 The solution of the differential equation may be straight lines or arcs of circles.
*214 The problem reduced to a problem in the Theory of Maxima and Minima.
*215 The problem solved.
[[/CHAPTER XVI/]]: THE DETERMINATION OF THE CURVE OF GIVEN LENGTH AND GIVEN END-POINTS, WHOSE CENTER OF GRAVITY LIES LOWEST.
*216 Statement of the problem.
*217 The necessary conditions
*218 The number of catenaries having a prescribed length that may be through two given points with respect to a fixed directrix.
*219 The constants uniquely determined.
[[/CHAPTER XVII/]]: THE SUFFICIENT CONDITIONS.
*220 The problem solved without using the second variation.
*221 The <math>\mathcal{E}</math>-function.
*222 Consequences due to this function.
*223 A ''field'' about the curve which maximizes or minimizes the integral.
*234 Further discussion of the nature of the enveloped space.
*225 Properties of an enveloped space which lies within the first enveloped space.
*226 The sufficiency of the <math>\mathcal{E}</math> condition.
*227 It is assumed that through the initial-point and any other point in the enveloped space only one curve may be drawn, which satisfies the differential equation (cf. Article 230).
*228 The <math>\mathcal{E}</math>-function cannot be zero along an entire curve that lies within the enveloped space (cf. Article 230).
*229 Extension of the meaning- of the integrals that have been employed.
[[/CHAPTER XVIII/]]: PROOF OF TWO THEOREMS WHICH HAVE BEEN ASSUMED IN THE PREVIOUS CHAPTER.
*230 The two theorems proved in the present Chapter are:
:1) ''That possible to construct a portion of space about a curve which satisfies the differential equation of the problem in such a way that it is always possible to join any point in this limited space and the initial-point by one and only one curve which likewise satisfies the differential equation''.
:2) ''That the function'' <math>\mathcal{E}</math> ''cannot vanish along an entire curve within such a portion of space''.
*231 The equations of the curve in space. The coordinates expressed in power-series.
*232 The curve determined through its initial-point and initial direction. Condition that two curves pass through the same initial-point and have initial directions differing by a given small quantity.
*233 Condition that one of these curves pass through a point which is in the neighborhood of a point on the other curve. The determinant <math>D(t_{0}, t)</math> which arises from these conditions.
*234 Conjugate points in connection with this determinant.
*235 Case where the end-points are conjugate to each other.
*236 The differential equation <math>G=0</math> and the determinant <math>D(t_{0}, t)</math>.
*237 Simplification of the determinant <math>D(t_{0}, t)</math>.
*238,239,240,241,242 The determinant <math>D(t_{0}, t)</math> changes sign when it vanishes.
*241 An exceptional case.
*243 The point conjugate to the initial-point is the limit of the intersection of neighboring curves that pass through the initial-point.
*244 When in the determinant <math>D(t_{0}, t)</math>, the quantity <math>t_{0}</math> varies in a continuous manner, the point conjugate to <math>t_{0}</math> varies in a continuous manner.
*245,246,247,248 Proof of the theorem that ''a portion of curve including conjugate points may be so varied that the total variation of one of the integrals may be either positive or negative, while the other integral remains unchanged''.
*249,250,251,252 The function <math>\mathcal{E}</math> cannot vanish along an entire curve within the portion of space defined above.
*253,254,255,256 The <math>\mathcal{E}</math>-function for the case of the ''Isoperimetrical Problem''.
*256,257 The <math>\mathcal{E}</math>-function for the ''curve whose center of gravity lies lowest''.
{{Shelves|Applied mathematics|University level mathematics books}}
{{status|100%}}
eyn6lm74orbobdav8o5ztsc02lk250t
4674779
4674778
2026-10-06T19:39:34Z
Codename Noreste
3441010
[[WB:REVERT|Reverted]] edit by [[Special:Contributions/~2026-53817-10|~2026-53817-10]] ([[User talk:~2026-53817-10|talk]]) to last version by MathXplore
3811525
wikitext
text/x-wiki
<div style="text-align:center; font-size:4em;margin:.5em">'''Calculus of Variations'''</div>
This wikibook is a transcribed version of Lectures on the Calculus of Variations (the Weierstrassian theory) by Harris Hancock in 1904. The scanned original is available [https://archive.org/details/cu31924060288986 here] from Cornell University.
== CONTENTS ==
[[/PREFACE/]]
[[/CHAPTER I/]]: PRESENTATION OF THE PRINCIPAL PROBLEMS OF THE CALCULUS OF VARIATIONS.
*1 The connection between the Calculus of Variations and the Theory of Maxima and Minima.
:''Problem I. The curve which generates a minimal surface area when rotated about a given axis.''
*2,3,4 The solution of this problem by the methods of Maxima and Minima.
*5,6 The difference between the Calculus of Variations and the Theory of Maxima and Minima.
*7 The coordinates <math>x</math>, <math>y</math> expressed as functions of a parameter <math>t</math>. ''Problem I'' formulated in terms of the parameter <math>t</math>.
*8,9 ''Problem II. The brachistochrone.''
*10 ''Problem III. The shortest line on a given surface.''
*11 The advantage of formulating the problems in terms of the parameter <math>t</math>.
*12 ''Problem IV. The surface of revolution of least resistance.''
*13 The general problem stated.
*14 The variation of the endpoints.
*15 ''Problem V. The isoperimetrical problem.''
*16 ''Problem VI. The curve whose center of gravity lies lowest.''
*17 Statement of the general problem in ''Relative Maxima and Minima.''
*18 Generalizations that may be made.
*19 Variation of a curve. Analytical definition of ''maximum'' and ''minimum''. ''Neighboring curves.''
*20 A different statement of the general problem.
*21 Inadmissibility of the presupposed existence of a maximum or a minimum.
*Problems
[[/CHAPTER II/]]: EXAMPLES OF SPECIAL VARIATIONS OF CURVES. APPLICATIONS TO THE CATENARY.
*22 ''Total variation'' in the case of Problem I, Chapter I.
*23 A ''bundle of neighboring'' curves.
*24 The first variation.
*25 The integral <math>I = \int_{x_{0}}^{x_{1}} F\left(x,y,\frac{\text{d}y}{\text{d}x}\right)\text{d}x</math>
*26 The vanishing of the first variation.
*27 Application to ''Problem I''.
*28 The differential equation of this problem.
*29 The integral <math>I = \int_{x_{0}}^{x_{1}} F(y,y')\text{d}x</math>
*30 Solution of the differential equation of Art. 26.
*31 The notion of a ''region'' within which two neighboring curves do not intersect.
*32 The catenary.
[[/CHAPTER III/]]: PROPERTIES OF THE CATENARY.
*33 Preliminary remarks.
*34 The general equation of the catenary.
*35 Geometrical construction of its tangent.
*36 Geometrical construction of the catenary.
*37 The catenary uniquely determined when a point on it and the direction of the tangent at this point are given.
*38 Limits within which the catenary must lie.
*39,40,41 The number of catenaries that may be drawn through two fixed points.
*42 The functions <math>f_{1}(m)</math> and <math>f_{2}(m)</math>.
*43 The discussion of the function <math>f_{1}(m)</math>.
*44 The discussion of the function <math>f_{2}(m)</math>.
*45 An approximate geometrical construction for the root of a transcendental equation.
*46,47,48 Graphical representation of the functions <math>f_{1}(m)</math> and <math>f_{2}(m)</math>.
*49,50 The different cases that arise and the corresponding number of catenaries.
*50,51,52 The position of the intersection of the tangents through the two fixed points for each case.
*53,54 The common tangents to two catenaries.
*55 Catenaries having the same parameter which intersect in only one point.
*56 Lindelöf's Theorem.
*57 A second proof of the same theorem.
*58,59 Discussion of the several cases for the possibility of a minimal surface of rotation.
*60,61 Application to soap bubbles.
[[/CHAPTER IV/]]: PROPERTIES OF THE FUNCTION <math>F(x,y,x',y')</math>.
*62 The function <math>F</math> defined as a function of its arguments.
*63,64,65,66,67 Necessary conditions and sufficient conditions.
*68 The function <math>F(x,y, x',y')</math> must be homogeneous of the first degree in <math>x'</math> and <math>y'</math>.
*69 Integrability of the function <math>F(x,y, x',y')</math>.
*70 The integral <math>I = \int_{x_{0}}^{x_{1}} F\left(x,y,1,\frac{\text{d}y}{\text{d}x}\right)\text{d}x</math>, when <math>x</math> and <math>y</math> are one-valued functions of each other.
*71 Introduction of the variable <math>t</math> or <math>s</math>.
*72 Analytical condition for the function <math>F</math>.
*73 Introduction of the function <math>F_{1}</math>.
[[/CHAPTER V/]]: THE VARIATION OF CURVES EXPRESSED ANALYTICALLY. THE FIRST VARIATION.
*74 General forms of the variations hitherto employed.
*75 The functions <math>\xi</math> and <math>\eta</math>. Their continuity.
*76 Neighboring curves. The first variation.
*77 The functions <math>G</math>, <math>G_{1}</math> and <math>G_{2}</math>.
*78 Proof of an important ''lemma''.
*79 The vanishing of the first variation and the differential equation <math>G=0</math>.
*80 The ''curvature'' expressed in terms of <math>F</math> and <math>F_{1}</math>.
*81 The components <math>w_{N}</math> and <math>w_{T}</math> in the directions of the normal and the tangent.
*82 Variations in the direction of the tangent and in the direction of the normal.
*83 Discontinuities in the path of integration. Irregular curves.
*84,85 Problem of Euler illustrating the preceding article.
*86 Summary.
[[/CHAPTER VI/]]: THE FORM OF THE SOLUTIONS OF THE DIFFERENTIAL EQUATION <math>G=0</math>.
*87 Another form of the differential equation <math>G=0</math>.
*88 Another form of the function <math>F_{1}</math>.
*89 Integration in power-series.
*90 The solutions <math>x=\phi(t,\alpha,\beta)</math>, <math>y=\psi(t,\alpha,\beta)</math> of the differential equation <math>G=0</math>.
*91,92 The case when <math>F_{1}=0</math> at the initial-point of the curve.
*93 The form of the differential equation <math>G=0</math> when <math>s</math> is the independent variable.
*94 The solution of this equation.
*95 The curve can have no singular points within the interval in question. coordinates of any point of the curve expressed as power-series in <math>s</math>.
[[/CHAPTER VII/]]: REMOVAL OF CERTAIN LIMITATIONS THAT HAVE BEEN MADE. INTEGRATION OF THE DIFFERENTIAL EQUATION <math>G=0</math> FOR THE PROBLEMS OF CHAPTER I.
*96 Instead of a sing-le regular trace, the curve may consist of a finite number of such traces.
*97 The first derivatives of <math>F</math> with respect to <math>x'</math> and <math>y'</math> vary in a continuous manner for the curve <math>G=0</math>, even if there are sudden changes in the direction of this curve.
*98 Explanation of the result given in the preceding article.
*99 Summary.
*100 Solution of the differential equation for Problem I of Chapter I.
*101,102 The discontinuous solution.
*103 The equation <math>G=0</math> solved for Problem II, Article 9.
*104 The two fixed points must lie on the same loop of the cycloid.
*105 Through two points may be drawn one and only one cycloidal-loop, which does not include a cusp.
*106 ''Problem III.'' Problem of the shortest line on a surface.
*107 The same result derived in a different manner.
*108 ''Problem IV.'' Surface of rotation which offers the least resistance.
*109,110 Solution of the equation <math>G=0</math> for Problem IV of Chapter I.
[[/CHAPTER VIII/]]: THE SECOND VARIATION; ITS SIGN DETERMINED BY THAT OF THE FUNCTION <math>F_{1}</math>.
*111 Nature and existence of the substitutions introduced.
*112 The total variation.
*113,114 The second variation of the function <math>F</math>.
*115 The second variation of the integral <math>I</math>. The sign of the second variation in the determination of maximum or minimum values.
*116 Discontinuities.
*117 The sign of the second variation made to depend upon that of <math>F_{1}</math>.
*118 The admissibility of a transformation that has been made. The differential equation <math>J=0</math>.
*119 A simple form of the second variation.
*120 A general property of a linear differential equation of the second order.
*121 The second variation and the function <math>F_{1}</math>. The function <math>F{1}</math> cannot change sign and must be different from <math>0</math> and <math>\infty</math> in order that there may be a maximum or a minimum.
[[/CHAPTER IX/]]: CONJUGATE POINTS.
*122 The second variation of the differential equation <math>J=0</math>.
*123,124 The solutions of the equations <math>G=0</math> and <math>J=0</math>. The second variation derived from the first variation.
*125 Variations of the constants in the solutions of <math>G=0</math>.
*126 The solutions <math>u_{1}</math> and <math>u_{2}</math> of the differential equation <math>J=0</math>.
*127 These solutions are independent of each other.
*128 The function <math>\Theta(t,t')</math>. ''Conjugate points''.
*129 The relative position of conjugate points on a curve.
*130 Graphical representation of the ratio <math>\frac{u_{1}}{u_{2}}</math>.
*131 Summary.
*132 Points of intersection of the curves <math>G=0</math> and <math>\delta G=0</math>.
*133 The second variation when two conjugate points are the limits of integration, and when a pair of conjugate points are situated between these limits.
[[/CHAPTER X/]]: THE CRITERIA THAT HAVE BEEN DERIVED UNDER THE ASSUMPTION OF CERTAIN SPECIAL VARIATIONS ARE ALSO SUFFICIENT FOR THE ESTABLISHMENT OF THE FORMULAE HITHERTO EMPLOYED.
*134 The process employed is one of progressive exclusion.
*135 Summary of the three necessary conditions that have been derived.
*136,137 Special variations. The total variation.
*138 A theorem in quadratic forms.
*139 Establishment of the conditions that have been derived from the second variation.
*140,141,142,143,144 Application to the first four problems of Chapter I.
[[/CHAPTER XI/]]: THE NOTION OF A FIELD ABOUT THE CURVE WHICH OFFERS A MINIMUM OR A MAXIMUM VALUE OF THE INTEGRAL. THE GEOMETRICAL MEANING OF THE CONJUGATE POINTS.
*145 Notion of a field.
*146 Neighboring curves which belong to the family of curves <math>G=0</math>.
*147 A general theorem in the reversion of series.
*148 The coordinates of a neighboring curve expressed in power-series of <math>k</math>, where <math>k</math> is the trigonometric tangent between the initial directions of the neighboring curve and the original curve.
*149 A curve which satisfies the equation <math>G=0</math> is determined as soon as its initial point and the direction of the tangent at this point are known.
*150 Limits assigned to <math>k</math>. Extension of the notion of a field.
*151 Intersection of two neighboring curves. Conjugate points.
*152 A point cannot be its own conjugate. The derivative of <math>\Theta(t,t')</math> does not vanish at a point which causes the function itself to vanish.
[[/CHAPTER XII/]]: A FOURTH AND FINAL CONDITION FOR THE EXISTENCE OF A MAXIMUM OR A MINIMUM, AND A PROOF THAT THE CONDITIONS WHICH HAVE BEEN GIVEN ARE SUFFICIENT.
*153 The notion of a field continued from the preceding Chapter.
*154 The function <math>\mathcal{E}(x,y,p,q,\bar{p},\bar{q})</math>.
*155 The function <math>\mathcal{E}</math> must have the same sign for every point of the curve.
*156 The sufficiency of the above condition.
*157 Another form of the function <math>\mathcal{E}</math>.
*158 Still another form.
*159,160 The signs of the function <math>\mathcal{E}</math> and <math>F_{1}</math>.
*161 Another proof of the sufficiency of the condition as given in Article 156.
*162 The function <math>\mathcal{E}</math> cannot be zero along an entire curve in the given field.
*163 The envelope of conjugate points.
*164 The curve may be composed of a finite number of regular traces.
*165 Cases where the traces are not regular.
*166 Generalizations in the Integral Calculus.
*167,168,169,170,171,172 Applications to the four problems already considered.
*173 When <math>F(x, y, x',y')</math> is a rational function of <math>x'</math> and <math>y'</math>, there can exist neither a maximum nor a minimum value of the integral.
*174 General summary.
*175 Extensions and generalizations: Instead of the determination of a structure of the first kind in the domain of two variables, it may be required to determine a structure of the first kind in the domain of <math>n</math> quantities.
*176 When equations of condition exist among the variables.
*177 When the second and higher derivatives appear.
*178 The Calculus of variations applied to the determination of structures of a higher kind. The ''minimal surfaces''.
RELATIVE MAXIMA AND MINIMA
[[/CHAPTER XIII/]]: STATEMENT OF THE PROBLEM. DERIVATION OF THE NECESSARY CONDITIONS.
*179 The general problem stated.
*180 Existence of substitutions by which one integral remains unchanged while the other is caused to vary. An exceptional case.
*181 Case of two variables. Convergence of the series that appear.
*182 The nature of the substitutions that have been introduced.
*183 Formation of certain quotients which depend only upon the nature of the curve.
*184 Generalization, in which several integrals are to retain fixed values.
*185 The quotient of two definite integrals being denoted by <math>\lambda</math>, it is shown that <math>\lambda</math> has the same constant value for the whole curve.
*186 The differential equation <math>G^{(0)}-\lambda G^{(1)}=0</math>.
*187 Extension of the theorem of Article 97.
*188 Discontinuities, etc.
*189 The second variation: the three conditions formulated in Article 135 are also necessary here.
[[/CHAPTER XIV/]]: THE ISOPERIMETRICAL PROBLEM.
*190 Statement of the problem.
*191 A simpler form of the integral that appears.
*192 The function <math>F_{1}</math> for this problem.
*193 Integration of the differential equation that occurs.
*194 An immediate consequence is the theorem of Steiner: ''Those portions of curve that are free to vary, are the arcs of equal circles''.
*195 If there exists a curve, which with a given periphery incloses the greatest surface area, that curve is a circle.
*196 The admissibility that this property belongs to the circle.
[[/CHAPTER XV/]]: RESTRICTED VARIATIONS. THE THEOREMS OF STEINER.
*197 Variations along two different portions of curve.
*198 Variation where a point must remain upon a fixed curve.
*199 Application to a particular case.
*200 Variation where a part of the curve coincides with a fixed curve.
*201 Generalizations involving several variables and several integrals.
*202 The isoperimetrical problem when the circle (Art. 195) which incloses the given area cannot be inscribed within fixed boundaries.
*203 Statement of two problems due to Steiner. Criticism of his assertion that the Calculus of Variations was not sufficient for the proof of these problems.
*204 Two problems due to Weierstrass which are more general than Steiner's and their proof by means of the Calculus of Variations.
*205 The behavior of the <math>\mathcal{E}</math>-function at fixed boundaries.
*206 Further discussion regarding this function.
*207 The case that there is a sudden change in the direction of the boundary curve at the point where it is approached by the curve that is free to vary.
*208 The case where the curve meets the boundary at a point and then leaves it.
*209 The tangents to the two portions of curve make equal angles with the tangent to the fixed curve.
*210 The isoperimetrical problem reversed.
*211 Consideration of the problem: ''Three points not lying in the same straight line are given in the plane. It is required to draw a line through them in a definite order which with a given length includes the greatest possible surface area''.
*212 Expression for portions of the curve that overlap.
*213 The solution of the differential equation may be straight lines or arcs of circles.
*214 The problem reduced to a problem in the Theory of Maxima and Minima.
*215 The problem solved.
[[/CHAPTER XVI/]]: THE DETERMINATION OF THE CURVE OF GIVEN LENGTH AND GIVEN END-POINTS, WHOSE CENTER OF GRAVITY LIES LOWEST.
*216 Statement of the problem.
*217 The necessary conditions
*218 The number of catenaries having a prescribed length that may be through two given points with respect to a fixed directrix.
*219 The constants uniquely determined.
[[/CHAPTER XVII/]]: THE SUFFICIENT CONDITIONS.
*220 The problem solved without using the second variation.
*221 The <math>\mathcal{E}</math>-function.
*222 Consequences due to this function.
*223 A ''field'' about the curve which maximizes or minimizes the integral.
*234 Further discussion of the nature of the enveloped space.
*225 Properties of an enveloped space which lies within the first enveloped space.
*226 The sufficiency of the <math>\mathcal{E}</math> condition.
*227 It is assumed that through the initial-point and any other point in the enveloped space only one curve may be drawn, which satisfies the differential equation (cf. Article 230).
*228 The <math>\mathcal{E}</math>-function cannot be zero along an entire curve that lies within the enveloped space (cf. Article 230).
*229 Extension of the meaning- of the integrals that have been employed.
[[/CHAPTER XVIII/]]: PROOF OF TWO THEOREMS WHICH HAVE BEEN ASSUMED IN THE PREVIOUS CHAPTER.
*230 The two theorems proved in the present Chapter are:
:1) ''That possible to construct a portion of space about a curve which satisfies the differential equation of the problem in such a way that it is always possible to join any point in this limited space and the initial-point by one and only one curve which likewise satisfies the differential equation''.
:2) ''That the function'' <math>\mathcal{E}</math> ''cannot vanish along an entire curve within such a portion of space''.
*231 The equations of the curve in space. The coordinates expressed in power-series.
*232 The curve determined through its initial-point and initial direction. Condition that two curves pass through the same initial-point and have initial directions differing by a given small quantity.
*233 Condition that one of these curves pass through a point which is in the neighborhood of a point on the other curve. The determinant <math>D(t_{0}, t)</math> which arises from these conditions.
*234 Conjugate points in connection with this determinant.
*235 Case where the end-points are conjugate to each other.
*236 The differential equation <math>G=0</math> and the determinant <math>D(t_{0}, t)</math>.
*237 Simplification of the determinant <math>D(t_{0}, t)</math>.
*238,239,240,241,242 The determinant <math>D(t_{0}, t)</math> changes sign when it vanishes.
*241 An exceptional case.
*243 The point conjugate to the initial-point is the limit of the intersection of neighboring curves that pass through the initial-point.
*244 When in the determinant <math>D(t_{0}, t)</math>, the quantity <math>t_{0}</math> varies in a continuous manner, the point conjugate to <math>t_{0}</math> varies in a continuous manner.
*245,246,247,248 Proof of the theorem that ''a portion of curve including conjugate points may be so varied that the total variation of one of the integrals may be either positive or negative, while the other integral remains unchanged''.
*249,250,251,252 The function <math>\mathcal{E}</math> cannot vanish along an entire curve within the portion of space defined above.
*253,254,255,256 The <math>\mathcal{E}</math>-function for the case of the ''Isoperimetrical Problem''.
*256,257 The <math>\mathcal{E}</math>-function for the ''curve whose center of gravity lies lowest''.
{{Shelves|Applied mathematics|University level mathematics books}}
{{status|100%}}
04y6wfikfn9tgb3b3ups893cy8aanuz
Mirad Grammar/Verbs
0
417649
4674700
4674686
2026-10-06T12:28:50Z
ShakespeareFan00
46022
4674700
wikitext
text/x-wiki
<noinclude>{{status|100%}}</noinclude>
== The Verb Stem ==
[[File:Various forms of using the verb "to inform" in LSC.png|thumb|]]
: Verbs in Mirad are listed in the dictionary under the present active infinitive (see [[Mirad Grammar/Verbs#Non-finite Forms]]), such as '''yexer'''....''to work''. The infinitive minus the '''er''' ending is the stem. The stem is used as the base for all other verbal instantiations. The infinitive as listed in the dictionary is usually active in voice, but occasionally a passive infinitive ending in '''-wer''' will be lexicalized because it is somehow special, so then, the stem is still the infinitive minus the '''-er''' ending. All Mirad verbs are conjugated in the same way and there are no exceptions.
: This shows how to determine the '''''stem''''' of a verb listed in the dictionary:
::{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller;"
|+ Verb Stems
|-
! Simple Infinitive !! Stem<big>+</big>Infinitive Ending
|-
| '''yex<u>er</u>'''....''to work'' || '''yex<big>+</big>er'''
|-
| '''pos<u>er</u>'''....''to (come to a) stop'' || '''pos<big>+</big>er'''
|-
| '''x<u>er</u>'''....''to do'' || '''x<big>+</big>er'''
|-
| '''xw<u>er</u>'''....''to happen, be done'' (PASSIVE)|| '''xw<big>+</big>er'''
|}
=== Verb Stem Formants ===
: A verb stem formant is a letter or group of letters at the end of a verb stem indicating:
::* '''TYPE OF VERB''': stative, causative, gestural, related to motion, communications, or mental states and activites
::* '''CERTAIN TRAITS''': active, passive, subject-oriented, patient-oriented, dynamic, intensive
: The stems of most verbs end in one of the following verb formants:
::* '''s''' as in '''ser'''....''to be(come)'', <u>intransitive</u> verbs of being or becoming
:::* '''aser'''....''to become''
:::* '''eser'''....''to exist''
:::* '''beser'''....''to stay''
:::* '''kyaser'''....''to change''
::* '''x''' as in '''xer'''....''to do'', <u>transitive</u> verbs of action, doing, making, causation
:::* '''agaxer'''....''to magnify'' < '''aga'''....''big''
:::* '''uxer'''....''to cause'' < '''ux'''....''cause''
:::* '''yiklaxer'''....''to complicate'' < '''yikla'''....''complex''
:::* '''sanxer'''....''to form'' < '''san'''....''form''
::* '''b''' as in '''ber'''....''to put'', transitive verbs of gesturing or putting
:::* '''yaber'''....''to raise'' < '''yab'''....''up''
:::* '''yixber'''....''to put to use, deploy'' < '''yix'''....''use''
:::* '''ikber'''....''to fill'' < '''ik(a)'''....''full''
:::* '''abkyober{{'}}'''....''to affix'' < '''ab'''....''on'' + '''kyo(a)'''....''fixed''
::* '''p''' as in '''per'''....''to go'', intransitive verbs of motion
:::* '''aper'''....''to get on'' < '''a(b)'''....''on''
:::* '''uper'''....''to come'' < '''u(b)'''....''toward''
:::* '''poper'''....''to travel'' < '''po(p)'''....''trip''
:::* '''yaper'''....''to rise, get up'' < '''ya(b)'''....''up''
::* '''d''' as in '''der'''....''to say'', transitive verbs of communication
:::* '''gawder'''....''to repeat'' < '''gaw-'''....''re-''
:::* '''kyider'''....''to emphasize'' < '''kyi(a)'''....''heavy''
:::* '''afder'''....''to authorize'' < '''af'''....''permission''
:::* '''lofivader'''....''to disapprove'' < '''lo-'''....''dis-'' + '''fi(a)'''....''good'' + '''va'''....''yes''
:::* '''yevder'''....''to judge'' < '''yev(a)'''....''just''
:::* '''vyader'''....''to avow'' < '''vya(a)'''....''true''
::* '''dr''' as in '''drer'''....''to write'', transitive verbs of writing
:::* '''makdrer'''....''to text'' < '''mak'''....''electricity''
:::* '''Miradrer'''....''to write in Mirad'' < '''Mirad'''
:::* '''monsandrer'''....''to ghostwrite'' < '''mon'''....''dark'' + '''san'''....''shape''
:::* '''ajdindrer'''....''to chronicle'' < '''aj'''....''past''....'''din'''....''story'' = ''history''
:::* '''abdrer'''....''to inscribe'' < '''ab'''....''on''
::* '''dye''' as in '''dyeer'''....''to read''
:::* '''neddyeer'''....''to skim'' < '''ned'''....''surface''
:::* '''seuxdyeer'''....''to pronounce'' < '''seux'''....''sound''
:::* '''tepdyeer'''....''to read minds'' < '''tep'''....''mind''
:::* '''teubobdyeer'''....''to lipread'' < '''teubob'''....''lip''
:::* '''teuzdyeer'''....''to read aloud'' < '''teuz'''....''voice''
:::* '''tuyibdyeer'''....''to read palms'' < '''tuyib'''....''palm''
:::* '''zyedyeer'''....''to peruse'' < '''zye'''....''through''
::* '''t''' as in '''ter'''....''to know or see'', transitive verbs of mental states
:::* '''teater'''....''to see'' < '''tea(b)'''....''eye''
:::* '''tayoter'''....''to feel'' < '''tayo(b)'''....''skin''
:::* '''tester'''....''to understand'' < '''tes'''....''meaning''
:::* '''nazter'''....''to value, to appreciate'' < '''naz'''....''value''
::* '''tr''' as in '''trer'''....''to know (a person)'', transitive verbs of recognition
:::* '''gawtrer'''....''to recognize'' < '''gaw-'''....''re-''
:::* '''ijtrer'''....''to get to know'' < '''ij'''....''start''
:::* '''yagtrer'''....''to experience'' < '''yag(a)'''....''long''
::* '''ty''' as in '''tyer'''....''to know (how)'', transitive know-how verbs
:::* '''daztyer'''....''to know how to dance'' < '''daz'''....''dance''
:::* '''deuztyer'''....''to know how to sing'' < '''deuz'''....''song''
:::* '''fiktyer'''....''to master'' < '''fik(a)'''....''perfect''
::* '''i''' as in '''bier'''....''to take'', subject-directed verbs
:::* '''tier'''....''to find out'' < '''t-'''....''know''
:::* '''dier'''....''to request'' < '''d-'''....''say''
:::* '''ifier'''....''to enjoy'' < '''if'''....''pleasure''
:::* '''nier'''....''to consume'' < '''n-'''....''money''
:::* '''nazier'''....''to deserve'' < '''naz'''....''value''
:::* '''pier'''....''to depart'' < '''p-'''.....''go''
::* '''u''' as in '''buer'''....''to give'', patient-directed verbs
:::* '''tuer'''....''to inform'' < '''t-'''....''know''
:::* '''duer'''....''to suggest'' < '''d-'''....''say''
:::* '''ifuer'''....''to please'' < '''if'''....''pleasure''
:::* '''nuer'''....''to supply'' < '''n-'''....''money''
:::* '''nazuer'''....''to reward'' < '''naz'''....''value''
:::* '''puer'''....''to arrive'' < '''p-'''....''go''
: A few verb stems ending in '''k''', '''z''', '''f''', '''v''', '''j''', '''l''', and '''r''' have no formants in their base dictionary form.
: K-stem transitive verbs of risk:
::* '''aker'''....''to win''
::* '''eker'''...''to play, risk''
::* '''oker'''....''to lose''
::* '''yaker'''....''to expect''
::* '''yeker'''....''to try''
::* '''yoker'''....''to be surprised''
::* '''yiker'''....''to find it hard''
::* '''yuker'''....''to find it easy''
: Z-stem transitive verbs of art:
::* '''dazer'''....''to dance''
::* '''dyazer'''....''to perform ballet''
::* '''dezer'''....''to perform''
::* '''doldezer'''....''to pantomime''
::* '''dizer'''....''to clown around''
::* '''duzer'''....''to play music''
::* '''domepduzer'''....''to busk''
::* '''drezer'''....''to create poetry''
::* '''dresyozer'''....''to engrave''
::* '''druzer'''....''to compose music''
::* '''doteuzer'''....''to vote''
::* '''sizer'''....''to paint''
::* '''imsizer'''....''to fresco''
::* '''sazer'''....''to sculpt''
::* '''tazer'''....''to carve''
::* '''syozer'''....''to engrave''
::* '''volzer'''....''to color''
::* '''tujeazer'''....''to dream''
::* '''tepeazer'''....''to imagine''
: F- and V-stem modal verbs:
::* '''fer'''....''to want''
::* '''afer'''....''to have permission''
::* '''efer'''....''to need''
::* '''ifer'''....''to love''
::* '''iyfer'''....''to like''
::* '''ofer'''....''to be prohibited''
::* '''yafer'''....''to be able''
::* '''yefer'''....''to have to''
::* '''yeyfer'''....''should''
::* '''yofer'''....''to be unable''
::* '''yifer'''....''to dare''
::* '''yufer'''....''to fear''
::* '''yiver'''....''have a right to''
::* '''yuver'''....''to be supposed to''
: L- and R-stem verbs
::* '''baler'''....''to press''
::* '''barer'''....''to crush''
::* '''beler'''....''to carry'
::* '''boler'''....''to support''
::* '''biler'''....''to obtain''
::* '''birer'''....''to grab''
::* '''buler'''....''to grant''
::* '''burer'''....''to concede''
::* '''daler'''...''to speak''
::* '''deler'''....''do declare''
::* '''doler'''....''to be silent'
::* '''diler'''....''to request''
::* '''direr'''....''to demand''
::* '''duler'''....''to insist''
::* '''durer'''....''to order''
: The above verbs are transitive except '''doler'''.
: The following J-stem verbs are <u>intransitive stative zero-formant</u> verbs:
: J-stem verbs intransitive verbs related to time activites:
::* '''ijer'''....''to begin''
::* '''ujer'''....''to finish''
::* '''yijer'''....''to open''
::* '''yujer'''....''to close''
::* '''tijer'''....''to be awake''
::* '''tujer'''....''to sleep''
::* '''tajer'''....''to be born''
::* '''tejer'''....''to live''
::* '''tojer'''....''to die''
: All of the above '''j''' stems are intransitive static verbs and cannot be passivized.
: Verb stems ending in '''j''', however, can take the active transitive dynamic formant '''b''' which can then be passivized with '''w'''. Or, they can take the intransitive dynamic formant '''p''', which cannot be passivized.
::* '''tojer'''....''to die'' (intransitive automatic)
::* '''tojper'''....''to drop dead'' (intransitive dynamic)
::* '''tojber'''....''to kill'' (transitive dynamic)
::* '''tojbwer'''....''to be killed'' (transitive passive dynamic)
: There are two formants, '''l''' and '''r''' that act as intensifiers and can be applied to any stems except the L and R stems (like '''baler'''....''to press''):
::* '''l''' (intensive verbs)
:::* '''fler'''....''to yearn'' ( < '''fer'''....''to want'')
:::* '''ifler'''....''to love'' ( < '''ifer'''....''to love'')
:::* '''gobler'''....''to cut'' ( < '''gober'''....''to subtract'')
:::* '''ebler'''....''to obstruct'' ( < '''eber'''....''to get in the way of'')
:::* '''ibler'''....''to collect'' ( < '''iber'''....''to receive'')
:::* '''yabler'''....''to hoist'' ( < '''yaber'''....''to raise'')
:::* '''buxler'''....''to shove'' ( < '''buxer'''....''to push'')
:::* '''yujler'''....''to lock'' ( < '''yujer'''....''to close'')
::* '''r''' (more intensive verbs)
:::* '''frer'''....''to crave'' ( < '''fer'''....''to want'')
:::* '''ifrer'''....''to adore'' ( < '''ifer'''....''to love'')
:::* '''abbaxrer'''....''to rub'' ( < '''abbaxer'''....''to caress'')
:::* '''abbyuxrer'''....''to stomp on'' ( < '''abbyux'''....''to touch on, impact'')
:::* '''apaxrer'''....''to scrub'' ( < '''apaxer'''....''to wipe'')
:::* '''byexrer'''....''to thrash'' ( < '''byexer'''....''to hit'')
:::* '''buxrer'''....''to drive'' ( < '''buxer'''....''to push'')
:::* '''yujrer'''....''to slam shut'' ( < '''yujer'''....''to close'')
: Here are examples of J-stems that take the intensifying formants '''l''' and '''r''', eg.:
::* '''yujer'''....''to close'' (intransitive automatic)
::* '''yujler'''....''to lock'' (intransitive automatic intensive)
::* '''yujper'''....''to come to a close'' (intransitive dynamic)
::* '''yujprer'''....''to slam shut'' (intransitive automatic very intensive)
::* '''yujber'''....''to close'' (transitive dynamic)
::* '''yujbwer'''....''to be closed" (transitive passive dynamic)
::* '''yujler'''....''to lock (intransitive automatic intensive)
::* '''yujbler'''....''to lock (transitive dynamic intensive)
::* '''yujbrer'''....''to slam shut (transitive dynamic very intensive)
::* '''yujbrwer'''....''to be slammed shut (transitive dynamic very intensive passive)
: Stems can sometimes be altered with the following directional formants:
::* '''-i-''' (subject-oriented)
::* '''-u-''' (patient-oriented)
: Examples:
::{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller;"
|+ Verbs with i/u Formants
|-
! Verb || Modification
|-
| rowspan=2|'''ber'''....''to put'' || '''bier'''....''to take''
|-
|| '''buer'''....''to give''
|-
| rowspan=2|'''ter'''....''to know'' || '''tier'''....''to find out''
|-
|| '''tuer'''....''to inform''
|-
| rowspan=2|'''trer'''....''to be familiar with'' || '''trier'''....''to become familiar with''
|-
|| '''truer'''....''to familiarize, introduce''
|-
| rowspan=2|'''tyer'''....''to know how'' || '''tyier'''....''to master''
|-
|| '''tyuer'''....''to train''
|-
| rowspan=2|'''taxer'''....''to remember'' || '''taxier'''....''to commit to memory''
|-
|| '''taxuer'''....''to remind''
|-
|rowspan=2| '''per'''....''to go'' || '''pier'''....''to leave''
|-
|| '''puer'''....''to arrive''
|-
| rowspan=2|'''xer'''....''to do'' || '''xier'''....''to result in''
|-
|| '''xuer'''....''to affect''
|-
| rowspan=2|'''buker'''....''to hurt'' || '''bukier'''....''to sustain an injury''
|-
|| '''bukuer'''....''to inflict an injury''
|-
| rowspan=2|'''ifer'''....''to love'' || '''ifier'''....''to enjoy''
|-
|| '''ifuer'''....''to please''
|-
| rowspan=2|'''der'''....''to say'' || '''dier'''....''to ask''
|-
|| '''duer'''....''to suggest''
|-
| rowspan=2|'''til'''....''a drink'' || '''tilier'''....''to take a drink''
|-
|| '''tiluer'''....''to pour a drink''
|-
| rowspan=2|'''tel'''....''food'' || '''telier'''....''to eat''
|-
|| '''teluer'''....''to feed''
|-
| rowspan=2|'''abbaun'''....''cover'' || '''abbaunier'''....''to take cover''
|-
|| '''abbaunuer'''....''to provide cover''
|-
| rowspan=2|'''abfin'''....''advantage'' || '''abfinier'''....''to take advantage of''
|-
|| '''abfinuer'''....''to favor''
| rowspan=2|'''naz'''....''value'' || '''nazier'''....''to deserve''
|-
|| '''nazuer'''....''to reward''
|}
: The following table shows how stems can be intensified in meaning with '''-l-''' and '''-r-''':
::* '''-l-''' (intense)
::* '''-r-''' (more intense)
: Examples:
::{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller;"
|+ Verbs with Modified Formants
|-
! Verb || Modification
|-
! Normal !! Intense !! More Intense
|-
| '''baxer'''....''to stir'' || '''baxler'''....''to rustle'' || '''baxrer'''....''to shake''
|-
| '''yaber'''....''to raise'' (trans.) || '''yabler'''....''to elevate'' || '''yaprer'''....''to hoist''
|-
| '''yaper'''....''to ascend'' (intrans.)|| '''yapler'''....''to climb''|| '''yaprer'''....''to scramble up''
|-
| '''apaxer'''....''to wipe'' || '''apaxler'''....''to sweep'' || '''apaxrer'''....''to scrub''
|-
| '''byexer'''....''to strike'' ||'''byexler'''....''to trounce'' || '''byexrer'''....''to thrash''
|}
: The intransitive zero-formant verbs whose stem ends in '''-k''' can take formants as well:
::* '''aker'''....''to win'' (transitive)
::* '''akler'''....''to vanquish, beat'' (transitive intense)
::* '''akrer'''....''to triumph'' (transitive more intense)
::* '''biker'''....''to care about'' (transitive)
::* '''bikier'''....''to take care'' (transitive subject-oriented)
::* '''bikuer'''....''to care for'' (transitive patient-oriented)
::* '''bikuwer'''....''to be cared for'' (transitive patient-oriented passive)
::* '''yeker'''....''to try'' (transitive)
::* '''yekler'''....''to strive'' (transitive intensive)
::* '''yekrer'''....''to struggle'' (transitive more intensive)
::* '''yekier'''....''to undertake'' (transitive subject-oriented)
::* '''yekuer'''....''to challenge'' (transitive patient-oriented)
::* '''yekuwer'''....''to be challenged'' (transitive patient-oriented passive)
::* '''bakser'''....''to get healthy, heal'' (intransitve)
::* '''bakxer'''....''to make healthy, heal'' (transitive)
::* '''bakxwer'''....''to be healed'' (transitive passive)
: Verb stems ending in '''j''', '''s''', or '''p''' are invariably intransitive and cannot be made passive. All other verb stems, except '''doler''' (''to be silent''), can be made passive with the addition of '''w'''. The passifying '''w''' is always the last formant of any stem.
:: '''saxer'''....''to make'' > '''saxwer'''....''to be made''
:: '''baler'''....''to press'' > '''balwer'''....''to be pressed''
:: '''yaker'''....''to expect'' > '''yakwer'''....''to be expected''
: The zero-formant verb stems in '''-f-''' and '''-v-''' are modal verbs and these can take a combination of additional formants, eg.:
:* '''ifer'''....''to love''
::* '''ifler'''....''to have affection for''
::* '''ifrer'''....''to adore''
::* '''ifier'''....''to enjoy, to take pleasure in''
::* '''ifuer'''....''to please, to give pleasure to''
:::* '''ifluer'''....''to delight''
:::* '''ifruer'''....''to ravish''
:::* '''ifruwer'''....''to be ravished''
::* '''ifxer'''....''to gratify, to divert''
::* '''ifser'''....''to have fun''
::* '''ifwer'''....''to be loved''
::* '''ifrwer'''....''to be adored''
:* '''fer'''....''to want''
::* '''fler'''....''to yearn for''
::* '''frer'''....''to crave''
::* '''fruer'''....''fill with a craving for''
:* '''yufer'''....''to fear''
::* '''yufler'''....''to dread''
::* '''yufrer'''....''to tremble in fear of''
::* '''yufruer'''....''to frighten''
::* '''yufruwer'''....''to be frightened''
::* '''yufxer'''....''to scare''
::* '''yufxwer'''....''to be scared''
:* '''yiver'''....''to have the right to''
::* '''yivser'''....''to become free''
::* '''yivxer'''....''to free, to liberate''
::* '''yivxwer'''....''to be freed''
:* '''yafer'''....''to be able''
::* '''yafxer'''....''to enable''
::* '''yafxwer'''....''to be enabled''
::* '''yafuer'''....''to empower''
::* '''yafluer'''....''to coerce''
::* '''yafier'''....''to take power''
::* '''yaflier'''....''to grab power''
::* '''ofer'''....''to lack permission to''
::* '''ofxer'''....''to prohibit''
::* '''ofxwer'''....''to be prohibited''
::* '''ifruwer'''....''to be ravished''
::* '''efxwer'''....''to be necessitated''
== Verb Categories ==
: Verbs have '''''morphological categories''''', which involve changes to the verb not always found in the dictionary, but developed through rule-bound affixation (such as ''live'', ''lives'', ''lived'', ''living''). They also have '''''lexical categories''''', which involve derived forms usually listed in dictionaries (''enjoy'', ''enjoyable'', ''enjoyment'')
=== Morphological Categories ===
: Verbs are inflected with the following '''''morphological categories''''':
::* '''''2 states''''': finite, non-finite
::* '''''4 tenses''''': present, past, future, atemporal<sup>1</sup>
::* '''''5 aspects''''': simple, progressive, perfect, imminent, potential
::* '''''2 voices''''': active, passive
::* '''''2 moods''''': indicative, hypothetical
:<small>'''''Note 1:''''' The term "atemporal" means that tense is not marked. For example, in Mirad, '''Pu!''' is the imperative of the verb '''per'''....''to go''. It means ''Go!'' and is atemporal. The '''-u''' ending is an atemporal hypothetical mood marker.</small>
: In effect, the PERSON/NUMBER category is not listed above, because this category does not affect the morphology of the Mirad verb form itself. The Mirad verb form stays the same for all persons and numbers. That information is contained in the external subject pronouns governing the verb. In English, for example, the verb "be" has several different forms in the present tense verb form depending on the person and number (I <u>am</u>, you <u>are</u>, he <u>is</u>, we <u>are</u>, etc.), but not so in Mirad. The following chart shows how the English pattern differs from the corresponding single Mirad verb form '''se''' for all persons and numbers:
:{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller"
|+ Verb '''ser''' (''to be'') Unchanged for person/number
|-
! Person !! Number !! English !! Mirad
|-
!row=1| 1st !! row=1 rowspan=3| Singular
| ''I <u>am</u>'' || '''at <u>se</u>'''
|-
!row=1| 2nd
| ''you <u>are</u>'' || '''et <u>se</u>'''
|-
!row=1| 3rd
| ''he/she <u>is</u>'' || '''it <u>se</u>'''
|-
!row=1| 1st !! row=1 rowspan=3| Plural
| ''we <u>are</u>'' || '''yat <u>se</u>'''
|-
!row=1| 2nd
| ''you (pl.) <u>are</u>'' || '''yet <u>se</u>'''
|-
!row=1| 3rd
| ''they <u>are</u>'' || '''yit <u>se</u>'''
|}
: This invariability of person/number exists for all tenses.
=== Lexical Categories ===
:: In addition, verbs can be described in terms of the following opposing '''''lexical''''' categories. By lexical, is meant that verbs having different lexical properties are listed in the dictionary and have nothing to do with conjugation.
{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller;margin-left:1.6em;"
|+ Verb Lexical Categories
|-
! Stative !! Dynamic
|-
| '''ser'''....''to be'' || '''xer'''....''to do''
|-
! Intransitive !! Transitive
|-
| '''agaser'''....''to grow large'' || '''agaxer'''....''to magnify''
|-
! Subject-directed !! Patient-directed
|-
| '''bier'''....''to take'' || '''buer'''....''to give''
|-
! Reflexive !! Non-reflexive
|-
| '''utvyixer'''....''to wash up (wash oneself)'' || '''vyixer'''....''to wash''
|-
! Inchoative !! Causative
|-
| '''tujper'''....''fall asleep'' || '''tujber'''....''put to sleep''
|-
! Autonomous !! Dynamic
|-
| '''yijer'''....''to open (by itself)'' || '''yijber'''....''to (make it) open''
|-
! Reciprocal !! Non-reciprocal
|-
| '''hyuittujber'''....''to kill one another'' || '''tujber'''....''to kill''
|-
! Gestural !! Locomotive
|-
| '''baser'''....''to stir, budge'' || '''paser'''....''to move''
|-
! Subject-oriented !! Object-oriented
|-
| '''teetyiker'''....''to be hard of hearing'' || '''teetyikwer'''....''to be hard to hear''
|}
== Non-finite Forms ==
: '''''Non-finite verb forms''''' are
::* not conjugated for person or number
::* cannot form a predicate
::* and do not have a subject.
: There are three kinds of non-finite verb forms in Mirad:
::* '''''infinitives''''': the dictionary lookup form of a verb, ending in '''-er'''
:::* '''der'''....''to say (present active)''
:::* '''tixayer'''....''to have studied'' (past active),
:::* '''xwer'''....''to be done'' (present passive)
:::* '''xwayer'''....''to have been done'' (past passive)
::* '''''gerunds''''': verbal nouns, ending in '''-en'''
:::* '''byasen'''....''(the act of) standing''
::* '''''participles''''': verbal adjectives, ending in '''-a'''
:::* '''tejea'''....''living (alive)'' (present active)
:::* '''jeteaxwea'''....''being watched'' (present passive)
:::* '''twa'''....''known'' (perfect passive)
:::* '''piya'''....''departed'' (perfect active)
=== Infinitives ===
: Verbs are listed in the dictionary under the '''''active voice simple aspect infinitive''''' form, which always ends in '''er''' and means ''to X'', or rarely the passive voice simple aspect infinitive form, which ends in '''wer''' and means ''to be Xed''. The part of the verb form minus the '''-er''' or '''-wer''' is the '''''verb stem'''''. Very rarely a verb can be expressed as a past active or past passive infinitive in '''ayer''' and '''awer''', respectively. (For example: '''Tejayer boy ifawer nazase glo.'''....''To have lived without having loved counts little.'').
:{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:1.6em"
|+ Infinitive Stems
|-
! Infinitive || Stem !! Ending
|-
| '''agser'''....''to grow'' || '''ags-''' || '''-er'''
|-
| '''igxer'''....''to quicken'' || '''igx-''' || '''-er'''
|-
| '''per'''....''to go'' || '''p-''' || '''-er'''
|-
| '''xwer'''....''to happen, be done'' || '''x-''' || '''-wer'''
|-
| '''tejayer'''....''to have lived'' || '''tej-''' || '''-ayer'''
|-
| '''ifawer'''....''to have loved'' || '''if-''' || '''-awer'''
|}
: The infinitive in Mirad is used very much as its counterpart in English. The infinitive can be marked for two aspects (simple, perfect) and two voices (active, passive), as shown in the chart below, where the verb stems are underlined:
{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:1.6em;"
|+ Active and Passive Infinitive Stems
|-
! Aspect !! Active Voice !! Passive Voice
|-
!row=1| Simple
| '''<u>igx</u>er'''....''to quicken'' || '''<u>igx</u>wer'''....''to be quickened''
|-
!row=1| Perfect
| '''<u>igx</u>ayer'''....''to have quickened'' || '''<u>igx</u>awer'''....''to have been quickened''
|}
: In the above chart,
::* the verb stem is '''igx-''' and
::* the infinitive marker is '''-er''';
::* the simple aspect active voice marker is zero;
::* the simple aspect passive voice marker is '''w''';
::* the perfect aspect active voice marker is '''-ay-''';
::* the past aspect passive voice marker is '''-aw-'''.
The passive voice infinitive of a verb will not appear in the dictionary unless it has a special meaning, such as '''xwer''' ''to happen (= to be done)''. The perfect infinitives are never listed in the dictionary.
=== Gerunds ===
: The gerund is a verbal noun like English ''playing'' in ''playing ball.''
: The gerund has two possible '''''aspects''''' (simple and perfect) and two possible '''''voices''''' (active and passive):
{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:3.2em; "
|+ Gerund Formation
|-
! Aspect !! Voice !! Ending !! Example
|-
!row=1| Simple !! Active
| '''-en''' || '''agax<u>en</u>'''....''magnifiying, magnification''
|-
!row=1| Simple !! Passive
| '''-wen''' || '''agax<u>wen</u>'''....''being magnified''
|-
!row=1| Perfect !! Active
| '''-ayen''' || '''byek<u>ayen</u>'''....''having cured''
|-
!row=1| Perfect !! Passive
| '''-awen''' || '''byek<u>awen</u>'''....''having been cured''
|}
: Note: Intransitive verbs like '''per''' ''to go'' do not have a passive gerund form.
: Lexicalized gerunds, such as '''sanxen''' ''formation, forming'' generally appear in the dictionary in the active voice.
: Some verbs have a special gerundive form ending in '''-eyn''', which refers to a single action:
::* '''xen'''....''doing'' vs. '''xeyn'''....''deed''
::* '''axlen'''....''acting'' vs. '''axleyn'''....''action''
::* '''abbalen'''....''applying'' vs. '''abbaleyn'''....''application''
: Verbs having an '''-eyn''' form are lexical forms listed in the dictionary.
: Another special gerundive (but lexical) ending is '''-un''', which expresses the result of an action, eg.:
::* '''zyegxer'''....''to puncture'' <big>-></big> '''zyegxun'''....''a puncture''
::* '''zyeuber'''....''to transmit'' <big>-></big> '''zyeubun'''....''a broadcast''
::* '''deuzer'''....''to sing'' <big>-></big> '''deuzun'''....''a song''
: These words are listed in the dictionary and lexical forms, not conjugated forms.
: Some examples of gerund usage:
::* ('''sanxer'''....''to form'') '''Ha <u>sanxen</u> bi hia mar efxa amroni bi jabi.'''....''The <u>forming</u> (or: <u>formation</u>) of this star took millions of years.''
::* ('''deuzer'''....''to sing'') '''Iyta <u>deuzen</u> sa gla via.'''....''Her <u>singing</u> was very beautiful.''
::* ('''poper'''....''to travel'') '''<u>Popen</u> se yika yex.'''....''<u>Traveling</u> is hard work.''
::* ('''teeter'''....''to hear'') '''<u>Teetwen</u> fiay se teskyia av dezuti.'''....''<u>Being heard</u> well is important for actors.''
::* ('''teater'''....''to see'') '''<u>Teaten</u> se <u>vyatexen</u>.'''.....''<u>Seeing</u> is <u>believing</u>.''
::* ('''uper'''....''to come'') '''His se ha jeb bi <u>Upen</u>.'''....''This is the season of <u>Advent</u> (coming).''
::* ('''tadier'''....''to get married'') '''Ata <u>tadiayen</u> ewa jodi bixa tepzex.'''....''My <u>having married</u> twice drew attention.''
::* ('''aker'''....''to win'') '''At voy ta ita <u>akawen</u> hua nazuun.'''....''I did not know about his <u>having won</u> that prize.''
: Gerunds, being verb forms, can take direct and indirect objects:
::* '''At ifxwe bey eta buayen at hua nas.'''....''I am pleased by your having given me that money.''
::* '''Tojben eut voy se kebiyaf.'''....''Killing yourself is not an option.''
=== Participles ===
: Participles are verbal adjectives and can modify nouns and pronouns. Since they act as adjectives, they have the adjectival ending '''-a'''. Participles are marked by '''''aspect''''' (simple, progressive, perfect, imminent, potential) and '''''voice''''' (active, passive).
: The aspect markers per voice are:
:{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:1.6em;"
|+ Aspect Markers
|-
! Aspect !! Voice !! Form !! Example
|-
! rowspan=2| Progressive
! rowspan=1 | Active
| '''-ea-''' || '''tejea'''....''living''
|-
! rowsspan=1 | Passive
| '''wea''' || '''xwea'''....''happening, being done''
|-
! rowspan=2| Perfect
! rowspan=1 |Active
| '''-ya''' || '''pya'''....''gone'' (< '''pyaa'''<sup>1</sup>)
|-
! rowspan=1| Passive
| '''-wa''' || '''xwa'''....''done'' (< '''xwaa'''<sup>1</sup>)
|-
! rowspan=2| Imminent
! Active
| '''-oa''' || '''tojoa'''....''about to die''
|-
! rowspan=1 | Passive
| '''-woa''' || '''dodelwoa'''....''about to be announced''
|-
! rowspan=2| Potential
! Active
| '''-ua''' || '''tojbua'''....''lethal''
|-
! rowspan=1| Passive
| '''-wua''' || '''opoxwua'''....''unstoppable''
|}
: <small><sup>1</sup>: The double '''aa''' in the perfect endings is reduced to '''a'''.</small>
: '''''Note 1:''''' The perfect active particple ending in '''-ya''' is used only for intransitive verbs like '''per''' (''to go''). '''He is <u>gone</u>.''' is expressed by '''Wit se <u>pya</u>'''.
: '''''Note 2:''''' The potential aspect, represented by the vowel '''u''' is much like the conditional in English, but is not considered a tense in Mirad. For example, '''tojbu''' means ''would kill'' and the participle '''tojbua''' means ''lethal'' (referring to something that ''would/has the potential to kill''). More about this in a later section.
: '''''Note 3:''''' There is another form of the progressive participle that falls in the lexical, rather than morphological category, in that such forms are listed in the dictionary as adjectives. For example, in the phrase ''The animals <u>bothering</u> our bird feeder...'', the participle ''bothering'' would be '''oboxea''' in Mirad. By inserting the letter '''y''' between the verb stem and the participial ending, the participle becomes an adjective denoting a propensity or habit, as in ''bothersome'' ('''obox<u>y</u>ea'''). Such participles are invariably in the active voice. Most such adjectives in English end in ''-ive'' as in ''repulsive'' or ''-ly'' as in ''wiggly'' or ''-ous'' as in ''circuitous.'' Such adjectives in Mirad are listed in the dictionary and end in '''-yea'''.
: Adverbial participles can be made from the above adjectival participles, by suffixing the letter '''y'''. Examples:
::* '''Iyt yepa ha tim <u>deuzeay</u>.'''....''She entered the room <u>singing</u>.''
::* '''<u>Ujbaway</u> ha dodal, it pia.'''....''The speech <u>having been finished</u>, he left.''
: Also, the above participles can be converted into abstract nouns by suffixing '''n'''. Examples:
::* '''tiluwa'''....''drinkable'' <big>→</big> '''tiluwan'''....''potability''
::* '''tojbua'''....''lethal'' <big>→</big> '''tojbuan'''....''lethality''
::* '''mansea'''....''shining'' <big>→</big> '''he <u>mansean</u> bi iyta deuzen'''....''the <u>brilliance</u> of her singing''
::* '''aakaxyea'''....''inventive'' <big>→</big> '''aakaxyean'''....''inventiveness''
: Furthermore, these participles can sometimes be pronominalized with '''s''' for things and '''t''' for people or living things. These forms can, in turn, be pluralized:
::* '''xwa'''....''done'' <big>→</big> '''xwas'''....''what is done, a happening''
::* '''xwa'''....''done'' <big>→</big> '''xwasi'''....''happenings, deeds''
::* '''otwa'''....''unknown'' <big>→</big> '''otwas'''....''what is not known, a mystery''
::* '''osexea'''....''destroying'' <big>→</big> '''osexeas'''....''a destroyer''
::* '''tojbua'''....''lethal'' <big>→</big> '''tojbuas'''....''something lethal, a lethal thing''
::* '''tojboa'''....''moribund'' <big>→</big> '''tojboati'''....''people about to die, fatal cases''
::* '''tejea'''....''living'' <big>→</big> '''tejeat'''....''a living person''
::* '''tejea'''....''living'' <big>→</big> '''tejeasi'''....''living things''
: There is a special tenseless, nominalized, animate participle used for '''''agent''''' nouns (English ''one who does something, Xer'', ''Xant'', ''Xist''), which refers to a person who habitually does some action, perhaps as a profession or trade. These agent nouns end in '''-ut'''.
::* '''sexut'''....''builder''
::* '''nuut'''....''supplier''
::* '''tojbut'''....''killer''
::* '''ifut'''....''lover''
::* '''akuti'''....''winners''
: Note: There is a slight difference of meaning between the tensed participial pronoun '''ha akeat'''....''the one winning'' and the non-tensed agent noun '''ha akut'''....''the winner''.
: Similarly, there is a special tenseless, nominalized, <u>in</u>animate participle used for a thing that performs the action denoted by the verb stem. These agent nouns end in '''-us'''.
::* '''yuxus'''....''aid (a thing that helps)''
::* '''byuxwus'''....''button (a thing that gets touched on the keyboard)''
::* '''paxus'''....''motive (a thing that moves one)''
::* '''jaupus'''....''precedent (a thing that comes before)''
: The above '''-us''' ending contrasts with the endings '''-ar''' (''instrument''), '''-ir''' (''machine''), '''-ur''' (''motor, engine''), which are physical objects and not always suffixed to a verbal root.
== Finite Forms ==
[[File:Auxiliary verbs tree 3.png|thumb|]]
: In Mirad, finite verb forms are those that can take a person subject, serve as a predicate, and be conjugated. Finite verb forms are conjugated by using suffixes indicating, through their presence or absence, the following categories:
<div style="background: lightyellow;{{text default color}};">
::* TENSES
:::# '''''present'''''
:::# '''''past'''''
:::# '''''future'''''
:::# '''''atemporal'''''
::* MOODS
:::# '''''indicative'''''
:::# '''''hypothetical'''''
::* ASPECTS
:::# '''''simple'''''
:::# '''''progressive'''''
:::# '''''perfect'''''
:::# '''''imminent'''''
:::# '''''potential'''''
::* VOICES
:::# '''''active'''''
:::# '''''passive'''''
:::# '''''reflexive'''''
:::# '''''reciprocal'''''
</div>
: Person and number are not marked on the verb form itself. For example, ''am'', ''is'', ''are'', which change according to the person subject in English, are all expressed with the same verb form in Mirad: '''se'''. Thus, '''at se'''....''I am'', '''et se'''....''you are'', '''it se'''....''he/she/it is'', etc.
=== Moods ===
: There are two moods in Mirad:
::* '''''indicative'''''
::* '''''hypothetical'''''.
===== Indicative Mood =====
: The '''''indicative''''' form of the verb indicates an action or state that occurs in actual time, such as ''he went'', ''he is going'', ''he will go.''
: The indicative mood has three tenses, '''''present''''', '''''past''''', '''''future''''', indicated by the suffixes '''-e''', '''-a''', and '''-o''', respectively.
===== Hypothetical Mood =====
: Wheras the indicative verb forms expresses actuality in time, the '''''hypothetical mood''''' expresses one of the non-actuality situations below and uses the vowel '''u'''.
::* a command , i.e. the '''''imperative''''' (''Go!'')
::* a wish or suggestion, i.e. the '''''hortative''''' or '''''jussive''''' (''May the king live long!'', ''Let's celebrate!'')
::* an unrealized situation, i.e. the '''''subjunctive''''' (''It is important that you <u>be</u> early.'')
::* an imagined if-then-situation, i.e. the '''''conditional''''' (''If I <u>were</u> rich, I <u>would be</u> happy.'')
=== Aspects ===
: There are five aspects in the Mirad verb system.
<div style="background: lightyellow;{{text default color}};">
::* the '''''simple''''' aspect (default), i.e. non-progressive, non-perfect, non-imminent, and non-conditional.
::* the '''''progressive''''' aspect, i.e. an action or state on-going in the particular tense, using '''ey'''
::* the '''''perfective''''' aspect, i.e. an action or state anterior or already completed, using '''ay'''
::* the '''''imminent''''' aspect, i.e. an action or state about to happen, using '''oy'''
::* the '''''potential''''' aspect, i.e. an action potentially happening, using '''uy'''
</div>
===== The Simple Aspect =====
:: Unless specifically marked, the default aspect is '''''simple''''', i.e. non-progressive, non-perfect, non-imminent, and non-conditional. Three indicative tenses can be expressed in the simple aspect:
::* Present with '''e'''
::* Past with '''a'''
::* Future with '''o'''.
:: An atemporal verb ending in '''u''' in the simple aspect is considered hypothetical and expresses three things, depending on how it is used in the sentence:
::* a conditional like ''I would go (if...)''
::* an imperative like ''Go!''
::* a hortative like ''Let's go!''
::* a subjunctive like ''(It is important that) we go.''
:: Here is a chart showing the simple, active voice instantiations of the Mirad verb '''per''' (''to go'') with the endings underlined:
{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:3.2em;"
|+ Simple Active Conjugation of '''Per'''
|-
! Mood !! Tense !! Aspect !! Voice !! Instantiation !! Verb '''per'''
|-
!row=1| Indicative !! Present !! Simple !! Active !!
| '''At p<u>e</u>'''....''I go''
|-
!row=1| Indicative !! Past !! Simple !! Active !!
| '''At p<u>a</u>'''....''I went''
|-
!row=1| Indicative !! Future !! Simple !! Active !!
|'''At p<u>o</u>'''....''I will go''
|-
!row=1 rowspan=4 | Hypothetical
!rowspan=4| Atemporal
!rowspan=4| Simple
!rowspan=4| Active
! Conditional
|'''At p<u>u</u>'''....''I would go''
|-
! Hortative/Optative/Jussive
|'''Van yat p<u>u</u>!'''....''Let's go!''
|-
! Imperative
|'''P<u>u</u> tam!'''....''Go home!''
|-
! Subjunctive
|'''Se efwa van et p<u>u</u>.'''....''It is necessary that you go.''
|}
: Note that the last four instantiations are the same tense, but differ in syntax. For example, if the verb form is hypothetical, atemporal, simple, active and has no subject, it operates as an imperative.
==== The Simple Indicative Present Active Tense ====
:: The simple indicative present instantiation is marked with the vowel suffix '''e''' and has a non-progressive ('''''habitual''''') aspect as in English ''I work'' or ''I live''. Progressive aspect forms like ''I am studying'' are explained later.
:: Examples:
:::* '''At <u>yexe</u> be tam.''' ....''I <u>work</u> at home''.
:::* '''Hia tom <u>se</u> nam.''' ....''This building <u>is</u> a store.''
:::* '''Ha amur <u>yuzpe</u> ha imer.'''....''The moon <u>goes around</u> the earth.''
==== The Simple Indicative Past Active Tense ====
: The simple indicative past tense instantiation is marked with the vowel suffix '''a''' and has a non-progressive (punctual) meaning as in English ''I did something at some particular point in time''. The simple past contrasts in aspect with the past progressive (''I was doing something'') or the present perfect (''I have done something''), or past potential (''I would have done something''). The simple past is punctual, that is, it describes an event that occurred at a particular point in time.
: Examples:
::* '''Iyt <u>iba</u> ha nyuf zojub.''' ....''She <u>received</u> the package yesterday.''
::* '''At <u>ujba</u> ha dyes ji iwa jwobi.''' ....''I <u>finished</u> the book three hours ago.''
::* '''His <u>kyesa</u> exag hijub.'''....''This <u>happened</u> twice today.''
==== The Simple Indicative Future Active Tense ====
: The simple indicative future tense is marked with the vowel suffix '''o''' and has the same meaning as in English ''I will do something at some particular point in the future''.
: Examples:
::* '''Yit <u>tadso</u> zajab.'''....''They <u>are going to get married</u> next year.''
::* '''Hua kaxon <u>ujako</u>.''' ....''That solution <u>will work</u>.''
::* '''At <u>so</u> him hoj et <u>upo</u>.'''....''I <u>will be</u> here when you <u>(will) come.</u><sup>1</sup>''
:: Note 1: Unlike in English, Mirad does not use the present tense for a real future. There is also no sequence of tenses in Mirad (such as, ''He said he was coming.''. In Mirad, this would be expressed as ''He said he <u>will</u> come.'').
==== The Simple Hypothetical Atemporal Active Tense ====
: A verb form ending in '''u''' like '''pu''' has no time value and is used to express unreal actions or states, such as the '''''imperative''''', '''''hortative''''', '''''conditional''''', or '''''subjunctive'''''.
: Examples:
::* '''<u>Upu</u> him!'''....''<u>Come</u> here!'' ('''''imperative''''')
::* '''<u>Von upu</u>!''' ....''<u>Don't come</u>!'' ('''''negative imperative''''')
::* '''Ha edweb <u>fu</u> teater et.''' ....''The king <u>would like</u> to see you.'' ('''''conditional''''')
::* '''Ven at <u>su</u> et, at <u>dolu</u>.''' ....''If I <u>were</u> you, I <u>would be</u> quiet.'' ('''''conditional''''')
::* '''Van yeyt <u>ujaku</u> be yeyta yexneadi.''' ....''May all you (women) <u>succeed</u> in your careers.'' ('''''hortative''''')
::* '''Van yat <u>ijbu</u> bay fyadil.''' ....''Let's <u>begin</u> with a prayer.'' ('''''jussive''''')
::* '''Se teskyia <u>van et puu</u> jwa.''' ....''It's important <u>that you arrive</u> early.'' ('''''subjunctive''''')
::* '''Se teskyia <u>von et puu</u> jwo.'''....''It's important <u>that you not arrive</u> late.'' ('''''negative subjunctive''''')
: Hypothetical verb forms ending in '''-u''' can be interpreted in various ways, depending on the following syntactical patterns in the sentence:
::* Generally, if a verb form ending in '''-u''' begins a sentence and has no subject, then it is an IMPERATIVE (a command). For example, '''Ipu!''', ''Go away!''.
::* If the verb form has a subject not preceded by the complementizers '''van''', '''ven''', or '''von''', then it is probably a conditional predicate like '''At fu per.'''....''I <u>would like</u> to go.''.
::* If the subject of the verb is preceded by '''ven'''....''if'', then it is a conditional clause as in '''Ven at <u>su</u> nasikat...'''....''If I <u>were</u> a rich man.''.
::* If the subject is preceded by '''Van'''....''that/let/may'' or '''von'''....''don't'', then it is a hortative wish like '''Van et yagteju.'''....''May you live long.'' or a jussive suggestion like '''Van yat fyadilu.'''....''Let us pray.'' or a prohibition like '''Von tiliu his!'''....''Don't drink this!''.
=== Voices ===
: Mirad has four voices:
::* Active
::* Passive
::* Reflexive
::* Reciprocal.
==== Active Voice ====
: The default voice is active, i.e. the subject of the verb is doing the action.
::* '''At teata ha kyes.'''....''I saw the event.''
==== Passive Voice ====
: A verb form is converted from active to passive by inserting a '''w''' just after the stem of the verb form. The past passive particle ending '''-waa''' is usually abbreviated to '''-wa''' (''done'' is '''xwa''').
: The following chart shows the distinction between active and passive voice of various verbs:
:{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:4.8em"
|+ Contrasting Active and Passive Voice
! Verb Form !! Active !! Active<br>Example !! Passive !! Passive<br>Example
|-
!row=1| Infinitive
| '''xer'''<br>''to do'' || '''At fe xer fi.'''<br>''I want to do well.'' || '''xwer'''<br>''to be done'' || '''Ese hyos xwer.'''<br>''There is nothing to be done.''
|-
!row=1| Present Participle
| '''sexea'''<br>''constructing'' || '''Ha nunxob sexea hia tom...'''<br>''The firm constructing this building...''|| '''sexwea'''<br>''being constructed'' || '''His se sexewa.'''<br>''This is under construction.''
|-
!row=1| Present
| '''xe'''<br>''do/does'' ||'''At xe fi be tixam.'''<br>''I do well in school.'' || '''xwe'''<br>''is done'' || '''Huyenasi hoj xwe.'''<br>''Such things are never done.''
|-
!row=1| Past Participle
| '''xaa'''<br>''having done'' || '''Iyt, xaa hya iyta yex,...'''<br>''She, having done all her work,...'' ||'''xwa'''<br>''done'' || '''Hyas se xwa.'''<br>''Everything is done.''
|-
!row=1| Past
| '''tojba'''<br>''killed'' || '''Duhot tojba hwut?'''<br>''Who killed that guy?'' || '''tojbwa'''<br>''was killed'' || '''Duhoj wit tojbwa?'''<br>''When was he killed?''
|-
!row=1| Hypothetical
| '''bakxu'''<br>''heal'' || '''Bakxu at!'''<br>''Heal me!'' || '''bakxwu'''<br>''be healed'' || '''Van iyt bakxwu.'''<br>''May she be healed.''
|}
: Intransitive verbs cannot be made passive. For example, '''tajer'''....''to be born'' is intransitive (takes no object) and has no passive voice form. However, the transitive verb '''tajber'''....''to bear, give birth'' can be passive, as in '''Ha tudet <u>tajbwa</u> zajub.'''....''The child <u>was delivered</u> yesterday'' (as opposed to '''Ha tudet <u>taja</u> zajub.'''....''The child <u>was born</u> yesterday.)'' Notice how this works with '''yijer''' (''to open''):
::* '''Ha mes yija.'''....''The door opened (by itself).'' (medio-passive)
::* '''Ha mes yijpa.'''....''The door came open.'' (dynamic medio-passive)
::* '''Yijbu ha mes.'''....''Open the door.'' (transitive active)
::* '''Ha mes yijbwa.'''....''The door was opened (by someone).'' (passive)
: Impassive verbs form their past particple with the ending '''ya''', but these forms are somewhat rare. Here are some examples:
::* '''per'''....''to go'' -> '''pya'''....''gone''
::* '''tajer'''....''to be born'' -> '''tajya'''....''born'' (ex.'''Jesus tajya bi Marya.''''....''Jesus, born of Mary'')
::* '''tojer'''....''to die'' -> '''tojya'''....''dead''
::* '''loteaser'''....''to disappear'' -> '''loteasya'''....''disappeared'' (ex. '''Ha loteasya tobi be Arogem.'''....''the disappeared persons in Argentina.'')
==== Reflexive Voice ====
: A verb is made reflexive by prefixing the reflexive pronoun '''ut''' (''self''), for example:
::* '''tojber'''....''to kill'' <big>→</big> '''uttojber'''....''to kill oneself''
::* '''vyilxer'''....''to wash'' <big>→</big> '''utvyilxer'''....''to wash up''
::* '''teater'''....''to see'' <big>→</big> '''utteater'''....''to see oneself''
::* '''yabler'''....''to lift'' <big>→</big> '''utyabler'''....''to lift oneself'' → '''Utyablu!'''....''Lift yourself up!''
::* '''trer'''....''to know'' <big>→</big> '''uttrer'''....''to know oneself'' → '''Uttru!'''....''Know thyself!''
==== Reciprocal Voice ====
: A verb is made reciprocal by prefixing the reciprocal pronoun '''hyuit'''....''one another'', for example:
::* '''tojber'''....''to kill'' <big>→</big> '''hyuittojber'''....''to kill one another''
::* '''vyilxer'''....''to wash'' <big>→</big> '''hyuitvyilxer'''....''to wash one another''
::* '''teater'''....''to see'' <big>→</big> '''hyuitteater'''....''to see one another''
: Both the reflexive pronoun and reciprocal pronoun can be used as standalone objects. However, the plural form '''yut''' is used if the subject is plural, for example:
::* '''Yit vyilxa <u>yut</u>.'''....''They (f.) washed up. (= washed <u>selves</u>).''
::* '''Ha twobeti dizeuda <u>hyuit</u>.'''....''The boys laughed at <u>one another</u>.''
: The word '''hyuit''' is a hybrid of '''hyit'''....''the same one'' combined with '''hyut'''....''the other one''.
==== Aspects Revisited ====
: Mirad verbs have the following aspects:
::* '''''Simple''''' -- this is the default aspect, shown above, i.e. non-progressive, non-perfect, non-imminent, and non-potential.
::* '''''Progressive''''' -- this is an aspect where the verb describes an on-going action or state spread over time.
::* '''''Perfect''''' -- this presents the action or state as anterior, or completed prior to another action or state.
::* '''''Immininent''''' -- this describes an action or state ''about to happen.''
::* '''''Potential''''' -- this refers to an action or state where something is ''possible''.
==== The Simple Aspect ====
: The following chart presents Mirad verbs in the Simple aspect. In the active voice, the tense vowels '''a''', '''e''', '''o''', and '''u''' are affixed to the stem. In the passive voice, the passive marker consonant '''w''' is inserted between the stem and the final tense vowels. The simple present tense refers to actions or states that are habitual (''I regularly go to school.''), regular (''The earth revolves around the sun.''), or permanent (''Blue is a color.''). The simple past refers to actions or states that occurred at a fixed point in time (''I did my homework last night.''). The simple future refers to actions or states that will occur at some particular point in the future (''The sun will rise tomorrow at dawn.''). The simple atemporal hypothetical ( = conditional) refers to an imagined action or state that has not be realized (''You would make a good president.'').
:{| class="wikitable" style="background:lightyellow;{{Text default color}};font-size:smaller;"
|+ Simple Aspect
|-
! Aspect !! Tense !! Mood !! Active Voice !! Passive Voice
|-
!row=1| Simple !! Present !! Indicative
| '''At x<u>e</u>'''....''I do'' || '''Has x<u>we</u>'''....''It is done''
|-
!row=1| Simple !! Past !! Indicative
| '''At x<u>a</u>'''....''I did'' || '''Has x<u>wa</u>'''....''It was done''
|-
!row=1| Simple !! Future !! Indicative
| '''At x<u>o</u>'''....''I will do'' || '''Has x<u>wo</u>'''....''It will be done''
|-
!row=1| Simple !! Atemporal !! Hypothetical
| '''At x<u>u</u>'''....''I would do''<sup>1</sup> || '''Has x<u>wu</u>'''....''It would be done''
|}
: 1: Absence of tense (Atemporal) + Hypothetical mood = '''''conditional'''''.
==== The Progressive Aspect ====
: The following chart presents Mirad verbs in the Progressive aspect. The present tense vowel '''e''' followed by a buffer consonant, are inserted between the stem and the final tense vowel. The buffer consonant is '''y''' in the active voice, or '''w''' in the passive voice.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; "
|+ Progressive Aspect
|-
! Aspect !! Tense !! Mood !! Active Voice !! Passive Voice
|-
!row=1| Progressive !! Present !! Indicative
| '''at x<u>eye</u>'''....''I am doing'' || '''Has x<u>ewe</u>'''....''it is being done''
|-
!row=1| Progressive !! Past !! Indicative
| '''at x<u>eya</u>'''....''I was doing'' || '''Has x<u>ewa</u>'''....''it was being done''
|-
!row=1| Progressive !! Future !! Indicative
| '''at x<u>eyo</u>'''....''I am going to be doing'' || '''Has x<u>ewo</u>'''....''it will be happening''
|-
!row=1| Progressive !! Atemporal !! Hypothetical
| '''at x<u>eyu</u>'''....''I would be doing'' || '''Has x<u>ewu</u>'''....''it would be happening''
|}
==== The Perfect Aspect ====
: The following chart presents Mirad verbs in the Perfect aspect. The past tense vowel '''a''' following by a buffer consonant are inserted between the stem and the final tense vowel. The buffer consonant is '''y''' in the active voice, or '''w''' in the passive voice.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Perfect Aspect
|-
! Aspect !! Tense !! Mood !! Active Voice !! Passive Voice
|-
!row=1| Perfect !! Present !! Indicative
| '''At x<u>aye</u>'''....''I have done'' || '''Has x<u>awe</u>'''....''It has been done''
|-
!row=1| Perfect !! Past !! Indicative
| '''At x<u>aya</u>'''....''I had done'' || '''Has x<u>awa</u>'''....''It had been done''
|-
!row=1| Perfect !! Future !! Indicative
|'''At x<u>ayo</u>'''....''I will have done'' || '''Has x<u>awo</u>'''....''It will have been done''
|-
!row=1| Perfect !! Atemporal !! Hypothetical
| '''At x<u>ayu</u>'''....''I would have done'' || '''Has x<u>awu</u>'''....''It would have been done''
|}
==== The Imminent Aspect ====
: The following chart presents Mirad verbs in the Imminent aspect (sometimes referred to as the Prospective aspect). The future tense vowel '''o''' following by a buffer consonant are inserted between the stem and the final tense vowel. The buffer consonant is '''y''' in the active voice, or '''w''' in the passive voice. Not that only indicative mood imminent tenses are ever used.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Imminent Aspect
|-
! Aspect || Tense !! Mood !! Active Voice !! Passive Voice
|-
!row=1| Imminent !! Present !! Indicative
| '''At x<u>oye</u>'''....''I am about to do'' || '''Has x<u>owe</u>'''....''It is about to be done''
|-
!row=1| Imminent !! Past !! Indicative
| '''At x<u>oya</u>'''....''I was about to do'' || '''Has x<u>owa</u>'''....''It was about to be done''
|}
==== The Potential Aspect ====
: The following chart presents Mirad verbs in the Potential aspect. The hypothetical vowel '''u''' followed by a buffer consonant are inserted between the stem and the final tense vowel. The buffer consonant is '''y''' in the active voice, or '''w''' in the passive voice. The future potential and hypothetical potential aspects are never used.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Potential Aspect
|-
! ASPECT !! TENSE !! MOOD !! ACTIVE VOICE !! PASSIVE VOICE
|-
!row=1| Potential !! Present !! Indicative
| '''At x<u>uye</u>'''....''I am to do'' || '''Has x<u>uwe</u>'''....''It is to be done, it is doable''
|-
!row=1| Potential !! Past !! Indicative
| '''At x<u>uya</u>'''....''I was to do'' || '''Has x<u>uwa</u>'''....''It was to be done, it was doable''
|}
== Verb Conjugation Chart ==
: The following chart presents the totality of the Mirad affirmative verb conjugation system using the verb '''xer'''....''to do'' and its passive '''xwer'''....''to be done, happen''. The rows beginning with a light blue background are finite forms, while those beginning with light green are non-finite forms.
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Verb Conjugation Chart
|- valign=top
!rowspan=2| State !!rowspan=2| Mood !!rowspan=2| Aspect !!rowspan=2| Tense !! colspan=4|Voice
|-
! Active!!Passive
|-
! rowspan=16 style="background: lightblue;{{text default color}};"|Finite !!rowspan=3| Indicative !!rowspan=4| Simple !! Present
| '''xe''' <br>''does''||'''xwe'''<br>''is done, happens''
|-
! Past
| '''xa''' <br>''did''||'''xwa'''<br>''was done, happened''
|-
! Future
| '''xo''' <br>''will do''||'''xwo'''<br>''will be done, will happen''
|-
! Hypothetical||
| '''xu''' <br>''would do, do!''||'''xwu'''<br>''would be done, would happen, be done!''
|-
!rowspan=3| Indicative !!rowspan=4| Progressive !! Present
| '''xeye'''<br>''is doing''||'''xewe'''<br>''is being done, is happening''
|-
! Past
| '''xeya''' <br>''was doing''||'''xewa'''<br>''was doing, was happening''
|-
! Future
| '''xeyo'''<br>''will be doing''||'''xewo'''<br>''will be happening''
|-
! Hypothetical||
| '''xeyu''' <br>''would be doing''<br>''be doing!''||'''xewu'''<br>''would be happening''
|-
!rowspan=3|Indicative !! rowspan=4| Perfect !! Present
| '''xaye''' <br>''has done''||'''xawe''' <br>''has been done, has happened''
|-
! Past
| '''xaya''' <br>''had done''||'''xawa'''<br>''had been done, had happened''
|-
! Future
| '''xayo''' <br>''will have done''||'''xawo''' <br>''will have been done, will have happened''
|-
! Hypothetical !!
| '''xayu''' <br>''would have done''||'''xawu'''<br>''would have been done, would have happened''
|-
!rowspan=4| Indicative !! rowspan=2|Imminent !! Present
| '''xoye''' <br>''is about to do''||'''xowe'''<br>''is about to be done, is about to happen''
|-
! Past
| '''xoya'''<br>''was to be done'' ||'''xowa'''<br>''was to be done, was to happen''
|-
! rowspan=2|Potential !! Present
| '''xuye'''<br>''is supposed to do'' ||'''xuwe''' <br>''is supposed to happen''
|-
! Past
| '''xuya''' <br>''was supposed to do''||'''xuwa'''<br>''was supposed to be done, was supposed to happen''
|-
! colspan=6 style="background: black;color:white;"|
|-
! rowspan=2 style="background: lightgreen;{{Text default color}};"|Infinitive !! !! Simple !! rowspan=8|
| '''xer'''<br>''to do''||'''xwer'''<br>''to be done, to happen''
|-
! !! Perfect
| '''xayer'''<br>''to have done''||'''xawer'''<br>''to have been done, to have happend''
|-
! colspan=6 style="background: black;color:white;"|
|-
! rowspan=4 style="background: lightgreen;{{Text default color}};"|Participle !! !! Progressive
| '''xea'''<br>''doing'' ||'''xewa'''<br>''being done, happening''
|-
! !! Perfect
| '''xya''' <br>''having done''||'''xwa'''<br>''done, happened''
|-
! !! Imminent
| '''xoa''' <br>''about to do''||'''xowa'''<br>''about to happen''
|-
! !! Potential
| '''xua'''<br>''bound to do'' ||'''xuwa'''<br>''doable''
|-
! colspan=6 style="background: black;color:white;"|
|-
!rowspan=2 style="background: lightgreen;{{Text default color}};" |Gerund
! !! Simple !!
| '''xen''' <br>''doing''||'''xwen''' <br>''being done, happening, event''
|-
! !! Perfect !!
| '''xayen'''<br>''having done''||'''xawen'''<br>''having happened''
|}
: Note 1: Intransitive verbs such as '''per''' ''to go'' have no passive forms. An expression such as ''They are gone.'' would be translated as '''Yit se pya'''.
== Negative Forms ==
: All of the above verb forms are affirmative. The indicative and conditional forms can be made negative by using the negative adverb '''voy''' (''not'', '' 'nt'', ''doesn't'', ''don't''). Those forms that are subjunctive, jussive, or imperative ending in '''-u''' use the negative subordinate conjunction '''von''' (''don't'', ''let not'', ''lest'').
: '''voy'''....''not''
::* '''At <u>voy</u> te.'''....''I <u>don</u>'t know.'' (indicative)
::* '''<u>Voy</u> mamilo.'''....''It will <u>not</u> rain.'' (indicative)
::* '''At <u>voy</u> xu hus.'''....''I would <u>not</u> do that.'' (conditional)
: '''von'''....''Let's not, don't, let it not''
::* '''<u>Von</u> mamilu.'''....''<u>Let it not</u> rain.'' (subjunctive)
::* '''<u>Von</u> yat fuyaku.'''....''<u>Let</u> us <u>not</u> despair.'' (jussive)
::* '''<u>Von</u> pu!'''....''<u>Don't</u> go.'' (imperative)
: Participles, gerunds, and infinitives can be negated with the prefix '''o-''' (''un-, non-'').
::* '''tosea'''....''feeling'' -> '''otosea'''....''unfeeling''
::* '''xwa'''....''done'' -> '''oxwa'''....''undone''
::* '''teliwa'''....''eaten'' -> '''oteliwa'''....''uneaten''
::* '''tejen'''....''living'' -> '''otejen'''....''not living''
::* '''buen'''....''giving'' -> '''obuen'''....''not giving''
::* '''buer'''....''to give'' -> '''obuer'''....''not to give''
::* '''ter'''....''to know'' => '''oter'''....''not to know, i.e. to ignore''
: Partciples, gerunds, and infinitives can also be negated with the word '''voy'' (''not''), eg:
::* '''voy tea ha dud'''....''not knowing the answer''
::* '''gel voy tejea'''....''like not living''
::* '''av voy xen hes'''....''for not doing something''
== How to Express Certain English Tenses ==
: English speakers have some tenses that do not fit into the above schema, and so Mirad uses a combination of verbs to achieve the same sense:
::* The English tense ''I have been studying French for four years.'' is translated in Mirad by '''At saye tixea Ferad ji uwa jabi.''' (Mirad present perfect of '''ser''' (''to be'') + the present participle of the main verb, '''tixer'''.
::* The English tense ''I had been studying'' is translated in Mirad by '''At saya tixer''', the past perfect of the verb '''ser''' (''to be'') + the present participle of the main verb, '''tixer'''.
::* The English tense ''I am going to be starring in that role.'' is translated in Mirad by '''At dezdebeyo be hua dezgon.''' (Mirad future progressive).
::* The modern Black English tense ''Don't you be doing that.'' is handled in Mirad by '''Von et xeyu hus.''' (Mirad imperative progressive).
== Transitive vs. Intransitive Verbs ==
: Transitive verbs, which can take a direct object, oppose themselves to intransitive verbs, which do not take a direct object. Some verbs are marked overtly for transitivity.
: Verbs that end in '''xer''' (''to do, -ify, -ize'') are by nature transitive, and often have intransitive counterparts in '''ser''' (''to be, become, -ify, -ize''). Likewise, verbs ending in '''ber''' (''to put, take'') are transitive and have intransitive counterparts in '''per''' (''to go''). Here are some examples:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Transitive vs. Intransitive
|-
! Transitive !! Intransitive
|-
| '''xer'''....''do'' || '''ser'''....''be''
|-
| '''agxer'''....''grow (something)'' || '''agser'''....''grow (up)''
|-
| '''amxer'''....''heat, make hot'' || '''amser'''....''become hot, heat up''
|-
| '''puxer'''....''throw'' || '''puser'''....''jump''
|-
| '''per'''....''go'' || '''ber'''....''put''
|-
| '''aber'''....''put on'' || '''aper'''....''get on''
|-
| '''yaber'''....''raise'' || '''yaper'''....''rise''
|-
| '''poxer'''....''stop (something)'' || '''poser'''....''(come to a) stop''
|-
| '''yuber'''....''bring'' || '''yuper'''....''approach''
|-
| '''yeber'''....''insert'' || '''yeper'''....''enter''
|}
::* '''At <u>agxe</u> vobi.'''....''I <u>grow</u> [TRANSITIVE] plants.''
::* '''Ha vobi <u>agseye</u> ig.'''....''The plants <u>are growing</u> [INTRANSITIVE] fast.''
::* '''<u>Poxu</u> ha pur!'''....''<u>Stop</u> [TRANSITIVE] the car!''
::* '''Ha pur <u>posa</u>.'''....''The car <u>stopped</u> [INTRANSITIVE].''
::* '''At <u>yaba</u> ha mis.'''....''I <u>raised</u> [TRANSITIVE] the window.''
::* '''Ha amar <u>yapaye</u>.'''....''The sun <u>has risen</u> [INTRANSITIVE].''
=== Marking -jer Verbs for Transitivity ===
: Note the following verbs, whose stems end in '''j''' are hard to pronounce with intransitive '''s''' and transitive '''x''', so these two endings are placed with '''p''' and '''b''', respectively, although the presence of the '''p''' is optional, i.e. it's presence or absence can slightly change the meaning from static to dynamic, eg. '''tujer'''....''to sleep'' vs. '''tujper'''....''to fall asleep''. The transitive forms can be either active or passive.
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Marking -jer Verbs for Transitivity
|-
! colspan=2|Intransitive !! colspan=2|Transitive
|-
! Static !! Dynamic !! Active !! Passive
|-
| '''Ha mes <u>yija</u>'''<br>''The door <u>opened</u>.'' || '''Ha nasyef <u>yijpa</u>'''<br>''The purse <u>came open</u>.'' || '''At <u>yijba</u> ha mes.'''<br>''I <u>opened</u> the door.'' || '''Ha mes <u>yijbwa</u> bey yelput.'''<br>''The door <u>was opened</u> by an intruder''
|-
| '''Ha mes <u>yuja</u>.'''<br>''The door <u>closed</u>.'' || '''Ha yanup <u>yujpa</u>.'''<br>''The meeting <u>adjourned</u>.'' || '''At <u>yujba</u> ha mes.'''<br>''I <u>closed</u> the door.''||'''Ha mes yeyfe <u>yujbwer</u> ja sumjob.'''<br>''The door should <u>be closed</u> by bedtime.''
|-
| '''Ha dezun <u>ijaye</u>.'''<br>''The play <u>has started</u>.''||'''Ha par <u>ijpa</u> boy poys.'''<br>''The car <u>started up</u> immediately.'' ||'''At <u>ijba</u> ata tyal.'''<br>''I <u>started</u> my meal.''||'''Ha tyal <u>ijbwa</u> jwa.'''<br>''The meal <u>was started</u> early.''
|-
| '''Ha dezun <u>ujaye</u>.'''<br>''The play has <u>ended</u>.''||'''Ata yex <u>ujpaye</u>.'''<br>''My work <u>has come to an end</u>.'' || '''A <u>ujba</u> ha dyes.'''<br>''I <u>finished</u> the book.''||'''Ha dyes hyoj <u>ujbwa</u>.'''<br>''The book never <u>got finished</u>.''
|-
| '''Ha tob <u>toja</u> zomoj.'''<br>''The man <u>died</u> yesterday evening.''||'''Ha tob <u>tojpa</u>.'''<br>''The man <u>dropped dead.</u>'' || '''Hot <u>tojba</u> ha twob?'''<br>''Who <u>killed</u> the man?''||'''Ha twob <u>tojbwa</u> bey ita tayd.'''<br>''The man <u>was killed</u> by his wife.''
|-
| '''<u>Teju</u>.'''<br>''<u>Live!</u>.''||'''<u>Tejpu!</u>.'''<br>''<u>Come alive!</u>.'' || '''Yat efe <u>tejber</u> ha twob.'''<br>''We need to <u>revive</u> the man.''||'''Ha twob yofwa <u>tejbwer</u>.'''<br>''The man could not <u>be revived</u>.''
|-
| '''Ha tobot <u>taja</u> zojub.'''<br>''The baby <u>was born</u> yesterday.'' || '''Hoj ha tobot <u>tajpo</u>?'''<br>''When <u>will</u> the baby <u>pop out</u>?'' || '''Iyt <u>tajba</u> awa twobot zojub.'''<br>''She <u>gave birth</u> to a baby boy yesterday.''||'''Ha twobot <u>tajbwa</u> jo eymoj.'''<br>''The baby boy was <u>birthed</u> after midnight.''
|-
| '''At <u>tija</u> jwe.'''<br>''I <u>woke up</u> on time.''||'''It voy <u>tijpa</u>.'''<br>''He did not <u>come to.</u>.'' || '''At <u>tijbo</u> et jwa.'''<br>''I will <u>wake (you) up</u> early.''||'''At voy fe <u>tijbwo</u> gra jwa.'''<br>''I don't want to <u>be woken</u> too early.''
|-
| '''At <u>tujeya</u>.'''<br>''I was <u>sleeping.</u>''||'''At <u>tujpeya</u>.'''<br>''I was <u>falling sleep</u>.'' || '''At <u>tujbo</u> it.'''<br>''I will <u>put (him) to sleep.</u>.''||'''Ha tobot <u>tujbwo</u> glojo.'''<br>''The baby <u>will be put to sleep</u> soon.''
|}
== Reflexive Verbs ==
[[File:TWC Hokitika Gorge • Stewart Nimmo • MRD 1.jpg|thumb|]]
: Reflexive verbs, where the object refers back to the subject, work just as in English, where the object is a reflexive pronoun, eg.:
::* '''At tujboye aut.'''....''I am going to kill myself.''
::* '''Tru eut!'''....''Know thyself!''
::* '''It gobla iut bey goblar.'''....''He cut himself with a knife.''
::* '''Ot yefe yuxer out.'''....''One must help oneself.''
: Sometimes, verbs are reflexive lexically and incorporate the reflexivity in the actual verb form using '''ut''' as the prefix:
::* '''uttujber'''....''commit suicide (= self-kill)''
::* '''utboler'''....''support oneself (= self-support)''
::* '''utdider'''....''wonder (= self-ask)''
: Sometimes, verbs are used reflexively in Mirad even though they are used simply intransitively in English, eg.:
::* '''Et efe <u>vyilxer eut</u>.'''....''You need to wash up [= <u>wash yourself</u>].'' (or)
::* '''Et efe <u>utvyilxer</u>.'''....''You need to wash up [= <u>self-wash</u>].''
== Omission of Prepositions After Certain Verbs ==
:: Some verbs inherently incorporate a preposition and so it is not necessary to use that assumed preposition before what would normally be an indirect object.
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Inherent Propositions
|-
! Preposition-Incorporating Verb !! Example
|-
| '''per'''....''go (to)'' || '''Pu tam!''' (Not: '''Pu bu tam!''') ''Go home.''<br>'''It pa Paris.'''....''He went to Paris.''
|-
| '''der'''....''say (to), tell'' || '''Du at eta dyun.'''....''Tell me your name.''<br>'''Du at has.'''....''Tell it to me.''
|-
| '''peser'''....''wait (for)'' || '''Pesu at.'''....''Wait for me.''
|-
| '''buer'''....''give (to)'' || '''Buu at hua dyes.'''....''Give me that book.''
|}
:: As in English, in omitting the inherent preposition in a sentence with both a direct object and an indirect object, place the indirect object before the direct object. If the direct object comes first, then the preposition must be overtly specified before the indirect object, eg. '''Buu <u>at</u> hus.'''....''Give me that.'' or '''Buu hus <u>bu at</u>.'''....''Give that <u>to me</u>.'' See more about this in the chapter on [[Mirad_Grammar/Syntax|Syntax]].
== Causative vs. Inchoative Verbs ==
: A causative verb has the sense ''to make something have some quality'', whereas an inchoative verbs means ''to become or take on the quality of something.''
=== Derived from Adjectives ===
: Adjectives can be converted into transitive/causative and intransitive/inchoative verbs. Causative verbs are always transitive (taking an object), while inchoative verbs are intransitive (not taking an object). English causative / inchoative verbs often end in ''-ify'' like ''magnify'', or ''-ate'', ''liberate'', or ''ize'', like ''sensitize''.
: To derive a causative verb from an adjective, add the suffix '''-xer'''....''to do'' to either the stem or the whole adjective (with the '''a''' ending). Whether you do the former or the latter depends on several factors, but the end result is slightly different in nuance. A verb with adjective stem + '''-xer''' is slightly more idiomatic or less literal than the adjective stem + '''axer'''.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ -axer vs -xer in Transitive Verbs
|-
! Adjective !! Causative/Transitive !! Causative/Transitive
|-
! '''-xer''' !! Literal !! Idiomatic
|-
| '''aga'''<br>''big'' || '''ag<u>a</u>xer'''<br>''to magnify'' || '''agxer'''<br>''to grow''
|-
| '''ana'''<br>''one'' || '''an<u>a</u>xer'''<br>''to unify'' || '''anxer'''<br>''to unite''
|-
| '''yona'''<br>''apart'' || '''yon<u>a</u>xer'''<br>''to separate'' || '''yonxer'''<br>''to cut''
|-
| '''yaga'''<br>''long'' || '''yag<u>a</u>xer'''<br>''to lengthen'' || '''yagxer'''<br>''to stretch''
|-
| '''yuga'''<br>''slow'' || '''yug<u>a</u>xer'''<br>''to retard'' || '''yugxer''' <br>''to brake''
|-
| '''sana'''<br>''formal'' || '''san<u>a</u>xer'''<br>''to formalize'' || '''sanxer'''<br>''to form''
|-
| '''gea'''<br>''equal'' || '''ge<u>a</u>xer'''<br>''to equalize'' || '''gexer'''<br>''to equal, equate''
|-
| '''jaa'''<br>''prior'' || '''ja<u>a</u>xer'''<br>''to prioritize'' || '''jaxer'''<br>''to prepare''
|-
| '''aota'''<br>''personal'' || '''aot<u>a</u>xer'''<br>''to personalize'' || '''aotxer'''<br>''to personify''
|}
: To derive an inchoative verb from an adjective, add the suffix '''ser'''....''to be'' to either the stem or the whole adjective.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Creating Inchoative Verbs
|-
! Adjective !! Inchoative/Intransitive !! Inchoative/Intransitive
|-
! '''-ser''' !! Literal !! Idiomatic
|-
| '''aga'''<br>''big'' || '''ag<u>a</u>ser'''<br>''to get bigger'' || '''agser'''<br>''to grow''
|-
| '''ana'''<br>''one'' || '''an<u>a</u>ser'''<br>''to unify'' || '''anser'''<br>''to unite, become united''
|-
| '''yona'''<br>''apart'' || '''yon<u>a</u>ser'''<br>''to become separate'' || '''yonser'''<br>''to break''
|-
|}
: Be careful to use the transitive, causative verb form when you have a direct object, and the intransitive, inchoative verb form when no direct objects are present or possible, eg.:
::* '''<u>Ansu</u> ey yet golxwo.'''....''<u>Unite</u> or you will be divided.'' [INTRANSITIVE]
::* '''At <u>yontadsa</u> hoj at sa eta jag.'''....''I <u>got divorced</u> when I was your age.'' [INTRANSITIVE]
::* '''Hisi <u>agaxo</u> hos et teate.'''....''These <u>will magnify</u> what you see.'' [TRANSITIVE]
::* '''Hia tud <u>agseye</u> ig.'''....''This child <u>is growing up</u> fast.'' [INTRANSITIVE]
::* '''Ata tayd <u>agxe</u> vosi be oyebzom.'''....''My wife <u>grows</u> flowers out back.'' [TRANSITIVE]
=== Derived from Nouns ===
: Transitive/causative/active and intransitive/inchoative/passive verbs can also be formed from nouns. The sense of the former is ''to make be X'' and of the latter, ''to become X''.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Verbs Derived from Nouns
|-
! Noun !! Transitive/Causative/Active !! Intransitive/Inchoative/Passive
|-
| '''mog'''....''ash'' || '''mogxer'''<br>''to incinerate'' || '''mogser'''<br>''to become ashes''
|-
| '''yan'''....''collection'' || '''yanxer'''<br>''to collect'' || '''yanser'''<br>''to get together''
|-
| '''tad'''....''spouse'' || '''tadxer'''<br>''to marry'' || '''tadser'''<br>''to get married''
|-
| '''yom'''....''ice'' || '''yomxer'''<br>''to freeze/make ice'' || '''yomser'''<br>''to freeze/become ice''
|-
| '''mag'''....''fire'' || '''magxer'''<br>''to burn, set fire to'' || '''magser'''<br>''to burn, get burned''
|-
| '''uk'''....''void'' || '''ukxer'''<br>''to empty'' || '''ukser'''<br>''become empty, empty out''
|}
=== Intermediary Causative Verbs ===
: Intermediary verbal causatives like ''have/get my car washed'', ''make/force him go'', ''get one's hair cut'' are formed by suffixing the causative verb infix '''-ux-''' (active) or '''uxw''' (passive) to the stem of the verb signifying the action to be arranged or caused by someone other than the subject, eg.:
::* '''At gobl<u>ux</u>o ata tayeb zajub.'''....''I will get my hair cut tomorrow.''
::* '''Et voy yafe p<u>ux</u>er at.'''....''You cannot make me go.''
::* '''Wit tojb<u>ux</u>a yit.'''....''He had them killed.''
::* '''At efe vyilx<u>ux</u>er ata pur.'''....''I need to have my car washed.''
::* '''Et up<u>ux</u>wa him av hes.'''....''You were made to come here for some reason.''
::* '''At bakamb<u>ux</u>o et.'''....''I will have you hospitalized.''
::* '''Et voy yafe deuz<u>ux</u>er at.'''....''You cannot make me sing.''
::* '''At hihid<u>ux</u>wa.'''....''I was tickled (= made to laugh).''
::* '''Eta deuz hihid<u>ux</u>a yat.'''....''Your song tickled us. (= Made us laugh.)''
::* '''Van het ivas<u>ux</u>u weti.'''....''May someone get you guys to be happy.''
::* '''Hua enzyukpur uzp<u>ux</u>a yata pur.'''....''That motorcycle caused our car to veer.''
== Subject-directed vs. Patient-directed Verbs ==
: The directionality of some verbs can be distinguished by the verbal formant infix '''-i-''' for an action or motion toward the speaker and '''-u-''' for an action or motion away from the speaker toward some patient, eg.:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Directional Verbs
|-
! Subject-directed !! Patient-directed
|-
| '''b<u>i</u>er'''....''to take'' || '''b<u>u</u>er'''....''to give''
|-
| '''nier'''....''to consume'' || '''nuer'''....''to supply''
|-
| '''nyier'''....''to order'' || '''nyuer'''....''to deliver''
|-
| '''nazunier'''....''win a prize'' || '''nazunuer'''....''award a prize''
|-
| '''noysier'''....''pay off'' || '''noysuer'''....''charge''
|-
| '''ojbier'''....''borrow'' || '''ojbuer'''....''lend''
|-
| '''tadier'''....''get married'' || '''taduer'''....''marry off''
|-
| '''papier'''....''take flight'' || '''papuer'''....''send off flying''
|-
| '''pipier'''....''set sail'' || '''pipuer'''....''dock''
|-
| '''simbier'''....''take a seat'' || '''simbuer'''....''offer a seat''
|-
| '''tampier'''....''leave home'' || '''tampuer'''....''arrive home''
|-
| '''tamier'''....''settle in'' || '''tamuer'''....''shelter''
|-
| '''nuxbier'''....''to buy'' || '''nixbuer'''....''to sell''
|-
| '''telier'''....''to eat'' || '''teluer'''....''to feed''
|-
| '''gonbier'''....''to participate'' || '''gonbuer'''....''to share''
|-
| '''tilier'''....''to drink'' || '''tiluer'''....''to ply with drink''
|-
| '''teubier'''....''to swallow'' || '''teubuer'''....''to spit out''
|-
| '''teatier'''....''to observe, watch'' || '''teatuer'''....''to show''
|-
| '''taxier'''....''to memorize'' || '''taxuer'''....''to remind''
|-
| '''alier'''....''to breathe in'' || '''aluer'''....''to breathe out, expire''
|-
| '''ilier'''....''to absorb'' || '''iluer'''....''to pour''
|-
| '''ifier'''....''to enjoy'' || '''ifuer'''....''to please''
|-
| '''dier'''....''to ask'' || '''duer'''....''to suggest''
|-
| '''tier'''....''to learn'' || '''tuer'''....''to inform''
|-
| '''pier'''....''to depart'' || '''puer'''....''to arrive''
|-
| '''kebier'''....''to choose'' || '''kebuer'''....''to distribute''
|-
| '''byier'''....''to originate'' || '''byuer'''....''to target''
|-
| '''mempier'''....''to take off'' || '''mempuer'''....''to land''
|-
| '''sinier'''....''visualize'' || '''sinuer'''....''display''
|-
| '''xier'''....''to result'' || '''xuer'''....''to cause''
|-
| '''yifier'''....''to get up the courage'' || '''yifuer'''....''to encourage, challenge''
|-
| '''yafonier'''....''to gain power'' || '''yafonuer'''....''to empower''
|-
| '''trier'''....''to become acquainted with'' || '''truer'''....''to acquaint with, introduce to''
|-
| '''tepzexier'''....''to draw attention'' || '''tepzexuer'''....''to focus attention on''
|-
| '''yekier'''....''to undertake'' || '''yekuer'''....''to challenge''
|-
| '''dyunier'''....''to assume the name of'' || '''dyunuer'''....''to bestow the name of''
|-
| '''abfinier'''....''to take advantage of'' || '''abfinuer'''....''to favor''
|}
: In some cases, the directionality can be both ways in a verb, in which case the verb formant infix '''-ui-''' (a hybrid form) is used, eg.:
::* '''nunier '''....''to purchase'' (subject-directed)
::* '''nunuer'''....''to sell'' (patient-directed)
::* '''nunuier'''....''to trade'' (subject & patient-directed)
::* '''tier'''....''to learn, realize'' (subject-directed)
::* '''tuer'''....''to inform, tip off'' (patient-directed)
::* '''tuier'''....''to communicate'' (subject & patient-directed)
::* '''ebtuier'''....''to intercommunicate''
::* '''alier'''....''to breathe in, inhale'' (subject-directed)
::* '''aluer'''....''to breathe out, exhale'' (patient-directed)
::* '''aluier'''....''to breathe, respire'' (subject & patient-directed)
::* '''bier '''....''to take'' (subject-directed)
::* '''buer'''....''to give'' (patient-directed)
::* '''buier'''....''to give and take, exchange'' (subject & patient-directed)
== Bi-radical Verbs ==
: Some verbs are formed using two verb roots together. Here are some examples:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Bi-radical Verbs
|-
! Verb Root 1 !! Verb Root 2 !! Bi-radical Verb
|-
| '''nuxer'''....''to pay'' || '''bier'''....''to take'' || '''nuxbier'''....''to buy''
|-
| '''nixer'''....''to earn'' || '''buer'''....''to give'' || '''nixbuer'''....''to sell''
|-
| '''kexer'''....''to seek'' || '''bier'''....''to take'' || '''kexbier'''....''to choose''
|-
| '''uper'''....''to come'' || '''dier'''....''to ask'' || '''updier'''....''to invite''
|-
| '''teater'''....''to see'' || '''der'''....''to tell'' || '''teader'''....''to testify''
|-
| '''teeter'''....''to hear'' || '''drer'''....''to write'' || '''teadrer'''....''to report''
|-
| '''teater'''....''to see'' || '''per'''....''to go'' || '''teaper'''....''to visit''
|-
| '''texer'''....''to think'' || '''der'''....''to say'' || '''texder'''....''to mention''
|-
| '''kexer'''....''to seek'' || '''pixer'''....''to catch'' || '''kexpixer'''....''to hunt''
|-
| '''yeker'''....''to try'' || '''teexer'''....''to listen'' || '''yekteexer'''....''to try (in court)''
|}
== Verbs with Vectorial Prefixes ==
: Prepositions and directional adverbs can be prefixed to verbs in order to change their vectorial semantics. A preposition ending in '''b''' will assimilate by losing the '''b''' before the verb '''per'''....''to go'' or the verb '''ber'''. This assimilation does not occur for other verbs beginning with '''b''' such as '''byexer''' (''to hit''). A preposition ending in '''b''' will, however, assimilate (lose the '''b''') before any verb bases beginning with a '''p'''. For example, '''ab''' (''on'') + '''bexer''' (''to hold'') = '''obbexer''' (''to hold on''), because '''obexer''' could be interpreted as ''to release''. Here are some examples:
:{| class="wikitable sortable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Verb Prepositional Prefixes
|-
! Preposition/Adverb !! Transitive Verb !! Intransitive Verb
|-
| '''ab'''....''on'' || '''aber'''....''apply''<br>not '''abber'''! || '''aper'''....''get on''<br>not '''abper'''!
|-
| '''ob'''....''off'' || '''ober'''....''remove'' || '''oper'''....''get off, dismount''
|-
| '''ab'''....''off'' || '''abbaxrer'''....''to rub on'' || '''apyexer'''....''to attack''
|-
| '''eb'''....''between'' || '''eber'''....''block'' || '''eper'''....''intervene''
|-
| '''eb'''....''between'' || '''ebdrayefser'''....''to interleave'' || '''ebdrafxer'''....''to interleave''
|-
| '''ub'''....''toward'' || '''uber'''....''to send'' || '''uper'''....''to come''
|-
| '''ub'''....''toward'' || '''ubbixer'''...''to attract'' || '''upixer'''....''to pitch toward''
|-
| '''yab'''....''up'' || '''yaber'''....''raise'' || '''yaper'''....''rise''
|-
| '''yob'''....''down'' || '''yober'''....''take down'' || '''yoper'''....''descend''
|-
| '''yub'''....''near'' || '''yuber'''....''bring near'' || '''yuper'''....''approach''
|-
| '''yib'''....''far'' || '''yiber'''....''take away'' || '''yiper'''....''go far away''
|-
| '''yeb'''....''in'' || '''yeber'''....''insert'' || '''yeper'''....''enter''
|-
| '''yeb'''....''in'' || '''yepuxer'''....''throw in'' || '''yepuser'''....''jump in''
|-
| '''oyeb'''....''out'' || '''oyeber'''....''expose'' || '''oyeper'''....''exit''
|-
| '''oyeb'''....''out'' || '''oyebbuxer'''....''expel'' || '''oyepuxer'''....''eject''
|-
| '''zyu'''....''round'' || '''zyuber'''....''rotate'' || '''zyuper'''....''revolve''
|-
| '''zya'''....''throughout'' || '''zyaber'''....''spread'' || '''zyaper'''....''tour''
|-
| '''av'''....''for'' || '''avdaler'''....''plead'' || '''avper'''....''pursue''
|-
| '''ov'''....''against'' || '''ovber'''....''oppose'' || '''ovper'''....''countervene''
|-
| '''yan'''....''together'' || '''yanber'''....''compose'' || '''yanper'''....''meet''
|-
| '''yon'''....''apart'' || '''yonber'''....''separate'' || '''yonper'''....''separate''
|-
| '''iz'''....''direct'' || '''izber'''....''lead'' || '''izper'''....''head''
|-
| '''uz'''....''curved'' || '''uzber'''....''divert'' || '''uzper'''....''diverge''
|-
| '''yuz'''....''around'' || '''yuzber'''....''surround'' || '''yuzper'''....''circulate''
|-
| '''yiz'''....''beyond'' || '''yizber'''....''transfer'' || '''yizper'''....''surpass''
|-
| '''zoy'''....''back, re-'' || '''zoyber'''....''return'' || '''zoyper'''....''go back''
|}
== Other Semantics-altering Verb Prefixes ==
: As in English and many other languages, prefixes can be used on verbs to reverse, mitigate, or otherwise alter the semantics:
=== Expressing ''re-'' with '''zoy-''' or '''gaw-''' ===
: The prefix '''zoy-'''....''back'' or '''gaw-<sup>1</sup>'''....''again'' are used like the English prefix ''re-'', eg.:
::* '''ember'''....''to position'' → '''<u>zoy</u>-ember'''....''to <u>re</u>position, <u>re</u>place''
::* '''buer'''....''to give'' → '''<u>zoy</u>buer'''....''to <u>re</u>turn (an object), give back''
::* '''sanxer'''....''to shape, form'' → '''<u>zoy</u>sanxer'''....''to <u>re</u>shape, <u>re</u>form, <u>trans</u>form''
::* '''zyauber'''....''to broadcast'' → '''gawzyauber'''....''to re-broadcast''
::* '''taja'''....''born'' → '''gawtaja'''....''reborn''
::* '''aber'''....''to apply'' → '''gawaber'''....''to reapply''
::* '''teaper'''....''to visit'' → '''<u>gaw</u>teaper'''....''to <u>re</u>visit''
::* '''uper'''....''to come'' → '''<u>zoy</u>-uper<sup>2</sup>'''....''to <u>re</u>turn, come <u>back</u>''
::* '''buxer'''....''to push'' → '''<u>zoy</u>buxer'''....''to <u>re</u>pel, push <u>back</u>''
::* '''puxer'''....''to throw'' → '''<u>zoy</u>puxer'''....''to <u>re</u>ject, throw <u>back</u>, jettison''
: Note 1: The prefix '''gaw-''' before a consonant is pronounced like the ''gaw'' in the English word ''gawk''. It is short for '''ga awa jod''' or '''gawa''' meaning ''one more time, again''. If the "re-" word means ''to do something again'', then '''gaw-''' is used, eg. ''To reconvene'' ( = ''meet again'')....'''gawyanuper''' If the sense of ''back'' is intended, than the prefix '''zoy-''' is used, eg. ''To return'' ( = ''come back'')....'''zoyuper'''. Both prefixes are used in the expression ''Come back again!''....'''Gawzoy-upu!'''.
: Note 2: The prefix '''zoy''' is followed by a hyphen to make it clear that the prepositon is '''zoy''', not '''zo''' and that the base verb is '''uper''' (''come''), not '''yuper''' (''to approach'').
:''Until we meet again'' or ''au revoir'' is expressed by '''Ju gawyanup.'''
=== Expressing ''de-, dis-, un-'' with '''lo-''' ===
: The prefix '''lo-''' reverses the semantics of a verb and is like English ''dis-'', ''de-'', or ''un-'', eg.:
::* '''sexer'''....''to build, construct'' → '''<u>lo</u>sexer'''....''to <u>de</u>stroy, <u>de</u>construct''
::* '''anxer'''....''to unite'' → '''<u>lo</u>anxer'''....''to <u>dis</u>unite''
::* '''xer'''....''to do'' → '''<u>lo</u>xer'''....''to <u>un</u>do''
: Note the difference between '''o-''' and '''lo-'''.
::* '''odoparuwa'''....''<u>un</u>armed'' (= ''not armed'')
::* '''lodoparuwa'''....''<u>dis</u>armed'' (= from the verb '''lodoparuer'''....''to disarm'')
=== Expressing ''co-'' with '''yan-''' ===
: The prefix '''yan-'''....''together'' is used as the English ''co-'', eg.:
::* '''exer'''....''to operate'' → '''<u>yan</u>exer'''....''to <u>co</u>operate''
::* '''tamer'''....''to dwell'' → '''<u>yan</u>tamer'''....''to <u>co</u>habit''
::* '''napber'''....''to put in order'' → '''<u>yan</u>napber'''....''to <u>co</u>ordinate''
=== Making Verbs Completive with '''ik-''' ===
: Verbs can be made completive or perfective by prefixing them with '''ik-''' (''fully''). Such verbs are comparable to phrasal verbs in English with ''up'' and other prepositions as in ''to eat up''. Here are some examples in Mirad:
::* '''tojber'''....''to kill'' → '''iktojber'''....''to kill off, exterminate''
::* '''telier'''....''to eat'' → '''iktelier'''....''to eat up''
::* '''ujber'''....''to finish'' → '''ikujber'''....''to finish off/up''
::* '''gofler'''....''to rip'' → '''ikgofler'''....''to rip up''
::* '''drer'''....''to write'' → '''ikdrer'''....''to write down''
::* '''byexer'''....''to beat'' → '''ikbyexer'''....''to beat up''
::* '''agser'''....''to grow'' → '''ikagser'''....''to grow up''
=== Making Verbs Continuative with '''je-''' ===
: Verbs can be given a continuative nuance with the addition of the prefix '''je-''':
::* '''daler'''....''to talk'' → '''jedalar'''....''to go on talking, to blabber''
::* '''tejer'''....''to live'' → '''jetejer'''....''to go on living, to survive''
::* '''yexer'''....''to work'' → '''jeyexer'''....''to go on working, to keep working''
::* '''teaxer'''....''to look'' → '''jeteaxer'''....''to watch''
::* '''teexer'''....''to listen'' → '''jeteexer'''....''to keep listening, to pay attention''
::* '''duler'''....''to insist'' → '''jeduler'''....''to nag''
=== Making Verbs Inchoative with '''ij-''' ===
: Verbs can be given an inchoative nuance with the addition of the prefix '''ij-''':
::* '''texer'''....''to think'' → '''ijtexer'''....''to start to think''
::* '''ifier'''....''to enjoy'' → '''ijifier'''....''to start liking''
::* '''trer'''....''to know'' → '''ijtrer'''....''to get to know''
::* '''baxer'''....''to stir'' → '''ijbaxer'''....''to instigate''
::* '''byaxer'''....''to erect'' → '''ijbyaxer'''....''to establish, to institute''
::* '''dezer'''....''to perform'' → '''ijdezer'''....''to premier, to debut''
::* '''eser'''....''to exist'' → '''ijeser'''....''to come about''
::* '''kaxer'''....''to find'' → '''ijkaxer'''....''to invent''
::* '''magxer'''....''to burn'' → '''ijmagxer'''....''to kindle''
::* '''saxer'''....''to make'' → '''ijsaxer'''....''to create''
::* '''texer'''....''to think'' → '''ijtexer'''....''to conceive''
::* '''tuxer'''....''to teach'' → '''ijtuxer'''....''to initiate''
::* '''xeler'''....''to celebrate'' → '''ijxeler'''....''to inaugurate''
=== Making Verbs Terminative with '''uj-''' ===
: Verbs can be given a terminative nuance with the addition of the prefix '''uj-''':
::* '''telier'''....''to eat'' → '''ujtelier'''....''to finish eating''
::* '''dyeer'''....''to read'' → '''ujdyeer'''....''to finish reading''
::* '''ufteuder'''....''to complain'' → '''ujufteuder'''....''to quit carping''
::* '''aker'''....''to win'' → '''ujaker'''....''to succeed''
::* '''der'''....''to say'' → '''ujder'''....''to conclude''
::* '''gaber'''....''to add'' → '''ujgaber'''....''to append, to added at the end''
::* '''gyoxer'''....''to thin'' → '''ujgyoxer'''....''to taper''
::* '''kyeser'''....''to happen'' → '''ujkyeser'''....''to turn out''
::* '''oker'''....''to lose'' → '''ujoker'''....''to fail''
=== Giving Verbs a Nuance of Pleasure with '''if-''' ===
::* '''tyoper'''....''to walk'' → '''iftyoper'''....''to stroll''
::* '''tuyuxer'''....''to finger'' → '''iftuyuxer'''....''to tickle''
::* '''teaxer'''....''to look'' → '''ifteaxer'''....''to ogle (voyeuristically)''
::* '''piper'''....''to sail'' → '''ifpiper'''....''to go cruising''
::* '''teuder'''....''to shout'' → '''ifteuder'''....''to laugh''
::* '''eker'''....''to play'' → '''ifeker'''....''to have fun''
::* '''abbaxer'''....''to pat'' → '''ifabbaxer'''....''to fondle, to caress''
::* '''axler'''....''to act'' → '''ifaxler'''....''to have fun''
::* '''bier'''....''to take'' → '''ifbier'''....''to embrace, to adopt, to foster''
::* '''buer'''....''to give'' → '''ifbuer'''....''to donate, to gift''
::* '''bikuer'''....''to care for'' → '''ifbikuer'''....''to foster''
::* '''bixer'''....''to pull'' → '''ifbixer'''....''to entice, to tempt, to seduce''
::* '''ebdaler'''....''to converse'' → '''ifebdaler'''....''to chitchat''
::* '''mimparer'''....''to go boating'' → '''ifmimparer'''....''to go yachting''
::* '''tayoxer'''....''to touch'' → '''iftayoxer'''....''to tickle, to titillate''
::* '''teaxer'''....''to look at'' → '''ifteaxer'''....''to ogle, to feast one's eyes on, to moon over''
::* '''telier'''....''to eat'' → '''iftelier'''....''to feast on''
::* '''tyoper'''....''to walk'' → '''iftyoper'''....''to stroll, to jaunt, to promenade''
=== Giving Verbs a Nuance of Displeasure with '''uf-''' ===
::* '''tosier'''....''to feel'' → '''uftosier'''....''to get angry''
::* '''eker'''....''to play'' → '''ufeker'''....''to fight''
::* '''der'''....''to say'' → '''ufder'''....''to express displeasure''
::* '''aluer'''....''to exhale'' → '''ufaluer'''....''to huff''
::* '''daler'''....''to talk'' → '''ufdaler'''....''to rant''
::* '''teaxer'''....''to look at'' → '''ufteaxer'''....''to scorn, to disdain''
::* '''teuber'''....''to make an expression'' → '''ufteuber'''....''to frown''
::* '''teuder'''....''to shout'' → '''ufteuder'''....''to grouse, to gripe''
=== Giving Verbs a Nuance of Prohibition with '''of-''' ===
::* '''bier'''....''to take'' → '''ofbier'''....''to steal''
::* '''deler'''....''to declare'' → '''ofdeler'''....''to ban''
::* '''yeper'''....''to enter'' → '''ofyeper'''....''to intrude, break in''
::* '''zeyper'''....''to cross'' → '''ofzeyper'''....''to transgress, poach''
::* '''gelxer'''....''to copy'' → '''ofgelxer'''....''to pirate, plagiarize''
::* '''bekuluer'''....''to administer medicine'' → '''ofbekuluer'''....''to dope''
::* '''nuxuer'''....''to pay'' → '''ofnuxuer'''....''to bribe, pay off, suborn''
=== Giving Verbs a Nuance of Holiness with '''fya-''' ===
::* '''bexler'''....''to keep'' → '''fyabexler'''....''to enshrine''
::* '''buer'''....''to give'' → '''fyabuer'''....''to sacrifice''
::* '''der'''....''to say'' → '''fyader'''....''to bless''
::* '''daler'''....''to speak'' → '''fyadaler'''....''to preach, sermonize''
::* '''diler'''....''to request'' → '''fyadiler'''....''to pray''
::* '''deuzer'''....''to sing'' → '''fyadeuzer'''....''to chant''
::* '''ifrer'''....''to love dearly'' → '''fyaifrer'''....''to worship, adore''
::* '''jader'''....''to predict'' → '''fyajader'''....''to prophesy''
::* '''miluer'''....''to sprinkle'' → '''fyamiluer'''....''to sprinkle with holy water''
::* '''ojvader'''....''to promise'' → '''fyaojvader'''....''to swear''
::* '''xeler'''....''to practice'' → '''fyaxeler'''....''to celebrate''
::* '''koser'''....''to hide'' → '''fyakoser'''....''to go on a retreat, go into hermitage''
::* '''teazer'''....''perform a show'' → '''fyateazer'''....''to perform a miracle''
=== Giving Verbs a Nuance of Profanity with '''fyo-''' ===
::* '''der'''....''to say'' → '''fyoder'''....''to curse''
::* '''diler'''....''to request'' → '''fyodiler'''....''to conjure''
::* '''tyezer'''....''to perform magic'' → '''fyotezer'''....''to engage in black magic''
::* '''xer'''....''to do'' → '''fyoxer'''....''to sin''
=== Expressing Good Actions with '''fi-''' ===
::* '''agser'''....''to grow'' → '''fiagser'''....''to thrive, to flourish''
::* '''axler'''....''to act'' → '''fiaxler'''....''to behave well''
::* '''der'''....''to say'' → '''fider'''....''to praise''
::* '''deler'''....''to declare'' → '''fideler'''....''to approve''
::* '''datiber'''....''to host'' → '''fidatiber'''....''to welcome''
::* '''diber'''....''to manage'' → '''fidiber'''....''to husband''
::* '''doler'''....''to be silent'' → '''fidoler'''....''to be discrete''
::* '''duer'''....''to suggest'' → '''fiduer'''....''to recommend''
::* '''ebexler'''....''to interact'' → '''fiebexler'''....''to get along well''
::* '''exer'''....''to operate'' → '''fiexer'''....''to operate smoothly''
::* '''fer'''....''to want'' → '''fifer'''....''to mean well''
::* '''ijer'''....''to start'' → '''fiijer'''....''to get a good start''
::* '''nagser'''....''to measure'' → '''finagser'''....''to adapt''
::* '''napxer'''....''to arrange'' → '''finapxer'''....''to tidy up, to neaten''
::* '''ojfer'''....''to wish'' → '''fiojfer'''....''to wish well''
::* '''per'''....''to go'' → '''fiper'''....''to fare well, to prosper''
::* '''teaser'''....''to seem'' → '''fiteaser'''....''to look nice''
::* '''teaxer'''....''to look at'' → '''fiteaxer'''....''to admire''
::* '''tejer'''....''to live'' → '''fitejer'''....''to thrive''
::* '''teuder'''....''to shout'' → '''fiteuder'''....''to acclaim, to laud''
::* '''tosuer'''....''to make feel'' → '''fitosuer'''....''to exhilarate''
::* '''tujer'''....''to sleep'' → '''fitujer'''....''to sleep soundly''
::* '''yaker'''....''to expect'' → '''fiyaker'''....''to hope''
::* '''yuxer'''....''to help'' → '''fiyuxer'''....''to benefit''
::* '''xer'''....''to do'' → '''fixer'''....''to do well''
=== Expressing Bad Actions with '''fu-''' ===
::* '''axler'''....''to act'' → '''fuaxler'''....''to misbehave''
::* '''bekuer'''....''to treat'' → '''fubekuer'''....''to mistreat, to maltreat''
::* '''bexer'''....''to hold'' → '''fubexer'''....''to fumble''
::* '''bikuer'''....''to care for'' → '''fubikuer'''....''to neglect''
::* '''daler'''....''to talk'' → '''fudaler'''....''to speak ill of, to badmouth''
::* '''deler'''....''to declare'' → '''fudeler''''....''to denounce''
::* '''diber'''....''to manage'' → '''fudiber'''....''to mismanage, to maladminister''
::* '''doler'''....''to be quiet'' → '''fudoler'''....''to sulk''
::* '''dezgonuer'''....''to cast'' → '''fudezgonuer'''....''to miscast''
::* '''exer'''....''to function'' → '''fuexer'''....''to malfunction''
::* '''fer'''....''to want'' → '''fufer'''....''to wish ill''
::* '''fyiduer'''....''to advise'' → '''fufyiduer'''....''to ill-advise''
::* '''napxer'''....''to arrange'' → '''funapxer'''....''to mess up''
::* '''yevder'''....''to judge'' → '''fuyevder'''....''to critique negatively''
::* '''yuxer'''....''to help'' → '''fuyuxer'''....''to abuse''
=== Expressing More Intense Actions with '''az-''' ===
::* '''abbixer'''....''to attract'' → '''<u>az</u>abbixer'''....''to infatuate''
::* '''aluer'''....''to blow'' → '''<u>az</u>aluer'''....''to huff''
::* '''basrer'''....''to shake'' → '''<u>az</u>basrer'''....''to convulse''
::* '''bexer'''....''to hold'' → '''<u>az</u>bexer'''....''to clutch''
::* '''birer'''....''to grab''' → '''<u>az</u>birer'''....''to seize''
::* '''buxer'''....''to push''' → '''<u>az</u>buxer'''....''to prod''
::* '''byexer'''....''to strike'' → '''<u>az</u>byexer'''....''to stomp, to hit hard''
::* '''der'''....''to say'' → '''<u>az</u>der'''....''to emphasize''
::* '''duer'''....''to suggest'' → '''<u>az</u>duer'''....''to urge''
::* '''dizeuder'''....''to laugh'' → '''<u>az</u>dizeuder'''....''to guffaw''
::* '''fer'''....''to want'' → '''<u>az</u>fer'''....''to crave''
::* '''fuyevder'''....''to criticize'' → '''<u>az</u>fuyevder'''....''to lambaste''
::* '''yujber'''....''to close'' → '''<u>az</u>yujber'''....''to lock''
=== Expressing Less Intense Actions with '''oz-''' ===
::* '''der'''....''to utter'' → '''<u>oz</u>der'''....''to whisper''
::* '''duer'''....''to suggest'' → '''<u>oz</u>duer'''....''to hint''
::* '''dizeuder'''....''to laugh'' → '''<u>oz</u>dizeuder'''....''to chuckle''
::* '''uvteuder'''....''to moan'' → '''<u>oz</u>uvteuder'''....''to whimper''
::* '''tyoper'''....''to walk'' → '''<u>oz</u>tyoper'''....''to limp''
=== Expressing ''pre-, fore-'' with '''ja-''' ===
::* '''der'''....''to tell'' → '''<u>ja</u>der'''....''to foretell, predict''
::* '''teater'''....''to see'' → '''<u>ja</u>teater'''....''to foresee, preview''
::* '''ter'''....''to know'' → '''<u>ja</u>ter'''....''to presage, have foreknowledge of''
::* '''yever'''....''to judge'' → '''<u>ja</u>yever'''....''to prejudge''
::* '''juder'''....''to date'' → '''<u>ja</u>juder'''....''to antedate''
=== Expressing ''post-, after-'' with '''jo-''' ===
::* '''juder'''....''to date'' → '''<u>jo</u>juder'''....''to postdate''
::* '''texer'''....''to think'' → '''<u>jo</u>texer'''....''to reflect on, review''
::* '''uvder'''....''to express sadness'' → '''<u>jo</u>uvder'''....''to mourn, regret''
::* '''ibler'''....''to obtain'' → '''<u>jo</u>ibler'''....''to inherit''
=== Expressing ''excessively'' with '''gra-''' ===
::* '''telier'''....''to eat'' → '''<u>gra</u>telier'''....''to overeat''
::* '''fer'''....''to want'' → '''<u>gra</u>fer'''....''to covet''
::* '''der'''....''to say'' → '''<u>gra</u>der'''....''to exaggerate''
::* '''daler'''....''to talk'' → '''<u>gra</u>daler'''....''to yammer''
=== Expressing ''inadequately'' with '''gro-''' ===
::* '''fyinder'''....''to value'' → '''<u>gro</u>fyinder'''....''to underestimate''
::* '''mageler'''....''to cook'' → '''<u>gro</u>mageler'''....''to undercook''
::* '''xaer'''....''to perform'' → '''<u>gro</u>xaer'''....''to underperform''
=== Expressing ''counter-, contra-'' with '''ov-''' or '''oyv-''' ===
::* '''axler'''....''to act'' → '''<u>ov</u>axler'''....''to counteract''
::* '''apyexer'''....''to attack'' → '''<u>ov</u>apyexer'''....''to counterattack''
::* '''daler'''....''to speak'' → '''<u>ov</u>daler'''....''to oppose''
::* '''der'''....''to say'' → '''<u>oyv</u>der'''....''to contradict''
::* '''ber'''....''to put'' → '''<u>oyv</u>ber'''....''to reverse, overturn''
::* '''texer'''....''to think'' → '''<u>oyv</u>texer'''....''to contest, disagree''
::* '''per'''....''to go'' → '''<u>oyv</u>per'''....''to contravene''
=== Expressing ''on behalf, for'' with '''av-''' ===
::* '''axler'''....''to act'' → '''<u>av</u>axler'''....''to act on behalf of''
::* '''daler'''....''to speak'' → '''<u>av</u>daler'''....''to advocate, speak on behalf of''
::* '''dyundrer'''....''to sign'' → '''<u>av</u>dyundrer'''....''to endorse''
=== Making Verbs Reflexive with '''ut-''' (''self-, auto-'') ===
::* '''tojber'''....''to kill'' → '''<u>ut</u>tojber'''....''to commit suicide''
::* '''vyovider'''....''to flatter'' → '''<u>ut</u>vyovider'''....''to flatter oneself''
::* '''zaypuxwer'''....''to be propelled'' → '''<u>ut</u>zaypuxwer'''....''to be self-propelled''
::* '''fider'''....''to praise'' → '''<u>ut</u>fider'''....''to brag''
::* '''gober'''....''to decrement'' → '''<u>ut</u>gober'''....''to autodecrement''
=== Making Verbs Reciprocal with '''hyuit-''' (''one another'') ===
::* '''tojber'''....''to kill'' → '''<u>hyuit</u>tojber'''....''to kill one another''
::* '''ifer'''....''to love'' → '''<u>hyuit</u>ifer'''....''to love one another''
=== Expressing ''inter-, intra-'' with '''eb-''' (''between'') or '''eyb-''' (''among'') ===
::* '''tadier'''....''to marry'' → '''<u>eb</u>tadier'''....''to intermarry''
::* '''zyaber'''....''to spread'' → '''<u>eb</u>zyaber'''....''to intersperse''
::* '''vyexer'''....''to relate'' → '''<u>eb</u>vyexer'''....''to interrelate''
::* '''mulxer'''....''to materialize'' → '''<u>eyb</u>mulxer'''....''to mix''
::* '''xer'''....''to do'' → '''<u>eyb</u>xer'''....''to interest, to involve''
=== Expressing the Opposite of an Action with '''o-''' (''un-'') ===
::* '''bexler'''....''to keep'' → '''<u>o</u>bexler'''....''to release, let go of''
::* '''aynser'''....''to integrate'' → '''<u>o</u>aynser'''....''to disintegrate, to decay''
::* '''beler'''....''to carry'' → '''<u>o</u>beler'''....''to drop''
::* '''bier'''....''to take'' → '''<u>o</u>bier'''....''to leave, relinquish''
::* '''boser'''....''to be quiet'' → '''<u>o</u>boser'''....''to be upset''
::* '''drer'''....''to write'' → '''<u>o</u>drer'''....''to erase''
::<small>Note: If the base verb already begins with the negative prefix '''o-''', then the prefix is changed to '''ol-''', eg. '''obexler'''....''to release'' → '''<u>ol</u>obexwa'''....''to unrelease'' </small>
=== Expressing a Public or Official Action with '''do-''' ===
:: '''Do-''' is a stub for '''dot''' (''society'').
::* '''afder'''....''to allow'' → '''<u>do</u>afder'''....''to authorize''
::* '''bier'''....''to take'' → '''<u>do</u>bier'''....''to conquer, take over, take control of''
::* '''tojber'''....''to kill'' → '''<u>do</u>tojber'''....''to execute''
::* '''buer'''....''to give'' → '''<u>do</u>buer'''....''to dedicate''
::* '''daler'''....''to speak'' → '''<u>do</u>daler'''....''to orate, speak in public''
::* '''deler'''....''to declare'' → '''<u>do</u>deler'''....''to announce''
::* '''drer'''....''to write'' → '''<u>do</u>drer'''....''to publicize, report''
::* '''direr'''....''to demand'' → '''<u>do</u>direr'''....''to mandate, to dictate''
::* '''drer'''....''to write'' → '''<u>do</u>drer'''....''to publicize''
::* '''drurer'''....''to print'' → '''<u>do</u>drurer'''....''to publish''
::* '''duer'''....''to suggest'' → '''<u>do</u>duer'''....''to propose, to move''
::* '''durer'''....''to order'' → '''<u>do</u>durer'''....''to decree''
::* '''dyeder'''....''to recite'' → '''<u>do</u>dyeder'''....''to declaim''
::* '''dyeer'''....''to read'' → '''<u>do</u>dyeer'''....''to lecture''
::* '''ebdaler'''....''to discuss'' → '''<u>do</u>ebdaler'''....''to deliberate''
::* '''eber'''....''to block'' → '''<u>do</u>eber'''....''to enjoin, to restrain''
::* '''fuxer'''....''to do bad'' → '''<u>do</u>fuxer'''....''to commit a crime''
::* '''kebier'''....''to choose'' → '''<u>do</u>kebier'''....''to elect''
::* '''lonapxer'''....''to mess up'' → '''<u>do</u>lonapxer'''....''to riot''
::* '''naxgaxer'''....''to raise prices'' → '''<u>do</u>naxgaxer'''....''to auction off''
::* '''nixbuer'''....''to sell'' → '''<u>do</u>nixbuer'''....''to hawk''
=== Giving Verbs a Nuance of Truth with '''vya-''' ===
::* '''der'''....''to say'' → '''<u>vya</u>der'''....''to avow, to be frank''
::* '''ber'''....''to set, put'' → '''<u>vya</u>ber'''....''to control''
::* '''bier'''....''to take'' → '''<u>vya</u>bier'''....''to postulate''
::* '''boler'''....''to support'' → '''<u>vya</u>boler'''....''to prove''
::* '''duder'''....''to answer'' → '''<u>vya</u>duder'''....''to solve''
::* '''duer'''....''to suggest'' → '''<u>vya</u>duer'''....''to allege''
::* '''nadxer'''....''to line up'' → '''<u>vya</u>nadxer'''....''to align''
::* '''nagxer'''....''to measure'' → '''<u>vya</u>nagxer'''....''to fit''
::* '''napxer'''....''to arrange, order'' → '''<u>vya</u>napxer'''....''to adjust''
::* '''nazaxer'''....''to evaluate'' → '''<u>vya</u>nazaxer'''....''to corroborate''
::* '''kexer'''....''to seek'' → '''<u>vya</u>kexer'''....''to investigate''
::* '''tuer'''....''to inform'' → '''<u>vya</u>tuer'''....''to advise''
=== Giving Verbs of Nuance of Falseness with '''vyo-''' ===
::* '''der'''....''to say'' → '''<u>vyo</u>der'''....''to lie, to misstate''
::* '''tester'''....''to understand'' → '''<u>vyo</u>tester'''....''to misunderstand''
::* '''tuer'''....''to inform'' → '''<u>vyo</u>tuer'''....''to misinform, to deceive''
::* '''xer'''....''to do'' → '''<u>vyo</u>xer'''....''to do wrong, fail, misdo''
::* '''yuxler'''....''to serve'' → '''<u>vyo</u>yuxler'''....''to betray, to serve unfaithfully''
=== Making Verbs Positive with '''va-''' ===
::* '''der'''....''to say'' → '''<u>va</u>der'''....''to affirm''
::* '''texer'''....''to think'' → '''<u>va</u>texer'''....''to believe''
::* '''yeker'''....''to expect'' → '''<u>va</u>yeker'''....''to presume''
::* '''bier'''.....''to take'' → '''<u>va</u>bier'''....''to accept''
=== Making Verbs Negative with '''vo-''' ===
::* '''der'''....''to say'' → '''<u>vo</u>der'''....''to deny''
::* '''texer'''....''to think'' → '''<u>vo</u>texer'''....''to doubt''
::* '''yeker'''....''to expect'' → '''<u>vo</u>yeker'''....''to rule out''
::* '''bier'''.....''to take'' → '''<u>vo</u>bier'''....''to reject''
=== Making Verbs Suppositional with '''ve-''' ===
::* '''der'''....''to say'' → '''<u>ve</u>der'''....''to conjecture''
::* '''texer'''....''to think'' → '''<u>ve</u>texer'''....''to suppose, hypothesize''
::* '''yovder'''....''to blame'' → '''<u>ve</u>yovder'''....''to indict, accuse''
=== Speeding up Verbs with '''ig-''' ===
::* '''pier'''....''to leave'' → '''<u>ig</u>pier'''....''to flee''
::* '''pyoser'''....''to drop'' → '''<u>ig</u>pyoser'''....''to plummet''
::* '''tyoper'''....''to walk'' → '''<u>ig</u>tyoper'''....''to run''
::* '''yeper'''....''to enter'' → '''<u>ig</u>yeper'''....''to rush in''
=== Slowing up Verbs with '''ug-''' ===
::* '''paser'''....''to move'' → '''<u>ug</u>paser'''....''to amble''
::* '''teaxer'''....''to look'' → '''<u>ug</u>teaxer'''....''to gaze''
::* '''ilper'''....''to flow'' → '''<u>ug</u>ilper'''....''to trickle''
::* '''tilier'''....''to drink'' → '''<u>ug</u>tilier'''....''to sip''
=== Expressing the Nuance of Suddenness with '''yok-''' ===
::* '''baxer'''....''to stir'' → '''<u>yok</u>baxer'''....''to startle''
::* '''hihider'''....''to laugh'' → '''<u>yok</u>hihider'''....''to burst out laughing''
::* '''teaser'''....''to appear'' → '''<u>yok</u>teaser'''....''to suddenly appear''
::* '''yoktojer'''....''to die'' → '''<u>yok</u>tojer'''....''to drop dead''
=== Expressing the Notion of Fixedness with '''kyo-''' ===
::* '''byaser'''....''to stand'' → '''<u>kyo</u>byaser'''....''to stand still''
::* '''kexer'''....''to seek'' → '''<u>kyo</u>kexer'''....''to hound, stalk''
::* '''teaxer'''....''to look'' → '''<u>kyo</u>teaxer'''....''to stare, glare''
::* '''texer'''....''to think'' → '''<u>kyo</u>texer'''....''to obsess with, fixate on''
=== Expression the Notion of Randomness or Chance with '''kye-'''===
::* '''der'''....''to say'' → '''<u>kye</u>der'''....''to guess, divine''
::* '''per'''....''to per'' → '''<u>kye</u>per'''....''to fluctuate''
::* '''poper'''....''to travel'' → '''<u>kye</u>poper'''....''to wander''
::* '''napxer'''....''to order'' → '''<u>kye</u>napxer'''....''to scramble, shuffle''
::* '''bier'''....''to take'' → '''<u>kye</u>bier'''....''to select''
::* '''kaxer'''....''to find'' → '''<u>kye</u>kaxer'''....''to discover, to find by chance''
::* '''vyabxer'''....''to check'' → '''<u>kye</u>vabxer'''....''to spot check''
=== Expressing the Notion of Change with '''kya-''' ===
::* '''baser'''....''to make a move'' → '''<u>kya</u>baser'''....''to shift''
::* '''sanxer'''....''to form'' → '''<u>kya</u>sanxer'''....''to transform''
::* '''xer'''....''to do/make'' → '''<u>kya</u>xer'''....''to change''
::* '''napxer'''....''to order'' → '''<u>kya</u>napxer'''....''to shuffle''
::* '''dyanxer'''....''to phrase'' → '''<u>kya</u>dyanxer'''....''to paraphrase''
=== Expressing Covert Actions with '''ko-''' ===
::* '''ber'''....''to put'' → '''<u>ko</u>ber'''....''to hide''
::* '''beler'''....''to carry'' → '''<u>ko</u>beler'''....''to smuggle''
::* '''bier'''....''to take'' → '''<u>ko</u>bier'''....''to steal''
::* '''ebkyaxer'''....''to exchange'' → '''<u>ko</u>ebkyaxer'''....''to traffic''
::* '''exer'''....''to operate'' → '''<u>ko</u>exer'''....''to spy, operate under cover''
::* '''fler'''....''to wish for'' → '''<u>ko</u>fler'''....''to covet, be jealous of''
::* '''apyexer'''....''to attack'' → '''<u>ko</u>apyexer'''....''to ambush, to sneak-attack''
::* '''loexer'''....''to destroy'' → '''<u>ko</u>loexer'''....''to sabotage''
=== Expressing Actions with Intentionality with '''ke-''' ===
::* '''teaxer'''....''to look'' → '''<u>ke</u>teaxer'''....''to scan''
::* '''vyaxer'''....''to prove'' → '''<u>ke</u>vyaxer'''....''to experiment''
::* '''tier'''....''to learn'' → '''<u>ke</u>tier'''....''to be interested in''
::* '''bier'''....''to take'' → '''<u>ke</u>bier'''....''to choose''
::* '''pexer'''....''to catch'' → '''<u>ke</u>pexer'''....''to hunt''
=== Expressing Lateral Actions with '''ku-''' ===
::* '''buxer'''....''to push'' → '''<u>ku</u>buxer'''....''to rebuff, shun''
::* '''der'''....''to say'' → '''<u>ku</u>der'''....''to comment, remark''
::* '''tyoper'''....''to step'' → '''<u>ku</u>tyoper'''....''to step aside''
=== Expressing Diagonal Actions with '''ki-''' ===
::* '''teaxer'''....''to look'' → '''<u>ki</u>teaxer'''....''to look askance at''
::* '''tuxer'''....''to teach'' → '''<u>ki</u>tuxer'''....''to brainwash''
::* '''tyoper'''....''to walk'' → '''<u>ki</u>tyoper'''....''to limp''
::* '''pyoser'''....''to fall'' → '''<u>ki</u>pyoser'''....''to slip and fall''
::* '''per'''....''to go'' → '''<u>ki</u>per'''....''to slide''
=== Expressing Near Actions with '''yub-'''===
::* '''der'''....''to say'' → '''<u>yub</u>der'''....''to intimate, hint''
::* '''gexer'''....''to equate'' → '''<u>yub</u>gexer'''....''to approximate''
::* '''bixer'''....''to pull'' → '''<u>yub</u>bixer'''....''to attract, draw near''
::* '''teaxer'''....''to look'' → '''<u>yub</u>teaxer'''....''to scrutinize, examine''
=== Expressing Distance Actions with '''yib-''' (''far, tele-'') ===
::* '''drer'''....''to write'' → '''<u>yib</u>drer'''....''to wire, telegraph''
::* '''bixer'''....''to pull'' → '''<u>yi(b)</u>bixer'''....''to distract''
::* '''tuier'''....''to communicate'' → '''<u>yib</u>tuier'''....''to telecommunicate''
::* '''nyuxer'''....''to deliver'' → '''<u>yib</u>nyuxer'''....''to mail, post''
=== Expressing ''up-, super-'' with '''yab-''' ===
::* '''ber'''....''to put'' → '''<u>ya(b)</u>ber'''....''to raise, to put up''
::* '''bixler'''....''to drag'' → '''<u>ya(b)</u>bixler'''....''to dredge up''
::* '''uper'''....''to come'' → '''<u>yab</u>uper'''....''to come up''
::* '''nogyanxer'''....''to scale'' → '''<u>yab</u>nogyanxer'''....''to scale up, escalate''
=== Expressing ''down-, sub-'' with '''yob-''' ===
::* '''ber'''....''to put'' → '''<u>yo(b)</u>ber'''....''to lower, put down''
::* '''kyaber'''....''to shift'' → '''<u>yob</u>kyaxer'''....''to downshift''
::* '''musper'''....''to climb'' → '''<u>yob</u>musper'''....''to climb down''
::* '''nogyanxer'''....''to scale'' → '''<u>yob</u>nogyanxer'''....''to downscale''
=== Expressing ''in-'' with '''yeb-''' ===
::* '''ber'''....''to put'' → '''<u>ye(b)</u>ber'''....''to insert, put in''
::* '''beler'''....''to carry'' → '''<u>ye(b)</u>beler'''....''to import''
::* '''uzber'''....''to bend'' → '''<u>yeb</u>uzber'''....''to inflect''
::* '''yujber'''....''to close'' → '''<u>yeb</u>yujber'''....''to enclose, include''
=== Expressing ''out-, ex-, extra-'' with '''oyeb-''' ===
::* '''ber'''....''to put'' → '''<u>oye</u>ber'''....''to put out, expose''
::* '''beler'''....''to carry'' → '''<u>oye</u>beler'''....''to export''
::* '''uber'''....''to send'' → '''<u>oyeb</u>uber'''....''to emit, send out''
::* '''yujber'''....''to close'' → '''<u>oyeb</u>yujber'''....''to exclude''
=== Expressing ''pro-, forward'' with '''zay-''' ===
::* '''ber'''....''to put'' → '''<u>zay</u>ber'''....''to advance, put forward''
::* '''kexer'''....''to seek'' → '''<u>zay</u>kexer'''....''to scout out''
::* '''puxer'''....''to throw'' → '''<u>zay</u>puxer'''....''to propel, thrust''
::* '''tyoper'''....''to walk'' → '''<u>zay</u>tyoper'''....''to progress, to walk forward''
=== Expressing ''back-, retro-, re-'' with '''zoy-''' ===
::* '''uber'''....''to send'' → '''<u>zoy</u>ber'''....''to send back''
::* '''kixer'''....''to bend'' → '''<u>zoy</u>kixer'''....''to reflect''
::* '''puxer'''....''to throw'' → '''<u>zoy</u>puxer'''....''to repel''
::* '''neadper'''....''to track'' → '''<u>zoy</u>neadper'''....''to backtrack''
=== Expressing ''across, trans-, over-, cross-'' with '''zey-''' ===
::* '''per'''....''to go'' → '''<u>zey</u>per'''....''to cross, transit''
::* '''beler'''....''to carry'' → '''<u>zey</u>beler'''....''to transport, convey''
::* '''drer'''....''to write'' → '''<u>zey</u>drer'''....''to transcribe''
::* '''kyober'''....''to fix'' → '''<u>zey</u>kyober'''....''to transfix, transplant''
::* '''vyayeker'''....''to check'' → '''<u>zey</u>vyayeker'''....''to crosscheck''
=== Expressing ''through, per-'' with '''zye-''' ===
::* '''per'''....''to go'' → '''<u>zye</u>per'''....''to permeate, get through''
::* '''kexer'''....''to seek'' → '''<u>zye</u>kexer'''....''to rummage, sift through''
::* '''drer'''....''to write'' → '''<u>zye</u>drer'''....''to cross out, draw a line through''
::* '''iluer'''....''to pour'' → '''<u>zye</u>iluer'''....''to soak''
::* '''koper'''....''to sneak'' → '''<u>zye</u>koper'''....''to sneak through''
=== Expressing ''all over, widely, all about'' with '''zya-''' ===
::* '''ber'''....''to put'' → '''<u>zya</u>ber'''....''to spread''
::* '''buer'''....''to give'' → '''<u>zya</u>buer'''....''to distribute''
::* '''ijber'''....''to open'' → '''<u>zya</u>ijber'''....''to open wide''
::* '''nuxer'''....''to pay'' → '''<u>zya</u>nuxer'''....''to disburse''
::* '''puxer'''....''to throw'' → '''<u>zya</u>puxer'''....''to scatter, cast about''
=== Expressing ''mid-, center'' with '''ze-''' ===
::* '''ber'''....''to put'' → '''<u>ze</u>ber'''....''to balance''
::* '''byaser'''....''to stand'' → '''<u>ze</u>byaser'''....''to straddle''
::* '''der'''....''to say'' → '''<u>ze</u>der'''....''to interject''
::* '''pyoser'''....''to fall'' → '''<u>ze</u>pyoser'''....''to sag''
::* '''poxer'''....''to stop'' → '''<u>ze</u>poxer'''....''to interrupt''
=== Expressing ''futurity'' with '''oj-''' ===
::* '''ber'''....''to put'' → '''<u>oj</u>ber'''....''to put off, postpone''
::* '''bier'''....''to take'' → '''<u>oj</u>bier'''....''to borrow''
::* '''fer'''....''to want'' → '''<u>oj</u>fer'''....''to wish, aspire''
::* '''texer'''....''to think'' → '''<u>oj</u>texer'''....''to plan''
::* '''teater'''....''to see'' → '''<u>oj</u>teater'''....''to envision''
::* '''vader'''....''to affirm'' → '''<u>oj</u>vader'''....''to promise''
=== Expressing ''past'' with '''aj-''' ===
::* '''ber'''....''to put'' → '''<u>aj</u>ber'''....''to pass, relegate to the past''
::* '''der'''....''to say'' → '''<u>aj</u>der'''....''to evoke, hearken, recount''
::* '''embier'''....''to occupy'' → '''<u>aj</u>embier'''....''to haunt''
::* '''texer'''....''to think'' → '''<u>aj</u>texer'''....''to reminisce, to reflect''
::* '''uvtosder'''....''to express sadness'' → '''<u>aj</u>uvtosder'''....''to apologize''
::* '''nexer'''....''to store'' → '''<u>aj</u>nexer'''....''to archive''
=== Expressing ''present'' with '''ej-''' ===
::* '''buer'''....''to give'' → '''<u>ej</u>buer'''....''to present''
::* '''eser'''....''to exist'' → '''<u>ej</u>eser'''....''to attend, to be present''
::* '''nuxer'''....''to pay'' → '''<u>ej</u>nuxer'''....''to pay cash''
::* '''tuer'''....''to inform'' → '''<u>ej</u>tuer'''....''to update''
::* '''uvtosder'''....''to express sadness'' → '''<u>ej</u>uvtosder'''....''to apologize''
=== Expressing a stretched out action with '''yag-''' (''long'') ===
::* '''beser'''....''to stay'' → '''<u>yag</u>beser'''....''to linger''
::* '''bexer'''....''to hold'' → '''<u>yag</u>bexer'''....''to conserve, preserve''
::* '''daler'''....''to talk'' → '''<u>yag</u>daler'''....''to ramble''
::* '''dodaler'''....''to orate'' → '''<u>yag</u>dodaler'''....''to harangue''
::* '''fer'''....''to want'' → '''<u>yag</u>fer'''....''to yearn, pine''
::* '''teaxer'''....''to look'' → '''<u>yag</u>teaxer'''....''to stare''
::* '''fer'''....''to want'' → '''<u>yag</u>fer'''....''to yearn, pine''
=== Expressing a brief action with '''yog-''' (''short'') ===
::* '''drer'''....''to write'' → '''<u>yog</u>drer'''....''to abbreviate''
::* '''teaxer'''....''to look'' → '''<u>yog</u>teaxer'''....''to glance at''
::* '''tujer'''....''to sleep'' → '''<u>yog</u>tujer'''....''to snooze, nap''
::* '''gobler'''....''to cut'' → '''<u>yog</u>gobler'''....''to cut short, truncate''
=== Some Hybrid Prefixes ===
The prefix '''kui-''' is a hybrid of '''ku-''' (''lateral'') and '''ki-''' (''diagonal'')
::* '''per'''....''to go'' → '''<u>kui</u>per'''....''to wobble''
::* '''tyoper'''....''to walk'' → '''<u>kui</u>tyoper'''....''to limp''
The prefix '''zao-''' is a truncated hybrid of '''zay-''' (''forward'') and '''zoy-''' (''backwards''), eg:
::* '''baser'''....''to move'' → '''<u>zao</u>baser'''....''to rock''
::* '''per'''....''to go'' → '''<u>zao</u>per'''....''to alternate''
::* '''beler'''....''to carry'' → '''<u>kui</u>beler'''....''to shuttle, ferry''
::* '''pyoser'''....''to fall'' → '''<u>kui</u>pyoser'''....''to pendulate''
The prefix '''yaob-''' is a hybrid of '''yab-''' (''up'') and '''yob-''' (''down''). The final '''b-''' is assimilated or dropped before a '''b''' or '''p'''.
::* '''baser'''....''to move'' → '''<u>yao</u>baser'''....''to bob''
::* '''per'''....''to go'' → '''<u>yao</u>per'''....''to heave''
::* '''beler'''....''to carry'' → '''<u>yao</u>beler'''....''to shuttle, ferry''
::* '''peper'''....''to ride'' → '''<u>yao</u>peper'''....''to jounce''
::* '''puser'''....''to jump'' → '''<u>yao</u>puser'''....''to hop, bounce''
The prefix '''bui-''' is a hybrid of '''bu-''' (''to'') and '''bi-''' (''from''), eg:
::* '''drer'''....''to write'' → '''<u>bui</u>drer'''....''to correspond''
::* '''-er'''....''to x'' → '''<u>bui</u>er'''....''to trade''
::* '''beler'''....''to carry'' → '''<u>bui</u>beler'''....''to shuttle, ferry''
::* '''xer'''....''to do'' → '''<u>bui</u>xer'''....''to push and pull, spring''
::* '''poper'''....''to travel'' → '''<u>bui</u>poper'''....''to travel to and fro, travel round trip''
The prefix '''uiz-''' is a hybrid of '''uz-''' (''crooked'') and '''iz-''' (''straight''), eg:
::* '''drer'''....''to write'' → '''<u>uiz</u>drer'''....''to squiggle''
::* '''der'''....''to say'' → '''<u>uiz</u>der'''....''to equivocate''
::* '''baser'''....''to move'' → '''<u>uiz</u>baser'''....''to wiggle, to squirm''
::* '''per'''....''to go'' → '''<u>uiz</u>per'''....''to careen, reel''
::* '''paser'''....''to move'' → '''<u>uiz</u>paser'''....''to swerve, yaw''
The prefix '''zui-''' is a hybrid of '''zu-''' (''left'') and '''zi-''' (''right''), eg:
::* '''drer'''....''to write'' → '''<u>uiz</u>drer'''....''to squiggle''
::* '''buxer'''....''to push'' → '''<u>zui</u>buxer'''....''to push around''
::* '''baser'''....''to move'' → '''<u>zui</u>baser'''....''to sway, totter''
::* '''per'''....''to go'' → '''<u>zui</u>per'''....''to zigzag''
::* '''pasler'''....''to shake'' → '''<u>zui</u>pasler'''....''to wobble''
The prefix '''aoyeb-''' is a hybrid of '''(a)yeb-''' (''in'') and '''oyeb-''' (''out''), eg:
::* '''ber'''....''to put'' → '''<u>aoye</u>ber'''....''to insert and extract''
::* '''tiexer'''....''to breathe'' → '''<u>aoye</u>tiexer'''....''to breath in and out''
::* '''paper'''....''to fly'' → '''<u>aoye</u>paper'''....''to fly in and out''
The prefix '''aob-''' is a hybrid of '''ab-''' (''on'') and '''ob-''' (''off''), eg:
::* '''ber'''....''to put'' → '''<u>ao</u>ber'''....''to put on and off''
::* '''per'''....''to go'' → '''<u>ao</u>per'''....''to get on and off, embark and disembark''
The prefix '''vao-''' is a hybrid of '''va-''' (''yes'') and '''vo-''' (''no''), eg:
::* '''der'''....''to say'' → '''<u>vao</u>der'''....''to decide''
::* '''daler'''....''to talk'' → '''<u>vao</u>daler'''....''to waffle''
::* '''duder'''....''to answer'' → '''<u>vao</u>duder'''....''to answer yes or no''
::* '''kyaxer'''....''to change'' → '''<u>vao</u>kyaxer'''....''to redact''
::* '''texer'''....''to think'' → '''<u>vao</u>texer'''....''to deliberate, vacillate''
The prefix '''uij''' is a hybrid of '''uj-''' (''end'') and '''ij-''' (''begin'')
::* '''ber'''....''to put'' → '''<u>uij</u>ber'''....''to switch off and on''
::* '''daler'''....''to talk'' → '''<u>uij</u>daler'''....''to stutter''
The prefix '''yuij''' is a hybrid of '''yuj-''' (''close'') and '''yij-''' (''open'')
::* '''ber'''....''to put'' → '''<u>yuij</u>ber'''....''to open and close, blink''
The prefix '''huim''' is a hybrid of '''hum''' (''there'') and '''him''' (''there'')
::* '''paper'''....''to fly'' → '''<u>huim</u>paper'''....''to fly here and yon''
::* '''per'''....''to go'' → '''<u>huim</u>per'''....''to wander''
::* '''kexer'''....''to seek'' → '''<u>huim</u>kexer'''....''to search high and low''
=== Different Nuances of '''teaxer''' with Prefixes ===
<div style="background: lightyellow;{{Text default color}}; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}};font-size:smaller;";>
::* '''teaxer'''....''to look, behold, regard''
::* '''aybteaxer'''....''to supervise, look over''
::* '''ajteaxer'''....''to look back on (retrospect)''
::* '''eynteaxer'''....''to squint''
::* '''fizteaxer'''....''to respect''
::* '''fuzteaxer'''....''to disrespect''
::* '''gawteaxer'''....''to review, re-look''
::* '''hyuitteaxer'''....''to look at one another''
::* '''ibteaxer'''....''to ignore''
::* '''igteaxer'''....''to glance, glimpse''
::* '''ifteaxer'''....''to marvel at''
::* '''izteaxer'''....''to view directly, confront, aim''
::* '''jateaxer'''....''to preview''
::* '''jeteaxer'''....''to watch, observe''
::* '''joteaxer'''....''to review''
::* '''kateaxer'''....''to look for''
::* '''keteaxer'''....''to scan''
::* '''kiteaxer'''....''to look askance''
::* '''koteaxer'''....''to peek, spy''
::* '''kozyeteaxer'''....''to peep''
::* '''kozyoteaxer'''....''to peer''
::* '''kuteaxer'''....''to observe''
::* '''kyeteaxer'''....''to browse''
::* '''kyoteaxer'''....''to stare, glare''
::* '''oteaxer'''....''to ignore, overlook''
::* '''ufteaxer'''....''to glare, leer''
::* '''ugteaxer'''....''to gaze''
::* '''yagteaxer'''....''to gape, gawk''
::* '''yebteaxer'''....''to inspect''
::* '''yibteaxer'''....''to view from afar''
::* '''yogteaxer'''....''to glance at''
::* '''yokteaxer'''....''to get a glimpse of''
::* '''yubteaxer'''....''to examine''
::* '''yuibteaxer'''....''to look near and far''
::* '''yuzteaxer'''....''to look around, circumspect''
::* '''yanteaxer'''....''to view together''
::* '''yizteaxer'''....''to look beyond, overlook''
::* '''vyateaxer'''....''to investigate, check out''
::* '''vyoteaxer'''....''to view wrongly''
::* '''zateaxer'''....''to face, confront''
::* '''zayteaxer'''....''to look ahead, expect''
::* '''zoyteaxer'''....''to look back''
::* '''zeyteaxer'''....''to look across''
::* '''ziteaxer'''....''to look to the right''
::* '''zuteaxer'''....''to look to the left''
::* '''zuiteaxer'''....''to look right and left''
::* '''zyateaxer'''....''to look all over, survey''
::* '''zyeteaxer'''....''to look through, peruse''
::* '''zyoteaxer'''....''to squint''
::* '''yobteaxer'''....''to look down''
::* '''yaobteaxer'''....''to look up and down''
::* '''zaoteaxer'''....''to look back and forth''
::* '''yabteaxer'''....''to look up''
::* '''yubketeaxer'''....''to pry''
::* '''uzteaxer'''....''to look indirectly at''
::* '''oyebteaxer'''....''to look out''
::* '''ojteaxer'''....''to peer into the future''
::* '''marteaxer'''....''to star-gaze''
::* '''tabteaxer'''....''to autopsy''
</div>
== Modal Verbs ==
: Modal verbs are auxiliary verbs that are usually followed by the main verb in the infinitive or a subjunctive dependent clause and have to do with wanting, permitting, prohibiting, being able, being unable, needing, being obliged to do something, etc.
==== Principal Modal Auxiliary Verbs ====
[[File:Ladies Should Listen poster.jpg|thumb|]]
: Mirad has a set of modal auxiliary verbs that can be followed by a main verb in the infinitive mode. This is very much like English modal auxiliary verbs in the following examples:
::* ''I <u>want</u> to go.''
::* ''You <u>must</u> wait.''
::* ''You <u>may</u> stay.''
::* ''I <u>dare</u> say.''
: Here is a chart showing the main modal auxiliary verbs in Mirad:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Principle Modal Auxiliary Verbs
|-
! Type !! Positive !! Negative
|-
! Permission
| '''afer'''....''may''<br>'''ayfer'''....''might'' || '''ofer'''....''may not''<br>'''oyfer'''....''might not''
|-
! Ability
| '''yafer'''....''can''||'''yofer'''....''cannot''
|-
! Need
| '''efer'''....''need to'' ||
|-
! Obligation
| '''yefer'''....''must''<br>'''yeyfer'''....''should'' ||'''oyefer'''....''must not''<br>'''oyeyfer'''....''should not''
|-
! Desire
| '''fer'''....''want to'' ||
|-
! Enjoyment
| '''ifer'''....''love to, enjoy''<br>'''iyfer'''....''like to'' || '''ufer'''....''hate to''<br>'''uyfer'''....''dislike to''
|-
! Courage
|'''yifer'''....''dare to'' || '''yufer'''....''be afraid to, fear''
|-
! Liberty
| '''yiver'''....''have a right to, be free to'' || '''yuver'''....''be bound to, be supposed to''
|-
! Expectation
| '''yaker'''....''expect to'' || '''yoker'''....''be surprised to''
|-
! Conation
| '''yeker'''....''try to'' ||
|-
! Difficulty
| '''yiker'''....''to find it hard to'' || '''yuker'''....''to find it easy to''
|}
: These modal auxiliary verbs are often followed by a verbal infinitive, as in the following examples:
::* '''At fe <u>ter</u>.'''....''I want <u>to know</u>.''
::* '''Wit yifa <u>yeper</u>.'''....''He dared <u>to enter</u>.''
::* '''Yat yafe <u>teater</u> yet.'''....''We can <u>see</u> you.''
::* '''Duven et yaka <u>aker</u>?'''....''Did you expect <u>to win</u>?''
::* '''Diwe yeku <u>xer</u> ga fi.'''....''Please try <u>to do</u> better.''
: If the modal verb is in the hypothetical aspect (conditional), then the sense is somewhat mitigated, as in these examples:
:* '''At <u>fe</u> per.'''....''I <u>want</u> to go.''
:* '''At <u>fu</u> per.'''....''I <u>would</u> like to go.''
:* '''Et <u>yafe</u> aker.'''....''You <u>can</u> win.''
:* '''Et <u>yafu</u> aker.'''....''You <u>could</u> win.''
:* '''Yet <u>yefe</u> iper.'''....''You <u>must</u> leave.''
:* '''Yet <u>yefu</u> iper.'''....''You <u>ought</u> to leave.''
: Post-y-gliding the stem vowel of the modal verb also reduces the strength, for example:
:* '''At <u>ife</u> et.''' ....''I <u>love</u> you.''
:* '''At <u>iyfe</u> et.''' ....''I <u>like</u> you.''
:* '''Et <u>yefe</u> iper.'''....''You <u>must</u> leave.''
:* '''Et <u>yeyfe</u> iper.'''....''You <u>should</u> leave.''
:* '''Iyt <u>yafe</u> aker.'''....''She <u>can</u> win.''
:* '''Iyt <u>yayfe</u> aker.'''....''She <u>might</u> win.''
:* '''At <u>ufa</u> uda tuz.'''....''I <u>hated</u> that art.''
:* '''At <u>uyfa</u> uda tuz.'''....''I <u>disliked</u> that art.''
: The use of '''l''' and '''r''' intensify the meaning of the auxiliary verbs, eg:
:* '''Et <u>yuve</u> puer jwe.'''....''You <u>are supposed</u> to arrive on time.''
:* '''Et <u>yuvle</u> tepzexer.'''....''You <u>have</u> to pay attention.''
:* '''Et <u>yuvre</u> buer nas.'''....''You <u>absolutely must</u> give money.''
:* '''At <u>yeka</u> ser yeva.'''....''I <u>tried</u> to be fair.''
:* '''At <u>yekla</u> ujber jwa.'''....''I <u>strove</u> to finish early.''
:* '''At <u>yekra</u> nixer ga nas.'''....''I <u>struggled (= worked hard))</u> to earn more money.''
:* '''Iyt <u>ife</u> eker zyun.'''....''She <u>loves</u> to play ball.''
:* '''Iyt <u>ifla</u> teater et.'''....''She <u>was delighted</u> to see you.''
:* '''Iyt <u>ifre</u> teaper him.'''....''She <u>adores</u> visiting here.''
: Here are some examples showing how these modal verbs are used as auxiliaries:
::* '''Et <u>afe</u> oyeper ay ifeker.'''....''You <u>may</u> go out and play.''
::* '''Yat <u>efa</u> tujer.'''....''We <u>needed</u> to sleep.''
::* '''Ot <u>ofe</u> mavier him.'''....''One <u>is prohibited</u> to smoke here.''
::* '''Mavier him <u>ofwe</u>.'''....''Smoking here is prohibited.''
::* '''At <u>ife</u> dyeer.'''....''I <u>love</u> to read.''
::* '''Duven et <u>fe</u> yeper?'''....''Do you <u>want</u> to come in?''
::* '''At <u>fu</u> teaper et edjub.'''....''I <u>would like</u> to visit you some day.''
::* '''It <u>ufaye hyaj</u> teaxwer.'''....''He <u>has always hated</u> being looked at.''
::* '''Duven et <u>iyfe</u> per tilami?'''....''Do you <u>like</u> going to bars?''
::* '''At <u>uyfe</u> tijer gra jwa.'''....''I <u>dislike</u> waking up too early.''
::* '''Et <u>yafe</u> xer hyehos et fu.'''....''You <u>can</u> do whatever you like.''
::* '''Et <u>yefer</u> xer ad vyaas.'''....''You <u>must</u> do the right thing.''
::* '''Et <u>yeyfe</u> voy daler huuyen azay.'''....''You <u>should</u> not talk so loud.''
::* '''At <u>yeyfa</u> ter ga fi.'''....''I <u>should have</u> known better.''
::* '''At <u>voy yifu</u> der hyea fuas.'''....''I <u>would not dare</u> say anything bad.''
::* '''<u>Von yufu</u> der hos et tesde.'''....''<u>Don't be afraid</u> to say what you mean.''
::* '''Et <u>yive</u> dier yevanavdut.'''....''You <u>have a right</u> to ask for a lawyer.''
::* '''Yat <u>voy yuvle</u> kyoejer.'''....''We <u>are not bound</u> to stick around.''
=== Subject-oriented vs. Patient-oriented Modal Verb Forms ===
:: All of these modal verbs can be passive, in which case they are "patient-oriented" rather than "subject-oriented." The participial adjective '''yafa'''....''able'' is subject-oriented and refers to a person, whereas the passived adjective '''yafwa'''....''possible'' is patient-oriented and refers to a thing or event. Here is a chart of the principal modal verbs and corresponding participial adjectives with this subject/object-orientation distinction shown:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Subject-oriented vs. Patient-oriented Modal Verb Forms
|-
! Modal Type || Subject-oriented !! Subject-oriented !! Patient-oriented !! Patient-oriented
|-
! !! Verb !! Adjective !! Verb !! Adjective
|-
!row=1| Permission
| '''afer'''<br>''may'' || '''afa'''<br>''allowed'' || '''afwer'''<br>''be permitted'' || '''afwa'''<br>''permissable''
|-
!row=1| Necessity
| '''efer'''<br>''need'' || '''efa'''<br>''needful'' || '''efwer'''<br>''be necessary'' || '''efwa'''<br>''necessary, required''
|-
!row=1| Prohibition
| '''ofer'''<br>''be unallowed'' || '''ofa'''<br>''prohibited'' || '''ofwer'''<br>''be prohibited'' || '''ofwa'''<br>''banned''
|-
!row=1| Possibility
| '''yafer'''<br>''be able'' || '''yafa'''<br>''able'' || '''yafwer'''<br>''be possible'' || '''yafwa'''<br>''possible''
|-
!row=1| Obligation
| '''yefer'''<br>''must'' || '''yefa'''<br>''obliged'' || '''yefwer'''<br>''be obligatory'' || '''yefwa'''<br>''obligatory''
|-
!row=1| Duty
| '''yeyfer'''<br>''should'' || '''yeyfa'''<br>''supposed, duty-bound'' || '''yeyfwer'''<br>''be supposed'' || '''yeyfwa'''<br>''due''
|-
!row=1| Impossibility
| '''yofer'''<br>''be unable'' || '''yofa'''<br>''unable'' || '''yofwer'''<br>''be impossible'' || '''yofwa'''<br>''impossible''
|-
!row=1| Volition
| '''fer'''<br>''want'' || '''fa'''<br>''desirous'' || '''fwer'''<br>''be desirable'' || '''fwa'''<br>''desirable, wanted''
|-
!row=1| Love
| '''ifer'''<br>''love''<br>'''iyfer'''<br>''like'' || '''ifa'''<br>''enamored''<br>'''iyfa'''<br>''fond'' || '''ifwer'''<br>''be loved''<br>'''iyfwer'''<br>''be liked'' || '''ifwa'''<br>''lovable''<br>'''iyfwa'''<br>''likeable''
|-
!row=1| Hate
| '''ufer'''<br>''hate''<br>'''uyfer'''<br>''dislike'' || '''ufa'''<br>''averse''<br>'''uyfa'''<br>''displeased''|| '''ufwer'''<br>''be hated''<br>'''uyfwer'''<br>''be disliked'' || '''ufwa'''<br>''odious''<br>''unliked''
|-
!row=1| Courage
| '''yifer'''<br>''dare'' || '''yifa'''<br>''daring, brave'' || '''yifwer'''<br>''be safe'' || '''yifwa'''<br>''safe''
|-
!row=1| Fear
| '''yufer'''<br>''be afraid'' || '''yufa'''<br>''afraid'' || '''yufwer'''<br>''be a danger'' || '''yufwa'''<br>''frightening''
|-
!row=1| Joy
| '''iver'''<br>''enjoy'' || '''iva'''<br>''glad'' || '''ivwer'''<br>''be a joy'' || '''ivwa'''<br>''enjoyable''
|-
!row=1| Sorrow
| '''uver'''<br>''be sorry'' || '''uva'''<br>''sorry, sad'' || '''uvwer'''<br>''be a shame'' || '''uvwa'''<br>''regrettable''
|}
: Examples of subject-oriented forms:
::* '''At se <u>yafa</u> xer hes.'''....''I <u>am capable of</u> doing anything.''
::* '''Et <u>ofe</u> teater hia dyezun.'''....''You <u>are not allowed/are prohibited</u> to see this film.''
::* '''Duven at <u>afe</u> per hum?'''....''Am I <u>allowed</u> to go there?''
::* '''Yat <u>fu</u> ter eta dyun.'''....''We <u>would like</u> to know your name.''
::* '''Piti <u>ufe</u> beser be mel.'''....''Fish <u>hate</u> to remain on dry land.''
::* '''At ajay <u>ifa</u> dazer.'''....''I once <u>loved</u> to dance.''
::* '''Et se iva, at <u>yife</u> der.'''....''You are beautiful, I <u>dare</u> say.''
::* '''At <u>yeyfa</u> xer has ga ig.'''....''I <u>should</u> have done it sooner.''
::* '''Von <u>yufu</u>; At yupeye.'''....''<u>Fear</u> not; I am coming.''
::* '''Et <u>yefe</u> puer ja eymaj.'''....''You <u>must</u> arrive before noon.''
::* '''Yet <u>yofe</u> daler je ha dezun.'''....''You people <u>must not</u> talk during the performance.''
::* '''Yat <u>yeyfe</u> (= se <u>yeyfa</u>) aker.'''....''We should (= are <u>bound/supposed/due</u>) to win.''
::* '''At <u>ive</u> teater et bakser.'''....''I<u>'m glad</u> to see you get better.''
::* '''Su <u>iva</u>.'''....''Be <u>happy</u>.''
::* '''At <u>uvu (= su uva)</u> teater et iper.'''....''I <u>would be sad</u> to see you leave.''
: Examples of patient-oriented forms:
::* '''<u>Afwe</u> (= se afwa) mavier him.'''....''<u>It is permissible</u> to smoke here.''
::* '''<u>Ofwe</u> (= se ofwa*) puxer fyumul him.'''....''<u>It is prohibited</u> to throw litter here.''
::* '''<u>Fwe</u> (= se fwa) van yet dolu.'''....''<u>It is desired</u> that you stop talking.''
::* '''<u>Voy yafwe</u> beser him gajob.'''....''<u>It is not possible</u> to remain here any longer.''
::* '''<u>Yofwa</u> av at ivteuder.'''....''<u>It was not possible</u> for me to laugh.''
::* '''<u>Yefwe</u> van et piu ig.'''....''<u>It is essential</u> that you leave quickly.''
::* '''He <u>yeyfwe</u> ober ata tyoyafi?'''....''Is <u>it obligatory</u> to remove my shoes?''
::* '''Ga yux <u>efwo</u>.'''....''More help <u>will be needed</u>.''
::* '''Yuxren se <u>ufwa</u> xetyen.'''....''Slavery is an <u>odious</u> practice.''
::* '''<u>Uvwe</u> van wit oka.'''....''<u>It's a shame</u> that he lost.''
:: *<small>'''lofwa''' is used for ''unwanted'' for disambiguation purposes.</small>
=== Deriving Causatives from Modal Stems ===
: Various causative verbs can be formed from modal stems, as shown in the chart below:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Deriving Causatives from Modal Stems
|-
! Subject-oriented !! Patient-oriented
|-
| '''afxer'''....''allow'' (someone to do sthg.) || '''afwaxer'''....''permit'' (something to be done)
|-
| '''efxer'''....''require'' || '''efwaxer'''....''necessitate''
|-
| '''ofxer'''....''prohibit'' || '''ofwaxer'''....''prohibit''
|-
| '''yafxer'''....''enable'' || '''yafwaxer'''....''make possible''
|-
| '''yefxer'''....''oblige'' || '''yefwaxer'''....''make obligatory''
|-
| '''yofxer'''....''cripple'' || '''yofwaxer'''....''disable''
|-
| '''yifxer'''....''embolden'' || '''yifwaxer'''....''make safe''
|-
| '''yufxer'''....''intimidate'' || '''yufwaxer'''....''make frightening''
|-
| '''ifxer'''....''please'' || '''ifwaxer'''....''make pleasant''
|}
=== Creating Modal Verbs and Adjectives with Modal Stem Suffixes ===
: Verb stems can be suffixed with modal participles to produce related modal verbs and adjectives. The first chart shows the modal participles themselves that can be suffixed to verb stems. Subject-oriented forms refer only to people, while patient-oriented forms (ending in '''-wa''') refer only to things.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Modal Suffixes
|-
! Subject-oriented !! Patient-oriented
|-
| '''-yafa'''....''able to X, -able'' || '''-yafwa'''....''possible to X''
|-
| '''-yofa'''....''unable to X'' || '''-yofwa'''....''impossible to X''
|-
| '''-ifa'''....''fond of Xing, Xophile'' || '''-ifwa'''....''enjoyable to X''
|-
| '''-ufa'''....''averse to Xing, Xophobic'' ||'''-ufwa'''....''unenjoyable to X''
|-
| '''-yika'''....''hard of Xing'' || '''-yikwa'''....''hard to X''
|-
| '''-yuka'''....''comfortable/easy Xing'' || '''-yukwa'''....''easy to X''
|-
| '''-yaka'''....''expecting to X'' || '''yakwa'''....''expected/likely to X''
|-
| '''-efa'''....''in need of Xing'' || '''-efwa'''....''necessary to X''
|-
| '''-yefa'''....''obliged to X'' || '''-yefwa'''....''obligatory/due to X''
|-
| '''-yufa'''....''afraid of Xing'' || '''-yufwa'''....''frightening to X''
|}
: This table shows some of these modal suffixes applied to actual verb and noun stems:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Modals and Orientation
|-
! Orientation !! Positive Adjective !! Positive Verb !! Negative Adjective !! Negative Verb
|-
!row=1| '''Subject'''
| '''teatyafa'''<br>''able to see, sighted'' || '''teatyafer'''<br>''be able to see'' || '''teatyofa'''<br>''blind'' || '''teatyofer'''<br>''be blind''
|-
!row=1| '''Patient'''
| '''teatyafwa'''<br>''visible'' || '''teatyafwer'''<br>''be visible'' || '''teatyofwa'''<br>''invisible'' || '''teatyofwer'''<br>''be invisible''
|-
!row=1| '''Subject'''
| '''teetyafa'''<br>''able to hear, hearing'' || '''teetyafer'''<br>''be able to hear'' || '''teetyofa'''<br>''deaf'' || '''teatyofer'''<br>''be deaf''
|-
!row=1| '''Patient'''
| '''teetyafwa'''<br>''audible'' || '''teetyafwer'''<br>''be audible'' || '''teeyofwa'''<br>''inaudible'' || '''teeyofwer'''<br>''be inaudiable''
|-
!row=1| '''Subject'''
| '''dalyafa'''<br>''able to speak'' || '''dalyafer'''<br>''be able to speak'' || '''dalyofa'''<br>''mute, dumb'' || '''dalyofer'''<br>''be mute, dumb''
|-
!row=1| '''Subject'''
| '''doabifa'''<br>''patriotic'' || '''doabifer'''<br>''be patriotic'' || '''doabufa'''<br>''rebellious'' || '''doabufer'''<br>''rebel''
|-
!row=1| '''Subject'''
| '''tosyafa'''<br>''sensitive'' || '''tosyafer'''<br>''be able to feel'' || '''tosyofa'''<br>''insensitive'' || '''tosyofer'''<br>''be numbed''
|-
!row=1| '''Patient'''
| '''tayotyafwa'''<br>''palpable'' || '''tayotyafwer'''<br>''be palpable'' || '''tayotyofwa'''<br>''numb'' || '''tayotyofwer'''<br>''be impalbable, numb''
|-
!row=1| '''Patient'''
| '''testyukwa'''<br>''easy to understand'' || '''testyukwaxer'''<br>''make easily understood'' || '''testyikwa'''<br>''hard to understand'' || '''testyikwaxer'''<br>''make hard to understand''
|-
!row=1| '''Subject'''
| '''tudyaka'''<br>''pregnant, expecting'' || '''tudyaker'''<br>''be expecting''|| ||
|-
!row=1| '''Patient'''
|'''mamilyakwa'''<br>''likely to rain'' || '''mamilyakwer'''<br>''to be expected to rain''|| '''mamilyokwa'''<br>''unlikely to rain''|| '''mamilyokwer'''<br>''to be unlikely to rain''
|-
!row=1| '''Subject'''
| '''tilefa'''<br>''thirsty'' || '''tilefer'''<br>''be thirsty'' || ||
|-
!row=1| '''Subject'''
| '''telefa'''<br>''hungry'' || '''telefer'''<br>''be hungry'' || ||
|-
!row=1| '''Patient'''
| '''tejefwa'''<br>''vital'' || '''tejefwer'''<br>''be vital'' || ||
|-
!row=1| '''Subject'''
| '''tujefa'''<br>''sleepy'' || '''tujefer'''<br>''be sleepy'' || ||
|-
!row=1| '''Subject'''
| '''nasefa'''<br>''poor, needy'' || '''nasefer'''<br>''be needy'' || ||
|-
!row=1| '''Subject'''
| '''dudyefa'''<br>''accountable, responsible'' || '''dudyefer'''<br>''be responsible'' || ||
|-
!row=1| '''Patient'''
| '''texiyefwa'''<br>''noteworthy'' || '''texiyefwer'''<br>''be noteworthy'' || ||
|}
== Sensing Verbs ==
: Verbs involving the senses, such as sight or hearing, follow a similar pattern, as the following chart shows:
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Sensing Verbs
|- valign=top
! TYPE !! '''teab'''....''eye''<br>'''teata'''....''visual'' !! '''teeb'''....''ear''<br>'''teeta'''....''acoustic'' !! '''teib'''....''nose''<br>'''teita'''....''olfactory'' !! '''teub'''....''mouth''<br>'''teuta'''....''gustatory'' !! '''tayob'''....''skin''<br>'''tayota'''....''tactile''
|- valign=top
!row=1| Receptive<br>Active
| '''teater'''<br>''see'' || '''teeter'''<br>''hear'' || '''teiter'''<br>''smell'' || '''teuter'''<br>''taste'' || '''tayoter'''<br>''feel''
|- valign=top
!row=1| Receptive<br>Passive
| '''teatwer'''<br>''be seen'' || '''teetwer'''<br>''be heard'' || '''teitwer'''<br>''be smelled'' || '''teutwer'''<br>''be tasted'' || '''tayotwer'''<br>''be felt''
|- valign=top
!row=1| Stative
| '''teaser'''<br>''seem'' || '''teeser'''<br>''sound'' || '''teiser'''<br>''smell'' || '''teuser'''<br>''taste'' || '''tayoser'''<br>''feel''
|- valign=top
!row=1| Dynamic<br>Active
| '''teaxer'''<br>''look at'' || '''teexer'''<br>''listen'' || '''teixer'''<br>''sniff'' || '''teuxer'''<br>''taste'' || '''tayoxer'''<br>''touch''
|- valign=top
!row=1| Dynamic<br>Passive
| '''teaxwer'''<br>''be looked at'' || '''teexwer'''<br>''be listened to'' || '''teixwer'''<br>''be sniffed'' || '''teuxwer'''<br>''be tasted'' || '''tayoxwer'''<br>''be touched''
|- valign=top
!row=1| Causative<br>Active
| '''teatuer'''<br>''show'' || '''teetuer'''<br>''make hear'' || '''teixuer'''<br>''make smell'' || '''teuxuer'''<br>''offer a taste'' || '''tayoxuer'''<br>''make feel''
|- valign=top
!row=1| Causative<br>Passive
| '''teatuwer'''<br>''be shown'' || '''teetuwer'''<br>''be made to hear'' || '''teituwer'''<br>''be made to smell'' || '''teutuwer'''<br>''be given a taste'' || '''tayotuwer'''<br>''be made to feel''
|- valign=top
!row=1| Inchoative<br>Active
| '''teatier'''<br>''perceive,''<br>''catch sight of'' || '''teetier'''<br>''catch the<br>sound of'' || '''teitier'''<br>''get a whiff of'' || '''teutuer'''<br>''get a taste of'' || '''tayotier'''<br>''get the sensation of''
|- valign=top
!row=1| Inchoative<br>Passive
| '''teatiwer'''<br>''be perceived'' || '''teetiwer'''<br>''be heard'' || '''teitiwer'''<br>''be whiffed'' || '''teutiwer'''<br>''be tasted'' || '''tayotiwer'''<br>''be felt''
|- valign=top
!row=1| Negative-Modal<br>Patient-oriented<br>Stative
| '''teatyofer'''<br>''be blind'' || '''teetyofer'''<br>''be deaf'' || '''teityofer'''<br>''be unable to smell'' || '''teityofer'''<br>''be unable to taste'' || '''tayotyofer'''<br>''be insensitive''
|- valign=top
!row=1| Negative-Modal<br>Patient-oriented<br>Stative
| '''teatyofwer'''<br>''be invisible'' || '''teetyofwer'''<br>''be inaudible'' || '''teityofwer'''<br>''be undetectable<br>odorwise'' || '''teityofwer'''<br>''be insipid'' || '''tayotyofwer'''<br>''be undetectable<br>by touch''
|- valign=top
!row=1| Negative-Modal<br>Patient-oriented<br>Causative
| '''teatyofxer'''<br>''blind'' || '''teetyofxer'''<br>''deafen'' || '''teityofxer'''<br>''desensitize<br>to smell'' || '''teutyofxer'''<br>''desensitize to<br>taste'' || '''tayotyofxer'''<br>''desensitize''
|- valign=top
!row=1| Negative-Modal<br>Patient-oriented<br>Causative
| '''teatyofwaxer'''<br>''make invisible'' || '''teetyofwaxer'''<br>''make inaudible'' || '''teityofwaxer'''<br>''make odorless'' || '''teutyofwaxer'''<br>''render tasteless'' || '''tayotyofwaxer'''<br>''numb''
|}
: Examples of usage:
:* '''At <u>teatyofxwa</u> bey ha mani.'''....''I <u>was blinded</u> by the lights.''
:* '''Ha xeus sa <u>teetyofxyea</u>.'''....''The noise was <u>deafening</u>.''
:* '''Hia tit se gla <u>teatiyafa</u>.'''....''This pupil is very <u>perceptive</u>.''
:* '''Hua bekil se <u>teityofwa</u>.'''....''That medicine is <u>odorless</u> (impossible to smell).''
:* '''<u>Teatyofwaxu</u> ha vyuni.'''....''<u>Make</u> the spots <u>invisible</u>.''
:* '''Ha magmemyaz yonpyexlun <u>tayotyafwa</u> zya ha mir.'''....''The volcano eruption <u>could be felt</u> throughout the world.''
== Frequentative Verbs ==
:Frequentative verbs or repetitive action verbs can be formed with the prefix '''je-'''. This prefix gives the verb the meaning ''to keep on doing something''.
::{| class="wikitable" style="background: lightyellow;{{Text default color}};font-size:smaller;"
|+ Frequentative Verbs
|-
! Normal !! Frequentative
|-
| '''teaxer'''....''to look''||'''<u>je</u>teaxer'''....''to watch''
|-
| '''bexer'''....''to hold''||'''<u>je</u>bexer'''....''to conserve''
|-
| '''byexer'''....''to hit''||'''<u>je</u>byexer'''....''to batter''
|-
| '''zoigper'''....''to pursue''||'''<u>je</u>zoigper'''....''to stalk''
|-
| '''duler'''....''to urge'' || '''<u>je</u>duler'''....''to nag''
|}
== Hybridized Verbs ==
: Verbs that involve motion directions that change back and forth can be formed by hybridizing the stem vowel or the vowel of the vectorial prefix. Here are some examples:
::{| class="wikitable" style="background: lightyellow;{{Text default color}};font-size:smaller;"
|+ Hybridized Verbs
|-
! First Verb !! Second Verb !! Hybridized Verb
|-
| '''py<u>a</u>ser'''....''jump up''|| '''py<u>o</u>ser'''....''fall down'' || '''py<u>ao</u>ser'''....''bounce, undulate''
|-
| '''buer'''....''give'' || '''bier'''....''take'' || '''buier'''....''exchange''
|-
| '''nuer'''....''furnish'' || '''nier'''....''consume'' || '''nuier'''....''trade''
|-
| '''tuer'''....''inform'' || '''tier'''....''learn'' || '''tuier'''....''communicate''
|-
| '''yaper'''....''ascend'' || '''yoper'''....''descend'' || '''yaoper'''....''go up and down''
|-
| '''zayper'''....''go forward'' || '''zoyper'''....''go back'' || '''zaoper'''....''vacillate''
|-
| '''vader'''....''affirm'' || '''voder'''....''deny'' || '''vaoder'''....''decide''
|-
| '''yijber'''....''open'' || '''yujber'''....''close'' || '''uijber'''....''valve''
|-
| '''baser'''....''stir'' || '''boser'''....''be still'' || '''baoser'''....''vibrate''
|}
== Expressing Habitual Actions and States ==
: Mirad uses the term '''gel jubyen''' (''as a habit'') to express a verb reflecting habitual action, eg:
::* '''At tijeya be yiwa jwobi gel jubyen.'''....''I used to wake up at 9 o'clock.'' (Lit. ''I was waking up at 9 o'clock as a habit.'').
: The term '''hyujod'''....''one another occasion'' (or '''be aj'''....''in the past'') is use to express ''once (upon a time)'', eg:
::* '''At sa tuxut hyujod (~ be aj) sa tuxut.''' ....''I once was a teacher.''
: The term '''vyabxelay''' (''routinely'') can also be used, eg:
::* '''Yat eke duz yuz bi ha doym vyabxelay.'''....''We play music around town routinely.''
== Expressing an Immediate Past ==
: To express an immediate past, such as in the sentence ''"We have just gotten married."'', Mirad uses the adverb '''ejnay''' (''newly'') much like the word ''just'' in English:
::* '''Yat tadsaye <u>ejnay</u>.'''....''We have <u>just</u> gotten married.''
::* '''<u>Ejnay</u> tadxwa.'''....''<u>Just</u> married.''
::* '''Wit dokebiwa <u>ejnay</u>.'''....''He was <u>just</u> elected.''
::* '''At ujbaya yex <u>ejnay</u> hoj iyt yebupa.'''....''I had <u>just</u> finished work when she came in.''
== Verb Predicate Types ==
: Mirad verb predicates can be classified as follows:
:* '''''Voice'''''
::* Active (The subject is the doer of the action)
::* Passive (The subject is the receiver of the action)
::* Middle (The subject is both the agent and patient)
::* Reflexive (The subject is also the patient.)
::* Reciprocal (Plural subjects interact.)
:* '''''Stativity'''''
::* Stative (Does not involve action)
::* Dynamic (Action is involved)
:* '''''Valency'''''
::* Impersonal (There is no subject)
::* Transitive (There is an object)
::* Intransitive (There is no object)
::* Auto-transitive (The subject is a patient and there is no agent)
::* Anti-transitive (There is the patient but an agent is assumed)
::* Causative (Subject causes an action to be performed)
::* Copula (X is Y)
:* '''''Other'''''
::* Modal (''can, must, should, wants to''...)
::* Auxiliary (''help to, hope to, prepare to'' + verb)
::* Motion (''run, go, ride''...)
::* Communication (''say, answer, claim that...'')
::* Gesture (''put, shake, hit...'')
::* State/Stative (''be, become, live, be born...'')
::* Action/Dynamic (''do, act, make'')
{| class="wikitable" style="background: lightYellow;;{{Text default color}};font-size:smaller;"
|+ Verb Predicate Types
|-
! Voice !! Stativity!! Valency !! Example
|-
| active || stative || impersonal, -agent, -object || '''Mamilo zajub.'''....''It will rain tomorrow.''
|-
| active || stative || impersonal, -agent, +complement || '''Sa gla oma.'''....''It was very cold.''
|-
| active || stative || impersonal, +subject || '''Ese het be ha mes.'''....''There is someone at the door.''
|-
| active || stative || copula, subject + noun/adjective complement || '''Et se ata twud.'''....''You are my son.''<br>'''At aseye ebbyextipa.'''....''I am becoming angry.''
|-
| middle || stative || auto-transitive, +subject=patient -agent -object || '''Iyt toja.'''....''She died''
|-
| middle || stative || auto-transitive, +subject=patient +agent -object || '''Ha mes yija.'''....''The door opened.''
|-
| active || stative || intransitive, +subject -object|| '''Et bokso.'''....''You will get sick.''
|-
| active || stative || transitive, sense, +subject +object || '''At teate et.'''....''I see you.''
|-
| active || stative || transitive, modal, +subject +verb complement || '''At fe per.'''....''I want to go.''
|-
| active || stative || intransitive, subject-oriented modal, -subject +verb complement || '''Yofwe teater.'''....''It is impossible to see.''
|-
| passive || stative || patient-oriented modal, +subject || '''Mamil yakwe.'''....''Rain is expected.''
|-
| middle || dynamic || anti-transitive, +subject=patient +agent -object || '''Ha mes yijpa.'''....''The door came open.''
|-
| active || dynamic || intransitive, +subject -object|| '''Ha fab pyosa.'''....''The tree fell.''
|-
| active || dynamic || transitive, +subject +-object || '''Yit pyoxa ha fab.'''....''They felled the tree.''
|-
| passive || dynamic || intransitive, +subject, -object || '''Ha fabi pyoxwa.'''....''The trees were felled.''
|-
| active || dynamic || transitive, +subject, +object|| '''Obu eta tef.'''....''Take your hat off.''
|-
| active || dynamic || ditransitive, +subject, +object +object || '''Von et buu iyt ha nas.'''....''Don't give her the money.''
|-
| active || dynamic || transitive, motion, +subject, +destination/origin || '''Yupu ha seem.'''....''Approach the bench.''<br>'''Pu tam!'''....''Go home!'' (''you'' implied)
|-
| active || dynamic || causative, +subject +object, +agent || '''At tayegobluxo Jon.'''....''I will get my hair cut by John.''
|-
| passive || dynamic || causative, +subject +object, +agent || '''At tayegobluxwo.'''....''I will get my hair cut.''
|-
| active || dynamic || auxiliary, ditransitive, +patient +verb object || '''Yuxu at xer his.'''....''Help me do this.''
|-
| passive || dynamic || auxiliary, ditransitive, +patient +verb object || '''At tuxwa eker duz.'''....''I was taught to play music.''
|-
| middle || dynamic || reflexive, +subject = patient, -object || '''Iyt uttojba.'''....''She killed herself.''
|-
| active || dynamic || reciprocal, +subjects = patients || '''Yit voy hyuitdale gaj.'''....''They don't talk to one another anymore.''
|}
<noinclude>{{Chapter navigation with TOC|Pronouns|Prepositions}}</noinclude>
4lrnpnha02cjp4fru5u5lfwg3od2wuk
4674701
4674700
2026-10-06T12:30:21Z
ShakespeareFan00
46022
Attempting to solve lints - Please ignore the notification this edit generated.
4674701
wikitext
text/x-wiki
<noinclude>{{status|100%}}</noinclude>
== The Verb Stem ==
[[File:Various forms of using the verb "to inform" in LSC.png|thumb|]]
: Verbs in Mirad are listed in the dictionary under the present active infinitive (see [[Mirad Grammar/Verbs#Non-finite Forms]]), such as '''yexer'''....''to work''. The infinitive minus the '''er''' ending is the stem. The stem is used as the base for all other verbal instantiations. The infinitive as listed in the dictionary is usually active in voice, but occasionally a passive infinitive ending in '''-wer''' will be lexicalized because it is somehow special, so then, the stem is still the infinitive minus the '''-er''' ending. All Mirad verbs are conjugated in the same way and there are no exceptions.
: This shows how to determine the '''''stem''''' of a verb listed in the dictionary:
::{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller;"
|+ Verb Stems
|-
! Simple Infinitive !! Stem<big>+</big>Infinitive Ending
|-
| '''yex<u>er</u>'''....''to work'' || '''yex<big>+</big>er'''
|-
| '''pos<u>er</u>'''....''to (come to a) stop'' || '''pos<big>+</big>er'''
|-
| '''x<u>er</u>'''....''to do'' || '''x<big>+</big>er'''
|-
| '''xw<u>er</u>'''....''to happen, be done'' (PASSIVE)|| '''xw<big>+</big>er'''
|}
=== Verb Stem Formants ===
: A verb stem formant is a letter or group of letters at the end of a verb stem indicating:
::* '''TYPE OF VERB''': stative, causative, gestural, related to motion, communications, or mental states and activites
::* '''CERTAIN TRAITS''': active, passive, subject-oriented, patient-oriented, dynamic, intensive
: The stems of most verbs end in one of the following verb formants:
::* '''s''' as in '''ser'''....''to be(come)'', <u>intransitive</u> verbs of being or becoming
:::* '''aser'''....''to become''
:::* '''eser'''....''to exist''
:::* '''beser'''....''to stay''
:::* '''kyaser'''....''to change''
::* '''x''' as in '''xer'''....''to do'', <u>transitive</u> verbs of action, doing, making, causation
:::* '''agaxer'''....''to magnify'' < '''aga'''....''big''
:::* '''uxer'''....''to cause'' < '''ux'''....''cause''
:::* '''yiklaxer'''....''to complicate'' < '''yikla'''....''complex''
:::* '''sanxer'''....''to form'' < '''san'''....''form''
::* '''b''' as in '''ber'''....''to put'', transitive verbs of gesturing or putting
:::* '''yaber'''....''to raise'' < '''yab'''....''up''
:::* '''yixber'''....''to put to use, deploy'' < '''yix'''....''use''
:::* '''ikber'''....''to fill'' < '''ik(a)'''....''full''
:::* '''abkyober{{'}}'''....''to affix'' < '''ab'''....''on'' + '''kyo(a)'''....''fixed''
::* '''p''' as in '''per'''....''to go'', intransitive verbs of motion
:::* '''aper'''....''to get on'' < '''a(b)'''....''on''
:::* '''uper'''....''to come'' < '''u(b)'''....''toward''
:::* '''poper'''....''to travel'' < '''po(p)'''....''trip''
:::* '''yaper'''....''to rise, get up'' < '''ya(b)'''....''up''
::* '''d''' as in '''der'''....''to say'', transitive verbs of communication
:::* '''gawder'''....''to repeat'' < '''gaw-'''....''re-''
:::* '''kyider'''....''to emphasize'' < '''kyi(a)'''....''heavy''
:::* '''afder'''....''to authorize'' < '''af'''....''permission''
:::* '''lofivader'''....''to disapprove'' < '''lo-'''....''dis-'' + '''fi(a)'''....''good'' + '''va'''....''yes''
:::* '''yevder'''....''to judge'' < '''yev(a)'''....''just''
:::* '''vyader'''....''to avow'' < '''vya(a)'''....''true''
::* '''dr''' as in '''drer'''....''to write'', transitive verbs of writing
:::* '''makdrer'''....''to text'' < '''mak'''....''electricity''
:::* '''Miradrer'''....''to write in Mirad'' < '''Mirad'''
:::* '''monsandrer'''....''to ghostwrite'' < '''mon'''....''dark'' + '''san'''....''shape''
:::* '''ajdindrer'''....''to chronicle'' < '''aj'''....''past''....'''din'''....''story'' = ''history''
:::* '''abdrer'''....''to inscribe'' < '''ab'''....''on''
::* '''dye''' as in '''dyeer'''....''to read''
:::* '''neddyeer'''....''to skim'' < '''ned'''....''surface''
:::* '''seuxdyeer'''....''to pronounce'' < '''seux'''....''sound''
:::* '''tepdyeer'''....''to read minds'' < '''tep'''....''mind''
:::* '''teubobdyeer'''....''to lipread'' < '''teubob'''....''lip''
:::* '''teuzdyeer'''....''to read aloud'' < '''teuz'''....''voice''
:::* '''tuyibdyeer'''....''to read palms'' < '''tuyib'''....''palm''
:::* '''zyedyeer'''....''to peruse'' < '''zye'''....''through''
::* '''t''' as in '''ter'''....''to know or see'', transitive verbs of mental states
:::* '''teater'''....''to see'' < '''tea(b)'''....''eye''
:::* '''tayoter'''....''to feel'' < '''tayo(b)'''....''skin''
:::* '''tester'''....''to understand'' < '''tes'''....''meaning''
:::* '''nazter'''....''to value, to appreciate'' < '''naz'''....''value''
::* '''tr''' as in '''trer'''....''to know (a person)'', transitive verbs of recognition
:::* '''gawtrer'''....''to recognize'' < '''gaw-'''....''re-''
:::* '''ijtrer'''....''to get to know'' < '''ij'''....''start''
:::* '''yagtrer'''....''to experience'' < '''yag(a)'''....''long''
::* '''ty''' as in '''tyer'''....''to know (how)'', transitive know-how verbs
:::* '''daztyer'''....''to know how to dance'' < '''daz'''....''dance''
:::* '''deuztyer'''....''to know how to sing'' < '''deuz'''....''song''
:::* '''fiktyer'''....''to master'' < '''fik(a)'''....''perfect''
::* '''i''' as in '''bier'''....''to take'', subject-directed verbs
:::* '''tier'''....''to find out'' < '''t-'''....''know''
:::* '''dier'''....''to request'' < '''d-'''....''say''
:::* '''ifier'''....''to enjoy'' < '''if'''....''pleasure''
:::* '''nier'''....''to consume'' < '''n-'''....''money''
:::* '''nazier'''....''to deserve'' < '''naz'''....''value''
:::* '''pier'''....''to depart'' < '''p-'''.....''go''
::* '''u''' as in '''buer'''....''to give'', patient-directed verbs
:::* '''tuer'''....''to inform'' < '''t-'''....''know''
:::* '''duer'''....''to suggest'' < '''d-'''....''say''
:::* '''ifuer'''....''to please'' < '''if'''....''pleasure''
:::* '''nuer'''....''to supply'' < '''n-'''....''money''
:::* '''nazuer'''....''to reward'' < '''naz'''....''value''
:::* '''puer'''....''to arrive'' < '''p-'''....''go''
: A few verb stems ending in '''k''', '''z''', '''f''', '''v''', '''j''', '''l''', and '''r''' have no formants in their base dictionary form.
: K-stem transitive verbs of risk:
::* '''aker'''....''to win''
::* '''eker'''...''to play, risk''
::* '''oker'''....''to lose''
::* '''yaker'''....''to expect''
::* '''yeker'''....''to try''
::* '''yoker'''....''to be surprised''
::* '''yiker'''....''to find it hard''
::* '''yuker'''....''to find it easy''
: Z-stem transitive verbs of art:
::* '''dazer'''....''to dance''
::* '''dyazer'''....''to perform ballet''
::* '''dezer'''....''to perform''
::* '''doldezer'''....''to pantomime''
::* '''dizer'''....''to clown around''
::* '''duzer'''....''to play music''
::* '''domepduzer'''....''to busk''
::* '''drezer'''....''to create poetry''
::* '''dresyozer'''....''to engrave''
::* '''druzer'''....''to compose music''
::* '''doteuzer'''....''to vote''
::* '''sizer'''....''to paint''
::* '''imsizer'''....''to fresco''
::* '''sazer'''....''to sculpt''
::* '''tazer'''....''to carve''
::* '''syozer'''....''to engrave''
::* '''volzer'''....''to color''
::* '''tujeazer'''....''to dream''
::* '''tepeazer'''....''to imagine''
: F- and V-stem modal verbs:
::* '''fer'''....''to want''
::* '''afer'''....''to have permission''
::* '''efer'''....''to need''
::* '''ifer'''....''to love''
::* '''iyfer'''....''to like''
::* '''ofer'''....''to be prohibited''
::* '''yafer'''....''to be able''
::* '''yefer'''....''to have to''
::* '''yeyfer'''....''should''
::* '''yofer'''....''to be unable''
::* '''yifer'''....''to dare''
::* '''yufer'''....''to fear''
::* '''yiver'''....''have a right to''
::* '''yuver'''....''to be supposed to''
: L- and R-stem verbs
::* '''baler'''....''to press''
::* '''barer'''....''to crush''
::* '''beler'''....''to carry''
::* '''boler'''....''to support''
::* '''biler'''....''to obtain''
::* '''birer'''....''to grab''
::* '''buler'''....''to grant''
::* '''burer'''....''to concede''
::* '''daler'''...''to speak''
::* '''deler'''....''do declare''
::* '''doler'''....''to be silent''
::* '''diler'''....''to request''
::* '''direr'''....''to demand''
::* '''duler'''....''to insist''
::* '''durer'''....''to order''
: The above verbs are transitive except '''doler'''.
: The following J-stem verbs are <u>intransitive stative zero-formant</u> verbs:
: J-stem verbs intransitive verbs related to time activites:
::* '''ijer'''....''to begin''
::* '''ujer'''....''to finish''
::* '''yijer'''....''to open''
::* '''yujer'''....''to close''
::* '''tijer'''....''to be awake''
::* '''tujer'''....''to sleep''
::* '''tajer'''....''to be born''
::* '''tejer'''....''to live''
::* '''tojer'''....''to die''
: All of the above '''j''' stems are intransitive static verbs and cannot be passivized.
: Verb stems ending in '''j''', however, can take the active transitive dynamic formant '''b''' which can then be passivized with '''w'''. Or, they can take the intransitive dynamic formant '''p''', which cannot be passivized.
::* '''tojer'''....''to die'' (intransitive automatic)
::* '''tojper'''....''to drop dead'' (intransitive dynamic)
::* '''tojber'''....''to kill'' (transitive dynamic)
::* '''tojbwer'''....''to be killed'' (transitive passive dynamic)
: There are two formants, '''l''' and '''r''' that act as intensifiers and can be applied to any stems except the L and R stems (like '''baler'''....''to press''):
::* '''l''' (intensive verbs)
:::* '''fler'''....''to yearn'' ( < '''fer'''....''to want'')
:::* '''ifler'''....''to love'' ( < '''ifer'''....''to love'')
:::* '''gobler'''....''to cut'' ( < '''gober'''....''to subtract'')
:::* '''ebler'''....''to obstruct'' ( < '''eber'''....''to get in the way of'')
:::* '''ibler'''....''to collect'' ( < '''iber'''....''to receive'')
:::* '''yabler'''....''to hoist'' ( < '''yaber'''....''to raise'')
:::* '''buxler'''....''to shove'' ( < '''buxer'''....''to push'')
:::* '''yujler'''....''to lock'' ( < '''yujer'''....''to close'')
::* '''r''' (more intensive verbs)
:::* '''frer'''....''to crave'' ( < '''fer'''....''to want'')
:::* '''ifrer'''....''to adore'' ( < '''ifer'''....''to love'')
:::* '''abbaxrer'''....''to rub'' ( < '''abbaxer'''....''to caress'')
:::* '''abbyuxrer'''....''to stomp on'' ( < '''abbyux'''....''to touch on, impact'')
:::* '''apaxrer'''....''to scrub'' ( < '''apaxer'''....''to wipe'')
:::* '''byexrer'''....''to thrash'' ( < '''byexer'''....''to hit'')
:::* '''buxrer'''....''to drive'' ( < '''buxer'''....''to push'')
:::* '''yujrer'''....''to slam shut'' ( < '''yujer'''....''to close'')
: Here are examples of J-stems that take the intensifying formants '''l''' and '''r''', eg.:
::* '''yujer'''....''to close'' (intransitive automatic)
::* '''yujler'''....''to lock'' (intransitive automatic intensive)
::* '''yujper'''....''to come to a close'' (intransitive dynamic)
::* '''yujprer'''....''to slam shut'' (intransitive automatic very intensive)
::* '''yujber'''....''to close'' (transitive dynamic)
::* '''yujbwer'''....''to be closed'' (transitive passive dynamic)
::* '''yujler'''....''to lock'' (intransitive automatic intensive)
::* '''yujbler'''....''to lock'' (transitive dynamic intensive)
::* '''yujbrer'''....''to slam shut'' (transitive dynamic very intensive)
::* '''yujbrwer'''....''to be slammed shut'' (transitive dynamic very intensive passive)
: Stems can sometimes be altered with the following directional formants:
::* '''-i-''' (subject-oriented)
::* '''-u-''' (patient-oriented)
: Examples:
::{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller;"
|+ Verbs with i/u Formants
|-
! Verb || Modification
|-
| rowspan=2|'''ber'''....''to put'' || '''bier'''....''to take''
|-
|| '''buer'''....''to give''
|-
| rowspan=2|'''ter'''....''to know'' || '''tier'''....''to find out''
|-
|| '''tuer'''....''to inform''
|-
| rowspan=2|'''trer'''....''to be familiar with'' || '''trier'''....''to become familiar with''
|-
|| '''truer'''....''to familiarize, introduce''
|-
| rowspan=2|'''tyer'''....''to know how'' || '''tyier'''....''to master''
|-
|| '''tyuer'''....''to train''
|-
| rowspan=2|'''taxer'''....''to remember'' || '''taxier'''....''to commit to memory''
|-
|| '''taxuer'''....''to remind''
|-
|rowspan=2| '''per'''....''to go'' || '''pier'''....''to leave''
|-
|| '''puer'''....''to arrive''
|-
| rowspan=2|'''xer'''....''to do'' || '''xier'''....''to result in''
|-
|| '''xuer'''....''to affect''
|-
| rowspan=2|'''buker'''....''to hurt'' || '''bukier'''....''to sustain an injury''
|-
|| '''bukuer'''....''to inflict an injury''
|-
| rowspan=2|'''ifer'''....''to love'' || '''ifier'''....''to enjoy''
|-
|| '''ifuer'''....''to please''
|-
| rowspan=2|'''der'''....''to say'' || '''dier'''....''to ask''
|-
|| '''duer'''....''to suggest''
|-
| rowspan=2|'''til'''....''a drink'' || '''tilier'''....''to take a drink''
|-
|| '''tiluer'''....''to pour a drink''
|-
| rowspan=2|'''tel'''....''food'' || '''telier'''....''to eat''
|-
|| '''teluer'''....''to feed''
|-
| rowspan=2|'''abbaun'''....''cover'' || '''abbaunier'''....''to take cover''
|-
|| '''abbaunuer'''....''to provide cover''
|-
| rowspan=2|'''abfin'''....''advantage'' || '''abfinier'''....''to take advantage of''
|-
|| '''abfinuer'''....''to favor''
| rowspan=2|'''naz'''....''value'' || '''nazier'''....''to deserve''
|-
|| '''nazuer'''....''to reward''
|}
: The following table shows how stems can be intensified in meaning with '''-l-''' and '''-r-''':
::* '''-l-''' (intense)
::* '''-r-''' (more intense)
: Examples:
::{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller;"
|+ Verbs with Modified Formants
|-
! Verb || Modification
|-
! Normal !! Intense !! More Intense
|-
| '''baxer'''....''to stir'' || '''baxler'''....''to rustle'' || '''baxrer'''....''to shake''
|-
| '''yaber'''....''to raise'' (trans.) || '''yabler'''....''to elevate'' || '''yaprer'''....''to hoist''
|-
| '''yaper'''....''to ascend'' (intrans.)|| '''yapler'''....''to climb''|| '''yaprer'''....''to scramble up''
|-
| '''apaxer'''....''to wipe'' || '''apaxler'''....''to sweep'' || '''apaxrer'''....''to scrub''
|-
| '''byexer'''....''to strike'' ||'''byexler'''....''to trounce'' || '''byexrer'''....''to thrash''
|}
: The intransitive zero-formant verbs whose stem ends in '''-k''' can take formants as well:
::* '''aker'''....''to win'' (transitive)
::* '''akler'''....''to vanquish, beat'' (transitive intense)
::* '''akrer'''....''to triumph'' (transitive more intense)
::* '''biker'''....''to care about'' (transitive)
::* '''bikier'''....''to take care'' (transitive subject-oriented)
::* '''bikuer'''....''to care for'' (transitive patient-oriented)
::* '''bikuwer'''....''to be cared for'' (transitive patient-oriented passive)
::* '''yeker'''....''to try'' (transitive)
::* '''yekler'''....''to strive'' (transitive intensive)
::* '''yekrer'''....''to struggle'' (transitive more intensive)
::* '''yekier'''....''to undertake'' (transitive subject-oriented)
::* '''yekuer'''....''to challenge'' (transitive patient-oriented)
::* '''yekuwer'''....''to be challenged'' (transitive patient-oriented passive)
::* '''bakser'''....''to get healthy, heal'' (intransitve)
::* '''bakxer'''....''to make healthy, heal'' (transitive)
::* '''bakxwer'''....''to be healed'' (transitive passive)
: Verb stems ending in '''j''', '''s''', or '''p''' are invariably intransitive and cannot be made passive. All other verb stems, except '''doler''' (''to be silent''), can be made passive with the addition of '''w'''. The passifying '''w''' is always the last formant of any stem.
:: '''saxer'''....''to make'' > '''saxwer'''....''to be made''
:: '''baler'''....''to press'' > '''balwer'''....''to be pressed''
:: '''yaker'''....''to expect'' > '''yakwer'''....''to be expected''
: The zero-formant verb stems in '''-f-''' and '''-v-''' are modal verbs and these can take a combination of additional formants, eg.:
:* '''ifer'''....''to love''
::* '''ifler'''....''to have affection for''
::* '''ifrer'''....''to adore''
::* '''ifier'''....''to enjoy, to take pleasure in''
::* '''ifuer'''....''to please, to give pleasure to''
:::* '''ifluer'''....''to delight''
:::* '''ifruer'''....''to ravish''
:::* '''ifruwer'''....''to be ravished''
::* '''ifxer'''....''to gratify, to divert''
::* '''ifser'''....''to have fun''
::* '''ifwer'''....''to be loved''
::* '''ifrwer'''....''to be adored''
:* '''fer'''....''to want''
::* '''fler'''....''to yearn for''
::* '''frer'''....''to crave''
::* '''fruer'''....''fill with a craving for''
:* '''yufer'''....''to fear''
::* '''yufler'''....''to dread''
::* '''yufrer'''....''to tremble in fear of''
::* '''yufruer'''....''to frighten''
::* '''yufruwer'''....''to be frightened''
::* '''yufxer'''....''to scare''
::* '''yufxwer'''....''to be scared''
:* '''yiver'''....''to have the right to''
::* '''yivser'''....''to become free''
::* '''yivxer'''....''to free, to liberate''
::* '''yivxwer'''....''to be freed''
:* '''yafer'''....''to be able''
::* '''yafxer'''....''to enable''
::* '''yafxwer'''....''to be enabled''
::* '''yafuer'''....''to empower''
::* '''yafluer'''....''to coerce''
::* '''yafier'''....''to take power''
::* '''yaflier'''....''to grab power''
::* '''ofer'''....''to lack permission to''
::* '''ofxer'''....''to prohibit''
::* '''ofxwer'''....''to be prohibited''
::* '''ifruwer'''....''to be ravished''
::* '''efxwer'''....''to be necessitated''
== Verb Categories ==
: Verbs have '''''morphological categories''''', which involve changes to the verb not always found in the dictionary, but developed through rule-bound affixation (such as ''live'', ''lives'', ''lived'', ''living''). They also have '''''lexical categories''''', which involve derived forms usually listed in dictionaries (''enjoy'', ''enjoyable'', ''enjoyment'')
=== Morphological Categories ===
: Verbs are inflected with the following '''''morphological categories''''':
::* '''''2 states''''': finite, non-finite
::* '''''4 tenses''''': present, past, future, atemporal<sup>1</sup>
::* '''''5 aspects''''': simple, progressive, perfect, imminent, potential
::* '''''2 voices''''': active, passive
::* '''''2 moods''''': indicative, hypothetical
:<small>'''''Note 1:''''' The term "atemporal" means that tense is not marked. For example, in Mirad, '''Pu!''' is the imperative of the verb '''per'''....''to go''. It means ''Go!'' and is atemporal. The '''-u''' ending is an atemporal hypothetical mood marker.</small>
: In effect, the PERSON/NUMBER category is not listed above, because this category does not affect the morphology of the Mirad verb form itself. The Mirad verb form stays the same for all persons and numbers. That information is contained in the external subject pronouns governing the verb. In English, for example, the verb "be" has several different forms in the present tense verb form depending on the person and number (I <u>am</u>, you <u>are</u>, he <u>is</u>, we <u>are</u>, etc.), but not so in Mirad. The following chart shows how the English pattern differs from the corresponding single Mirad verb form '''se''' for all persons and numbers:
:{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller"
|+ Verb '''ser''' (''to be'') Unchanged for person/number
|-
! Person !! Number !! English !! Mirad
|-
!row=1| 1st !! row=1 rowspan=3| Singular
| ''I <u>am</u>'' || '''at <u>se</u>'''
|-
!row=1| 2nd
| ''you <u>are</u>'' || '''et <u>se</u>'''
|-
!row=1| 3rd
| ''he/she <u>is</u>'' || '''it <u>se</u>'''
|-
!row=1| 1st !! row=1 rowspan=3| Plural
| ''we <u>are</u>'' || '''yat <u>se</u>'''
|-
!row=1| 2nd
| ''you (pl.) <u>are</u>'' || '''yet <u>se</u>'''
|-
!row=1| 3rd
| ''they <u>are</u>'' || '''yit <u>se</u>'''
|}
: This invariability of person/number exists for all tenses.
=== Lexical Categories ===
:: In addition, verbs can be described in terms of the following opposing '''''lexical''''' categories. By lexical, is meant that verbs having different lexical properties are listed in the dictionary and have nothing to do with conjugation.
{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller;margin-left:1.6em;"
|+ Verb Lexical Categories
|-
! Stative !! Dynamic
|-
| '''ser'''....''to be'' || '''xer'''....''to do''
|-
! Intransitive !! Transitive
|-
| '''agaser'''....''to grow large'' || '''agaxer'''....''to magnify''
|-
! Subject-directed !! Patient-directed
|-
| '''bier'''....''to take'' || '''buer'''....''to give''
|-
! Reflexive !! Non-reflexive
|-
| '''utvyixer'''....''to wash up (wash oneself)'' || '''vyixer'''....''to wash''
|-
! Inchoative !! Causative
|-
| '''tujper'''....''fall asleep'' || '''tujber'''....''put to sleep''
|-
! Autonomous !! Dynamic
|-
| '''yijer'''....''to open (by itself)'' || '''yijber'''....''to (make it) open''
|-
! Reciprocal !! Non-reciprocal
|-
| '''hyuittujber'''....''to kill one another'' || '''tujber'''....''to kill''
|-
! Gestural !! Locomotive
|-
| '''baser'''....''to stir, budge'' || '''paser'''....''to move''
|-
! Subject-oriented !! Object-oriented
|-
| '''teetyiker'''....''to be hard of hearing'' || '''teetyikwer'''....''to be hard to hear''
|}
== Non-finite Forms ==
: '''''Non-finite verb forms''''' are
::* not conjugated for person or number
::* cannot form a predicate
::* and do not have a subject.
: There are three kinds of non-finite verb forms in Mirad:
::* '''''infinitives''''': the dictionary lookup form of a verb, ending in '''-er'''
:::* '''der'''....''to say (present active)''
:::* '''tixayer'''....''to have studied'' (past active),
:::* '''xwer'''....''to be done'' (present passive)
:::* '''xwayer'''....''to have been done'' (past passive)
::* '''''gerunds''''': verbal nouns, ending in '''-en'''
:::* '''byasen'''....''(the act of) standing''
::* '''''participles''''': verbal adjectives, ending in '''-a'''
:::* '''tejea'''....''living (alive)'' (present active)
:::* '''jeteaxwea'''....''being watched'' (present passive)
:::* '''twa'''....''known'' (perfect passive)
:::* '''piya'''....''departed'' (perfect active)
=== Infinitives ===
: Verbs are listed in the dictionary under the '''''active voice simple aspect infinitive''''' form, which always ends in '''er''' and means ''to X'', or rarely the passive voice simple aspect infinitive form, which ends in '''wer''' and means ''to be Xed''. The part of the verb form minus the '''-er''' or '''-wer''' is the '''''verb stem'''''. Very rarely a verb can be expressed as a past active or past passive infinitive in '''ayer''' and '''awer''', respectively. (For example: '''Tejayer boy ifawer nazase glo.'''....''To have lived without having loved counts little.'').
:{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:1.6em"
|+ Infinitive Stems
|-
! Infinitive || Stem !! Ending
|-
| '''agser'''....''to grow'' || '''ags-''' || '''-er'''
|-
| '''igxer'''....''to quicken'' || '''igx-''' || '''-er'''
|-
| '''per'''....''to go'' || '''p-''' || '''-er'''
|-
| '''xwer'''....''to happen, be done'' || '''x-''' || '''-wer'''
|-
| '''tejayer'''....''to have lived'' || '''tej-''' || '''-ayer'''
|-
| '''ifawer'''....''to have loved'' || '''if-''' || '''-awer'''
|}
: The infinitive in Mirad is used very much as its counterpart in English. The infinitive can be marked for two aspects (simple, perfect) and two voices (active, passive), as shown in the chart below, where the verb stems are underlined:
{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:1.6em;"
|+ Active and Passive Infinitive Stems
|-
! Aspect !! Active Voice !! Passive Voice
|-
!row=1| Simple
| '''<u>igx</u>er'''....''to quicken'' || '''<u>igx</u>wer'''....''to be quickened''
|-
!row=1| Perfect
| '''<u>igx</u>ayer'''....''to have quickened'' || '''<u>igx</u>awer'''....''to have been quickened''
|}
: In the above chart,
::* the verb stem is '''igx-''' and
::* the infinitive marker is '''-er''';
::* the simple aspect active voice marker is zero;
::* the simple aspect passive voice marker is '''w''';
::* the perfect aspect active voice marker is '''-ay-''';
::* the past aspect passive voice marker is '''-aw-'''.
The passive voice infinitive of a verb will not appear in the dictionary unless it has a special meaning, such as '''xwer''' ''to happen (= to be done)''. The perfect infinitives are never listed in the dictionary.
=== Gerunds ===
: The gerund is a verbal noun like English ''playing'' in ''playing ball.''
: The gerund has two possible '''''aspects''''' (simple and perfect) and two possible '''''voices''''' (active and passive):
{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:3.2em; "
|+ Gerund Formation
|-
! Aspect !! Voice !! Ending !! Example
|-
!row=1| Simple !! Active
| '''-en''' || '''agax<u>en</u>'''....''magnifiying, magnification''
|-
!row=1| Simple !! Passive
| '''-wen''' || '''agax<u>wen</u>'''....''being magnified''
|-
!row=1| Perfect !! Active
| '''-ayen''' || '''byek<u>ayen</u>'''....''having cured''
|-
!row=1| Perfect !! Passive
| '''-awen''' || '''byek<u>awen</u>'''....''having been cured''
|}
: Note: Intransitive verbs like '''per''' ''to go'' do not have a passive gerund form.
: Lexicalized gerunds, such as '''sanxen''' ''formation, forming'' generally appear in the dictionary in the active voice.
: Some verbs have a special gerundive form ending in '''-eyn''', which refers to a single action:
::* '''xen'''....''doing'' vs. '''xeyn'''....''deed''
::* '''axlen'''....''acting'' vs. '''axleyn'''....''action''
::* '''abbalen'''....''applying'' vs. '''abbaleyn'''....''application''
: Verbs having an '''-eyn''' form are lexical forms listed in the dictionary.
: Another special gerundive (but lexical) ending is '''-un''', which expresses the result of an action, eg.:
::* '''zyegxer'''....''to puncture'' <big>-></big> '''zyegxun'''....''a puncture''
::* '''zyeuber'''....''to transmit'' <big>-></big> '''zyeubun'''....''a broadcast''
::* '''deuzer'''....''to sing'' <big>-></big> '''deuzun'''....''a song''
: These words are listed in the dictionary and lexical forms, not conjugated forms.
: Some examples of gerund usage:
::* ('''sanxer'''....''to form'') '''Ha <u>sanxen</u> bi hia mar efxa amroni bi jabi.'''....''The <u>forming</u> (or: <u>formation</u>) of this star took millions of years.''
::* ('''deuzer'''....''to sing'') '''Iyta <u>deuzen</u> sa gla via.'''....''Her <u>singing</u> was very beautiful.''
::* ('''poper'''....''to travel'') '''<u>Popen</u> se yika yex.'''....''<u>Traveling</u> is hard work.''
::* ('''teeter'''....''to hear'') '''<u>Teetwen</u> fiay se teskyia av dezuti.'''....''<u>Being heard</u> well is important for actors.''
::* ('''teater'''....''to see'') '''<u>Teaten</u> se <u>vyatexen</u>.'''.....''<u>Seeing</u> is <u>believing</u>.''
::* ('''uper'''....''to come'') '''His se ha jeb bi <u>Upen</u>.'''....''This is the season of <u>Advent</u> (coming).''
::* ('''tadier'''....''to get married'') '''Ata <u>tadiayen</u> ewa jodi bixa tepzex.'''....''My <u>having married</u> twice drew attention.''
::* ('''aker'''....''to win'') '''At voy ta ita <u>akawen</u> hua nazuun.'''....''I did not know about his <u>having won</u> that prize.''
: Gerunds, being verb forms, can take direct and indirect objects:
::* '''At ifxwe bey eta buayen at hua nas.'''....''I am pleased by your having given me that money.''
::* '''Tojben eut voy se kebiyaf.'''....''Killing yourself is not an option.''
=== Participles ===
: Participles are verbal adjectives and can modify nouns and pronouns. Since they act as adjectives, they have the adjectival ending '''-a'''. Participles are marked by '''''aspect''''' (simple, progressive, perfect, imminent, potential) and '''''voice''''' (active, passive).
: The aspect markers per voice are:
:{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:1.6em;"
|+ Aspect Markers
|-
! Aspect !! Voice !! Form !! Example
|-
! rowspan=2| Progressive
! rowspan=1 | Active
| '''-ea-''' || '''tejea'''....''living''
|-
! rowsspan=1 | Passive
| '''wea''' || '''xwea'''....''happening, being done''
|-
! rowspan=2| Perfect
! rowspan=1 |Active
| '''-ya''' || '''pya'''....''gone'' (< '''pyaa'''<sup>1</sup>)
|-
! rowspan=1| Passive
| '''-wa''' || '''xwa'''....''done'' (< '''xwaa'''<sup>1</sup>)
|-
! rowspan=2| Imminent
! Active
| '''-oa''' || '''tojoa'''....''about to die''
|-
! rowspan=1 | Passive
| '''-woa''' || '''dodelwoa'''....''about to be announced''
|-
! rowspan=2| Potential
! Active
| '''-ua''' || '''tojbua'''....''lethal''
|-
! rowspan=1| Passive
| '''-wua''' || '''opoxwua'''....''unstoppable''
|}
: <small><sup>1</sup>: The double '''aa''' in the perfect endings is reduced to '''a'''.</small>
: '''''Note 1:''''' The perfect active particple ending in '''-ya''' is used only for intransitive verbs like '''per''' (''to go''). '''He is <u>gone</u>.''' is expressed by '''Wit se <u>pya</u>'''.
: '''''Note 2:''''' The potential aspect, represented by the vowel '''u''' is much like the conditional in English, but is not considered a tense in Mirad. For example, '''tojbu''' means ''would kill'' and the participle '''tojbua''' means ''lethal'' (referring to something that ''would/has the potential to kill''). More about this in a later section.
: '''''Note 3:''''' There is another form of the progressive participle that falls in the lexical, rather than morphological category, in that such forms are listed in the dictionary as adjectives. For example, in the phrase ''The animals <u>bothering</u> our bird feeder...'', the participle ''bothering'' would be '''oboxea''' in Mirad. By inserting the letter '''y''' between the verb stem and the participial ending, the participle becomes an adjective denoting a propensity or habit, as in ''bothersome'' ('''obox<u>y</u>ea'''). Such participles are invariably in the active voice. Most such adjectives in English end in ''-ive'' as in ''repulsive'' or ''-ly'' as in ''wiggly'' or ''-ous'' as in ''circuitous.'' Such adjectives in Mirad are listed in the dictionary and end in '''-yea'''.
: Adverbial participles can be made from the above adjectival participles, by suffixing the letter '''y'''. Examples:
::* '''Iyt yepa ha tim <u>deuzeay</u>.'''....''She entered the room <u>singing</u>.''
::* '''<u>Ujbaway</u> ha dodal, it pia.'''....''The speech <u>having been finished</u>, he left.''
: Also, the above participles can be converted into abstract nouns by suffixing '''n'''. Examples:
::* '''tiluwa'''....''drinkable'' <big>→</big> '''tiluwan'''....''potability''
::* '''tojbua'''....''lethal'' <big>→</big> '''tojbuan'''....''lethality''
::* '''mansea'''....''shining'' <big>→</big> '''he <u>mansean</u> bi iyta deuzen'''....''the <u>brilliance</u> of her singing''
::* '''aakaxyea'''....''inventive'' <big>→</big> '''aakaxyean'''....''inventiveness''
: Furthermore, these participles can sometimes be pronominalized with '''s''' for things and '''t''' for people or living things. These forms can, in turn, be pluralized:
::* '''xwa'''....''done'' <big>→</big> '''xwas'''....''what is done, a happening''
::* '''xwa'''....''done'' <big>→</big> '''xwasi'''....''happenings, deeds''
::* '''otwa'''....''unknown'' <big>→</big> '''otwas'''....''what is not known, a mystery''
::* '''osexea'''....''destroying'' <big>→</big> '''osexeas'''....''a destroyer''
::* '''tojbua'''....''lethal'' <big>→</big> '''tojbuas'''....''something lethal, a lethal thing''
::* '''tojboa'''....''moribund'' <big>→</big> '''tojboati'''....''people about to die, fatal cases''
::* '''tejea'''....''living'' <big>→</big> '''tejeat'''....''a living person''
::* '''tejea'''....''living'' <big>→</big> '''tejeasi'''....''living things''
: There is a special tenseless, nominalized, animate participle used for '''''agent''''' nouns (English ''one who does something, Xer'', ''Xant'', ''Xist''), which refers to a person who habitually does some action, perhaps as a profession or trade. These agent nouns end in '''-ut'''.
::* '''sexut'''....''builder''
::* '''nuut'''....''supplier''
::* '''tojbut'''....''killer''
::* '''ifut'''....''lover''
::* '''akuti'''....''winners''
: Note: There is a slight difference of meaning between the tensed participial pronoun '''ha akeat'''....''the one winning'' and the non-tensed agent noun '''ha akut'''....''the winner''.
: Similarly, there is a special tenseless, nominalized, <u>in</u>animate participle used for a thing that performs the action denoted by the verb stem. These agent nouns end in '''-us'''.
::* '''yuxus'''....''aid (a thing that helps)''
::* '''byuxwus'''....''button (a thing that gets touched on the keyboard)''
::* '''paxus'''....''motive (a thing that moves one)''
::* '''jaupus'''....''precedent (a thing that comes before)''
: The above '''-us''' ending contrasts with the endings '''-ar''' (''instrument''), '''-ir''' (''machine''), '''-ur''' (''motor, engine''), which are physical objects and not always suffixed to a verbal root.
== Finite Forms ==
[[File:Auxiliary verbs tree 3.png|thumb|]]
: In Mirad, finite verb forms are those that can take a person subject, serve as a predicate, and be conjugated. Finite verb forms are conjugated by using suffixes indicating, through their presence or absence, the following categories:
<div style="background: lightyellow;{{text default color}};">
::* TENSES
:::# '''''present'''''
:::# '''''past'''''
:::# '''''future'''''
:::# '''''atemporal'''''
::* MOODS
:::# '''''indicative'''''
:::# '''''hypothetical'''''
::* ASPECTS
:::# '''''simple'''''
:::# '''''progressive'''''
:::# '''''perfect'''''
:::# '''''imminent'''''
:::# '''''potential'''''
::* VOICES
:::# '''''active'''''
:::# '''''passive'''''
:::# '''''reflexive'''''
:::# '''''reciprocal'''''
</div>
: Person and number are not marked on the verb form itself. For example, ''am'', ''is'', ''are'', which change according to the person subject in English, are all expressed with the same verb form in Mirad: '''se'''. Thus, '''at se'''....''I am'', '''et se'''....''you are'', '''it se'''....''he/she/it is'', etc.
=== Moods ===
: There are two moods in Mirad:
::* '''''indicative'''''
::* '''''hypothetical'''''.
===== Indicative Mood =====
: The '''''indicative''''' form of the verb indicates an action or state that occurs in actual time, such as ''he went'', ''he is going'', ''he will go.''
: The indicative mood has three tenses, '''''present''''', '''''past''''', '''''future''''', indicated by the suffixes '''-e''', '''-a''', and '''-o''', respectively.
===== Hypothetical Mood =====
: Wheras the indicative verb forms expresses actuality in time, the '''''hypothetical mood''''' expresses one of the non-actuality situations below and uses the vowel '''u'''.
::* a command , i.e. the '''''imperative''''' (''Go!'')
::* a wish or suggestion, i.e. the '''''hortative''''' or '''''jussive''''' (''May the king live long!'', ''Let's celebrate!'')
::* an unrealized situation, i.e. the '''''subjunctive''''' (''It is important that you <u>be</u> early.'')
::* an imagined if-then-situation, i.e. the '''''conditional''''' (''If I <u>were</u> rich, I <u>would be</u> happy.'')
=== Aspects ===
: There are five aspects in the Mirad verb system.
<div style="background: lightyellow;{{text default color}};">
::* the '''''simple''''' aspect (default), i.e. non-progressive, non-perfect, non-imminent, and non-conditional.
::* the '''''progressive''''' aspect, i.e. an action or state on-going in the particular tense, using '''ey'''
::* the '''''perfective''''' aspect, i.e. an action or state anterior or already completed, using '''ay'''
::* the '''''imminent''''' aspect, i.e. an action or state about to happen, using '''oy'''
::* the '''''potential''''' aspect, i.e. an action potentially happening, using '''uy'''
</div>
===== The Simple Aspect =====
:: Unless specifically marked, the default aspect is '''''simple''''', i.e. non-progressive, non-perfect, non-imminent, and non-conditional. Three indicative tenses can be expressed in the simple aspect:
::* Present with '''e'''
::* Past with '''a'''
::* Future with '''o'''.
:: An atemporal verb ending in '''u''' in the simple aspect is considered hypothetical and expresses three things, depending on how it is used in the sentence:
::* a conditional like ''I would go (if...)''
::* an imperative like ''Go!''
::* a hortative like ''Let's go!''
::* a subjunctive like ''(It is important that) we go.''
:: Here is a chart showing the simple, active voice instantiations of the Mirad verb '''per''' (''to go'') with the endings underlined:
{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:3.2em;"
|+ Simple Active Conjugation of '''Per'''
|-
! Mood !! Tense !! Aspect !! Voice !! Instantiation !! Verb '''per'''
|-
!row=1| Indicative !! Present !! Simple !! Active !!
| '''At p<u>e</u>'''....''I go''
|-
!row=1| Indicative !! Past !! Simple !! Active !!
| '''At p<u>a</u>'''....''I went''
|-
!row=1| Indicative !! Future !! Simple !! Active !!
|'''At p<u>o</u>'''....''I will go''
|-
!row=1 rowspan=4 | Hypothetical
!rowspan=4| Atemporal
!rowspan=4| Simple
!rowspan=4| Active
! Conditional
|'''At p<u>u</u>'''....''I would go''
|-
! Hortative/Optative/Jussive
|'''Van yat p<u>u</u>!'''....''Let's go!''
|-
! Imperative
|'''P<u>u</u> tam!'''....''Go home!''
|-
! Subjunctive
|'''Se efwa van et p<u>u</u>.'''....''It is necessary that you go.''
|}
: Note that the last four instantiations are the same tense, but differ in syntax. For example, if the verb form is hypothetical, atemporal, simple, active and has no subject, it operates as an imperative.
==== The Simple Indicative Present Active Tense ====
:: The simple indicative present instantiation is marked with the vowel suffix '''e''' and has a non-progressive ('''''habitual''''') aspect as in English ''I work'' or ''I live''. Progressive aspect forms like ''I am studying'' are explained later.
:: Examples:
:::* '''At <u>yexe</u> be tam.''' ....''I <u>work</u> at home''.
:::* '''Hia tom <u>se</u> nam.''' ....''This building <u>is</u> a store.''
:::* '''Ha amur <u>yuzpe</u> ha imer.'''....''The moon <u>goes around</u> the earth.''
==== The Simple Indicative Past Active Tense ====
: The simple indicative past tense instantiation is marked with the vowel suffix '''a''' and has a non-progressive (punctual) meaning as in English ''I did something at some particular point in time''. The simple past contrasts in aspect with the past progressive (''I was doing something'') or the present perfect (''I have done something''), or past potential (''I would have done something''). The simple past is punctual, that is, it describes an event that occurred at a particular point in time.
: Examples:
::* '''Iyt <u>iba</u> ha nyuf zojub.''' ....''She <u>received</u> the package yesterday.''
::* '''At <u>ujba</u> ha dyes ji iwa jwobi.''' ....''I <u>finished</u> the book three hours ago.''
::* '''His <u>kyesa</u> exag hijub.'''....''This <u>happened</u> twice today.''
==== The Simple Indicative Future Active Tense ====
: The simple indicative future tense is marked with the vowel suffix '''o''' and has the same meaning as in English ''I will do something at some particular point in the future''.
: Examples:
::* '''Yit <u>tadso</u> zajab.'''....''They <u>are going to get married</u> next year.''
::* '''Hua kaxon <u>ujako</u>.''' ....''That solution <u>will work</u>.''
::* '''At <u>so</u> him hoj et <u>upo</u>.'''....''I <u>will be</u> here when you <u>(will) come.</u><sup>1</sup>''
:: Note 1: Unlike in English, Mirad does not use the present tense for a real future. There is also no sequence of tenses in Mirad (such as, ''He said he was coming.''. In Mirad, this would be expressed as ''He said he <u>will</u> come.'').
==== The Simple Hypothetical Atemporal Active Tense ====
: A verb form ending in '''u''' like '''pu''' has no time value and is used to express unreal actions or states, such as the '''''imperative''''', '''''hortative''''', '''''conditional''''', or '''''subjunctive'''''.
: Examples:
::* '''<u>Upu</u> him!'''....''<u>Come</u> here!'' ('''''imperative''''')
::* '''<u>Von upu</u>!''' ....''<u>Don't come</u>!'' ('''''negative imperative''''')
::* '''Ha edweb <u>fu</u> teater et.''' ....''The king <u>would like</u> to see you.'' ('''''conditional''''')
::* '''Ven at <u>su</u> et, at <u>dolu</u>.''' ....''If I <u>were</u> you, I <u>would be</u> quiet.'' ('''''conditional''''')
::* '''Van yeyt <u>ujaku</u> be yeyta yexneadi.''' ....''May all you (women) <u>succeed</u> in your careers.'' ('''''hortative''''')
::* '''Van yat <u>ijbu</u> bay fyadil.''' ....''Let's <u>begin</u> with a prayer.'' ('''''jussive''''')
::* '''Se teskyia <u>van et puu</u> jwa.''' ....''It's important <u>that you arrive</u> early.'' ('''''subjunctive''''')
::* '''Se teskyia <u>von et puu</u> jwo.'''....''It's important <u>that you not arrive</u> late.'' ('''''negative subjunctive''''')
: Hypothetical verb forms ending in '''-u''' can be interpreted in various ways, depending on the following syntactical patterns in the sentence:
::* Generally, if a verb form ending in '''-u''' begins a sentence and has no subject, then it is an IMPERATIVE (a command). For example, '''Ipu!''', ''Go away!''.
::* If the verb form has a subject not preceded by the complementizers '''van''', '''ven''', or '''von''', then it is probably a conditional predicate like '''At fu per.'''....''I <u>would like</u> to go.''.
::* If the subject of the verb is preceded by '''ven'''....''if'', then it is a conditional clause as in '''Ven at <u>su</u> nasikat...'''....''If I <u>were</u> a rich man.''.
::* If the subject is preceded by '''Van'''....''that/let/may'' or '''von'''....''don't'', then it is a hortative wish like '''Van et yagteju.'''....''May you live long.'' or a jussive suggestion like '''Van yat fyadilu.'''....''Let us pray.'' or a prohibition like '''Von tiliu his!'''....''Don't drink this!''.
=== Voices ===
: Mirad has four voices:
::* Active
::* Passive
::* Reflexive
::* Reciprocal.
==== Active Voice ====
: The default voice is active, i.e. the subject of the verb is doing the action.
::* '''At teata ha kyes.'''....''I saw the event.''
==== Passive Voice ====
: A verb form is converted from active to passive by inserting a '''w''' just after the stem of the verb form. The past passive particle ending '''-waa''' is usually abbreviated to '''-wa''' (''done'' is '''xwa''').
: The following chart shows the distinction between active and passive voice of various verbs:
:{| class="wikitable" style="background:lightyellow;{{text default color}}; font-size:smaller; margin-left:4.8em"
|+ Contrasting Active and Passive Voice
! Verb Form !! Active !! Active<br>Example !! Passive !! Passive<br>Example
|-
!row=1| Infinitive
| '''xer'''<br>''to do'' || '''At fe xer fi.'''<br>''I want to do well.'' || '''xwer'''<br>''to be done'' || '''Ese hyos xwer.'''<br>''There is nothing to be done.''
|-
!row=1| Present Participle
| '''sexea'''<br>''constructing'' || '''Ha nunxob sexea hia tom...'''<br>''The firm constructing this building...''|| '''sexwea'''<br>''being constructed'' || '''His se sexewa.'''<br>''This is under construction.''
|-
!row=1| Present
| '''xe'''<br>''do/does'' ||'''At xe fi be tixam.'''<br>''I do well in school.'' || '''xwe'''<br>''is done'' || '''Huyenasi hoj xwe.'''<br>''Such things are never done.''
|-
!row=1| Past Participle
| '''xaa'''<br>''having done'' || '''Iyt, xaa hya iyta yex,...'''<br>''She, having done all her work,...'' ||'''xwa'''<br>''done'' || '''Hyas se xwa.'''<br>''Everything is done.''
|-
!row=1| Past
| '''tojba'''<br>''killed'' || '''Duhot tojba hwut?'''<br>''Who killed that guy?'' || '''tojbwa'''<br>''was killed'' || '''Duhoj wit tojbwa?'''<br>''When was he killed?''
|-
!row=1| Hypothetical
| '''bakxu'''<br>''heal'' || '''Bakxu at!'''<br>''Heal me!'' || '''bakxwu'''<br>''be healed'' || '''Van iyt bakxwu.'''<br>''May she be healed.''
|}
: Intransitive verbs cannot be made passive. For example, '''tajer'''....''to be born'' is intransitive (takes no object) and has no passive voice form. However, the transitive verb '''tajber'''....''to bear, give birth'' can be passive, as in '''Ha tudet <u>tajbwa</u> zajub.'''....''The child <u>was delivered</u> yesterday'' (as opposed to '''Ha tudet <u>taja</u> zajub.'''....''The child <u>was born</u> yesterday.)'' Notice how this works with '''yijer''' (''to open''):
::* '''Ha mes yija.'''....''The door opened (by itself).'' (medio-passive)
::* '''Ha mes yijpa.'''....''The door came open.'' (dynamic medio-passive)
::* '''Yijbu ha mes.'''....''Open the door.'' (transitive active)
::* '''Ha mes yijbwa.'''....''The door was opened (by someone).'' (passive)
: Impassive verbs form their past particple with the ending '''ya''', but these forms are somewhat rare. Here are some examples:
::* '''per'''....''to go'' -> '''pya'''....''gone''
::* '''tajer'''....''to be born'' -> '''tajya'''....''born'' (ex.'''Jesus tajya bi Marya.''''....''Jesus, born of Mary'')
::* '''tojer'''....''to die'' -> '''tojya'''....''dead''
::* '''loteaser'''....''to disappear'' -> '''loteasya'''....''disappeared'' (ex. '''Ha loteasya tobi be Arogem.'''....''the disappeared persons in Argentina.'')
==== Reflexive Voice ====
: A verb is made reflexive by prefixing the reflexive pronoun '''ut''' (''self''), for example:
::* '''tojber'''....''to kill'' <big>→</big> '''uttojber'''....''to kill oneself''
::* '''vyilxer'''....''to wash'' <big>→</big> '''utvyilxer'''....''to wash up''
::* '''teater'''....''to see'' <big>→</big> '''utteater'''....''to see oneself''
::* '''yabler'''....''to lift'' <big>→</big> '''utyabler'''....''to lift oneself'' → '''Utyablu!'''....''Lift yourself up!''
::* '''trer'''....''to know'' <big>→</big> '''uttrer'''....''to know oneself'' → '''Uttru!'''....''Know thyself!''
==== Reciprocal Voice ====
: A verb is made reciprocal by prefixing the reciprocal pronoun '''hyuit'''....''one another'', for example:
::* '''tojber'''....''to kill'' <big>→</big> '''hyuittojber'''....''to kill one another''
::* '''vyilxer'''....''to wash'' <big>→</big> '''hyuitvyilxer'''....''to wash one another''
::* '''teater'''....''to see'' <big>→</big> '''hyuitteater'''....''to see one another''
: Both the reflexive pronoun and reciprocal pronoun can be used as standalone objects. However, the plural form '''yut''' is used if the subject is plural, for example:
::* '''Yit vyilxa <u>yut</u>.'''....''They (f.) washed up. (= washed <u>selves</u>).''
::* '''Ha twobeti dizeuda <u>hyuit</u>.'''....''The boys laughed at <u>one another</u>.''
: The word '''hyuit''' is a hybrid of '''hyit'''....''the same one'' combined with '''hyut'''....''the other one''.
==== Aspects Revisited ====
: Mirad verbs have the following aspects:
::* '''''Simple''''' -- this is the default aspect, shown above, i.e. non-progressive, non-perfect, non-imminent, and non-potential.
::* '''''Progressive''''' -- this is an aspect where the verb describes an on-going action or state spread over time.
::* '''''Perfect''''' -- this presents the action or state as anterior, or completed prior to another action or state.
::* '''''Immininent''''' -- this describes an action or state ''about to happen.''
::* '''''Potential''''' -- this refers to an action or state where something is ''possible''.
==== The Simple Aspect ====
: The following chart presents Mirad verbs in the Simple aspect. In the active voice, the tense vowels '''a''', '''e''', '''o''', and '''u''' are affixed to the stem. In the passive voice, the passive marker consonant '''w''' is inserted between the stem and the final tense vowels. The simple present tense refers to actions or states that are habitual (''I regularly go to school.''), regular (''The earth revolves around the sun.''), or permanent (''Blue is a color.''). The simple past refers to actions or states that occurred at a fixed point in time (''I did my homework last night.''). The simple future refers to actions or states that will occur at some particular point in the future (''The sun will rise tomorrow at dawn.''). The simple atemporal hypothetical ( = conditional) refers to an imagined action or state that has not be realized (''You would make a good president.'').
:{| class="wikitable" style="background:lightyellow;{{Text default color}};font-size:smaller;"
|+ Simple Aspect
|-
! Aspect !! Tense !! Mood !! Active Voice !! Passive Voice
|-
!row=1| Simple !! Present !! Indicative
| '''At x<u>e</u>'''....''I do'' || '''Has x<u>we</u>'''....''It is done''
|-
!row=1| Simple !! Past !! Indicative
| '''At x<u>a</u>'''....''I did'' || '''Has x<u>wa</u>'''....''It was done''
|-
!row=1| Simple !! Future !! Indicative
| '''At x<u>o</u>'''....''I will do'' || '''Has x<u>wo</u>'''....''It will be done''
|-
!row=1| Simple !! Atemporal !! Hypothetical
| '''At x<u>u</u>'''....''I would do''<sup>1</sup> || '''Has x<u>wu</u>'''....''It would be done''
|}
: 1: Absence of tense (Atemporal) + Hypothetical mood = '''''conditional'''''.
==== The Progressive Aspect ====
: The following chart presents Mirad verbs in the Progressive aspect. The present tense vowel '''e''' followed by a buffer consonant, are inserted between the stem and the final tense vowel. The buffer consonant is '''y''' in the active voice, or '''w''' in the passive voice.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; "
|+ Progressive Aspect
|-
! Aspect !! Tense !! Mood !! Active Voice !! Passive Voice
|-
!row=1| Progressive !! Present !! Indicative
| '''at x<u>eye</u>'''....''I am doing'' || '''Has x<u>ewe</u>'''....''it is being done''
|-
!row=1| Progressive !! Past !! Indicative
| '''at x<u>eya</u>'''....''I was doing'' || '''Has x<u>ewa</u>'''....''it was being done''
|-
!row=1| Progressive !! Future !! Indicative
| '''at x<u>eyo</u>'''....''I am going to be doing'' || '''Has x<u>ewo</u>'''....''it will be happening''
|-
!row=1| Progressive !! Atemporal !! Hypothetical
| '''at x<u>eyu</u>'''....''I would be doing'' || '''Has x<u>ewu</u>'''....''it would be happening''
|}
==== The Perfect Aspect ====
: The following chart presents Mirad verbs in the Perfect aspect. The past tense vowel '''a''' following by a buffer consonant are inserted between the stem and the final tense vowel. The buffer consonant is '''y''' in the active voice, or '''w''' in the passive voice.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Perfect Aspect
|-
! Aspect !! Tense !! Mood !! Active Voice !! Passive Voice
|-
!row=1| Perfect !! Present !! Indicative
| '''At x<u>aye</u>'''....''I have done'' || '''Has x<u>awe</u>'''....''It has been done''
|-
!row=1| Perfect !! Past !! Indicative
| '''At x<u>aya</u>'''....''I had done'' || '''Has x<u>awa</u>'''....''It had been done''
|-
!row=1| Perfect !! Future !! Indicative
|'''At x<u>ayo</u>'''....''I will have done'' || '''Has x<u>awo</u>'''....''It will have been done''
|-
!row=1| Perfect !! Atemporal !! Hypothetical
| '''At x<u>ayu</u>'''....''I would have done'' || '''Has x<u>awu</u>'''....''It would have been done''
|}
==== The Imminent Aspect ====
: The following chart presents Mirad verbs in the Imminent aspect (sometimes referred to as the Prospective aspect). The future tense vowel '''o''' following by a buffer consonant are inserted between the stem and the final tense vowel. The buffer consonant is '''y''' in the active voice, or '''w''' in the passive voice. Not that only indicative mood imminent tenses are ever used.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Imminent Aspect
|-
! Aspect || Tense !! Mood !! Active Voice !! Passive Voice
|-
!row=1| Imminent !! Present !! Indicative
| '''At x<u>oye</u>'''....''I am about to do'' || '''Has x<u>owe</u>'''....''It is about to be done''
|-
!row=1| Imminent !! Past !! Indicative
| '''At x<u>oya</u>'''....''I was about to do'' || '''Has x<u>owa</u>'''....''It was about to be done''
|}
==== The Potential Aspect ====
: The following chart presents Mirad verbs in the Potential aspect. The hypothetical vowel '''u''' followed by a buffer consonant are inserted between the stem and the final tense vowel. The buffer consonant is '''y''' in the active voice, or '''w''' in the passive voice. The future potential and hypothetical potential aspects are never used.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Potential Aspect
|-
! ASPECT !! TENSE !! MOOD !! ACTIVE VOICE !! PASSIVE VOICE
|-
!row=1| Potential !! Present !! Indicative
| '''At x<u>uye</u>'''....''I am to do'' || '''Has x<u>uwe</u>'''....''It is to be done, it is doable''
|-
!row=1| Potential !! Past !! Indicative
| '''At x<u>uya</u>'''....''I was to do'' || '''Has x<u>uwa</u>'''....''It was to be done, it was doable''
|}
== Verb Conjugation Chart ==
: The following chart presents the totality of the Mirad affirmative verb conjugation system using the verb '''xer'''....''to do'' and its passive '''xwer'''....''to be done, happen''. The rows beginning with a light blue background are finite forms, while those beginning with light green are non-finite forms.
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Verb Conjugation Chart
|- valign=top
!rowspan=2| State !!rowspan=2| Mood !!rowspan=2| Aspect !!rowspan=2| Tense !! colspan=4|Voice
|-
! Active!!Passive
|-
! rowspan=16 style="background: lightblue;{{text default color}};"|Finite !!rowspan=3| Indicative !!rowspan=4| Simple !! Present
| '''xe''' <br>''does''||'''xwe'''<br>''is done, happens''
|-
! Past
| '''xa''' <br>''did''||'''xwa'''<br>''was done, happened''
|-
! Future
| '''xo''' <br>''will do''||'''xwo'''<br>''will be done, will happen''
|-
! Hypothetical||
| '''xu''' <br>''would do, do!''||'''xwu'''<br>''would be done, would happen, be done!''
|-
!rowspan=3| Indicative !!rowspan=4| Progressive !! Present
| '''xeye'''<br>''is doing''||'''xewe'''<br>''is being done, is happening''
|-
! Past
| '''xeya''' <br>''was doing''||'''xewa'''<br>''was doing, was happening''
|-
! Future
| '''xeyo'''<br>''will be doing''||'''xewo'''<br>''will be happening''
|-
! Hypothetical||
| '''xeyu''' <br>''would be doing''<br>''be doing!''||'''xewu'''<br>''would be happening''
|-
!rowspan=3|Indicative !! rowspan=4| Perfect !! Present
| '''xaye''' <br>''has done''||'''xawe''' <br>''has been done, has happened''
|-
! Past
| '''xaya''' <br>''had done''||'''xawa'''<br>''had been done, had happened''
|-
! Future
| '''xayo''' <br>''will have done''||'''xawo''' <br>''will have been done, will have happened''
|-
! Hypothetical !!
| '''xayu''' <br>''would have done''||'''xawu'''<br>''would have been done, would have happened''
|-
!rowspan=4| Indicative !! rowspan=2|Imminent !! Present
| '''xoye''' <br>''is about to do''||'''xowe'''<br>''is about to be done, is about to happen''
|-
! Past
| '''xoya'''<br>''was to be done'' ||'''xowa'''<br>''was to be done, was to happen''
|-
! rowspan=2|Potential !! Present
| '''xuye'''<br>''is supposed to do'' ||'''xuwe''' <br>''is supposed to happen''
|-
! Past
| '''xuya''' <br>''was supposed to do''||'''xuwa'''<br>''was supposed to be done, was supposed to happen''
|-
! colspan=6 style="background: black;color:white;"|
|-
! rowspan=2 style="background: lightgreen;{{Text default color}};"|Infinitive !! !! Simple !! rowspan=8|
| '''xer'''<br>''to do''||'''xwer'''<br>''to be done, to happen''
|-
! !! Perfect
| '''xayer'''<br>''to have done''||'''xawer'''<br>''to have been done, to have happend''
|-
! colspan=6 style="background: black;color:white;"|
|-
! rowspan=4 style="background: lightgreen;{{Text default color}};"|Participle !! !! Progressive
| '''xea'''<br>''doing'' ||'''xewa'''<br>''being done, happening''
|-
! !! Perfect
| '''xya''' <br>''having done''||'''xwa'''<br>''done, happened''
|-
! !! Imminent
| '''xoa''' <br>''about to do''||'''xowa'''<br>''about to happen''
|-
! !! Potential
| '''xua'''<br>''bound to do'' ||'''xuwa'''<br>''doable''
|-
! colspan=6 style="background: black;color:white;"|
|-
!rowspan=2 style="background: lightgreen;{{Text default color}};" |Gerund
! !! Simple !!
| '''xen''' <br>''doing''||'''xwen''' <br>''being done, happening, event''
|-
! !! Perfect !!
| '''xayen'''<br>''having done''||'''xawen'''<br>''having happened''
|}
: Note 1: Intransitive verbs such as '''per''' ''to go'' have no passive forms. An expression such as ''They are gone.'' would be translated as '''Yit se pya'''.
== Negative Forms ==
: All of the above verb forms are affirmative. The indicative and conditional forms can be made negative by using the negative adverb '''voy''' (''not'', '' 'nt'', ''doesn't'', ''don't''). Those forms that are subjunctive, jussive, or imperative ending in '''-u''' use the negative subordinate conjunction '''von''' (''don't'', ''let not'', ''lest'').
: '''voy'''....''not''
::* '''At <u>voy</u> te.'''....''I <u>don</u>'t know.'' (indicative)
::* '''<u>Voy</u> mamilo.'''....''It will <u>not</u> rain.'' (indicative)
::* '''At <u>voy</u> xu hus.'''....''I would <u>not</u> do that.'' (conditional)
: '''von'''....''Let's not, don't, let it not''
::* '''<u>Von</u> mamilu.'''....''<u>Let it not</u> rain.'' (subjunctive)
::* '''<u>Von</u> yat fuyaku.'''....''<u>Let</u> us <u>not</u> despair.'' (jussive)
::* '''<u>Von</u> pu!'''....''<u>Don't</u> go.'' (imperative)
: Participles, gerunds, and infinitives can be negated with the prefix '''o-''' (''un-, non-'').
::* '''tosea'''....''feeling'' -> '''otosea'''....''unfeeling''
::* '''xwa'''....''done'' -> '''oxwa'''....''undone''
::* '''teliwa'''....''eaten'' -> '''oteliwa'''....''uneaten''
::* '''tejen'''....''living'' -> '''otejen'''....''not living''
::* '''buen'''....''giving'' -> '''obuen'''....''not giving''
::* '''buer'''....''to give'' -> '''obuer'''....''not to give''
::* '''ter'''....''to know'' => '''oter'''....''not to know, i.e. to ignore''
: Partciples, gerunds, and infinitives can also be negated with the word '''voy'' (''not''), eg:
::* '''voy tea ha dud'''....''not knowing the answer''
::* '''gel voy tejea'''....''like not living''
::* '''av voy xen hes'''....''for not doing something''
== How to Express Certain English Tenses ==
: English speakers have some tenses that do not fit into the above schema, and so Mirad uses a combination of verbs to achieve the same sense:
::* The English tense ''I have been studying French for four years.'' is translated in Mirad by '''At saye tixea Ferad ji uwa jabi.''' (Mirad present perfect of '''ser''' (''to be'') + the present participle of the main verb, '''tixer'''.
::* The English tense ''I had been studying'' is translated in Mirad by '''At saya tixer''', the past perfect of the verb '''ser''' (''to be'') + the present participle of the main verb, '''tixer'''.
::* The English tense ''I am going to be starring in that role.'' is translated in Mirad by '''At dezdebeyo be hua dezgon.''' (Mirad future progressive).
::* The modern Black English tense ''Don't you be doing that.'' is handled in Mirad by '''Von et xeyu hus.''' (Mirad imperative progressive).
== Transitive vs. Intransitive Verbs ==
: Transitive verbs, which can take a direct object, oppose themselves to intransitive verbs, which do not take a direct object. Some verbs are marked overtly for transitivity.
: Verbs that end in '''xer''' (''to do, -ify, -ize'') are by nature transitive, and often have intransitive counterparts in '''ser''' (''to be, become, -ify, -ize''). Likewise, verbs ending in '''ber''' (''to put, take'') are transitive and have intransitive counterparts in '''per''' (''to go''). Here are some examples:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Transitive vs. Intransitive
|-
! Transitive !! Intransitive
|-
| '''xer'''....''do'' || '''ser'''....''be''
|-
| '''agxer'''....''grow (something)'' || '''agser'''....''grow (up)''
|-
| '''amxer'''....''heat, make hot'' || '''amser'''....''become hot, heat up''
|-
| '''puxer'''....''throw'' || '''puser'''....''jump''
|-
| '''per'''....''go'' || '''ber'''....''put''
|-
| '''aber'''....''put on'' || '''aper'''....''get on''
|-
| '''yaber'''....''raise'' || '''yaper'''....''rise''
|-
| '''poxer'''....''stop (something)'' || '''poser'''....''(come to a) stop''
|-
| '''yuber'''....''bring'' || '''yuper'''....''approach''
|-
| '''yeber'''....''insert'' || '''yeper'''....''enter''
|}
::* '''At <u>agxe</u> vobi.'''....''I <u>grow</u> [TRANSITIVE] plants.''
::* '''Ha vobi <u>agseye</u> ig.'''....''The plants <u>are growing</u> [INTRANSITIVE] fast.''
::* '''<u>Poxu</u> ha pur!'''....''<u>Stop</u> [TRANSITIVE] the car!''
::* '''Ha pur <u>posa</u>.'''....''The car <u>stopped</u> [INTRANSITIVE].''
::* '''At <u>yaba</u> ha mis.'''....''I <u>raised</u> [TRANSITIVE] the window.''
::* '''Ha amar <u>yapaye</u>.'''....''The sun <u>has risen</u> [INTRANSITIVE].''
=== Marking -jer Verbs for Transitivity ===
: Note the following verbs, whose stems end in '''j''' are hard to pronounce with intransitive '''s''' and transitive '''x''', so these two endings are placed with '''p''' and '''b''', respectively, although the presence of the '''p''' is optional, i.e. it's presence or absence can slightly change the meaning from static to dynamic, eg. '''tujer'''....''to sleep'' vs. '''tujper'''....''to fall asleep''. The transitive forms can be either active or passive.
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Marking -jer Verbs for Transitivity
|-
! colspan=2|Intransitive !! colspan=2|Transitive
|-
! Static !! Dynamic !! Active !! Passive
|-
| '''Ha mes <u>yija</u>'''<br>''The door <u>opened</u>.'' || '''Ha nasyef <u>yijpa</u>'''<br>''The purse <u>came open</u>.'' || '''At <u>yijba</u> ha mes.'''<br>''I <u>opened</u> the door.'' || '''Ha mes <u>yijbwa</u> bey yelput.'''<br>''The door <u>was opened</u> by an intruder''
|-
| '''Ha mes <u>yuja</u>.'''<br>''The door <u>closed</u>.'' || '''Ha yanup <u>yujpa</u>.'''<br>''The meeting <u>adjourned</u>.'' || '''At <u>yujba</u> ha mes.'''<br>''I <u>closed</u> the door.''||'''Ha mes yeyfe <u>yujbwer</u> ja sumjob.'''<br>''The door should <u>be closed</u> by bedtime.''
|-
| '''Ha dezun <u>ijaye</u>.'''<br>''The play <u>has started</u>.''||'''Ha par <u>ijpa</u> boy poys.'''<br>''The car <u>started up</u> immediately.'' ||'''At <u>ijba</u> ata tyal.'''<br>''I <u>started</u> my meal.''||'''Ha tyal <u>ijbwa</u> jwa.'''<br>''The meal <u>was started</u> early.''
|-
| '''Ha dezun <u>ujaye</u>.'''<br>''The play has <u>ended</u>.''||'''Ata yex <u>ujpaye</u>.'''<br>''My work <u>has come to an end</u>.'' || '''A <u>ujba</u> ha dyes.'''<br>''I <u>finished</u> the book.''||'''Ha dyes hyoj <u>ujbwa</u>.'''<br>''The book never <u>got finished</u>.''
|-
| '''Ha tob <u>toja</u> zomoj.'''<br>''The man <u>died</u> yesterday evening.''||'''Ha tob <u>tojpa</u>.'''<br>''The man <u>dropped dead.</u>'' || '''Hot <u>tojba</u> ha twob?'''<br>''Who <u>killed</u> the man?''||'''Ha twob <u>tojbwa</u> bey ita tayd.'''<br>''The man <u>was killed</u> by his wife.''
|-
| '''<u>Teju</u>.'''<br>''<u>Live!</u>.''||'''<u>Tejpu!</u>.'''<br>''<u>Come alive!</u>.'' || '''Yat efe <u>tejber</u> ha twob.'''<br>''We need to <u>revive</u> the man.''||'''Ha twob yofwa <u>tejbwer</u>.'''<br>''The man could not <u>be revived</u>.''
|-
| '''Ha tobot <u>taja</u> zojub.'''<br>''The baby <u>was born</u> yesterday.'' || '''Hoj ha tobot <u>tajpo</u>?'''<br>''When <u>will</u> the baby <u>pop out</u>?'' || '''Iyt <u>tajba</u> awa twobot zojub.'''<br>''She <u>gave birth</u> to a baby boy yesterday.''||'''Ha twobot <u>tajbwa</u> jo eymoj.'''<br>''The baby boy was <u>birthed</u> after midnight.''
|-
| '''At <u>tija</u> jwe.'''<br>''I <u>woke up</u> on time.''||'''It voy <u>tijpa</u>.'''<br>''He did not <u>come to.</u>.'' || '''At <u>tijbo</u> et jwa.'''<br>''I will <u>wake (you) up</u> early.''||'''At voy fe <u>tijbwo</u> gra jwa.'''<br>''I don't want to <u>be woken</u> too early.''
|-
| '''At <u>tujeya</u>.'''<br>''I was <u>sleeping.</u>''||'''At <u>tujpeya</u>.'''<br>''I was <u>falling sleep</u>.'' || '''At <u>tujbo</u> it.'''<br>''I will <u>put (him) to sleep.</u>.''||'''Ha tobot <u>tujbwo</u> glojo.'''<br>''The baby <u>will be put to sleep</u> soon.''
|}
== Reflexive Verbs ==
[[File:TWC Hokitika Gorge • Stewart Nimmo • MRD 1.jpg|thumb|]]
: Reflexive verbs, where the object refers back to the subject, work just as in English, where the object is a reflexive pronoun, eg.:
::* '''At tujboye aut.'''....''I am going to kill myself.''
::* '''Tru eut!'''....''Know thyself!''
::* '''It gobla iut bey goblar.'''....''He cut himself with a knife.''
::* '''Ot yefe yuxer out.'''....''One must help oneself.''
: Sometimes, verbs are reflexive lexically and incorporate the reflexivity in the actual verb form using '''ut''' as the prefix:
::* '''uttujber'''....''commit suicide (= self-kill)''
::* '''utboler'''....''support oneself (= self-support)''
::* '''utdider'''....''wonder (= self-ask)''
: Sometimes, verbs are used reflexively in Mirad even though they are used simply intransitively in English, eg.:
::* '''Et efe <u>vyilxer eut</u>.'''....''You need to wash up [= <u>wash yourself</u>].'' (or)
::* '''Et efe <u>utvyilxer</u>.'''....''You need to wash up [= <u>self-wash</u>].''
== Omission of Prepositions After Certain Verbs ==
:: Some verbs inherently incorporate a preposition and so it is not necessary to use that assumed preposition before what would normally be an indirect object.
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Inherent Propositions
|-
! Preposition-Incorporating Verb !! Example
|-
| '''per'''....''go (to)'' || '''Pu tam!''' (Not: '''Pu bu tam!''') ''Go home.''<br>'''It pa Paris.'''....''He went to Paris.''
|-
| '''der'''....''say (to), tell'' || '''Du at eta dyun.'''....''Tell me your name.''<br>'''Du at has.'''....''Tell it to me.''
|-
| '''peser'''....''wait (for)'' || '''Pesu at.'''....''Wait for me.''
|-
| '''buer'''....''give (to)'' || '''Buu at hua dyes.'''....''Give me that book.''
|}
:: As in English, in omitting the inherent preposition in a sentence with both a direct object and an indirect object, place the indirect object before the direct object. If the direct object comes first, then the preposition must be overtly specified before the indirect object, eg. '''Buu <u>at</u> hus.'''....''Give me that.'' or '''Buu hus <u>bu at</u>.'''....''Give that <u>to me</u>.'' See more about this in the chapter on [[Mirad_Grammar/Syntax|Syntax]].
== Causative vs. Inchoative Verbs ==
: A causative verb has the sense ''to make something have some quality'', whereas an inchoative verbs means ''to become or take on the quality of something.''
=== Derived from Adjectives ===
: Adjectives can be converted into transitive/causative and intransitive/inchoative verbs. Causative verbs are always transitive (taking an object), while inchoative verbs are intransitive (not taking an object). English causative / inchoative verbs often end in ''-ify'' like ''magnify'', or ''-ate'', ''liberate'', or ''ize'', like ''sensitize''.
: To derive a causative verb from an adjective, add the suffix '''-xer'''....''to do'' to either the stem or the whole adjective (with the '''a''' ending). Whether you do the former or the latter depends on several factors, but the end result is slightly different in nuance. A verb with adjective stem + '''-xer''' is slightly more idiomatic or less literal than the adjective stem + '''axer'''.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ -axer vs -xer in Transitive Verbs
|-
! Adjective !! Causative/Transitive !! Causative/Transitive
|-
! '''-xer''' !! Literal !! Idiomatic
|-
| '''aga'''<br>''big'' || '''ag<u>a</u>xer'''<br>''to magnify'' || '''agxer'''<br>''to grow''
|-
| '''ana'''<br>''one'' || '''an<u>a</u>xer'''<br>''to unify'' || '''anxer'''<br>''to unite''
|-
| '''yona'''<br>''apart'' || '''yon<u>a</u>xer'''<br>''to separate'' || '''yonxer'''<br>''to cut''
|-
| '''yaga'''<br>''long'' || '''yag<u>a</u>xer'''<br>''to lengthen'' || '''yagxer'''<br>''to stretch''
|-
| '''yuga'''<br>''slow'' || '''yug<u>a</u>xer'''<br>''to retard'' || '''yugxer''' <br>''to brake''
|-
| '''sana'''<br>''formal'' || '''san<u>a</u>xer'''<br>''to formalize'' || '''sanxer'''<br>''to form''
|-
| '''gea'''<br>''equal'' || '''ge<u>a</u>xer'''<br>''to equalize'' || '''gexer'''<br>''to equal, equate''
|-
| '''jaa'''<br>''prior'' || '''ja<u>a</u>xer'''<br>''to prioritize'' || '''jaxer'''<br>''to prepare''
|-
| '''aota'''<br>''personal'' || '''aot<u>a</u>xer'''<br>''to personalize'' || '''aotxer'''<br>''to personify''
|}
: To derive an inchoative verb from an adjective, add the suffix '''ser'''....''to be'' to either the stem or the whole adjective.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Creating Inchoative Verbs
|-
! Adjective !! Inchoative/Intransitive !! Inchoative/Intransitive
|-
! '''-ser''' !! Literal !! Idiomatic
|-
| '''aga'''<br>''big'' || '''ag<u>a</u>ser'''<br>''to get bigger'' || '''agser'''<br>''to grow''
|-
| '''ana'''<br>''one'' || '''an<u>a</u>ser'''<br>''to unify'' || '''anser'''<br>''to unite, become united''
|-
| '''yona'''<br>''apart'' || '''yon<u>a</u>ser'''<br>''to become separate'' || '''yonser'''<br>''to break''
|-
|}
: Be careful to use the transitive, causative verb form when you have a direct object, and the intransitive, inchoative verb form when no direct objects are present or possible, eg.:
::* '''<u>Ansu</u> ey yet golxwo.'''....''<u>Unite</u> or you will be divided.'' [INTRANSITIVE]
::* '''At <u>yontadsa</u> hoj at sa eta jag.'''....''I <u>got divorced</u> when I was your age.'' [INTRANSITIVE]
::* '''Hisi <u>agaxo</u> hos et teate.'''....''These <u>will magnify</u> what you see.'' [TRANSITIVE]
::* '''Hia tud <u>agseye</u> ig.'''....''This child <u>is growing up</u> fast.'' [INTRANSITIVE]
::* '''Ata tayd <u>agxe</u> vosi be oyebzom.'''....''My wife <u>grows</u> flowers out back.'' [TRANSITIVE]
=== Derived from Nouns ===
: Transitive/causative/active and intransitive/inchoative/passive verbs can also be formed from nouns. The sense of the former is ''to make be X'' and of the latter, ''to become X''.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Verbs Derived from Nouns
|-
! Noun !! Transitive/Causative/Active !! Intransitive/Inchoative/Passive
|-
| '''mog'''....''ash'' || '''mogxer'''<br>''to incinerate'' || '''mogser'''<br>''to become ashes''
|-
| '''yan'''....''collection'' || '''yanxer'''<br>''to collect'' || '''yanser'''<br>''to get together''
|-
| '''tad'''....''spouse'' || '''tadxer'''<br>''to marry'' || '''tadser'''<br>''to get married''
|-
| '''yom'''....''ice'' || '''yomxer'''<br>''to freeze/make ice'' || '''yomser'''<br>''to freeze/become ice''
|-
| '''mag'''....''fire'' || '''magxer'''<br>''to burn, set fire to'' || '''magser'''<br>''to burn, get burned''
|-
| '''uk'''....''void'' || '''ukxer'''<br>''to empty'' || '''ukser'''<br>''become empty, empty out''
|}
=== Intermediary Causative Verbs ===
: Intermediary verbal causatives like ''have/get my car washed'', ''make/force him go'', ''get one's hair cut'' are formed by suffixing the causative verb infix '''-ux-''' (active) or '''uxw''' (passive) to the stem of the verb signifying the action to be arranged or caused by someone other than the subject, eg.:
::* '''At gobl<u>ux</u>o ata tayeb zajub.'''....''I will get my hair cut tomorrow.''
::* '''Et voy yafe p<u>ux</u>er at.'''....''You cannot make me go.''
::* '''Wit tojb<u>ux</u>a yit.'''....''He had them killed.''
::* '''At efe vyilx<u>ux</u>er ata pur.'''....''I need to have my car washed.''
::* '''Et up<u>ux</u>wa him av hes.'''....''You were made to come here for some reason.''
::* '''At bakamb<u>ux</u>o et.'''....''I will have you hospitalized.''
::* '''Et voy yafe deuz<u>ux</u>er at.'''....''You cannot make me sing.''
::* '''At hihid<u>ux</u>wa.'''....''I was tickled (= made to laugh).''
::* '''Eta deuz hihid<u>ux</u>a yat.'''....''Your song tickled us. (= Made us laugh.)''
::* '''Van het ivas<u>ux</u>u weti.'''....''May someone get you guys to be happy.''
::* '''Hua enzyukpur uzp<u>ux</u>a yata pur.'''....''That motorcycle caused our car to veer.''
== Subject-directed vs. Patient-directed Verbs ==
: The directionality of some verbs can be distinguished by the verbal formant infix '''-i-''' for an action or motion toward the speaker and '''-u-''' for an action or motion away from the speaker toward some patient, eg.:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Directional Verbs
|-
! Subject-directed !! Patient-directed
|-
| '''b<u>i</u>er'''....''to take'' || '''b<u>u</u>er'''....''to give''
|-
| '''nier'''....''to consume'' || '''nuer'''....''to supply''
|-
| '''nyier'''....''to order'' || '''nyuer'''....''to deliver''
|-
| '''nazunier'''....''win a prize'' || '''nazunuer'''....''award a prize''
|-
| '''noysier'''....''pay off'' || '''noysuer'''....''charge''
|-
| '''ojbier'''....''borrow'' || '''ojbuer'''....''lend''
|-
| '''tadier'''....''get married'' || '''taduer'''....''marry off''
|-
| '''papier'''....''take flight'' || '''papuer'''....''send off flying''
|-
| '''pipier'''....''set sail'' || '''pipuer'''....''dock''
|-
| '''simbier'''....''take a seat'' || '''simbuer'''....''offer a seat''
|-
| '''tampier'''....''leave home'' || '''tampuer'''....''arrive home''
|-
| '''tamier'''....''settle in'' || '''tamuer'''....''shelter''
|-
| '''nuxbier'''....''to buy'' || '''nixbuer'''....''to sell''
|-
| '''telier'''....''to eat'' || '''teluer'''....''to feed''
|-
| '''gonbier'''....''to participate'' || '''gonbuer'''....''to share''
|-
| '''tilier'''....''to drink'' || '''tiluer'''....''to ply with drink''
|-
| '''teubier'''....''to swallow'' || '''teubuer'''....''to spit out''
|-
| '''teatier'''....''to observe, watch'' || '''teatuer'''....''to show''
|-
| '''taxier'''....''to memorize'' || '''taxuer'''....''to remind''
|-
| '''alier'''....''to breathe in'' || '''aluer'''....''to breathe out, expire''
|-
| '''ilier'''....''to absorb'' || '''iluer'''....''to pour''
|-
| '''ifier'''....''to enjoy'' || '''ifuer'''....''to please''
|-
| '''dier'''....''to ask'' || '''duer'''....''to suggest''
|-
| '''tier'''....''to learn'' || '''tuer'''....''to inform''
|-
| '''pier'''....''to depart'' || '''puer'''....''to arrive''
|-
| '''kebier'''....''to choose'' || '''kebuer'''....''to distribute''
|-
| '''byier'''....''to originate'' || '''byuer'''....''to target''
|-
| '''mempier'''....''to take off'' || '''mempuer'''....''to land''
|-
| '''sinier'''....''visualize'' || '''sinuer'''....''display''
|-
| '''xier'''....''to result'' || '''xuer'''....''to cause''
|-
| '''yifier'''....''to get up the courage'' || '''yifuer'''....''to encourage, challenge''
|-
| '''yafonier'''....''to gain power'' || '''yafonuer'''....''to empower''
|-
| '''trier'''....''to become acquainted with'' || '''truer'''....''to acquaint with, introduce to''
|-
| '''tepzexier'''....''to draw attention'' || '''tepzexuer'''....''to focus attention on''
|-
| '''yekier'''....''to undertake'' || '''yekuer'''....''to challenge''
|-
| '''dyunier'''....''to assume the name of'' || '''dyunuer'''....''to bestow the name of''
|-
| '''abfinier'''....''to take advantage of'' || '''abfinuer'''....''to favor''
|}
: In some cases, the directionality can be both ways in a verb, in which case the verb formant infix '''-ui-''' (a hybrid form) is used, eg.:
::* '''nunier '''....''to purchase'' (subject-directed)
::* '''nunuer'''....''to sell'' (patient-directed)
::* '''nunuier'''....''to trade'' (subject & patient-directed)
::* '''tier'''....''to learn, realize'' (subject-directed)
::* '''tuer'''....''to inform, tip off'' (patient-directed)
::* '''tuier'''....''to communicate'' (subject & patient-directed)
::* '''ebtuier'''....''to intercommunicate''
::* '''alier'''....''to breathe in, inhale'' (subject-directed)
::* '''aluer'''....''to breathe out, exhale'' (patient-directed)
::* '''aluier'''....''to breathe, respire'' (subject & patient-directed)
::* '''bier '''....''to take'' (subject-directed)
::* '''buer'''....''to give'' (patient-directed)
::* '''buier'''....''to give and take, exchange'' (subject & patient-directed)
== Bi-radical Verbs ==
: Some verbs are formed using two verb roots together. Here are some examples:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Bi-radical Verbs
|-
! Verb Root 1 !! Verb Root 2 !! Bi-radical Verb
|-
| '''nuxer'''....''to pay'' || '''bier'''....''to take'' || '''nuxbier'''....''to buy''
|-
| '''nixer'''....''to earn'' || '''buer'''....''to give'' || '''nixbuer'''....''to sell''
|-
| '''kexer'''....''to seek'' || '''bier'''....''to take'' || '''kexbier'''....''to choose''
|-
| '''uper'''....''to come'' || '''dier'''....''to ask'' || '''updier'''....''to invite''
|-
| '''teater'''....''to see'' || '''der'''....''to tell'' || '''teader'''....''to testify''
|-
| '''teeter'''....''to hear'' || '''drer'''....''to write'' || '''teadrer'''....''to report''
|-
| '''teater'''....''to see'' || '''per'''....''to go'' || '''teaper'''....''to visit''
|-
| '''texer'''....''to think'' || '''der'''....''to say'' || '''texder'''....''to mention''
|-
| '''kexer'''....''to seek'' || '''pixer'''....''to catch'' || '''kexpixer'''....''to hunt''
|-
| '''yeker'''....''to try'' || '''teexer'''....''to listen'' || '''yekteexer'''....''to try (in court)''
|}
== Verbs with Vectorial Prefixes ==
: Prepositions and directional adverbs can be prefixed to verbs in order to change their vectorial semantics. A preposition ending in '''b''' will assimilate by losing the '''b''' before the verb '''per'''....''to go'' or the verb '''ber'''. This assimilation does not occur for other verbs beginning with '''b''' such as '''byexer''' (''to hit''). A preposition ending in '''b''' will, however, assimilate (lose the '''b''') before any verb bases beginning with a '''p'''. For example, '''ab''' (''on'') + '''bexer''' (''to hold'') = '''obbexer''' (''to hold on''), because '''obexer''' could be interpreted as ''to release''. Here are some examples:
:{| class="wikitable sortable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Verb Prepositional Prefixes
|-
! Preposition/Adverb !! Transitive Verb !! Intransitive Verb
|-
| '''ab'''....''on'' || '''aber'''....''apply''<br>not '''abber'''! || '''aper'''....''get on''<br>not '''abper'''!
|-
| '''ob'''....''off'' || '''ober'''....''remove'' || '''oper'''....''get off, dismount''
|-
| '''ab'''....''off'' || '''abbaxrer'''....''to rub on'' || '''apyexer'''....''to attack''
|-
| '''eb'''....''between'' || '''eber'''....''block'' || '''eper'''....''intervene''
|-
| '''eb'''....''between'' || '''ebdrayefser'''....''to interleave'' || '''ebdrafxer'''....''to interleave''
|-
| '''ub'''....''toward'' || '''uber'''....''to send'' || '''uper'''....''to come''
|-
| '''ub'''....''toward'' || '''ubbixer'''...''to attract'' || '''upixer'''....''to pitch toward''
|-
| '''yab'''....''up'' || '''yaber'''....''raise'' || '''yaper'''....''rise''
|-
| '''yob'''....''down'' || '''yober'''....''take down'' || '''yoper'''....''descend''
|-
| '''yub'''....''near'' || '''yuber'''....''bring near'' || '''yuper'''....''approach''
|-
| '''yib'''....''far'' || '''yiber'''....''take away'' || '''yiper'''....''go far away''
|-
| '''yeb'''....''in'' || '''yeber'''....''insert'' || '''yeper'''....''enter''
|-
| '''yeb'''....''in'' || '''yepuxer'''....''throw in'' || '''yepuser'''....''jump in''
|-
| '''oyeb'''....''out'' || '''oyeber'''....''expose'' || '''oyeper'''....''exit''
|-
| '''oyeb'''....''out'' || '''oyebbuxer'''....''expel'' || '''oyepuxer'''....''eject''
|-
| '''zyu'''....''round'' || '''zyuber'''....''rotate'' || '''zyuper'''....''revolve''
|-
| '''zya'''....''throughout'' || '''zyaber'''....''spread'' || '''zyaper'''....''tour''
|-
| '''av'''....''for'' || '''avdaler'''....''plead'' || '''avper'''....''pursue''
|-
| '''ov'''....''against'' || '''ovber'''....''oppose'' || '''ovper'''....''countervene''
|-
| '''yan'''....''together'' || '''yanber'''....''compose'' || '''yanper'''....''meet''
|-
| '''yon'''....''apart'' || '''yonber'''....''separate'' || '''yonper'''....''separate''
|-
| '''iz'''....''direct'' || '''izber'''....''lead'' || '''izper'''....''head''
|-
| '''uz'''....''curved'' || '''uzber'''....''divert'' || '''uzper'''....''diverge''
|-
| '''yuz'''....''around'' || '''yuzber'''....''surround'' || '''yuzper'''....''circulate''
|-
| '''yiz'''....''beyond'' || '''yizber'''....''transfer'' || '''yizper'''....''surpass''
|-
| '''zoy'''....''back, re-'' || '''zoyber'''....''return'' || '''zoyper'''....''go back''
|}
== Other Semantics-altering Verb Prefixes ==
: As in English and many other languages, prefixes can be used on verbs to reverse, mitigate, or otherwise alter the semantics:
=== Expressing ''re-'' with '''zoy-''' or '''gaw-''' ===
: The prefix '''zoy-'''....''back'' or '''gaw-<sup>1</sup>'''....''again'' are used like the English prefix ''re-'', eg.:
::* '''ember'''....''to position'' → '''<u>zoy</u>-ember'''....''to <u>re</u>position, <u>re</u>place''
::* '''buer'''....''to give'' → '''<u>zoy</u>buer'''....''to <u>re</u>turn (an object), give back''
::* '''sanxer'''....''to shape, form'' → '''<u>zoy</u>sanxer'''....''to <u>re</u>shape, <u>re</u>form, <u>trans</u>form''
::* '''zyauber'''....''to broadcast'' → '''gawzyauber'''....''to re-broadcast''
::* '''taja'''....''born'' → '''gawtaja'''....''reborn''
::* '''aber'''....''to apply'' → '''gawaber'''....''to reapply''
::* '''teaper'''....''to visit'' → '''<u>gaw</u>teaper'''....''to <u>re</u>visit''
::* '''uper'''....''to come'' → '''<u>zoy</u>-uper<sup>2</sup>'''....''to <u>re</u>turn, come <u>back</u>''
::* '''buxer'''....''to push'' → '''<u>zoy</u>buxer'''....''to <u>re</u>pel, push <u>back</u>''
::* '''puxer'''....''to throw'' → '''<u>zoy</u>puxer'''....''to <u>re</u>ject, throw <u>back</u>, jettison''
: Note 1: The prefix '''gaw-''' before a consonant is pronounced like the ''gaw'' in the English word ''gawk''. It is short for '''ga awa jod''' or '''gawa''' meaning ''one more time, again''. If the "re-" word means ''to do something again'', then '''gaw-''' is used, eg. ''To reconvene'' ( = ''meet again'')....'''gawyanuper''' If the sense of ''back'' is intended, than the prefix '''zoy-''' is used, eg. ''To return'' ( = ''come back'')....'''zoyuper'''. Both prefixes are used in the expression ''Come back again!''....'''Gawzoy-upu!'''.
: Note 2: The prefix '''zoy''' is followed by a hyphen to make it clear that the prepositon is '''zoy''', not '''zo''' and that the base verb is '''uper''' (''come''), not '''yuper''' (''to approach'').
:''Until we meet again'' or ''au revoir'' is expressed by '''Ju gawyanup.'''
=== Expressing ''de-, dis-, un-'' with '''lo-''' ===
: The prefix '''lo-''' reverses the semantics of a verb and is like English ''dis-'', ''de-'', or ''un-'', eg.:
::* '''sexer'''....''to build, construct'' → '''<u>lo</u>sexer'''....''to <u>de</u>stroy, <u>de</u>construct''
::* '''anxer'''....''to unite'' → '''<u>lo</u>anxer'''....''to <u>dis</u>unite''
::* '''xer'''....''to do'' → '''<u>lo</u>xer'''....''to <u>un</u>do''
: Note the difference between '''o-''' and '''lo-'''.
::* '''odoparuwa'''....''<u>un</u>armed'' (= ''not armed'')
::* '''lodoparuwa'''....''<u>dis</u>armed'' (= from the verb '''lodoparuer'''....''to disarm'')
=== Expressing ''co-'' with '''yan-''' ===
: The prefix '''yan-'''....''together'' is used as the English ''co-'', eg.:
::* '''exer'''....''to operate'' → '''<u>yan</u>exer'''....''to <u>co</u>operate''
::* '''tamer'''....''to dwell'' → '''<u>yan</u>tamer'''....''to <u>co</u>habit''
::* '''napber'''....''to put in order'' → '''<u>yan</u>napber'''....''to <u>co</u>ordinate''
=== Making Verbs Completive with '''ik-''' ===
: Verbs can be made completive or perfective by prefixing them with '''ik-''' (''fully''). Such verbs are comparable to phrasal verbs in English with ''up'' and other prepositions as in ''to eat up''. Here are some examples in Mirad:
::* '''tojber'''....''to kill'' → '''iktojber'''....''to kill off, exterminate''
::* '''telier'''....''to eat'' → '''iktelier'''....''to eat up''
::* '''ujber'''....''to finish'' → '''ikujber'''....''to finish off/up''
::* '''gofler'''....''to rip'' → '''ikgofler'''....''to rip up''
::* '''drer'''....''to write'' → '''ikdrer'''....''to write down''
::* '''byexer'''....''to beat'' → '''ikbyexer'''....''to beat up''
::* '''agser'''....''to grow'' → '''ikagser'''....''to grow up''
=== Making Verbs Continuative with '''je-''' ===
: Verbs can be given a continuative nuance with the addition of the prefix '''je-''':
::* '''daler'''....''to talk'' → '''jedalar'''....''to go on talking, to blabber''
::* '''tejer'''....''to live'' → '''jetejer'''....''to go on living, to survive''
::* '''yexer'''....''to work'' → '''jeyexer'''....''to go on working, to keep working''
::* '''teaxer'''....''to look'' → '''jeteaxer'''....''to watch''
::* '''teexer'''....''to listen'' → '''jeteexer'''....''to keep listening, to pay attention''
::* '''duler'''....''to insist'' → '''jeduler'''....''to nag''
=== Making Verbs Inchoative with '''ij-''' ===
: Verbs can be given an inchoative nuance with the addition of the prefix '''ij-''':
::* '''texer'''....''to think'' → '''ijtexer'''....''to start to think''
::* '''ifier'''....''to enjoy'' → '''ijifier'''....''to start liking''
::* '''trer'''....''to know'' → '''ijtrer'''....''to get to know''
::* '''baxer'''....''to stir'' → '''ijbaxer'''....''to instigate''
::* '''byaxer'''....''to erect'' → '''ijbyaxer'''....''to establish, to institute''
::* '''dezer'''....''to perform'' → '''ijdezer'''....''to premier, to debut''
::* '''eser'''....''to exist'' → '''ijeser'''....''to come about''
::* '''kaxer'''....''to find'' → '''ijkaxer'''....''to invent''
::* '''magxer'''....''to burn'' → '''ijmagxer'''....''to kindle''
::* '''saxer'''....''to make'' → '''ijsaxer'''....''to create''
::* '''texer'''....''to think'' → '''ijtexer'''....''to conceive''
::* '''tuxer'''....''to teach'' → '''ijtuxer'''....''to initiate''
::* '''xeler'''....''to celebrate'' → '''ijxeler'''....''to inaugurate''
=== Making Verbs Terminative with '''uj-''' ===
: Verbs can be given a terminative nuance with the addition of the prefix '''uj-''':
::* '''telier'''....''to eat'' → '''ujtelier'''....''to finish eating''
::* '''dyeer'''....''to read'' → '''ujdyeer'''....''to finish reading''
::* '''ufteuder'''....''to complain'' → '''ujufteuder'''....''to quit carping''
::* '''aker'''....''to win'' → '''ujaker'''....''to succeed''
::* '''der'''....''to say'' → '''ujder'''....''to conclude''
::* '''gaber'''....''to add'' → '''ujgaber'''....''to append, to added at the end''
::* '''gyoxer'''....''to thin'' → '''ujgyoxer'''....''to taper''
::* '''kyeser'''....''to happen'' → '''ujkyeser'''....''to turn out''
::* '''oker'''....''to lose'' → '''ujoker'''....''to fail''
=== Giving Verbs a Nuance of Pleasure with '''if-''' ===
::* '''tyoper'''....''to walk'' → '''iftyoper'''....''to stroll''
::* '''tuyuxer'''....''to finger'' → '''iftuyuxer'''....''to tickle''
::* '''teaxer'''....''to look'' → '''ifteaxer'''....''to ogle (voyeuristically)''
::* '''piper'''....''to sail'' → '''ifpiper'''....''to go cruising''
::* '''teuder'''....''to shout'' → '''ifteuder'''....''to laugh''
::* '''eker'''....''to play'' → '''ifeker'''....''to have fun''
::* '''abbaxer'''....''to pat'' → '''ifabbaxer'''....''to fondle, to caress''
::* '''axler'''....''to act'' → '''ifaxler'''....''to have fun''
::* '''bier'''....''to take'' → '''ifbier'''....''to embrace, to adopt, to foster''
::* '''buer'''....''to give'' → '''ifbuer'''....''to donate, to gift''
::* '''bikuer'''....''to care for'' → '''ifbikuer'''....''to foster''
::* '''bixer'''....''to pull'' → '''ifbixer'''....''to entice, to tempt, to seduce''
::* '''ebdaler'''....''to converse'' → '''ifebdaler'''....''to chitchat''
::* '''mimparer'''....''to go boating'' → '''ifmimparer'''....''to go yachting''
::* '''tayoxer'''....''to touch'' → '''iftayoxer'''....''to tickle, to titillate''
::* '''teaxer'''....''to look at'' → '''ifteaxer'''....''to ogle, to feast one's eyes on, to moon over''
::* '''telier'''....''to eat'' → '''iftelier'''....''to feast on''
::* '''tyoper'''....''to walk'' → '''iftyoper'''....''to stroll, to jaunt, to promenade''
=== Giving Verbs a Nuance of Displeasure with '''uf-''' ===
::* '''tosier'''....''to feel'' → '''uftosier'''....''to get angry''
::* '''eker'''....''to play'' → '''ufeker'''....''to fight''
::* '''der'''....''to say'' → '''ufder'''....''to express displeasure''
::* '''aluer'''....''to exhale'' → '''ufaluer'''....''to huff''
::* '''daler'''....''to talk'' → '''ufdaler'''....''to rant''
::* '''teaxer'''....''to look at'' → '''ufteaxer'''....''to scorn, to disdain''
::* '''teuber'''....''to make an expression'' → '''ufteuber'''....''to frown''
::* '''teuder'''....''to shout'' → '''ufteuder'''....''to grouse, to gripe''
=== Giving Verbs a Nuance of Prohibition with '''of-''' ===
::* '''bier'''....''to take'' → '''ofbier'''....''to steal''
::* '''deler'''....''to declare'' → '''ofdeler'''....''to ban''
::* '''yeper'''....''to enter'' → '''ofyeper'''....''to intrude, break in''
::* '''zeyper'''....''to cross'' → '''ofzeyper'''....''to transgress, poach''
::* '''gelxer'''....''to copy'' → '''ofgelxer'''....''to pirate, plagiarize''
::* '''bekuluer'''....''to administer medicine'' → '''ofbekuluer'''....''to dope''
::* '''nuxuer'''....''to pay'' → '''ofnuxuer'''....''to bribe, pay off, suborn''
=== Giving Verbs a Nuance of Holiness with '''fya-''' ===
::* '''bexler'''....''to keep'' → '''fyabexler'''....''to enshrine''
::* '''buer'''....''to give'' → '''fyabuer'''....''to sacrifice''
::* '''der'''....''to say'' → '''fyader'''....''to bless''
::* '''daler'''....''to speak'' → '''fyadaler'''....''to preach, sermonize''
::* '''diler'''....''to request'' → '''fyadiler'''....''to pray''
::* '''deuzer'''....''to sing'' → '''fyadeuzer'''....''to chant''
::* '''ifrer'''....''to love dearly'' → '''fyaifrer'''....''to worship, adore''
::* '''jader'''....''to predict'' → '''fyajader'''....''to prophesy''
::* '''miluer'''....''to sprinkle'' → '''fyamiluer'''....''to sprinkle with holy water''
::* '''ojvader'''....''to promise'' → '''fyaojvader'''....''to swear''
::* '''xeler'''....''to practice'' → '''fyaxeler'''....''to celebrate''
::* '''koser'''....''to hide'' → '''fyakoser'''....''to go on a retreat, go into hermitage''
::* '''teazer'''....''perform a show'' → '''fyateazer'''....''to perform a miracle''
=== Giving Verbs a Nuance of Profanity with '''fyo-''' ===
::* '''der'''....''to say'' → '''fyoder'''....''to curse''
::* '''diler'''....''to request'' → '''fyodiler'''....''to conjure''
::* '''tyezer'''....''to perform magic'' → '''fyotezer'''....''to engage in black magic''
::* '''xer'''....''to do'' → '''fyoxer'''....''to sin''
=== Expressing Good Actions with '''fi-''' ===
::* '''agser'''....''to grow'' → '''fiagser'''....''to thrive, to flourish''
::* '''axler'''....''to act'' → '''fiaxler'''....''to behave well''
::* '''der'''....''to say'' → '''fider'''....''to praise''
::* '''deler'''....''to declare'' → '''fideler'''....''to approve''
::* '''datiber'''....''to host'' → '''fidatiber'''....''to welcome''
::* '''diber'''....''to manage'' → '''fidiber'''....''to husband''
::* '''doler'''....''to be silent'' → '''fidoler'''....''to be discrete''
::* '''duer'''....''to suggest'' → '''fiduer'''....''to recommend''
::* '''ebexler'''....''to interact'' → '''fiebexler'''....''to get along well''
::* '''exer'''....''to operate'' → '''fiexer'''....''to operate smoothly''
::* '''fer'''....''to want'' → '''fifer'''....''to mean well''
::* '''ijer'''....''to start'' → '''fiijer'''....''to get a good start''
::* '''nagser'''....''to measure'' → '''finagser'''....''to adapt''
::* '''napxer'''....''to arrange'' → '''finapxer'''....''to tidy up, to neaten''
::* '''ojfer'''....''to wish'' → '''fiojfer'''....''to wish well''
::* '''per'''....''to go'' → '''fiper'''....''to fare well, to prosper''
::* '''teaser'''....''to seem'' → '''fiteaser'''....''to look nice''
::* '''teaxer'''....''to look at'' → '''fiteaxer'''....''to admire''
::* '''tejer'''....''to live'' → '''fitejer'''....''to thrive''
::* '''teuder'''....''to shout'' → '''fiteuder'''....''to acclaim, to laud''
::* '''tosuer'''....''to make feel'' → '''fitosuer'''....''to exhilarate''
::* '''tujer'''....''to sleep'' → '''fitujer'''....''to sleep soundly''
::* '''yaker'''....''to expect'' → '''fiyaker'''....''to hope''
::* '''yuxer'''....''to help'' → '''fiyuxer'''....''to benefit''
::* '''xer'''....''to do'' → '''fixer'''....''to do well''
=== Expressing Bad Actions with '''fu-''' ===
::* '''axler'''....''to act'' → '''fuaxler'''....''to misbehave''
::* '''bekuer'''....''to treat'' → '''fubekuer'''....''to mistreat, to maltreat''
::* '''bexer'''....''to hold'' → '''fubexer'''....''to fumble''
::* '''bikuer'''....''to care for'' → '''fubikuer'''....''to neglect''
::* '''daler'''....''to talk'' → '''fudaler'''....''to speak ill of, to badmouth''
::* '''deler'''....''to declare'' → '''fudeler''''....''to denounce''
::* '''diber'''....''to manage'' → '''fudiber'''....''to mismanage, to maladminister''
::* '''doler'''....''to be quiet'' → '''fudoler'''....''to sulk''
::* '''dezgonuer'''....''to cast'' → '''fudezgonuer'''....''to miscast''
::* '''exer'''....''to function'' → '''fuexer'''....''to malfunction''
::* '''fer'''....''to want'' → '''fufer'''....''to wish ill''
::* '''fyiduer'''....''to advise'' → '''fufyiduer'''....''to ill-advise''
::* '''napxer'''....''to arrange'' → '''funapxer'''....''to mess up''
::* '''yevder'''....''to judge'' → '''fuyevder'''....''to critique negatively''
::* '''yuxer'''....''to help'' → '''fuyuxer'''....''to abuse''
=== Expressing More Intense Actions with '''az-''' ===
::* '''abbixer'''....''to attract'' → '''<u>az</u>abbixer'''....''to infatuate''
::* '''aluer'''....''to blow'' → '''<u>az</u>aluer'''....''to huff''
::* '''basrer'''....''to shake'' → '''<u>az</u>basrer'''....''to convulse''
::* '''bexer'''....''to hold'' → '''<u>az</u>bexer'''....''to clutch''
::* '''birer'''....''to grab''' → '''<u>az</u>birer'''....''to seize''
::* '''buxer'''....''to push''' → '''<u>az</u>buxer'''....''to prod''
::* '''byexer'''....''to strike'' → '''<u>az</u>byexer'''....''to stomp, to hit hard''
::* '''der'''....''to say'' → '''<u>az</u>der'''....''to emphasize''
::* '''duer'''....''to suggest'' → '''<u>az</u>duer'''....''to urge''
::* '''dizeuder'''....''to laugh'' → '''<u>az</u>dizeuder'''....''to guffaw''
::* '''fer'''....''to want'' → '''<u>az</u>fer'''....''to crave''
::* '''fuyevder'''....''to criticize'' → '''<u>az</u>fuyevder'''....''to lambaste''
::* '''yujber'''....''to close'' → '''<u>az</u>yujber'''....''to lock''
=== Expressing Less Intense Actions with '''oz-''' ===
::* '''der'''....''to utter'' → '''<u>oz</u>der'''....''to whisper''
::* '''duer'''....''to suggest'' → '''<u>oz</u>duer'''....''to hint''
::* '''dizeuder'''....''to laugh'' → '''<u>oz</u>dizeuder'''....''to chuckle''
::* '''uvteuder'''....''to moan'' → '''<u>oz</u>uvteuder'''....''to whimper''
::* '''tyoper'''....''to walk'' → '''<u>oz</u>tyoper'''....''to limp''
=== Expressing ''pre-, fore-'' with '''ja-''' ===
::* '''der'''....''to tell'' → '''<u>ja</u>der'''....''to foretell, predict''
::* '''teater'''....''to see'' → '''<u>ja</u>teater'''....''to foresee, preview''
::* '''ter'''....''to know'' → '''<u>ja</u>ter'''....''to presage, have foreknowledge of''
::* '''yever'''....''to judge'' → '''<u>ja</u>yever'''....''to prejudge''
::* '''juder'''....''to date'' → '''<u>ja</u>juder'''....''to antedate''
=== Expressing ''post-, after-'' with '''jo-''' ===
::* '''juder'''....''to date'' → '''<u>jo</u>juder'''....''to postdate''
::* '''texer'''....''to think'' → '''<u>jo</u>texer'''....''to reflect on, review''
::* '''uvder'''....''to express sadness'' → '''<u>jo</u>uvder'''....''to mourn, regret''
::* '''ibler'''....''to obtain'' → '''<u>jo</u>ibler'''....''to inherit''
=== Expressing ''excessively'' with '''gra-''' ===
::* '''telier'''....''to eat'' → '''<u>gra</u>telier'''....''to overeat''
::* '''fer'''....''to want'' → '''<u>gra</u>fer'''....''to covet''
::* '''der'''....''to say'' → '''<u>gra</u>der'''....''to exaggerate''
::* '''daler'''....''to talk'' → '''<u>gra</u>daler'''....''to yammer''
=== Expressing ''inadequately'' with '''gro-''' ===
::* '''fyinder'''....''to value'' → '''<u>gro</u>fyinder'''....''to underestimate''
::* '''mageler'''....''to cook'' → '''<u>gro</u>mageler'''....''to undercook''
::* '''xaer'''....''to perform'' → '''<u>gro</u>xaer'''....''to underperform''
=== Expressing ''counter-, contra-'' with '''ov-''' or '''oyv-''' ===
::* '''axler'''....''to act'' → '''<u>ov</u>axler'''....''to counteract''
::* '''apyexer'''....''to attack'' → '''<u>ov</u>apyexer'''....''to counterattack''
::* '''daler'''....''to speak'' → '''<u>ov</u>daler'''....''to oppose''
::* '''der'''....''to say'' → '''<u>oyv</u>der'''....''to contradict''
::* '''ber'''....''to put'' → '''<u>oyv</u>ber'''....''to reverse, overturn''
::* '''texer'''....''to think'' → '''<u>oyv</u>texer'''....''to contest, disagree''
::* '''per'''....''to go'' → '''<u>oyv</u>per'''....''to contravene''
=== Expressing ''on behalf, for'' with '''av-''' ===
::* '''axler'''....''to act'' → '''<u>av</u>axler'''....''to act on behalf of''
::* '''daler'''....''to speak'' → '''<u>av</u>daler'''....''to advocate, speak on behalf of''
::* '''dyundrer'''....''to sign'' → '''<u>av</u>dyundrer'''....''to endorse''
=== Making Verbs Reflexive with '''ut-''' (''self-, auto-'') ===
::* '''tojber'''....''to kill'' → '''<u>ut</u>tojber'''....''to commit suicide''
::* '''vyovider'''....''to flatter'' → '''<u>ut</u>vyovider'''....''to flatter oneself''
::* '''zaypuxwer'''....''to be propelled'' → '''<u>ut</u>zaypuxwer'''....''to be self-propelled''
::* '''fider'''....''to praise'' → '''<u>ut</u>fider'''....''to brag''
::* '''gober'''....''to decrement'' → '''<u>ut</u>gober'''....''to autodecrement''
=== Making Verbs Reciprocal with '''hyuit-''' (''one another'') ===
::* '''tojber'''....''to kill'' → '''<u>hyuit</u>tojber'''....''to kill one another''
::* '''ifer'''....''to love'' → '''<u>hyuit</u>ifer'''....''to love one another''
=== Expressing ''inter-, intra-'' with '''eb-''' (''between'') or '''eyb-''' (''among'') ===
::* '''tadier'''....''to marry'' → '''<u>eb</u>tadier'''....''to intermarry''
::* '''zyaber'''....''to spread'' → '''<u>eb</u>zyaber'''....''to intersperse''
::* '''vyexer'''....''to relate'' → '''<u>eb</u>vyexer'''....''to interrelate''
::* '''mulxer'''....''to materialize'' → '''<u>eyb</u>mulxer'''....''to mix''
::* '''xer'''....''to do'' → '''<u>eyb</u>xer'''....''to interest, to involve''
=== Expressing the Opposite of an Action with '''o-''' (''un-'') ===
::* '''bexler'''....''to keep'' → '''<u>o</u>bexler'''....''to release, let go of''
::* '''aynser'''....''to integrate'' → '''<u>o</u>aynser'''....''to disintegrate, to decay''
::* '''beler'''....''to carry'' → '''<u>o</u>beler'''....''to drop''
::* '''bier'''....''to take'' → '''<u>o</u>bier'''....''to leave, relinquish''
::* '''boser'''....''to be quiet'' → '''<u>o</u>boser'''....''to be upset''
::* '''drer'''....''to write'' → '''<u>o</u>drer'''....''to erase''
::<small>Note: If the base verb already begins with the negative prefix '''o-''', then the prefix is changed to '''ol-''', eg. '''obexler'''....''to release'' → '''<u>ol</u>obexwa'''....''to unrelease'' </small>
=== Expressing a Public or Official Action with '''do-''' ===
:: '''Do-''' is a stub for '''dot''' (''society'').
::* '''afder'''....''to allow'' → '''<u>do</u>afder'''....''to authorize''
::* '''bier'''....''to take'' → '''<u>do</u>bier'''....''to conquer, take over, take control of''
::* '''tojber'''....''to kill'' → '''<u>do</u>tojber'''....''to execute''
::* '''buer'''....''to give'' → '''<u>do</u>buer'''....''to dedicate''
::* '''daler'''....''to speak'' → '''<u>do</u>daler'''....''to orate, speak in public''
::* '''deler'''....''to declare'' → '''<u>do</u>deler'''....''to announce''
::* '''drer'''....''to write'' → '''<u>do</u>drer'''....''to publicize, report''
::* '''direr'''....''to demand'' → '''<u>do</u>direr'''....''to mandate, to dictate''
::* '''drer'''....''to write'' → '''<u>do</u>drer'''....''to publicize''
::* '''drurer'''....''to print'' → '''<u>do</u>drurer'''....''to publish''
::* '''duer'''....''to suggest'' → '''<u>do</u>duer'''....''to propose, to move''
::* '''durer'''....''to order'' → '''<u>do</u>durer'''....''to decree''
::* '''dyeder'''....''to recite'' → '''<u>do</u>dyeder'''....''to declaim''
::* '''dyeer'''....''to read'' → '''<u>do</u>dyeer'''....''to lecture''
::* '''ebdaler'''....''to discuss'' → '''<u>do</u>ebdaler'''....''to deliberate''
::* '''eber'''....''to block'' → '''<u>do</u>eber'''....''to enjoin, to restrain''
::* '''fuxer'''....''to do bad'' → '''<u>do</u>fuxer'''....''to commit a crime''
::* '''kebier'''....''to choose'' → '''<u>do</u>kebier'''....''to elect''
::* '''lonapxer'''....''to mess up'' → '''<u>do</u>lonapxer'''....''to riot''
::* '''naxgaxer'''....''to raise prices'' → '''<u>do</u>naxgaxer'''....''to auction off''
::* '''nixbuer'''....''to sell'' → '''<u>do</u>nixbuer'''....''to hawk''
=== Giving Verbs a Nuance of Truth with '''vya-''' ===
::* '''der'''....''to say'' → '''<u>vya</u>der'''....''to avow, to be frank''
::* '''ber'''....''to set, put'' → '''<u>vya</u>ber'''....''to control''
::* '''bier'''....''to take'' → '''<u>vya</u>bier'''....''to postulate''
::* '''boler'''....''to support'' → '''<u>vya</u>boler'''....''to prove''
::* '''duder'''....''to answer'' → '''<u>vya</u>duder'''....''to solve''
::* '''duer'''....''to suggest'' → '''<u>vya</u>duer'''....''to allege''
::* '''nadxer'''....''to line up'' → '''<u>vya</u>nadxer'''....''to align''
::* '''nagxer'''....''to measure'' → '''<u>vya</u>nagxer'''....''to fit''
::* '''napxer'''....''to arrange, order'' → '''<u>vya</u>napxer'''....''to adjust''
::* '''nazaxer'''....''to evaluate'' → '''<u>vya</u>nazaxer'''....''to corroborate''
::* '''kexer'''....''to seek'' → '''<u>vya</u>kexer'''....''to investigate''
::* '''tuer'''....''to inform'' → '''<u>vya</u>tuer'''....''to advise''
=== Giving Verbs of Nuance of Falseness with '''vyo-''' ===
::* '''der'''....''to say'' → '''<u>vyo</u>der'''....''to lie, to misstate''
::* '''tester'''....''to understand'' → '''<u>vyo</u>tester'''....''to misunderstand''
::* '''tuer'''....''to inform'' → '''<u>vyo</u>tuer'''....''to misinform, to deceive''
::* '''xer'''....''to do'' → '''<u>vyo</u>xer'''....''to do wrong, fail, misdo''
::* '''yuxler'''....''to serve'' → '''<u>vyo</u>yuxler'''....''to betray, to serve unfaithfully''
=== Making Verbs Positive with '''va-''' ===
::* '''der'''....''to say'' → '''<u>va</u>der'''....''to affirm''
::* '''texer'''....''to think'' → '''<u>va</u>texer'''....''to believe''
::* '''yeker'''....''to expect'' → '''<u>va</u>yeker'''....''to presume''
::* '''bier'''.....''to take'' → '''<u>va</u>bier'''....''to accept''
=== Making Verbs Negative with '''vo-''' ===
::* '''der'''....''to say'' → '''<u>vo</u>der'''....''to deny''
::* '''texer'''....''to think'' → '''<u>vo</u>texer'''....''to doubt''
::* '''yeker'''....''to expect'' → '''<u>vo</u>yeker'''....''to rule out''
::* '''bier'''.....''to take'' → '''<u>vo</u>bier'''....''to reject''
=== Making Verbs Suppositional with '''ve-''' ===
::* '''der'''....''to say'' → '''<u>ve</u>der'''....''to conjecture''
::* '''texer'''....''to think'' → '''<u>ve</u>texer'''....''to suppose, hypothesize''
::* '''yovder'''....''to blame'' → '''<u>ve</u>yovder'''....''to indict, accuse''
=== Speeding up Verbs with '''ig-''' ===
::* '''pier'''....''to leave'' → '''<u>ig</u>pier'''....''to flee''
::* '''pyoser'''....''to drop'' → '''<u>ig</u>pyoser'''....''to plummet''
::* '''tyoper'''....''to walk'' → '''<u>ig</u>tyoper'''....''to run''
::* '''yeper'''....''to enter'' → '''<u>ig</u>yeper'''....''to rush in''
=== Slowing up Verbs with '''ug-''' ===
::* '''paser'''....''to move'' → '''<u>ug</u>paser'''....''to amble''
::* '''teaxer'''....''to look'' → '''<u>ug</u>teaxer'''....''to gaze''
::* '''ilper'''....''to flow'' → '''<u>ug</u>ilper'''....''to trickle''
::* '''tilier'''....''to drink'' → '''<u>ug</u>tilier'''....''to sip''
=== Expressing the Nuance of Suddenness with '''yok-''' ===
::* '''baxer'''....''to stir'' → '''<u>yok</u>baxer'''....''to startle''
::* '''hihider'''....''to laugh'' → '''<u>yok</u>hihider'''....''to burst out laughing''
::* '''teaser'''....''to appear'' → '''<u>yok</u>teaser'''....''to suddenly appear''
::* '''yoktojer'''....''to die'' → '''<u>yok</u>tojer'''....''to drop dead''
=== Expressing the Notion of Fixedness with '''kyo-''' ===
::* '''byaser'''....''to stand'' → '''<u>kyo</u>byaser'''....''to stand still''
::* '''kexer'''....''to seek'' → '''<u>kyo</u>kexer'''....''to hound, stalk''
::* '''teaxer'''....''to look'' → '''<u>kyo</u>teaxer'''....''to stare, glare''
::* '''texer'''....''to think'' → '''<u>kyo</u>texer'''....''to obsess with, fixate on''
=== Expression the Notion of Randomness or Chance with '''kye-'''===
::* '''der'''....''to say'' → '''<u>kye</u>der'''....''to guess, divine''
::* '''per'''....''to per'' → '''<u>kye</u>per'''....''to fluctuate''
::* '''poper'''....''to travel'' → '''<u>kye</u>poper'''....''to wander''
::* '''napxer'''....''to order'' → '''<u>kye</u>napxer'''....''to scramble, shuffle''
::* '''bier'''....''to take'' → '''<u>kye</u>bier'''....''to select''
::* '''kaxer'''....''to find'' → '''<u>kye</u>kaxer'''....''to discover, to find by chance''
::* '''vyabxer'''....''to check'' → '''<u>kye</u>vabxer'''....''to spot check''
=== Expressing the Notion of Change with '''kya-''' ===
::* '''baser'''....''to make a move'' → '''<u>kya</u>baser'''....''to shift''
::* '''sanxer'''....''to form'' → '''<u>kya</u>sanxer'''....''to transform''
::* '''xer'''....''to do/make'' → '''<u>kya</u>xer'''....''to change''
::* '''napxer'''....''to order'' → '''<u>kya</u>napxer'''....''to shuffle''
::* '''dyanxer'''....''to phrase'' → '''<u>kya</u>dyanxer'''....''to paraphrase''
=== Expressing Covert Actions with '''ko-''' ===
::* '''ber'''....''to put'' → '''<u>ko</u>ber'''....''to hide''
::* '''beler'''....''to carry'' → '''<u>ko</u>beler'''....''to smuggle''
::* '''bier'''....''to take'' → '''<u>ko</u>bier'''....''to steal''
::* '''ebkyaxer'''....''to exchange'' → '''<u>ko</u>ebkyaxer'''....''to traffic''
::* '''exer'''....''to operate'' → '''<u>ko</u>exer'''....''to spy, operate under cover''
::* '''fler'''....''to wish for'' → '''<u>ko</u>fler'''....''to covet, be jealous of''
::* '''apyexer'''....''to attack'' → '''<u>ko</u>apyexer'''....''to ambush, to sneak-attack''
::* '''loexer'''....''to destroy'' → '''<u>ko</u>loexer'''....''to sabotage''
=== Expressing Actions with Intentionality with '''ke-''' ===
::* '''teaxer'''....''to look'' → '''<u>ke</u>teaxer'''....''to scan''
::* '''vyaxer'''....''to prove'' → '''<u>ke</u>vyaxer'''....''to experiment''
::* '''tier'''....''to learn'' → '''<u>ke</u>tier'''....''to be interested in''
::* '''bier'''....''to take'' → '''<u>ke</u>bier'''....''to choose''
::* '''pexer'''....''to catch'' → '''<u>ke</u>pexer'''....''to hunt''
=== Expressing Lateral Actions with '''ku-''' ===
::* '''buxer'''....''to push'' → '''<u>ku</u>buxer'''....''to rebuff, shun''
::* '''der'''....''to say'' → '''<u>ku</u>der'''....''to comment, remark''
::* '''tyoper'''....''to step'' → '''<u>ku</u>tyoper'''....''to step aside''
=== Expressing Diagonal Actions with '''ki-''' ===
::* '''teaxer'''....''to look'' → '''<u>ki</u>teaxer'''....''to look askance at''
::* '''tuxer'''....''to teach'' → '''<u>ki</u>tuxer'''....''to brainwash''
::* '''tyoper'''....''to walk'' → '''<u>ki</u>tyoper'''....''to limp''
::* '''pyoser'''....''to fall'' → '''<u>ki</u>pyoser'''....''to slip and fall''
::* '''per'''....''to go'' → '''<u>ki</u>per'''....''to slide''
=== Expressing Near Actions with '''yub-'''===
::* '''der'''....''to say'' → '''<u>yub</u>der'''....''to intimate, hint''
::* '''gexer'''....''to equate'' → '''<u>yub</u>gexer'''....''to approximate''
::* '''bixer'''....''to pull'' → '''<u>yub</u>bixer'''....''to attract, draw near''
::* '''teaxer'''....''to look'' → '''<u>yub</u>teaxer'''....''to scrutinize, examine''
=== Expressing Distance Actions with '''yib-''' (''far, tele-'') ===
::* '''drer'''....''to write'' → '''<u>yib</u>drer'''....''to wire, telegraph''
::* '''bixer'''....''to pull'' → '''<u>yi(b)</u>bixer'''....''to distract''
::* '''tuier'''....''to communicate'' → '''<u>yib</u>tuier'''....''to telecommunicate''
::* '''nyuxer'''....''to deliver'' → '''<u>yib</u>nyuxer'''....''to mail, post''
=== Expressing ''up-, super-'' with '''yab-''' ===
::* '''ber'''....''to put'' → '''<u>ya(b)</u>ber'''....''to raise, to put up''
::* '''bixler'''....''to drag'' → '''<u>ya(b)</u>bixler'''....''to dredge up''
::* '''uper'''....''to come'' → '''<u>yab</u>uper'''....''to come up''
::* '''nogyanxer'''....''to scale'' → '''<u>yab</u>nogyanxer'''....''to scale up, escalate''
=== Expressing ''down-, sub-'' with '''yob-''' ===
::* '''ber'''....''to put'' → '''<u>yo(b)</u>ber'''....''to lower, put down''
::* '''kyaber'''....''to shift'' → '''<u>yob</u>kyaxer'''....''to downshift''
::* '''musper'''....''to climb'' → '''<u>yob</u>musper'''....''to climb down''
::* '''nogyanxer'''....''to scale'' → '''<u>yob</u>nogyanxer'''....''to downscale''
=== Expressing ''in-'' with '''yeb-''' ===
::* '''ber'''....''to put'' → '''<u>ye(b)</u>ber'''....''to insert, put in''
::* '''beler'''....''to carry'' → '''<u>ye(b)</u>beler'''....''to import''
::* '''uzber'''....''to bend'' → '''<u>yeb</u>uzber'''....''to inflect''
::* '''yujber'''....''to close'' → '''<u>yeb</u>yujber'''....''to enclose, include''
=== Expressing ''out-, ex-, extra-'' with '''oyeb-''' ===
::* '''ber'''....''to put'' → '''<u>oye</u>ber'''....''to put out, expose''
::* '''beler'''....''to carry'' → '''<u>oye</u>beler'''....''to export''
::* '''uber'''....''to send'' → '''<u>oyeb</u>uber'''....''to emit, send out''
::* '''yujber'''....''to close'' → '''<u>oyeb</u>yujber'''....''to exclude''
=== Expressing ''pro-, forward'' with '''zay-''' ===
::* '''ber'''....''to put'' → '''<u>zay</u>ber'''....''to advance, put forward''
::* '''kexer'''....''to seek'' → '''<u>zay</u>kexer'''....''to scout out''
::* '''puxer'''....''to throw'' → '''<u>zay</u>puxer'''....''to propel, thrust''
::* '''tyoper'''....''to walk'' → '''<u>zay</u>tyoper'''....''to progress, to walk forward''
=== Expressing ''back-, retro-, re-'' with '''zoy-''' ===
::* '''uber'''....''to send'' → '''<u>zoy</u>ber'''....''to send back''
::* '''kixer'''....''to bend'' → '''<u>zoy</u>kixer'''....''to reflect''
::* '''puxer'''....''to throw'' → '''<u>zoy</u>puxer'''....''to repel''
::* '''neadper'''....''to track'' → '''<u>zoy</u>neadper'''....''to backtrack''
=== Expressing ''across, trans-, over-, cross-'' with '''zey-''' ===
::* '''per'''....''to go'' → '''<u>zey</u>per'''....''to cross, transit''
::* '''beler'''....''to carry'' → '''<u>zey</u>beler'''....''to transport, convey''
::* '''drer'''....''to write'' → '''<u>zey</u>drer'''....''to transcribe''
::* '''kyober'''....''to fix'' → '''<u>zey</u>kyober'''....''to transfix, transplant''
::* '''vyayeker'''....''to check'' → '''<u>zey</u>vyayeker'''....''to crosscheck''
=== Expressing ''through, per-'' with '''zye-''' ===
::* '''per'''....''to go'' → '''<u>zye</u>per'''....''to permeate, get through''
::* '''kexer'''....''to seek'' → '''<u>zye</u>kexer'''....''to rummage, sift through''
::* '''drer'''....''to write'' → '''<u>zye</u>drer'''....''to cross out, draw a line through''
::* '''iluer'''....''to pour'' → '''<u>zye</u>iluer'''....''to soak''
::* '''koper'''....''to sneak'' → '''<u>zye</u>koper'''....''to sneak through''
=== Expressing ''all over, widely, all about'' with '''zya-''' ===
::* '''ber'''....''to put'' → '''<u>zya</u>ber'''....''to spread''
::* '''buer'''....''to give'' → '''<u>zya</u>buer'''....''to distribute''
::* '''ijber'''....''to open'' → '''<u>zya</u>ijber'''....''to open wide''
::* '''nuxer'''....''to pay'' → '''<u>zya</u>nuxer'''....''to disburse''
::* '''puxer'''....''to throw'' → '''<u>zya</u>puxer'''....''to scatter, cast about''
=== Expressing ''mid-, center'' with '''ze-''' ===
::* '''ber'''....''to put'' → '''<u>ze</u>ber'''....''to balance''
::* '''byaser'''....''to stand'' → '''<u>ze</u>byaser'''....''to straddle''
::* '''der'''....''to say'' → '''<u>ze</u>der'''....''to interject''
::* '''pyoser'''....''to fall'' → '''<u>ze</u>pyoser'''....''to sag''
::* '''poxer'''....''to stop'' → '''<u>ze</u>poxer'''....''to interrupt''
=== Expressing ''futurity'' with '''oj-''' ===
::* '''ber'''....''to put'' → '''<u>oj</u>ber'''....''to put off, postpone''
::* '''bier'''....''to take'' → '''<u>oj</u>bier'''....''to borrow''
::* '''fer'''....''to want'' → '''<u>oj</u>fer'''....''to wish, aspire''
::* '''texer'''....''to think'' → '''<u>oj</u>texer'''....''to plan''
::* '''teater'''....''to see'' → '''<u>oj</u>teater'''....''to envision''
::* '''vader'''....''to affirm'' → '''<u>oj</u>vader'''....''to promise''
=== Expressing ''past'' with '''aj-''' ===
::* '''ber'''....''to put'' → '''<u>aj</u>ber'''....''to pass, relegate to the past''
::* '''der'''....''to say'' → '''<u>aj</u>der'''....''to evoke, hearken, recount''
::* '''embier'''....''to occupy'' → '''<u>aj</u>embier'''....''to haunt''
::* '''texer'''....''to think'' → '''<u>aj</u>texer'''....''to reminisce, to reflect''
::* '''uvtosder'''....''to express sadness'' → '''<u>aj</u>uvtosder'''....''to apologize''
::* '''nexer'''....''to store'' → '''<u>aj</u>nexer'''....''to archive''
=== Expressing ''present'' with '''ej-''' ===
::* '''buer'''....''to give'' → '''<u>ej</u>buer'''....''to present''
::* '''eser'''....''to exist'' → '''<u>ej</u>eser'''....''to attend, to be present''
::* '''nuxer'''....''to pay'' → '''<u>ej</u>nuxer'''....''to pay cash''
::* '''tuer'''....''to inform'' → '''<u>ej</u>tuer'''....''to update''
::* '''uvtosder'''....''to express sadness'' → '''<u>ej</u>uvtosder'''....''to apologize''
=== Expressing a stretched out action with '''yag-''' (''long'') ===
::* '''beser'''....''to stay'' → '''<u>yag</u>beser'''....''to linger''
::* '''bexer'''....''to hold'' → '''<u>yag</u>bexer'''....''to conserve, preserve''
::* '''daler'''....''to talk'' → '''<u>yag</u>daler'''....''to ramble''
::* '''dodaler'''....''to orate'' → '''<u>yag</u>dodaler'''....''to harangue''
::* '''fer'''....''to want'' → '''<u>yag</u>fer'''....''to yearn, pine''
::* '''teaxer'''....''to look'' → '''<u>yag</u>teaxer'''....''to stare''
::* '''fer'''....''to want'' → '''<u>yag</u>fer'''....''to yearn, pine''
=== Expressing a brief action with '''yog-''' (''short'') ===
::* '''drer'''....''to write'' → '''<u>yog</u>drer'''....''to abbreviate''
::* '''teaxer'''....''to look'' → '''<u>yog</u>teaxer'''....''to glance at''
::* '''tujer'''....''to sleep'' → '''<u>yog</u>tujer'''....''to snooze, nap''
::* '''gobler'''....''to cut'' → '''<u>yog</u>gobler'''....''to cut short, truncate''
=== Some Hybrid Prefixes ===
The prefix '''kui-''' is a hybrid of '''ku-''' (''lateral'') and '''ki-''' (''diagonal'')
::* '''per'''....''to go'' → '''<u>kui</u>per'''....''to wobble''
::* '''tyoper'''....''to walk'' → '''<u>kui</u>tyoper'''....''to limp''
The prefix '''zao-''' is a truncated hybrid of '''zay-''' (''forward'') and '''zoy-''' (''backwards''), eg:
::* '''baser'''....''to move'' → '''<u>zao</u>baser'''....''to rock''
::* '''per'''....''to go'' → '''<u>zao</u>per'''....''to alternate''
::* '''beler'''....''to carry'' → '''<u>kui</u>beler'''....''to shuttle, ferry''
::* '''pyoser'''....''to fall'' → '''<u>kui</u>pyoser'''....''to pendulate''
The prefix '''yaob-''' is a hybrid of '''yab-''' (''up'') and '''yob-''' (''down''). The final '''b-''' is assimilated or dropped before a '''b''' or '''p'''.
::* '''baser'''....''to move'' → '''<u>yao</u>baser'''....''to bob''
::* '''per'''....''to go'' → '''<u>yao</u>per'''....''to heave''
::* '''beler'''....''to carry'' → '''<u>yao</u>beler'''....''to shuttle, ferry''
::* '''peper'''....''to ride'' → '''<u>yao</u>peper'''....''to jounce''
::* '''puser'''....''to jump'' → '''<u>yao</u>puser'''....''to hop, bounce''
The prefix '''bui-''' is a hybrid of '''bu-''' (''to'') and '''bi-''' (''from''), eg:
::* '''drer'''....''to write'' → '''<u>bui</u>drer'''....''to correspond''
::* '''-er'''....''to x'' → '''<u>bui</u>er'''....''to trade''
::* '''beler'''....''to carry'' → '''<u>bui</u>beler'''....''to shuttle, ferry''
::* '''xer'''....''to do'' → '''<u>bui</u>xer'''....''to push and pull, spring''
::* '''poper'''....''to travel'' → '''<u>bui</u>poper'''....''to travel to and fro, travel round trip''
The prefix '''uiz-''' is a hybrid of '''uz-''' (''crooked'') and '''iz-''' (''straight''), eg:
::* '''drer'''....''to write'' → '''<u>uiz</u>drer'''....''to squiggle''
::* '''der'''....''to say'' → '''<u>uiz</u>der'''....''to equivocate''
::* '''baser'''....''to move'' → '''<u>uiz</u>baser'''....''to wiggle, to squirm''
::* '''per'''....''to go'' → '''<u>uiz</u>per'''....''to careen, reel''
::* '''paser'''....''to move'' → '''<u>uiz</u>paser'''....''to swerve, yaw''
The prefix '''zui-''' is a hybrid of '''zu-''' (''left'') and '''zi-''' (''right''), eg:
::* '''drer'''....''to write'' → '''<u>uiz</u>drer'''....''to squiggle''
::* '''buxer'''....''to push'' → '''<u>zui</u>buxer'''....''to push around''
::* '''baser'''....''to move'' → '''<u>zui</u>baser'''....''to sway, totter''
::* '''per'''....''to go'' → '''<u>zui</u>per'''....''to zigzag''
::* '''pasler'''....''to shake'' → '''<u>zui</u>pasler'''....''to wobble''
The prefix '''aoyeb-''' is a hybrid of '''(a)yeb-''' (''in'') and '''oyeb-''' (''out''), eg:
::* '''ber'''....''to put'' → '''<u>aoye</u>ber'''....''to insert and extract''
::* '''tiexer'''....''to breathe'' → '''<u>aoye</u>tiexer'''....''to breath in and out''
::* '''paper'''....''to fly'' → '''<u>aoye</u>paper'''....''to fly in and out''
The prefix '''aob-''' is a hybrid of '''ab-''' (''on'') and '''ob-''' (''off''), eg:
::* '''ber'''....''to put'' → '''<u>ao</u>ber'''....''to put on and off''
::* '''per'''....''to go'' → '''<u>ao</u>per'''....''to get on and off, embark and disembark''
The prefix '''vao-''' is a hybrid of '''va-''' (''yes'') and '''vo-''' (''no''), eg:
::* '''der'''....''to say'' → '''<u>vao</u>der'''....''to decide''
::* '''daler'''....''to talk'' → '''<u>vao</u>daler'''....''to waffle''
::* '''duder'''....''to answer'' → '''<u>vao</u>duder'''....''to answer yes or no''
::* '''kyaxer'''....''to change'' → '''<u>vao</u>kyaxer'''....''to redact''
::* '''texer'''....''to think'' → '''<u>vao</u>texer'''....''to deliberate, vacillate''
The prefix '''uij''' is a hybrid of '''uj-''' (''end'') and '''ij-''' (''begin'')
::* '''ber'''....''to put'' → '''<u>uij</u>ber'''....''to switch off and on''
::* '''daler'''....''to talk'' → '''<u>uij</u>daler'''....''to stutter''
The prefix '''yuij''' is a hybrid of '''yuj-''' (''close'') and '''yij-''' (''open'')
::* '''ber'''....''to put'' → '''<u>yuij</u>ber'''....''to open and close, blink''
The prefix '''huim''' is a hybrid of '''hum''' (''there'') and '''him''' (''there'')
::* '''paper'''....''to fly'' → '''<u>huim</u>paper'''....''to fly here and yon''
::* '''per'''....''to go'' → '''<u>huim</u>per'''....''to wander''
::* '''kexer'''....''to seek'' → '''<u>huim</u>kexer'''....''to search high and low''
=== Different Nuances of '''teaxer''' with Prefixes ===
<div style="background: lightyellow;{{Text default color}}; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}};font-size:smaller;";>
::* '''teaxer'''....''to look, behold, regard''
::* '''aybteaxer'''....''to supervise, look over''
::* '''ajteaxer'''....''to look back on (retrospect)''
::* '''eynteaxer'''....''to squint''
::* '''fizteaxer'''....''to respect''
::* '''fuzteaxer'''....''to disrespect''
::* '''gawteaxer'''....''to review, re-look''
::* '''hyuitteaxer'''....''to look at one another''
::* '''ibteaxer'''....''to ignore''
::* '''igteaxer'''....''to glance, glimpse''
::* '''ifteaxer'''....''to marvel at''
::* '''izteaxer'''....''to view directly, confront, aim''
::* '''jateaxer'''....''to preview''
::* '''jeteaxer'''....''to watch, observe''
::* '''joteaxer'''....''to review''
::* '''kateaxer'''....''to look for''
::* '''keteaxer'''....''to scan''
::* '''kiteaxer'''....''to look askance''
::* '''koteaxer'''....''to peek, spy''
::* '''kozyeteaxer'''....''to peep''
::* '''kozyoteaxer'''....''to peer''
::* '''kuteaxer'''....''to observe''
::* '''kyeteaxer'''....''to browse''
::* '''kyoteaxer'''....''to stare, glare''
::* '''oteaxer'''....''to ignore, overlook''
::* '''ufteaxer'''....''to glare, leer''
::* '''ugteaxer'''....''to gaze''
::* '''yagteaxer'''....''to gape, gawk''
::* '''yebteaxer'''....''to inspect''
::* '''yibteaxer'''....''to view from afar''
::* '''yogteaxer'''....''to glance at''
::* '''yokteaxer'''....''to get a glimpse of''
::* '''yubteaxer'''....''to examine''
::* '''yuibteaxer'''....''to look near and far''
::* '''yuzteaxer'''....''to look around, circumspect''
::* '''yanteaxer'''....''to view together''
::* '''yizteaxer'''....''to look beyond, overlook''
::* '''vyateaxer'''....''to investigate, check out''
::* '''vyoteaxer'''....''to view wrongly''
::* '''zateaxer'''....''to face, confront''
::* '''zayteaxer'''....''to look ahead, expect''
::* '''zoyteaxer'''....''to look back''
::* '''zeyteaxer'''....''to look across''
::* '''ziteaxer'''....''to look to the right''
::* '''zuteaxer'''....''to look to the left''
::* '''zuiteaxer'''....''to look right and left''
::* '''zyateaxer'''....''to look all over, survey''
::* '''zyeteaxer'''....''to look through, peruse''
::* '''zyoteaxer'''....''to squint''
::* '''yobteaxer'''....''to look down''
::* '''yaobteaxer'''....''to look up and down''
::* '''zaoteaxer'''....''to look back and forth''
::* '''yabteaxer'''....''to look up''
::* '''yubketeaxer'''....''to pry''
::* '''uzteaxer'''....''to look indirectly at''
::* '''oyebteaxer'''....''to look out''
::* '''ojteaxer'''....''to peer into the future''
::* '''marteaxer'''....''to star-gaze''
::* '''tabteaxer'''....''to autopsy''
</div>
== Modal Verbs ==
: Modal verbs are auxiliary verbs that are usually followed by the main verb in the infinitive or a subjunctive dependent clause and have to do with wanting, permitting, prohibiting, being able, being unable, needing, being obliged to do something, etc.
==== Principal Modal Auxiliary Verbs ====
[[File:Ladies Should Listen poster.jpg|thumb|]]
: Mirad has a set of modal auxiliary verbs that can be followed by a main verb in the infinitive mode. This is very much like English modal auxiliary verbs in the following examples:
::* ''I <u>want</u> to go.''
::* ''You <u>must</u> wait.''
::* ''You <u>may</u> stay.''
::* ''I <u>dare</u> say.''
: Here is a chart showing the main modal auxiliary verbs in Mirad:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Principle Modal Auxiliary Verbs
|-
! Type !! Positive !! Negative
|-
! Permission
| '''afer'''....''may''<br>'''ayfer'''....''might'' || '''ofer'''....''may not''<br>'''oyfer'''....''might not''
|-
! Ability
| '''yafer'''....''can''||'''yofer'''....''cannot''
|-
! Need
| '''efer'''....''need to'' ||
|-
! Obligation
| '''yefer'''....''must''<br>'''yeyfer'''....''should'' ||'''oyefer'''....''must not''<br>'''oyeyfer'''....''should not''
|-
! Desire
| '''fer'''....''want to'' ||
|-
! Enjoyment
| '''ifer'''....''love to, enjoy''<br>'''iyfer'''....''like to'' || '''ufer'''....''hate to''<br>'''uyfer'''....''dislike to''
|-
! Courage
|'''yifer'''....''dare to'' || '''yufer'''....''be afraid to, fear''
|-
! Liberty
| '''yiver'''....''have a right to, be free to'' || '''yuver'''....''be bound to, be supposed to''
|-
! Expectation
| '''yaker'''....''expect to'' || '''yoker'''....''be surprised to''
|-
! Conation
| '''yeker'''....''try to'' ||
|-
! Difficulty
| '''yiker'''....''to find it hard to'' || '''yuker'''....''to find it easy to''
|}
: These modal auxiliary verbs are often followed by a verbal infinitive, as in the following examples:
::* '''At fe <u>ter</u>.'''....''I want <u>to know</u>.''
::* '''Wit yifa <u>yeper</u>.'''....''He dared <u>to enter</u>.''
::* '''Yat yafe <u>teater</u> yet.'''....''We can <u>see</u> you.''
::* '''Duven et yaka <u>aker</u>?'''....''Did you expect <u>to win</u>?''
::* '''Diwe yeku <u>xer</u> ga fi.'''....''Please try <u>to do</u> better.''
: If the modal verb is in the hypothetical aspect (conditional), then the sense is somewhat mitigated, as in these examples:
:* '''At <u>fe</u> per.'''....''I <u>want</u> to go.''
:* '''At <u>fu</u> per.'''....''I <u>would</u> like to go.''
:* '''Et <u>yafe</u> aker.'''....''You <u>can</u> win.''
:* '''Et <u>yafu</u> aker.'''....''You <u>could</u> win.''
:* '''Yet <u>yefe</u> iper.'''....''You <u>must</u> leave.''
:* '''Yet <u>yefu</u> iper.'''....''You <u>ought</u> to leave.''
: Post-y-gliding the stem vowel of the modal verb also reduces the strength, for example:
:* '''At <u>ife</u> et.''' ....''I <u>love</u> you.''
:* '''At <u>iyfe</u> et.''' ....''I <u>like</u> you.''
:* '''Et <u>yefe</u> iper.'''....''You <u>must</u> leave.''
:* '''Et <u>yeyfe</u> iper.'''....''You <u>should</u> leave.''
:* '''Iyt <u>yafe</u> aker.'''....''She <u>can</u> win.''
:* '''Iyt <u>yayfe</u> aker.'''....''She <u>might</u> win.''
:* '''At <u>ufa</u> uda tuz.'''....''I <u>hated</u> that art.''
:* '''At <u>uyfa</u> uda tuz.'''....''I <u>disliked</u> that art.''
: The use of '''l''' and '''r''' intensify the meaning of the auxiliary verbs, eg:
:* '''Et <u>yuve</u> puer jwe.'''....''You <u>are supposed</u> to arrive on time.''
:* '''Et <u>yuvle</u> tepzexer.'''....''You <u>have</u> to pay attention.''
:* '''Et <u>yuvre</u> buer nas.'''....''You <u>absolutely must</u> give money.''
:* '''At <u>yeka</u> ser yeva.'''....''I <u>tried</u> to be fair.''
:* '''At <u>yekla</u> ujber jwa.'''....''I <u>strove</u> to finish early.''
:* '''At <u>yekra</u> nixer ga nas.'''....''I <u>struggled (= worked hard))</u> to earn more money.''
:* '''Iyt <u>ife</u> eker zyun.'''....''She <u>loves</u> to play ball.''
:* '''Iyt <u>ifla</u> teater et.'''....''She <u>was delighted</u> to see you.''
:* '''Iyt <u>ifre</u> teaper him.'''....''She <u>adores</u> visiting here.''
: Here are some examples showing how these modal verbs are used as auxiliaries:
::* '''Et <u>afe</u> oyeper ay ifeker.'''....''You <u>may</u> go out and play.''
::* '''Yat <u>efa</u> tujer.'''....''We <u>needed</u> to sleep.''
::* '''Ot <u>ofe</u> mavier him.'''....''One <u>is prohibited</u> to smoke here.''
::* '''Mavier him <u>ofwe</u>.'''....''Smoking here is prohibited.''
::* '''At <u>ife</u> dyeer.'''....''I <u>love</u> to read.''
::* '''Duven et <u>fe</u> yeper?'''....''Do you <u>want</u> to come in?''
::* '''At <u>fu</u> teaper et edjub.'''....''I <u>would like</u> to visit you some day.''
::* '''It <u>ufaye hyaj</u> teaxwer.'''....''He <u>has always hated</u> being looked at.''
::* '''Duven et <u>iyfe</u> per tilami?'''....''Do you <u>like</u> going to bars?''
::* '''At <u>uyfe</u> tijer gra jwa.'''....''I <u>dislike</u> waking up too early.''
::* '''Et <u>yafe</u> xer hyehos et fu.'''....''You <u>can</u> do whatever you like.''
::* '''Et <u>yefer</u> xer ad vyaas.'''....''You <u>must</u> do the right thing.''
::* '''Et <u>yeyfe</u> voy daler huuyen azay.'''....''You <u>should</u> not talk so loud.''
::* '''At <u>yeyfa</u> ter ga fi.'''....''I <u>should have</u> known better.''
::* '''At <u>voy yifu</u> der hyea fuas.'''....''I <u>would not dare</u> say anything bad.''
::* '''<u>Von yufu</u> der hos et tesde.'''....''<u>Don't be afraid</u> to say what you mean.''
::* '''Et <u>yive</u> dier yevanavdut.'''....''You <u>have a right</u> to ask for a lawyer.''
::* '''Yat <u>voy yuvle</u> kyoejer.'''....''We <u>are not bound</u> to stick around.''
=== Subject-oriented vs. Patient-oriented Modal Verb Forms ===
:: All of these modal verbs can be passive, in which case they are "patient-oriented" rather than "subject-oriented." The participial adjective '''yafa'''....''able'' is subject-oriented and refers to a person, whereas the passived adjective '''yafwa'''....''possible'' is patient-oriented and refers to a thing or event. Here is a chart of the principal modal verbs and corresponding participial adjectives with this subject/object-orientation distinction shown:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Subject-oriented vs. Patient-oriented Modal Verb Forms
|-
! Modal Type || Subject-oriented !! Subject-oriented !! Patient-oriented !! Patient-oriented
|-
! !! Verb !! Adjective !! Verb !! Adjective
|-
!row=1| Permission
| '''afer'''<br>''may'' || '''afa'''<br>''allowed'' || '''afwer'''<br>''be permitted'' || '''afwa'''<br>''permissable''
|-
!row=1| Necessity
| '''efer'''<br>''need'' || '''efa'''<br>''needful'' || '''efwer'''<br>''be necessary'' || '''efwa'''<br>''necessary, required''
|-
!row=1| Prohibition
| '''ofer'''<br>''be unallowed'' || '''ofa'''<br>''prohibited'' || '''ofwer'''<br>''be prohibited'' || '''ofwa'''<br>''banned''
|-
!row=1| Possibility
| '''yafer'''<br>''be able'' || '''yafa'''<br>''able'' || '''yafwer'''<br>''be possible'' || '''yafwa'''<br>''possible''
|-
!row=1| Obligation
| '''yefer'''<br>''must'' || '''yefa'''<br>''obliged'' || '''yefwer'''<br>''be obligatory'' || '''yefwa'''<br>''obligatory''
|-
!row=1| Duty
| '''yeyfer'''<br>''should'' || '''yeyfa'''<br>''supposed, duty-bound'' || '''yeyfwer'''<br>''be supposed'' || '''yeyfwa'''<br>''due''
|-
!row=1| Impossibility
| '''yofer'''<br>''be unable'' || '''yofa'''<br>''unable'' || '''yofwer'''<br>''be impossible'' || '''yofwa'''<br>''impossible''
|-
!row=1| Volition
| '''fer'''<br>''want'' || '''fa'''<br>''desirous'' || '''fwer'''<br>''be desirable'' || '''fwa'''<br>''desirable, wanted''
|-
!row=1| Love
| '''ifer'''<br>''love''<br>'''iyfer'''<br>''like'' || '''ifa'''<br>''enamored''<br>'''iyfa'''<br>''fond'' || '''ifwer'''<br>''be loved''<br>'''iyfwer'''<br>''be liked'' || '''ifwa'''<br>''lovable''<br>'''iyfwa'''<br>''likeable''
|-
!row=1| Hate
| '''ufer'''<br>''hate''<br>'''uyfer'''<br>''dislike'' || '''ufa'''<br>''averse''<br>'''uyfa'''<br>''displeased''|| '''ufwer'''<br>''be hated''<br>'''uyfwer'''<br>''be disliked'' || '''ufwa'''<br>''odious''<br>''unliked''
|-
!row=1| Courage
| '''yifer'''<br>''dare'' || '''yifa'''<br>''daring, brave'' || '''yifwer'''<br>''be safe'' || '''yifwa'''<br>''safe''
|-
!row=1| Fear
| '''yufer'''<br>''be afraid'' || '''yufa'''<br>''afraid'' || '''yufwer'''<br>''be a danger'' || '''yufwa'''<br>''frightening''
|-
!row=1| Joy
| '''iver'''<br>''enjoy'' || '''iva'''<br>''glad'' || '''ivwer'''<br>''be a joy'' || '''ivwa'''<br>''enjoyable''
|-
!row=1| Sorrow
| '''uver'''<br>''be sorry'' || '''uva'''<br>''sorry, sad'' || '''uvwer'''<br>''be a shame'' || '''uvwa'''<br>''regrettable''
|}
: Examples of subject-oriented forms:
::* '''At se <u>yafa</u> xer hes.'''....''I <u>am capable of</u> doing anything.''
::* '''Et <u>ofe</u> teater hia dyezun.'''....''You <u>are not allowed/are prohibited</u> to see this film.''
::* '''Duven at <u>afe</u> per hum?'''....''Am I <u>allowed</u> to go there?''
::* '''Yat <u>fu</u> ter eta dyun.'''....''We <u>would like</u> to know your name.''
::* '''Piti <u>ufe</u> beser be mel.'''....''Fish <u>hate</u> to remain on dry land.''
::* '''At ajay <u>ifa</u> dazer.'''....''I once <u>loved</u> to dance.''
::* '''Et se iva, at <u>yife</u> der.'''....''You are beautiful, I <u>dare</u> say.''
::* '''At <u>yeyfa</u> xer has ga ig.'''....''I <u>should</u> have done it sooner.''
::* '''Von <u>yufu</u>; At yupeye.'''....''<u>Fear</u> not; I am coming.''
::* '''Et <u>yefe</u> puer ja eymaj.'''....''You <u>must</u> arrive before noon.''
::* '''Yet <u>yofe</u> daler je ha dezun.'''....''You people <u>must not</u> talk during the performance.''
::* '''Yat <u>yeyfe</u> (= se <u>yeyfa</u>) aker.'''....''We should (= are <u>bound/supposed/due</u>) to win.''
::* '''At <u>ive</u> teater et bakser.'''....''I<u>'m glad</u> to see you get better.''
::* '''Su <u>iva</u>.'''....''Be <u>happy</u>.''
::* '''At <u>uvu (= su uva)</u> teater et iper.'''....''I <u>would be sad</u> to see you leave.''
: Examples of patient-oriented forms:
::* '''<u>Afwe</u> (= se afwa) mavier him.'''....''<u>It is permissible</u> to smoke here.''
::* '''<u>Ofwe</u> (= se ofwa*) puxer fyumul him.'''....''<u>It is prohibited</u> to throw litter here.''
::* '''<u>Fwe</u> (= se fwa) van yet dolu.'''....''<u>It is desired</u> that you stop talking.''
::* '''<u>Voy yafwe</u> beser him gajob.'''....''<u>It is not possible</u> to remain here any longer.''
::* '''<u>Yofwa</u> av at ivteuder.'''....''<u>It was not possible</u> for me to laugh.''
::* '''<u>Yefwe</u> van et piu ig.'''....''<u>It is essential</u> that you leave quickly.''
::* '''He <u>yeyfwe</u> ober ata tyoyafi?'''....''Is <u>it obligatory</u> to remove my shoes?''
::* '''Ga yux <u>efwo</u>.'''....''More help <u>will be needed</u>.''
::* '''Yuxren se <u>ufwa</u> xetyen.'''....''Slavery is an <u>odious</u> practice.''
::* '''<u>Uvwe</u> van wit oka.'''....''<u>It's a shame</u> that he lost.''
:: *<small>'''lofwa''' is used for ''unwanted'' for disambiguation purposes.</small>
=== Deriving Causatives from Modal Stems ===
: Various causative verbs can be formed from modal stems, as shown in the chart below:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Deriving Causatives from Modal Stems
|-
! Subject-oriented !! Patient-oriented
|-
| '''afxer'''....''allow'' (someone to do sthg.) || '''afwaxer'''....''permit'' (something to be done)
|-
| '''efxer'''....''require'' || '''efwaxer'''....''necessitate''
|-
| '''ofxer'''....''prohibit'' || '''ofwaxer'''....''prohibit''
|-
| '''yafxer'''....''enable'' || '''yafwaxer'''....''make possible''
|-
| '''yefxer'''....''oblige'' || '''yefwaxer'''....''make obligatory''
|-
| '''yofxer'''....''cripple'' || '''yofwaxer'''....''disable''
|-
| '''yifxer'''....''embolden'' || '''yifwaxer'''....''make safe''
|-
| '''yufxer'''....''intimidate'' || '''yufwaxer'''....''make frightening''
|-
| '''ifxer'''....''please'' || '''ifwaxer'''....''make pleasant''
|}
=== Creating Modal Verbs and Adjectives with Modal Stem Suffixes ===
: Verb stems can be suffixed with modal participles to produce related modal verbs and adjectives. The first chart shows the modal participles themselves that can be suffixed to verb stems. Subject-oriented forms refer only to people, while patient-oriented forms (ending in '''-wa''') refer only to things.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Modal Suffixes
|-
! Subject-oriented !! Patient-oriented
|-
| '''-yafa'''....''able to X, -able'' || '''-yafwa'''....''possible to X''
|-
| '''-yofa'''....''unable to X'' || '''-yofwa'''....''impossible to X''
|-
| '''-ifa'''....''fond of Xing, Xophile'' || '''-ifwa'''....''enjoyable to X''
|-
| '''-ufa'''....''averse to Xing, Xophobic'' ||'''-ufwa'''....''unenjoyable to X''
|-
| '''-yika'''....''hard of Xing'' || '''-yikwa'''....''hard to X''
|-
| '''-yuka'''....''comfortable/easy Xing'' || '''-yukwa'''....''easy to X''
|-
| '''-yaka'''....''expecting to X'' || '''yakwa'''....''expected/likely to X''
|-
| '''-efa'''....''in need of Xing'' || '''-efwa'''....''necessary to X''
|-
| '''-yefa'''....''obliged to X'' || '''-yefwa'''....''obligatory/due to X''
|-
| '''-yufa'''....''afraid of Xing'' || '''-yufwa'''....''frightening to X''
|}
: This table shows some of these modal suffixes applied to actual verb and noun stems:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Modals and Orientation
|-
! Orientation !! Positive Adjective !! Positive Verb !! Negative Adjective !! Negative Verb
|-
!row=1| '''Subject'''
| '''teatyafa'''<br>''able to see, sighted'' || '''teatyafer'''<br>''be able to see'' || '''teatyofa'''<br>''blind'' || '''teatyofer'''<br>''be blind''
|-
!row=1| '''Patient'''
| '''teatyafwa'''<br>''visible'' || '''teatyafwer'''<br>''be visible'' || '''teatyofwa'''<br>''invisible'' || '''teatyofwer'''<br>''be invisible''
|-
!row=1| '''Subject'''
| '''teetyafa'''<br>''able to hear, hearing'' || '''teetyafer'''<br>''be able to hear'' || '''teetyofa'''<br>''deaf'' || '''teatyofer'''<br>''be deaf''
|-
!row=1| '''Patient'''
| '''teetyafwa'''<br>''audible'' || '''teetyafwer'''<br>''be audible'' || '''teeyofwa'''<br>''inaudible'' || '''teeyofwer'''<br>''be inaudiable''
|-
!row=1| '''Subject'''
| '''dalyafa'''<br>''able to speak'' || '''dalyafer'''<br>''be able to speak'' || '''dalyofa'''<br>''mute, dumb'' || '''dalyofer'''<br>''be mute, dumb''
|-
!row=1| '''Subject'''
| '''doabifa'''<br>''patriotic'' || '''doabifer'''<br>''be patriotic'' || '''doabufa'''<br>''rebellious'' || '''doabufer'''<br>''rebel''
|-
!row=1| '''Subject'''
| '''tosyafa'''<br>''sensitive'' || '''tosyafer'''<br>''be able to feel'' || '''tosyofa'''<br>''insensitive'' || '''tosyofer'''<br>''be numbed''
|-
!row=1| '''Patient'''
| '''tayotyafwa'''<br>''palpable'' || '''tayotyafwer'''<br>''be palpable'' || '''tayotyofwa'''<br>''numb'' || '''tayotyofwer'''<br>''be impalbable, numb''
|-
!row=1| '''Patient'''
| '''testyukwa'''<br>''easy to understand'' || '''testyukwaxer'''<br>''make easily understood'' || '''testyikwa'''<br>''hard to understand'' || '''testyikwaxer'''<br>''make hard to understand''
|-
!row=1| '''Subject'''
| '''tudyaka'''<br>''pregnant, expecting'' || '''tudyaker'''<br>''be expecting''|| ||
|-
!row=1| '''Patient'''
|'''mamilyakwa'''<br>''likely to rain'' || '''mamilyakwer'''<br>''to be expected to rain''|| '''mamilyokwa'''<br>''unlikely to rain''|| '''mamilyokwer'''<br>''to be unlikely to rain''
|-
!row=1| '''Subject'''
| '''tilefa'''<br>''thirsty'' || '''tilefer'''<br>''be thirsty'' || ||
|-
!row=1| '''Subject'''
| '''telefa'''<br>''hungry'' || '''telefer'''<br>''be hungry'' || ||
|-
!row=1| '''Patient'''
| '''tejefwa'''<br>''vital'' || '''tejefwer'''<br>''be vital'' || ||
|-
!row=1| '''Subject'''
| '''tujefa'''<br>''sleepy'' || '''tujefer'''<br>''be sleepy'' || ||
|-
!row=1| '''Subject'''
| '''nasefa'''<br>''poor, needy'' || '''nasefer'''<br>''be needy'' || ||
|-
!row=1| '''Subject'''
| '''dudyefa'''<br>''accountable, responsible'' || '''dudyefer'''<br>''be responsible'' || ||
|-
!row=1| '''Patient'''
| '''texiyefwa'''<br>''noteworthy'' || '''texiyefwer'''<br>''be noteworthy'' || ||
|}
== Sensing Verbs ==
: Verbs involving the senses, such as sight or hearing, follow a similar pattern, as the following chart shows:
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Sensing Verbs
|- valign=top
! TYPE !! '''teab'''....''eye''<br>'''teata'''....''visual'' !! '''teeb'''....''ear''<br>'''teeta'''....''acoustic'' !! '''teib'''....''nose''<br>'''teita'''....''olfactory'' !! '''teub'''....''mouth''<br>'''teuta'''....''gustatory'' !! '''tayob'''....''skin''<br>'''tayota'''....''tactile''
|- valign=top
!row=1| Receptive<br>Active
| '''teater'''<br>''see'' || '''teeter'''<br>''hear'' || '''teiter'''<br>''smell'' || '''teuter'''<br>''taste'' || '''tayoter'''<br>''feel''
|- valign=top
!row=1| Receptive<br>Passive
| '''teatwer'''<br>''be seen'' || '''teetwer'''<br>''be heard'' || '''teitwer'''<br>''be smelled'' || '''teutwer'''<br>''be tasted'' || '''tayotwer'''<br>''be felt''
|- valign=top
!row=1| Stative
| '''teaser'''<br>''seem'' || '''teeser'''<br>''sound'' || '''teiser'''<br>''smell'' || '''teuser'''<br>''taste'' || '''tayoser'''<br>''feel''
|- valign=top
!row=1| Dynamic<br>Active
| '''teaxer'''<br>''look at'' || '''teexer'''<br>''listen'' || '''teixer'''<br>''sniff'' || '''teuxer'''<br>''taste'' || '''tayoxer'''<br>''touch''
|- valign=top
!row=1| Dynamic<br>Passive
| '''teaxwer'''<br>''be looked at'' || '''teexwer'''<br>''be listened to'' || '''teixwer'''<br>''be sniffed'' || '''teuxwer'''<br>''be tasted'' || '''tayoxwer'''<br>''be touched''
|- valign=top
!row=1| Causative<br>Active
| '''teatuer'''<br>''show'' || '''teetuer'''<br>''make hear'' || '''teixuer'''<br>''make smell'' || '''teuxuer'''<br>''offer a taste'' || '''tayoxuer'''<br>''make feel''
|- valign=top
!row=1| Causative<br>Passive
| '''teatuwer'''<br>''be shown'' || '''teetuwer'''<br>''be made to hear'' || '''teituwer'''<br>''be made to smell'' || '''teutuwer'''<br>''be given a taste'' || '''tayotuwer'''<br>''be made to feel''
|- valign=top
!row=1| Inchoative<br>Active
| '''teatier'''<br>''perceive,''<br>''catch sight of'' || '''teetier'''<br>''catch the<br>sound of'' || '''teitier'''<br>''get a whiff of'' || '''teutuer'''<br>''get a taste of'' || '''tayotier'''<br>''get the sensation of''
|- valign=top
!row=1| Inchoative<br>Passive
| '''teatiwer'''<br>''be perceived'' || '''teetiwer'''<br>''be heard'' || '''teitiwer'''<br>''be whiffed'' || '''teutiwer'''<br>''be tasted'' || '''tayotiwer'''<br>''be felt''
|- valign=top
!row=1| Negative-Modal<br>Patient-oriented<br>Stative
| '''teatyofer'''<br>''be blind'' || '''teetyofer'''<br>''be deaf'' || '''teityofer'''<br>''be unable to smell'' || '''teityofer'''<br>''be unable to taste'' || '''tayotyofer'''<br>''be insensitive''
|- valign=top
!row=1| Negative-Modal<br>Patient-oriented<br>Stative
| '''teatyofwer'''<br>''be invisible'' || '''teetyofwer'''<br>''be inaudible'' || '''teityofwer'''<br>''be undetectable<br>odorwise'' || '''teityofwer'''<br>''be insipid'' || '''tayotyofwer'''<br>''be undetectable<br>by touch''
|- valign=top
!row=1| Negative-Modal<br>Patient-oriented<br>Causative
| '''teatyofxer'''<br>''blind'' || '''teetyofxer'''<br>''deafen'' || '''teityofxer'''<br>''desensitize<br>to smell'' || '''teutyofxer'''<br>''desensitize to<br>taste'' || '''tayotyofxer'''<br>''desensitize''
|- valign=top
!row=1| Negative-Modal<br>Patient-oriented<br>Causative
| '''teatyofwaxer'''<br>''make invisible'' || '''teetyofwaxer'''<br>''make inaudible'' || '''teityofwaxer'''<br>''make odorless'' || '''teutyofwaxer'''<br>''render tasteless'' || '''tayotyofwaxer'''<br>''numb''
|}
: Examples of usage:
:* '''At <u>teatyofxwa</u> bey ha mani.'''....''I <u>was blinded</u> by the lights.''
:* '''Ha xeus sa <u>teetyofxyea</u>.'''....''The noise was <u>deafening</u>.''
:* '''Hia tit se gla <u>teatiyafa</u>.'''....''This pupil is very <u>perceptive</u>.''
:* '''Hua bekil se <u>teityofwa</u>.'''....''That medicine is <u>odorless</u> (impossible to smell).''
:* '''<u>Teatyofwaxu</u> ha vyuni.'''....''<u>Make</u> the spots <u>invisible</u>.''
:* '''Ha magmemyaz yonpyexlun <u>tayotyafwa</u> zya ha mir.'''....''The volcano eruption <u>could be felt</u> throughout the world.''
== Frequentative Verbs ==
:Frequentative verbs or repetitive action verbs can be formed with the prefix '''je-'''. This prefix gives the verb the meaning ''to keep on doing something''.
::{| class="wikitable" style="background: lightyellow;{{Text default color}};font-size:smaller;"
|+ Frequentative Verbs
|-
! Normal !! Frequentative
|-
| '''teaxer'''....''to look''||'''<u>je</u>teaxer'''....''to watch''
|-
| '''bexer'''....''to hold''||'''<u>je</u>bexer'''....''to conserve''
|-
| '''byexer'''....''to hit''||'''<u>je</u>byexer'''....''to batter''
|-
| '''zoigper'''....''to pursue''||'''<u>je</u>zoigper'''....''to stalk''
|-
| '''duler'''....''to urge'' || '''<u>je</u>duler'''....''to nag''
|}
== Hybridized Verbs ==
: Verbs that involve motion directions that change back and forth can be formed by hybridizing the stem vowel or the vowel of the vectorial prefix. Here are some examples:
::{| class="wikitable" style="background: lightyellow;{{Text default color}};font-size:smaller;"
|+ Hybridized Verbs
|-
! First Verb !! Second Verb !! Hybridized Verb
|-
| '''py<u>a</u>ser'''....''jump up''|| '''py<u>o</u>ser'''....''fall down'' || '''py<u>ao</u>ser'''....''bounce, undulate''
|-
| '''buer'''....''give'' || '''bier'''....''take'' || '''buier'''....''exchange''
|-
| '''nuer'''....''furnish'' || '''nier'''....''consume'' || '''nuier'''....''trade''
|-
| '''tuer'''....''inform'' || '''tier'''....''learn'' || '''tuier'''....''communicate''
|-
| '''yaper'''....''ascend'' || '''yoper'''....''descend'' || '''yaoper'''....''go up and down''
|-
| '''zayper'''....''go forward'' || '''zoyper'''....''go back'' || '''zaoper'''....''vacillate''
|-
| '''vader'''....''affirm'' || '''voder'''....''deny'' || '''vaoder'''....''decide''
|-
| '''yijber'''....''open'' || '''yujber'''....''close'' || '''uijber'''....''valve''
|-
| '''baser'''....''stir'' || '''boser'''....''be still'' || '''baoser'''....''vibrate''
|}
== Expressing Habitual Actions and States ==
: Mirad uses the term '''gel jubyen''' (''as a habit'') to express a verb reflecting habitual action, eg:
::* '''At tijeya be yiwa jwobi gel jubyen.'''....''I used to wake up at 9 o'clock.'' (Lit. ''I was waking up at 9 o'clock as a habit.'').
: The term '''hyujod'''....''one another occasion'' (or '''be aj'''....''in the past'') is use to express ''once (upon a time)'', eg:
::* '''At sa tuxut hyujod (~ be aj) sa tuxut.''' ....''I once was a teacher.''
: The term '''vyabxelay''' (''routinely'') can also be used, eg:
::* '''Yat eke duz yuz bi ha doym vyabxelay.'''....''We play music around town routinely.''
== Expressing an Immediate Past ==
: To express an immediate past, such as in the sentence ''"We have just gotten married."'', Mirad uses the adverb '''ejnay''' (''newly'') much like the word ''just'' in English:
::* '''Yat tadsaye <u>ejnay</u>.'''....''We have <u>just</u> gotten married.''
::* '''<u>Ejnay</u> tadxwa.'''....''<u>Just</u> married.''
::* '''Wit dokebiwa <u>ejnay</u>.'''....''He was <u>just</u> elected.''
::* '''At ujbaya yex <u>ejnay</u> hoj iyt yebupa.'''....''I had <u>just</u> finished work when she came in.''
== Verb Predicate Types ==
: Mirad verb predicates can be classified as follows:
:* '''''Voice'''''
::* Active (The subject is the doer of the action)
::* Passive (The subject is the receiver of the action)
::* Middle (The subject is both the agent and patient)
::* Reflexive (The subject is also the patient.)
::* Reciprocal (Plural subjects interact.)
:* '''''Stativity'''''
::* Stative (Does not involve action)
::* Dynamic (Action is involved)
:* '''''Valency'''''
::* Impersonal (There is no subject)
::* Transitive (There is an object)
::* Intransitive (There is no object)
::* Auto-transitive (The subject is a patient and there is no agent)
::* Anti-transitive (There is the patient but an agent is assumed)
::* Causative (Subject causes an action to be performed)
::* Copula (X is Y)
:* '''''Other'''''
::* Modal (''can, must, should, wants to''...)
::* Auxiliary (''help to, hope to, prepare to'' + verb)
::* Motion (''run, go, ride''...)
::* Communication (''say, answer, claim that...'')
::* Gesture (''put, shake, hit...'')
::* State/Stative (''be, become, live, be born...'')
::* Action/Dynamic (''do, act, make'')
{| class="wikitable" style="background: lightYellow;;{{Text default color}};font-size:smaller;"
|+ Verb Predicate Types
|-
! Voice !! Stativity!! Valency !! Example
|-
| active || stative || impersonal, -agent, -object || '''Mamilo zajub.'''....''It will rain tomorrow.''
|-
| active || stative || impersonal, -agent, +complement || '''Sa gla oma.'''....''It was very cold.''
|-
| active || stative || impersonal, +subject || '''Ese het be ha mes.'''....''There is someone at the door.''
|-
| active || stative || copula, subject + noun/adjective complement || '''Et se ata twud.'''....''You are my son.''<br>'''At aseye ebbyextipa.'''....''I am becoming angry.''
|-
| middle || stative || auto-transitive, +subject=patient -agent -object || '''Iyt toja.'''....''She died''
|-
| middle || stative || auto-transitive, +subject=patient +agent -object || '''Ha mes yija.'''....''The door opened.''
|-
| active || stative || intransitive, +subject -object|| '''Et bokso.'''....''You will get sick.''
|-
| active || stative || transitive, sense, +subject +object || '''At teate et.'''....''I see you.''
|-
| active || stative || transitive, modal, +subject +verb complement || '''At fe per.'''....''I want to go.''
|-
| active || stative || intransitive, subject-oriented modal, -subject +verb complement || '''Yofwe teater.'''....''It is impossible to see.''
|-
| passive || stative || patient-oriented modal, +subject || '''Mamil yakwe.'''....''Rain is expected.''
|-
| middle || dynamic || anti-transitive, +subject=patient +agent -object || '''Ha mes yijpa.'''....''The door came open.''
|-
| active || dynamic || intransitive, +subject -object|| '''Ha fab pyosa.'''....''The tree fell.''
|-
| active || dynamic || transitive, +subject +-object || '''Yit pyoxa ha fab.'''....''They felled the tree.''
|-
| passive || dynamic || intransitive, +subject, -object || '''Ha fabi pyoxwa.'''....''The trees were felled.''
|-
| active || dynamic || transitive, +subject, +object|| '''Obu eta tef.'''....''Take your hat off.''
|-
| active || dynamic || ditransitive, +subject, +object +object || '''Von et buu iyt ha nas.'''....''Don't give her the money.''
|-
| active || dynamic || transitive, motion, +subject, +destination/origin || '''Yupu ha seem.'''....''Approach the bench.''<br>'''Pu tam!'''....''Go home!'' (''you'' implied)
|-
| active || dynamic || causative, +subject +object, +agent || '''At tayegobluxo Jon.'''....''I will get my hair cut by John.''
|-
| passive || dynamic || causative, +subject +object, +agent || '''At tayegobluxwo.'''....''I will get my hair cut.''
|-
| active || dynamic || auxiliary, ditransitive, +patient +verb object || '''Yuxu at xer his.'''....''Help me do this.''
|-
| passive || dynamic || auxiliary, ditransitive, +patient +verb object || '''At tuxwa eker duz.'''....''I was taught to play music.''
|-
| middle || dynamic || reflexive, +subject = patient, -object || '''Iyt uttojba.'''....''She killed herself.''
|-
| active || dynamic || reciprocal, +subjects = patients || '''Yit voy hyuitdale gaj.'''....''They don't talk to one another anymore.''
|}
<noinclude>{{Chapter navigation with TOC|Pronouns|Prepositions}}</noinclude>
e8ddlf35a1w9tbd5kldh146z4y8yfm2
Mirad Grammar/Vocabulary Formation
0
417655
4674697
4674230
2026-10-06T12:27:24Z
ShakespeareFan00
46022
4674697
wikitext
text/x-wiki
{{TOC right|limit=3}}
== Introduction ==
: In order to facilitate word-building and to maximize comprehension and decipherability of words, certain meanings and functions have been attached to consonants and vowels.
: The vocabulary of Mirad is composed of '''''base words''''' and '''''derived words'''''.
: The vocabulary is built on '''''base words''''', that is, indivisible, building-block words. The choice of the root of these words (formed generally from two or three letters) is determined by:
::* The meaning of each letter of the word.
::* The importance of the group of ideas that this word evokes in its proper sense and in the sense that is directly opposite it, eg.: ''fixed'' vs. ''variable''.
::* How frequently the word and its derivations are used in the language.
::* The geometric system of vocabulary construction (see a later section on what this is all about).
::* The logic of its composition.
::* The mnemonic associations this word suggests.
: The words derived from base words in turn follow very simple laws called '''''vocabulary-building rules''''', which are spelled out below.
== Base Words ==
: '''''Base words''''' are elements of vocabulary that cannot be broken down any further and which serve as the basis for many derived words in the language. Base words are divided into two groups:
::* Group 1: consisting of '''''nouns'''''
::* Group 2: consisting of '''''prepositions, adjectives, adverbs, conjunctions, determiners, and verbs'''''.
== Base words of Group 1 ==
: Base words of Group 1 (nouns) are composed of three letters:
:::* The first, a consonant called the '''''classifier'''''
:::* The second, a vowel called the '''''ordinal'''''
:::* The third, a consonant called the '''''generic'''''
These words can be thought of as noun templates.
:: Examples:
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-let:3.2em"
|+ Base Word Composition
|-
! Classifier !! Ordinal !! Generic !! Meaning
|-
| '''t''' || '''o''' || '''b''' || ''man''
|-
| '''d''' || '''o''' || '''t''' || ''society''
|-
| '''p''' || '''o''' || '''t''' || ''animal''
|-
| '''f''' || '''o''' || '''b''' || ''plant''
|}
== Base words of Group 2 ==
: Base words of Group 2 (everything but nouns) are composed of one or two letters, not including grammatical endings. If one letter, it is a consonant or sometimes a vowel(*). If two letters, they consist of a consonant + vowel combination or a vowel + consonant combination. Here are some examples (the hyphen at the end means that the base word does not stand alone, but is followed in usage by a grammatical ending such as '''-er''' (verb infinitive marker) or '''-a''' (adjective marker):
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-let:3.2em"
|+ Some Examples of Group 2 Base Words
| '''b-'''....''put'' || '''p-'''....''go''
|-
| '''s-'''....''be'' || '''x-'''....''do''
|-
| '''d-'''....''say'' || '''t-'''....''know''
|-
| '''ab'''....''on'' || '''ob'''....''off''
|-
|'''bu'''....''to'' || '''bi'''....''from''
|-
|'''if-'''....''love'' || '''uf-'''....''hate''
|-
|'''fi-'''....''good'' || '''fu-'''....''bad''
|-
|'''va'''....''yes'' || '''vo'''....''no''
|-
|'''vya-'''<sup>*</sup>....''true'' || '''vyo-'''....''false''
|-
| '''a'''....''one'' || '''o'''....''zero''
|}
: *<small> As mentioned above, "vowel" in this case may include glided vowels, i.e. those preceded and/or followed by one of the glides '''y''' or '''w'''. So, for purposes here, '''ya''', '''ye''', '''yi''', '''yo''', '''yu''', '''wa''', and other pre- and post-glided vowels, are considered "glided vowels".</small>
== Consonants and Their Meanings ==
: The classifier (initial letter) and generic (final letter) in group 1 base words (nouns) are consonants. Also, group 2 base words almost always have one consonant. So, you need to be familiar with the general meaning of the consonants in the Mirad alphabet, as shown in the following chart:
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-let:3.2em"
|+ Consonants and Their Meanings
|-
! Consonant !! Group 1 Classifier !! Group 1 Generic !! Group 2 Classifier !! In Numbers
|-
| '''b''' || organ, health || organism || gesture, position ||
|-
| '''d''' || society || family || communicating ||
|-
| '''f''' || vegetation || textile, clothing || volition, attributes ||
|-
| '''g''' || -- || measurement || quantity, attributes ||
|-
| '''j''' || time || time || time ||
|-
| '''k''' || -- || health || change, risk, attributes ||
|-
| '''l''' || -- || element, food, liquid, nature || -- || '''l''' = ten
|-
| '''m''' || nature || place, building, furniture || temperature, light || '''ml''' = million<br>'''mr''' = billion
|-
| '''n''' || commerce || -- || -- ||
|-
| '''p''' || animal, vehicle || motion || movement ||
|-
| '''r''' || -- || tool, machine, cosmos || -- || '''r''' = thousand
|-
| '''s''' || form, image, furniture || thing || being, form, thing || '''s''' = hundred
|-
| '''t''' || human, body || person, animal || intelligence, knowing ||
|-
| '''v''' || plant, color || linen || truth, attributes ||
|-
| '''x''' || action || -- || action, doing, making ||
|-
| '''z''' || -- || precious, art || spatial, attributes ||
|}
: The following consonants functions rather than, or in addition to, semantic values:
::* '''l''' and '''r''': Liquids used after vowels to intensify the semantics of a word, eg.: '''baer'''....''to lean'', '''baler'''....''to press'', '''barer'''....''to crush'';
::* '''y''': Glide used 1) before a stem vowel to intensify the semantics of a word, eg. '''voa'''....''negative'' -> '''vyoa'''....''false'', or 2) after a vowel to de-intensify the semantics of a word, eg. '''ama'''....''hot'' -> '''ayma'''....''warm''.
::* '''h''': Used functionally only in certain interjections like '''hoy'''....''goodbye'' and determiners like '''his'''....''this'', and has no semantic value.
::* '''w''': Has no semantic value of its own, but is used only 1) to form the masculine gender of nouns and pronouns, eg. '''tob'''....''person'' -> '''twob'''....''man'', or 2) to form the passive voice of verbs, eg. '''uber'''....''to send'' -> '''ubwer'''....''to be sent'', or 3) to form a numerical unit marker, eg. '''awa'''....''one'', or 4) sometimes to substitute for '''y''' when this letter would cause ambiguity or difficulty in pronunciation with other consonants eg. '''jwo'''....''late'', instead of '''jyo'''.
::* '''n''': In addition to its semantic values, functions often 1) as a buffer letter, as in '''ana'''....''only'', or 2) as a suffix to derive a nominal abstraction from an adjective, such as '''fian'''....''goodness'' from '''fia'''....''good'', or from a verb, such '''axnen'''....''behaving'' from '''axner'''....''to behave''.
== Vowels and Their Meanings ==
: Ordinal vowels in Mirad have meanings or values of the following types:
::* meronymic
::* hierarchical
::* geo-specific
::* oppositional/polar
::* vectorial
::* directional and positional
::* special
=== Ordinal Vowel Values ===
:: The numerical value of ordinal vowels is shown in the chart below. The vowels beginning with '''y''' are considered pre-y-glided vowels. These numeric values serve as the "ordinal vowel" in scaled base words. See the section on [[Mirad Grammar/Phonology and Orthography#Vowels|Vowels]].
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-let:3.2em"
|+ Numeric Values of Vowels
|-
! Ordinal Vowel !! '''o''' !! '''a''' !! '''e''' !! '''i''' !! '''u''' !! '''yo''' !! '''ya''' !! '''ye''' !! '''yi''' !! '''yu'''
|-
!row=1| Cardinal Number
| 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9
|}
=== Meronymic Vowel Gradation ===
:: Ordinal vowels can be used as the stem vowel in Group 1 base words to form a '''''{{color|blue|meronymic}}''''' series. (This gradation can also be called '''''taxonomic'''''. The top element, or hypernym, has zero ('''o''') as its defining vowel. The others are hyponyms or meronyms (= parts of the whole), and have incrementally higher numbers of their ordinal vowel. '''T<u>a</u>b''' (''body'') is the first meronym of '''t<u>o</u>b''' (''human being''), the hypernym or zeroth element.
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-let:3.2em"
|+ Meronymic Series
|-
!colspan=1| Rank
!colspan=7| Meronymic or Taxonomic
|-
! 0
| '''tob'''....''human'' || '''fob'''....''plant'' || '''vob'''....''crop''|| '''mos'''....''floor''||'''som'''....''furniture''||'''tom'''....''building''||'''job'''....''time''
|-
! 1
| '''tab'''....''body'' || '''fab'''....''tree'' || '''vab'''....''grass''|| '''mas'''....''wall''||'''sam'''....''chest of drawers''||'''tam'''....''house''||'''jab'''....''year''
|-
! 2
| '''teb'''....''head'' || '''feb'''....''fruit'' || '''veb'''....''tuft''|| '''mes'''....''door''||'''sem'''....''table''||'''tem'''....''hall''||'''jeb'''....''season''
|-
! 3
| '''tib'''....''trunk'' || '''fib'''....''trunk'' || '''vib'''....''stalk''|| '''mis'''....''window''||'''sim'''....''chair''||'''tim'''....''room''||'''jib'''....''month''
|-
! 4
| '''tub'''....''arm'' || '''fub'''....''branch'' || '''vub'''....''shoot''||'''mus'''....''stairs''||'''sum'''....''bed''||'''tum'''....''closet''||'''jub'''....''day''
|-
! 5
| '''tyob'''....''leg'' || '''fyob'''....''root'' || '''vyob'''....''tuber''|| || || ||'''jwob'''<sup>*</sup>....''hour''
|-
! 6
| || || || || || ||'''jwab'''<sup>*</sup>....''minute''
|-
! 7
| || || || || || ||'''jweb'''<sup>*</sup>....''second''
|}
* The letter '''w''' replaces the letter '''y''' following a '''j''', for ease of pronunciation.
: The words that descend from the base word are called '''''meronyms'''''. A hypernym is a word that is higher in scale.
=== Hierarchical Vowel Gradation ===
:: Ordinal vowels can be used as the stem vowel in Group 1 base words to form a '''''{{color|blue|hierarchical}}''''' series where the top element has zero ('''o''') as its defining vowel. The others are subordinate elements and have incrementally higher numbers that define a descending series related to that top element.
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-left:3.2em"
|+ Hierarchical Vowel Gradation
|-
!colspan=1| Rank
!colspan=4| Hierarchy
|-
! 0
| '''dob'''....''state'' || '''dot'''....''society'' || '''tod'''....''family''||'''xob'''....''organization''
|-
! 1
| '''dab'''....''government'' || '''dat'''....''friend'' || '''tad'''....''spouse''||'''xab'''....''staff''
|-
! 2
| '''deb'''....''leader'' || '''det'''....''associate'' || '''ted'''....''parent''||'''xeb'''....''boss''
|-
! 3
| '''dib'''....''ministry'' || '''dit'''....''citizen'' ||'''tid'''....''sibling''||'''xib'''....''department''
|-
! 4
| '''dub'''....''minister'' || '''dut'''....''gentleman'' || '''tud'''....''child''||'''xub'''....''branch''
|}
=== Geo-specific Vowel Gradation ===
: Ordinals can have '''''{{color|blue|geo-specific}}''''' values, that is values, related to the sky, land, sea, outer space, and underground.
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-left:3.2em"
|+ Geo-specific Vowel Values
|-
! Ordinal
! Geo-sphere
! colspan=7| Examples
|-
| style="text-align:center"| '''o''' || ''outer space, top level'' || '''m<u>o</u>p'''....''orbit'' || '''mom'''....''outer space''|| '''mol'''....''nature''||'''dop'''....''military''||'''pop'''....''voyage''||'''mol'''....''nature''||'''pot'''....''wild animal''
|-
| style="text-align:center"| '''a''' || ''air, gas, sky'' || '''m<u>a</u>p'''....''wind'' || '''mam'''....''sky'' ||'''mal'''....''air''||'''dap'''....''air force''||'''pap'''....''flight''||'''mal'''....''wind''||'''pat'''....''bird''
|-
| style="text-align:center"| '''e''' || ''ground, soil, solid'' || '''m<u>e</u>p'''....''road'' || '''mem'''....''land''|| '''mel'''....''soil''||'''dep'''....''army''||'''pep'''....''ride''||'''mel'''....''soil''||'''pet'''....''domestic land animal''
|-
| style="text-align:center"| '''i''' || ''liquid'', ''water'', ''sea'' || '''m<u>i</u>p'''....''river'' || '''mim'''....''sea''|| '''mil'''....''water''||'''dip'''....''marines''|| '''pip'''....''navigation/sail''||'''mil'''....''water''||'''pit'''....''fish''
|-
| style="text-align:center"| '''u''' || ''underground'', ''mineral'', ''substance'' || '''m<u>u</u>p'''....''tunnel''|| '''mum'''....''underground'' || '''mul'''....''mineral''|| ||'''pup'''....''tunneling''||'''mul'''....''matter''||
|}
=== Spectral Vowel Gradation ===
: The basic color terms use the natural order of the spectrum to determine the ordinal vowels:
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-left:3.2em"
|+ Spectral Vowel Gradation
|-
! Order || Mirad !! English
|-
| 0 || '''olza'''<sup>1</sup> || ''blank, of no color''
|-
| 1 || '''alza''' || ''red''
|-
| 2 || '''elza''' || ''orange''
|-
| 3 || '''ilza''' || ''yellow''
|-
| 4 || '''ulza''' || ''green''
|-
| 5 || '''yolza''' || ''blue''
|-
| 6 || '''yalza''' || ''purple''
|-
| 7 || '''yelza''' || ''indigo''
|}
{{small/top}}
: 1) In the natural spectrum, there really is no 0th order.
{{small/end}}
: The colors black and white are:
:* '''malza'''....''white''
:* '''molza'''....''black''
: Some colors are hybrids of two colors:
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-left:3.2em"
|+ Hybrid Colors
|-
! Mirad !! English
|-
| '''aolza''' || ''pink'' (a blend of ''blank'' and ''red'')
|-
| '''youlza''' || ''blue-green''
|-
| '''maolza''' || ''gray'' (a blend of ''black'' and ''white'')
|}
: The word for ''brown'' is based on the word for ''soil'':
:* '''melza'''....''brown'' (< '''mel'''....''soil'')
: Two other colors are based on metals:
:* '''agelkza'''....''silver'' (based on '''agelk'''....''silver metal''
:* '''aulkza'''....''gold'' (based on '''aulk'''....''gold metal''
=== Oppositional (or Polar) Vowel Values ===
: In Group 2 stems:
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-left:3.2em"
|+ Oppositional Vowel Values
|-
| '''a''' <span style="font-size:120%">⇔</span> '''ya''' || intermediate || '''i''' <span style="font-size:120%">⇔</span> '''yi'''
|-
| <span style="font-size:120%">⇑</span> positive<br><span style="font-size:120%">⇓</span>negative || '''e''' <span style="font-size:120%">⇔</span> '''ye''' || <span style="font-size:120%">⇑</span> positive<br><span style="font-size:120%">⇓</span>negative
|-
| '''o''' <span style="font-size:120%">⇔</span> '''yo''' || value || '''u''' <span style="font-size:120%">⇔</span> '''yu'''
|}
::* positive '''a''' contrasts with negative '''o''' ('''av'''....''for'' vs. '''ov'''....''against'')
::* positive '''ya''' contrasts with negative '''yo''' ('''yava'''....''innocent'' vs. '''yova'''....''guilty'')
::* positive '''i''' contrasts with negative '''u''' ('''fia'''....''good'' vs. '''fua'''....''bad'')
::* positive '''yi''' contrasts with negative '''yu''' ('''yiva'''....''free'' vs. '''yuva'''....''bound'')
::* '''e''' and '''ye''' are in-between values ('''eva'''....''neutral'', '''yeva'''....''fair'')
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-left:3.2em"
|+ Group 1 Oppositional Vowel Gradation
|-
! positive !! intermediate !! negative
|-
| '''aga'''....''big'' || '''ega'''....''normal'' || '''oga'''....''small''
|-
| '''yava'''....''innocent'' || '''yeva'''....''just''|| '''yova'''....''guilty''
|-
| '''ava'''....''for'' || '''eva'''....''neutral'' || '''ova'''....''against''
|-
| '''aker'''....''to win'' || '''eker'''....''to risk'' || '''oker'''....''to lose''
|-
| '''yak'''....''expectation'' || '''yek'''....''attempt'' || '''yok'''....''surprise''
|-
| '''fia'''....''good'' || || '''fua'''....''bad''
|-
| '''ifer'''....''love'' || || '''ufer'''....''hate''
|-
| '''yifa'''....''brave'' || || '''yufa'''....''afraid''
|}
: Some Group 1 base words have ordinal vowel stems that exhibit '''''oppositional''''' values:
: The Group 1 base word '''bok''' (''illness'') is a good example:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-let:3.2em"
|+ Group 1 base word with oppositional values
|-
! Positive !! Intermediate !! Negative
|- style="vertical-align:top;"
|'''bak'''....''health''||'''bek'''....''treatment''||'''bok'''....''illness''
|-
|'''byak'''....''hygiene''||'''byek'''....''cure''||'''byok'''....''pain''<br>'''byoyk'''....''ache''<br>'''blok'''....''suffering''<br>'''brok'''....''agony''
|-
|'''baak'''....''sanitation''|| ||'''book'''....''fatigue''
|-
|'''bik'''....''care''|| ||'''buk'''....''wound''<br>'''buyk'''....''sore''
|}
=== Vectorial Vowel Values ===
: These ordinal vowels have to do with directions, up, down, south, left, etc.
{{big/top}}
::::::'''a'''
::::::↑
::::'''u''' ← '''e''' → '''i'''
::::::↓
::::::'''o'''
{{big/end}}
:::'''a'''....''on, above, north'' ('''ab'''....''on'', '''zamer'''....''north'')
:::'''e'''....''center, middle, equator'' ('''eb'''....''between'', '''ze'''....''center'')
:::'''o'''....''off, below, south'' ('''ob'''....''off'', '''zomer'''....''south'')
:::'''i'''....''right, east'' ('''zi'''....''right'', '''zimer'''....''east'')
:::'''u'''....''left, west'' ('''zu'''....''left'', '''zumer'''....''west'')
=== Directional and Positional Vowel Values ===
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em"
|+ Directional and Positional Vowel Values
|-
| colspan=8 style="text-align:center"| '''A'''
|-
| rowspan=6 style="text-align:center"| '''U''' || || '''a'''<br><span style="font-size:120%">↓</span> || <span style="font-size:120%">↓</span><br>'''<u>a</u>''' || <span style="font-size:120%">↑</span><br>'''<u>ya</u>''' ||'''ya'''<br>↑<span style="font-size:120%"></span> || || rowspan=6 style="text-align:center"| '''I'''
|-
| '''u''' → || || '''<u>e</u>'''||'''<u>ye</u>''' || || → '''i'''
|-
| → '''<u>u</u>''' || ||'''e''' ||'''ye''' || || '''<u>i</u>''' →
|-
| → '''<u>yu</u>''' || || colspan=2 align=center| '''E''' || || '''<u>yi</u>''' →
|-
| '''yu''' → || || || || || → '''yi'''
|-
| || <span style="font-size:120%">↑</span><br>'''o''' || '''<u>o</u>'''<br>↑<span style="font-size:120%"></span> || '''<u>yo</u>'''<br><span style="font-size:120%">↓</span> || <span style="font-size:120%">↓</span><br>'''yo''' ||
|-
| colspan=8 align=center| '''O'''
|}
:: Explanation of the above chart:
:::* If the vowel is capitalized, it indicates a '''''positional''''' value. It is used in its lowercase spelling as a prefix in Group I words.
:::* The non-capitalized vowels (including y-glides) indicate '''''directional''''' values.
:::* If the vowel is underlined, it means that it is placed '''''before''''' the classifier consonant (prefixed) in verbs
:::* Otherwise, a normal vowel means that it is placed '''''after''''' the classifier consonant (infixed) in Group 2 words.
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-left:3.2em"
|+ Explanation of the Vowel Meanings Chart
|-
| '''A''' || position || || on, above, north || '''z<u>a</u>mer'''....''north''
|-
| '''a''' || movement || (free) || ''on'' || '''b<u>a</u>er'''....''lean''
|-
| '''<u>a</u>''' || movement || (contact) || ''onto''||'''<u>a</u>ber'''....''put on''
|-
| '''ya''' || movement || (free) || ''up, ascend''|| '''b<u>ya</u>er'''....''lift''
|-
| '''<u>ya</u>''' || movement || (contact) || ''up, get up, set up''|| '''<u>ya</u>ber'''....''raise''
|-
| '''O''' || position || || under, lower, south|| '''z<u>o</u>mer'''....''south''
|-
| '''yo''' || movement || (free) || ''off''|| '''b<u>yo</u>er'''....''hang''
|-
| '''<u>o</u>''' || movement || (contact) || ''on the bottom of, underneath''|| '''<u>o</u>per'''....''get off''
|-
| '''yo''' || movement || (free) || ''down''|| '''p<u>yo</u>ser'''....''fall''
|-
| '''<u>yo</u>''' || movement || (contact) || ''fall''|| '''<u>yo</u>per'''....''rise''
|-
| '''U''' || position || || left, west|| '''z<u>u</u>mer'''....''west''
|-
| '''u''' || movement || (free) || ''move toward the center, come''|| '''<u>u</u>ber'''....''send''
|-
| '''<u>u</u>''' || movement || (contact) || ''reach the center, arrive''|| '''p<u>yu</u>er'''....''reach''
|-
| '''yu''' || movement || (free) || ''near, approach''|| '''<u>yu</u>ber'''....''approach''
|-
| '''<u>yu</u>''' || movement || (contact) || ''near, reach''|| '''b<u>yu</u>ser'''....''touch''
|-
| '''I''' || position || || right, east|| '''z''i''mer'''....''east''
|-
| '''i''' || movement || (free) || ''from the center out, go away''|| '''p<u>i</u>er'''....''go away''
|-
| '''<u>i</u>''' || movement || (contact) || ''from the center out, leave''|| '''<u>i</u>per'''....''leave''
|-
| '''yi''' || movement || (free) || ''away, go far''|| '''<u>yi</u>per'''....''go far''
|-
| '''<u>yi</u>''' || movement || (contact) || ''from afar, originate''|| '''p<u>yi</u>ser'''....''originate''
|-
| '''E''' || position || || center, equator|| '''z<u>e</u>mer'''....''equator''
|-
| '''e''' || rest || || ''between''|| '''<u>e</u>b'''....''between''
|-
| '''<u>e</u>''' || rest || || ''at, stay, hold''|| '''b<u>e</u>xer'''....''hold''
|-
| '''ye''' || movement || || ''in, into, enter''|| '''<u>ye</u>per'''....''enter''
|-
| '''<u>ye</u>''' || ||(contact) || ''contain''|| '''b<u>ye</u>er'''....''contain''
|}
=== Special value of certain letters ===
: The prefixes '''a-''' or '''an-''' meaning ''one, sole, singular''.
::* '''aot'''....''person''
::* '''anot'''....''individual''
: Also, the prefix '''yan-''' meaning ''together'' contrasts with '''yon-'''....''apart''.
::* '''yanber'''....''to compose''
::* '''yonber'''....''to separate''
: The letter '''y''' is prefixed to the vowels of personal pronouns to make them plural:
::* '''at'''....''I, me'' as opposed to '''yat'''....''we, us''
::* '''et'''....''you'' as opposed to '''yet'''....''you (pl.), you all''
::* '''it'''....''he, she, him, her'' as opposed to '''yit'''....''they, them''
::* '''is'''....''it'' as opposed to '''yis'''....''they, them''
: The letter '''y''' is post-fixed to vowels to change the gender to specifically feminine:
::* '''it'''....''he, she, him, her'' as opposed to '''iyt'''....''she, her''
::* '''tob'''....''person, human being'' as opposed to '''toyb'''....''woman''
: The letter '''w''' is prefixed to vowels to change the gender to specifically masculine:
::* '''it'''....''he, she, him, her'' as opposed to '''wit'''....''he, him''
::* '''tob'''....''person, human being'' as opposed to '''twob'''....''man''
=== The Meaning of Group 1 Base Words ===
:: The meaning of the base words of Group 1 comes from the combination of the values of the classifier (initial) and the generic (final) consonants.
:: The ordinal vowel of those Group 1 base words has a 1) scalar/hierachical, 2) geo-spatial, 3) oppositional, 4) vectorial/positional, or 5) mnemonic values.
:: The following table shows some Group 1 bases words, the meaning of their consonants, and the type of ordinal vowel scalarity:
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-left:3.2em"
|+ Group 1 Zeroth-level Scalar Base Words and Meanings of the Consonants
|-
! Base Word !! Classifier Consonant !! Generic Consonant !! Scalarity Type
|-
| '''tob'''....''person'' || '''t''' = ''human'' || '''b''' = ''organism'' || meronymic
|-
| '''tof'''....''clothing'' || " " " || '''f''' = ''fabric'' || meronymic
|-
| '''tod'''....''family'' || " " " || '''d''' = ''society'' || meronymic
|-
| '''tom'''....''building'' || " " " || '''m''' = ''place'' || meronymic
|-
| '''tov'''....''lingerie'' || " " " || '''v''' = ''linen'' || meronymic
|-
| '''tol'''....''nourishment'' || " " " || '''l''' = ''food'' || oppositional
|-
| '''top'''....''soul, spirit'' || " " " || '''p''' = ''motion'' || meronymic
|-
| '''dob'''....''state'' || '''d''' = ''society'' || '''b''' = ''organism''||hierarchical
|-
| '''dop'''....''military'' || " " " || '''p''' = ''movement'' || geo-specific
|-
| '''dot'''....''society'' || " " " || '''t''' = ''human''|| hierarchical
|-
| '''dom'''....''city'' || " " " || '''m''' = ''place''|| geo-specific
|-
| '''job'''....''time'' || '''j''' = ''time'' || '''b'''....''organism''|| hierarchical
|-
| '''fob'''....''vegetation'' || '''f''' = ''vegetable'' || '''b''' = ''organism''|| meronymic
|-
| '''vob'''....''crop'' || '''v''' = ''plant'' || '''b''' = ''organism''|| meronymic
|-
| '''vos'''....''flower'' || " " " || '''s''' = ''thing''|| meronymic
|-
| '''volz'''....''color'' || " " " || '''lz''' = ''color, art''|| spectral
|-
| '''som'''....''furniture'' || '''s''' = ''thing'' || '''m''' = ''place''|| meronymic
|-
| '''mos'''....''floor'' || '''m''' = ''place, nature'' || '''s''' = ''thing''|| meronymic
|-
| '''mor'''....''universe'' || " " " || '''r''' = ''machine, system''|| geo-specific
|-
| '''mom'''....''outer space'' || " " " || '''m''' = ''place''|| geo-specific
|-
| '''mol'''....''nature'' || " " " || '''l''' = ''substance''|| geo-specific
|-
| '''mop'''....''orbit'' || " " " || '''p''' = ''movement''|| geo-specific
|-
| '''pot'''....''animal'' || '''p''' = ''movement'' || '''t''' = ''human, animal''|| geo-specific
|-
| '''bok'''....''illness'' || '''b''' = ''organ'' || '''k''' = ''condition''|| oppositional
|-
| '''nom'''....''place'' || '''n''' = ''commercial'' || '''m''' = ''place''|| special
|-
| '''nog'''....''degree'' || " " " || '''g''' = ''measurement''|| special
|-
| '''nof'''....''cloth'' || " " " || '''f''' = ''cloth''|| special
|-
| '''nov'''....''linen'' || " " " || '''v''' = ''linen''|| special
|-
| '''nod'''....''point'' || " " " || '''d''' = ''communication''|| special
|-
| '''xob'''....''organization'' || '''x''' = ''action'' || '''b''' = ''organism''|| hierarchical
|}
==== Special Arrangement ====
: Other Group 1 nouns, listed in the chart below, have an ordinal vowel which is not so much geo-specific or hierarchical per se, but rather special in some fashion. The consonants, especially the classifier consonant, have meanings like those in the above chart.
{| border=0 {| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller; margin-left:3.2em"
|+ Other Group 1 Base Words
|- style="vertical-align:top;"
|
{| class="wikitable" style="background:lightyellow;{{text default color}};"
|-
! d- <br>communication
|-
| '''daz'''<br>''dance''
|-
| '''dyaz'''<br>''ballet''
|-
| '''dyez'''<br>''cinema''
|-
| '''drez'''<br>''poetry''
|-
| '''dez'''<br>''theater''
|-
| '''diz'''<br>''comedy''
|-
| '''din'''<br>''story''
|-
| '''dun'''<br>''word''
|-
| '''duz'''<br>''music''
|-
| '''dyun'''<br>''name''
|-
| '''dyan'''<br>''sentence''
|-
| '''dyes'''<br>''book''
|-
| '''deup'''<br>''rhythm''
|}
|
{| class="wikitable" style="background:lightyellow;{{text default color}};"
|-
! dr- <br>write
|-
| '''drof'''<br>''board''
|-
| '''draf'''<br>''card''
|-
| '''dref'''<br>''paper''
|-
| '''drov'''<br>''cardboard''
|-
| '''drav'''<br>''notebook''
|-
| '''drev'''<br>''page''
|-
| '''drez'''<br>''poetry''
|-
| '''drar'''<br>''pencil''
|-
| '''drir'''<br>''typewriter''
|-
| '''drur'''<br>''printer''
|}
|
{| class="wikitable" style="background:lightyellow;{{text default color}};"
|-
! m- <br>nature
|-
| '''mag'''<br>''fire''
|-
| '''mak'''<br>''electricity''
|-
| '''mog'''<br>''ash''
|-
| '''meg'''<br>''stone''
|-
| '''mef'''<br>''brick''
|-
| '''mug'''<br>''metal''
|-
| '''muk'''<br>''mineral''
|-
| '''mez'''<br>''crystal''
|-
| '''mek'''<br>''dust''
|-
| '''myek'''<br>''powder''
|-
| '''mav'''<br>''flame''
|-
| '''mov'''<br>''smoke''
|-
| '''maf'''<br>''cloud''
|-
| '''maj'''<br>''daytime''
|-
| '''moj'''<br>''night''
|-
| '''man'''<br>''light''
|-
| '''maz'''<br>''shine''
|-
| '''mon'''<br>''shade''
|-
| '''moz'''<br>''dark''
|}
|
{| class="wikitable" style="background:lightyellow;{{text default color}};"
|-
! n- <br>commerce
|-
| '''naz'''<br>''value''
|-
| '''nas'''<br>''money''
|-
| '''nax'''<br>''price''
|-
| '''nyaz'''<br>''wealth''
|-
| '''nyan'''<br>''stack''
|-
| '''nox'''<br>''expense''
|-
| '''nyox'''<br>''waste''
|-
| '''nex'''<br>''saving''
|-
| '''nyex'''<br>''storing''
|-
| '''nix'''<br>''earning''
|-
| '''nyix'''<br>''order''
|-
| '''nux'''<br>''pay''
|-
| '''nyux'''<br>''supply''
|-
| '''nun'''<br>''merchandise''
|-
| '''nyun'''<br>''product''
|-
| '''nuz'''<br>''jewel''
|-
| '''nem'''<br>''location''
|-
| '''nyem'''<br>''place''
|-
| '''nyeb'''<br>''box''
|-
| '''nab'''<br>''row''
|-
| '''nap'''<br>''order''
|-
| '''nad'''<br>''line''
|-
| '''nod'''<br>''point''
|-
| '''ned'''<br>''plane''
|-
| '''nyed'''<br>''grid''
|-
| '''nyad'''<br>''chain''
|-
| '''nid'''<br>''volume''
|-
| '''nag'''<br>''measure''
|-
| '''nak'''<br>''metric value''
|-
| '''nog'''<br>''degree''
|-
| '''nig'''<br>''space''
|}
|
{| class="wikitable" style="background:lightyellow;{{Text default color}};"
|-
! j- <br>time
|-
| '''jag'''<br>''age''
|-
| '''jud'''<br>''date''
|-
| '''jod'''<br>''instance''
|-
| '''jop'''<br>''sequence''
|-
| '''jep'''<br>''process''
|-
| '''jwap'''<br>''moment''
|-
| '''jwep'''<br>''instant''
|}
|
{| class="wikitable" style="background:lightyellow;{{text default color}};"
|-
! s- <br>thing
|-
| '''sag'''<br>''number''
|-
| '''saz'''<br>''sculpture''
|-
| '''san'''<br>''form''
|-
| '''saun'''<br>''kind''
|-
| '''son'''<br>''matter (abstract)''
|-
| '''sin'''<br>''image''
|-
| '''siz'''<br>''painting''
|-
| '''sun'''<br>''thing (concrete)''
|-
| '''syan'''<br>''class''
|-
| '''syen'''<br>''style''
|-
| '''syin'''<br>''subject''
|-
| '''syun'''<br>''object''
|-
| '''sar'''<br>''instrument''
|-
| '''sir'''<br>''machine''
|-
| '''sor'''<br>''engine''
|-
| '''sur'''<br>''motor''
|}
|
{| class="wikitable" style="background:lightyellow;{{text default color}};"
|-
! t- <br>human / knowledge
|-
| '''taz'''<br>''statue''
|-
| '''tap'''<br>''physique''
|-
| '''tep'''<br>''mind''
|-
| '''top'''<br>''spirit''
|-
| '''tuz'''<br>''art''
|-
| '''toz'''<br>''skin color''
|-
| '''tez'''<br>''culture''
|-
| '''tyez'''<br>''magic''
|-
| '''tin'''<br>''doctrine''
|-
| '''tun'''<br>''science''
|-
| '''tyan'''<br>''class''
|-
| '''tyen'''<br>''skill''
|-
| '''tyun'''<br>''idea''
|-
| '''tos'''<br>''sensation''
|-
| '''tes'''<br>''meaning''
|-
| '''tot'''<br>''god''
|-
| '''tat'''<br>''angel''
|}
|}
=== The Meaning of Group 2 Base Words ===
:: The meaning of Group 2 base word stems comes from the combination of the values of the classifier consonant and the ordinal (stem) vowel. The stem does not include adjectival ('''-a'''), adverbial ('''-ay'''), and verbal inflections ('''-er''', '''-ser''', '''-xer''', etc.), which are shown in a smaller typeface after the stem.
:: The ordinal (stem vowel) holds oppositional values like positive, intermediary, and negative.
:: Examples:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Stems of Group 2 Base Words
|-
! Classifier<br>Consonant !! Positive !! Intermediate !! Negative !! Positive !! Negative
|-
! rowspan=4|'''j''' <br>(''time'')
| '''ja'''<br>''before'' || '''je'''<br>''during'' || '''jo'''<br>''after''||'''ji'''<br>''since'' || '''ju'''<br>''until''
|-
| '''aj'''<br>''past'' || '''ej'''<br>''present'' || '''oj'''<br>''future'' || '''ij<sup>er</sup>'''<br>''beginning/begin'' || '''uj/<sup>er</sup>'''<br>''end/end''
|-
| '''taj<sup>er</sup>'''<br>''birth/to be born'' || '''tej<sup>er</sup>'''<br>''life/to live'' || '''toj<sup>er</sup>'''<br>''death/to die'' || '''tij<sup>er</sup>'''<br>''awake state/to be awake'' || '''tuj<sup>er</sup>'''<br>''sleep/to sleep''
|-
| '''jwa'''<br>''early'' || '''jwe'''<br>''on time'' || '''jwo'''<br>''late'' || '''yij<sup>a</sup>'''<br>''opening/open'' || '''yuj<sup>a</sup>'''<br>''closing/closed''
|-
!rowspan=4| '''g'''<br>(''measurement'')
| '''ga'''<br>''more'' || '''ge'''<br>''equal'' || '''go'''<br>''less''|| '''gi'''<sup>n</sup><br>''point'' || '''gu'''<sup>n</sup><br>''angle''
|-
| '''ag'''<sup>a</sup><br>''big'' || '''eg<sup>a</sup>'''<br>''normal'' || '''og'''<sup>a</sup><br>''small'' || '''ig'''<sup>a</sup><br>''fast'' || '''ug'''<sup>a</sup><br>''slow''
|-
| '''yag'''<sup>a</sup><br>''long'' || '''yeg'''<sup>a</sup><br>''normal'' || '''yog'''<sup>a</sup><br>''short'' || '''yig'''<sup>a</sup><br>''hard'' || '''yug'''<sup>a</sup><br>''soft''
|-
| '''gya'''<sup>a</sup><br>''thick'' || '''gye'''<sup>a</sup><br>''enough'' || '''gyo-'''<br>''thin'' || '''gyi'''<sup>a</sup><br>''solid'' || '''gyu'''<sup>a</sup><br>''fragile''
|-
!rowspan=4| '''k'''<br>(''randomness'')
| '''ka'''<sup>xer</sup><br>''find'' || '''ke'''<sup>xer</sup><br>''seek'' || '''ko'''<sup>xer</sup><br>''hide'' || '''ki'''<sup>a</sup><br>''oblique''|| '''ku'''<sup>a</sup><br>''lateral''
|-
| '''ak'''<sup>er</sup><br>''win'' || '''ek'''<sup>er</sup><br>''play'' || '''ok'''<sup>er</sup><br>''lose'' || '''ik'''<sup>a</sup><br>''full'' || '''uk'''<sup>a</sup><br>''empty''
|-
| '''yak'''<sup>er</sup><br>''expect'' || '''yek'''<sup>er</sup><br>''try'' || '''yok'''<sup>er</sup><br>''suprise'' || '''yik'''<sup>a</sup><br>''difficult'' || '''yuk'''<sup>a</sup><br>''easy''
|-
| '''kya'''<sup>a</sup><br>''mobile'' || '''kye'''<sup>a</sup><br>''haphazard'' || '''kyo'''<sup>a</sup><br>''fixed'' ||'''kyi'''<sup>a</sup><br>''heavy'' || '''kyu'''<sup>a</sup><br>''light''
|-
! '''m'''<br>(''nature'')
| '''am'''<sup>a</sup><br>''hot'' || -- || '''om'''<sup>a</sup><br>''cold'' || '''im'''<sup>a</sup><br>''wet'' || '''um'''<sup>a</sup><br>''dry''
|-
! rowspan=4|'''f'''<sup>er</sup><br>(''want'', qualities)
| || || || '''fi'''<sup>a</sup><br>''good'' || '''fu'''<sup>a</sup><br>''bad''
|-
| '''fya'''<sup>a</sup><br>''holy'' || '''fye'''<sup>a</sup><br>''mythical'' || '''fyo'''<sup>a</sup><br>''profane''|| '''fyi'''<sup>a</sup><br>''useful'' || '''fyu'''<sup>a</sup><br>''harmful''
|-
| '''yaf'''<sup>er</sup><br>''be able'' || '''yef'''<sup>er</sup><br>''must''|| '''yof'''<sup>er</sup><br>''cannot'' || '''yif'''<sup>er</sup><br>''dare'' || '''yuf'''<sup>er</sup><br>''fear''
|-
| '''af'''<sup>er</sup><br>''may'' || '''ef'''<sup>er</sup><br>''need'' || '''of'''<sup>er</sup><br>''be prohibited'' || '''if'''<sup>er</sup><br>''love'' || '''uf'''<sup>er</sup><br>''hate''
|-
!rowspan=6| '''v'''<br>(''truth, qualities'' )
| '''va'''<br>''yes'' || '''ve'''<br>''maybe'' || '''vo'''<br>''no''|| '''vi'''<sup>a</sup><br>''beautiful'' || '''vu'''<sup>a</sup><br>''ugly''
|-
| '''vay'''<br>''really''||'''vey'''<br>''may''||'''voy'''<br>''not'' || ||
|-
| '''av'''<br>''for'' || '''ev'''<sup>a</sup><br>''neutral'' || '''ov'''<br>''against''|| '''iv'''<sup>a</sup><br>''happy'' || '''uv'''<sup>a</sup><br>''sad''
|-
| '''vya'''<sup>a</sup><br>''true'' || '''vye'''<sup>a</sup><br>''relative'' || '''vyo'''<sup>a</sup><br>''false''|| '''vyi'''<sup>a</sup><br>''clean'' || '''vyu'''<sup>a</sup><br>''dirty''
|-
| '''yav'''<sup>a</sup><br>''innocent'' || '''yev'''<sup>a</sup><br>''fair'' || '''yov'''<sup>a</sup><br>''guilty''|| '''yiv'''<sup>a</sup><br>''free'' || '''yuv'''<sup>a</sup><br>''captive''
|-
| '''van'''<br>''that'' || '''ven'''<br>''if'' || '''von'''<br>''lest''|| ||
|-
! rowspan=5|'''z'''<br>(spatial)
| '''za'''<br>''in front of'' || '''ze'''<br>''in the middle of'' || '''zo'''<br>''in back of''|| '''zi'''<sup>a</sup><br>''right'' || '''zu'''<sup>a</sup><br>''left''
|-
| '''zay'''<br>''ahead'' || '''zey'''<br>''across'' || '''zoy'''<br>''back, re-''|| ||
|-
| '''zya'''<sup>a</sup><br>''wide'' || '''zye'''<br>''through'' || '''zyo'''<sup>a</sup><br>''narrow''||'''zyi'''<sup>a</sup><br>''flat'' || '''zyu'''<sup>a</sup><br>''round''
|-
| '''az'''<sup>a</sup><br>''strong'' || '''ez'''<sup>a</sup><br>''moderate'' || '''oz'''<sup>a</sup><br>''weak''|| '''iz'''<sup>a</sup><br>''straight'' || '''uz'''<sup>a</sup><br>''curved''
|-
| '''yaz'''<sup>a</sup><br>''convex'' || '''yez'''<br>''along'' || '''yoz'''<sup>a</sup><br>''concave'' || '''yiz'''<sup></sup><br>''beyond'' || '''yuz'''<br>''around''
|-
! rowspan=4|'''b-'''<sup>er</sup><br>(''put'')
| '''ba'''<sup>y</sup>/(<sup>xer</sup>)<br>''with, (agitate)'' || '''be'''<sup>y</sup>/(<sup>(xer)</sup>)<br>''at/by, (hold)'' || '''bo'''<sup>y</sup>(<sup>xer</sup>)<br>''without/(calm)''|| '''bi<sup>(er/xer)</sup>'''<br>''from, (take/pull)'' || '''bu'''<sup>(er/xer)</sup><br>''to, (give/push)''
|-
| '''ab'''<sup>(er)</sup><br>''on,(put on)'' || '''eb'''<sup>(er)</sup><br>''between,(block)'' || '''ob'''(<sup>er</sup>)<br>''off,(take off)'' || '''ib'''<sup>(er)</sup><br>''away,(receive)'' || '''ub'''<sup>(er)</sup><br>''toward,(send)''
|-
| '''bya'''<sup>ser/xer</sup><br>''stand/erect'' || '''bye'''<sup>xer</sup><br>''tap'' || '''byo'''<sup>ser/xer</sup><br>''hang/hang''|| '''byi'''<sup>(ser)</sup><br>''since,(originate)'' || '''byu'''<sup>(ser/xer)</sup><br>''up to,(contact/touch)''
|-
| '''yab'''<sup>(er)</sup><br>''up,(raise)'' || '''yeb'''<sup>(er)</sup><br>''in,(put in)''<br>'''oyeb'''<sup>(er)</sup><br>''out,(take out)'' || '''yob'''<sup>(er)</sup><br>''down,(lower)''|| '''yib'''<sup>(er)</sup><br>''far,(remove)'' || '''yub'''<sup>(er)</sup><br>''near,(bring)''
|-
! rowspan=4|'''p'''<sup>er</sup><br>(''go'')
| '''pa'''<sup>ser/xer</sup><br>''move/move'' || '''pe'''<sup>ser/xer</sup><br>''wait/trap'' || '''po'''<sup>ser/xer</sup><br>''stop/stop''|| '''pi'''<sup>er/ser/xer</sup><br>''leave/withdraw/catch'' || '''pu'''<sup>er/ser/xer</sup><br>''arrive/jump/throw''
|-
| '''pya'''<sup>er/ser/xer</sup><br>''hover/jump up/launch'' || '''pye'''<sup>ser/xer</sup><br>''encounter/strike'' || '''pyo'''<sup>ser/xer</sup><br>''fall/drop''|| '''pyi'''<sup>ser/xer</sup><br>''emanate/derive'' || '''pyu'''<sup>ser/xer</sup><br>''reach/impact''
|-
| '''yap'''<sup>er</sup><br>''rise'' || '''yep'''<sup>er</sup><br>''enter'' || '''yop'''<sup>er</sup><br>''descend''|| '''yip'''<sup>er</sup><br>''go far'' || '''yup'''<sup>er</sup><br>''approach''
|-
| '''ap'''<sup>er</sup><br>''get on'' || '''ep'''<sup>er</sup><br>''intervene'' || '''op'''<sup>er</sup><br>''get off'' || '''ip'''<sup>er</sup><br>''go away'' ||'''up'''<sup>er</sup><br>''come''
|-
!rowspan=2| '''s'''<sup>er</sup><br>(''be'')
| '''sa'''<sup>n/s/xer</sup><br>''shape/evolve/make'' ||'''se'''<sup>xer</sup><br>''build'' || '''so'''<sup>n/xer</sup><br>''matter/destroy''|| '''si'''<sup>n/yn</sup><br>''image/sign'' || '''su'''<sup>n/er/xer</sup><br>''thing/provide/realize''
|-
| '''as'''<sup>er</sup><br>''become'' || '''es'''<sup>er</sup><br>''exist'' || '''os'''<sup>er</sup><br>''cease to be'' || ||
|-
! rowspan=3|'''x'''<sup>er</sup><br>(''do'' )
| '''xa'''<sup>ler</sup><br>''execute'' || '''xe'''<sup>ler</sup><br>''practice'' || '''xo'''<sup>ler</sup><br>''fail'' || '''xi'''<sup>ler</sup><br>''undertake'' || '''xu'''<sup>ler</sup><br>''provoke''
|-
|'''ax'''<sup>ler</sup><br>''act'' || '''ex'''<sup>er</sup><br>''function'' || '''ox'''<sup>ler</sup><br>''abstain'' || '''ix'''<sup>er</sup><br>''effect'' || '''ux'''<sup>er</sup><br>''cause''
|-
| '''yax'''<sup>er</sup><br>''be busy'' || '''yex'''<sup>er</sup><br>''work'' || '''yox'''<sup>er</sup><br>''be idle'' || '''yix'''<sup>er</sup><br>''use'' || '''yux'''<sup>er</sup><br>''help''
|-
! '''t'''<sup>er/rer/yer</sup><br>(''know/recognize/know how'')
| '''ta'''<sup>xer</sup><br>''remember'' || '''te'''<sup>xer</sup><br>''think'' || '''to'''<sup>xer</sup><br>''forget'' || '''ti'''<sup>er/xer</sup><br>''learn/study''<br>'''tri'''<sup>er</sup><br>''get to know''<br>'''tyi'''<sup>er</sup><br>''learn how'' || '''tu'''<sup>er/xer/uxer</sup><br>''inform/teach/raise''<br>'''tru'''<sup>er</sup><br>''familiarize''<br>'''tyu'''<sup>er</sup><br>''train''
|-
! '''d'''<sup>er/rer</sup><br>(''say/write'')
| '''da'''<sup>ler</sup><br>''talk'' || '''de'''<sup>ler</sup><br>''state''<br>'''dye'''<sup>er</sup><br>''read'' || '''do'''<sup>ler</sup><br>''be silent''<br>'''dro'''<sup>er</sup><br>''erase'' || '''di'''<sup>er/ler/rer</sup><br>''ask/beg/require'' || '''du'''<sup>er/ler/rer</sup><br>''suggest/insist/demand''<br>'''dyu'''<sup>er</sup><br>''call''
|-
! rowspan=2|'''h-'''<br>(determiners)
| '''ha'''<sup>(a)</sup><br>''the'' || '''he'''<sup>a</sup><br>''some'' || '''ho'''<sup>a</sup><br>''which'' || '''hi'''<sup>a</sup><br>''this'' || '''hu'''<sup>a</sup><br>''that''
|-
| '''hya'''<sup>(a)</sup><br>''all'' || '''hye'''<sup>a</sup><br>''any'' || '''hyo'''<sup>a</sup><br>''no'' || '''hyi'''<sup>a</sup><br>''same'' || '''hyu'''<sup>a</sup><br>''other''
|-
! rowspan=2| (conjunctions)
|'''ay'''<br>''and'' || '''ey'''<br>''or'' || '''oy'''<br>''but'' || ||
|-
|'''ya'''<sup>n</sup><br>''together'' || ||'''yo'''<sup>n</sup><br>''apart''|| ||
|-
! rowspan=2| (numbers)
| '''a'''<br>''one''|| '''e'''<br>''two''|| '''o'''<br>''zero''|| '''i'''<br>''three''|| '''u'''<br>''four''
|-
| '''ya'''<br>''six''|| '''ye'''<br>''seven''|| '''yo'''<br>''five''|| '''yi'''<br>''eight''|| '''yu'''<br>''nine''
|-
! rowspan=1| (privatives)
| || || '''lo-''' (''dis-/un-'')<br>'''lyo-''' (''dis-'')<br>'''oy-''' (''-less'')|| ||
|}
:: <small>* Mixed root. '''taj/tej/toj''' instead of '''yaj/yej/yoj''', because the human letter root '''t''' is more intuitive.</small>
:: Note: The opposition '''(y)a'''-'''(y)e'''-'''(y)o''' is a three-way opposition with an intermediary sense, but '''(y)i-(y)u''' is two-way, without any intermediary sense.
== Derived Word Formation Rules ==
: Derived words are formed in accordance with certain simple rules of word-building:
: These consist of the following rules:
::# Compounding
::# Affixation
::# Ordinal Vowel Scaling
::# Overlapping
::# Adding Ordinal Vowels
::# Swapping Generic Consonants
::# Marking Words for Gender
::# Deriving Words with Geo-specific Vowels
::# Deriving Words with Directional and Positional Vowels
::# Deriving Words with a Mnemonic Pattern
::# Deriving Nuanced Words Phonetically
::# Reduplication
=== Rule #1: Compounding ===
[[File:Compound 6 (maraviroc development).svg|thumb|]]
: Compound words are obtained through the combination of two or more whole words or stub words. In the combining process, the determining word is placed quite simply in front of the word it determines. Compounds consist mainly of noun + noun, but there can be other part-of-speech combinations.
: Examples:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Compounding
|-
! Component 1 !! Component 2 !! Compound
|-
| '''mor'''....''cosmos'' || '''tun'''....''science, -ology'' || '''mortun'''....''cosmology''
|-
| '''mag'''....''fire'' || '''memyaz'''....''mountain'' || '''magmemyaz'''....''volcano''
|-
| '''dob'''....''state'' || '''mem'''....''land'' || '''dobmem'''....''territory''
|-
| '''tul'''....''dish'' || '''dras'''....''something written'' || '''tuldras'''....''menu''
|-
| '''sin'''....''picture'' || '''dras'''....''something written'' || '''sindras'''....''description''
|-
| '''tam'''....''house'' || '''kyoxer'''....''to fix (in place)'' || '''tamkyoxer'''....''to settle''
|-
| '''tax'''....''memory'' || '''drer'''....''to write'' || '''taxdrer'''....''to record''
|-
| '''kyo-'''....''fixed'' || '''tep-'''....''mind'' || '''kyotepa'''....''stubborn''
|}
: Sometimes, the first element can be a stub of a whole word, i.e. the word with the final consonant dropped. The word for ''rain'', for example, is '''ma(m)''' (''sky'') + '''mil''' (''water''), where the final consonant of the first word is dropped, thus, '''mamil'''.
: When compounding an adjective with a noun, if the adjective begins with a vowel, often it will be suffixed to the noun, otherwise prefixed, (but this is not a strict rule), eg:
:* '''uzra'''....''twisted'' + '''tep'''....''mind'' ---> '''tepuzra'''....''crazy''
:* '''kyoa'''....''fixed'' + '''tep'''....''mind'' ----> '''kyotepa'''....''stubborn, obsessed''
:* '''aza'''....''strong'' + '''tep'''....''mind'' ----> '''tepaza'''....''intelligent''
:* '''fua'''....''bad'' + '''tip'''....''mood'' ----> '''futipa'''....''cross, ill-tempered''
:* '''aga'''....''big'' + '''tip'''....''mood'' ----> '''tipaga'''....''magnanimous, generous''
=== Rule #2: Affixation ===
[[File:Word Cloud of Various Prefixes.png|thumb|]]
: Most adverbs and prepositions can be used as prefixes:
==== Prefixes ====
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Adverbs and Prepositions as Prefixes
|-
! Prefix !! Base !! Compound
|-
| '''ja'''....''before'' ||'''per'''....''to go'' || '''japer'''....''to precede''
|-
| '''jo'''....''after'' ||'''per'''....''to go'' || '''joper'''....''to follow''
|-
| '''va'''....''yes'' ||'''der'''....''to say'' || '''vader'''....''to affirm''
|-
| '''jo'''....''after'' ||'''dras'''....''something written'' || '''jodras'''....''postscript''
|-
| '''za'''....''ahead'' ||'''jub'''....''day'' || '''zajub'''....''tomorrow''
|-
| '''yon'''....''apart'' ||'''mel'''....''land'' || '''yonmel'''....''island''
|}
: Prepositional prefixes ending in '''b''' with verbs '''per''' and '''ber''' (and their derivations) lose the '''b''' before verbal elements based on '''per''' (''go'') and '''ber''' (''put''), as shown in the following chart:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Assimilation of b and p
|-
! Prefix !! Base Verb !! New Verb
|-
| '''yab'''....''up'' || '''ber'''....''put'' || '''yaber'''....''raise'' (NOT: '''yabber''')
|-
| '''yab'''....''up'' || '''per'''....''go'' || '''yaper'''....''rise'' (NOT: '''yabper''')
|-
| '''ab'''....''on'' || '''ber'''....''put'' || '''aber'''....''put on, apply''
|-
| '''ab'''....''on'' || '''per'''....''go'' || '''aper'''....''get on, mount''
|-
| '''yob'''....''down'' || '''ber'''....''put'' || '''yober'''....''take down''
|-
| '''yob'''....''down'' || '''per'''....''go'' || '''yoper'''....''descend''
|-
| '''ob'''....''off'' || '''ber'''....''put'' || '''ober'''....''take off, remove''
|-
| '''ob'''....''on'' || '''per'''....''go'' || '''oper'''....''get off, dismount''
|-
| '''yeb'''....''in'' || '''bux'''....''a push'' || '''yebux'''....''impulse''
|-
| '''yeb'''....''in'' || '''pyoser'''....''fall'' || '''yepyoser'''....''collapse''
|}
: The loss of the '''b''' in the above words in one of the only cases of '''''fusion''''' in Mirad's grammar. Mirad is by and large an agglutinative language where building-blocks are juxtaposed with no change of form. Another case of fusion is when so-called '''''stubs''''' are combined. For example, '''doyijem''' (''public square''), which is composed of '''do(m)'''....''city'' + '''yij(a)'''....''open'' + '''(n)em'''....''place''. The morphemes (= building-block words) of Mirad always have one and only one meaning, unlike in English where the prefix '''a-''' can have many different meanings.
: The adjective ending '''a''' is often dropped<sup>1</sup>, as is the '''er''' or prefixes taken from verbs. Longish noun prefixes are sometimes clipped, so that '''tyoyab''' becomes '''tyoya-'''.
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Prefixes Built on Words and Word Stubs
|-
! Prefix !! Base Verb !! Compound Verb
|-
| '''oza'''....''weak'' || '''der'''....''say'' || '''ozder'''....''whisper''
|-
| '''yaga'''....''long'' || '''der'''....''say'' || '''yagder'''....''ramble''
|-
| '''aja'''....''past'' || '''der'''....''say'' || '''ajder'''....''evoke''
|-
| '''yoga'''....''short'' || '''der'''....''say'' || '''yogder'''....''summarize''
|-
| '''tyoyab'''....''foot'' || '''per'''....''go'' || '''tyoyaper'''....''walk''
|-
| '''dreer'''....''write'' || '''sar'''....''tool'' || '''dresar'''....''pencil''
|-
| '''tuyob'''....''hand'' || '''dren'''....''writing'' || '''tuyodren'''....''manuscript''
|-
| '''mam'''....''sky'' || '''mil'''....''water'' || '''mamil'''....''rain''
|}
: <small><sup>1</sup>: Sometimes, the adjective ending '''a''' is retained when an adjective is compounded with '''xer''' or '''ser'''. This device may be used to distinguished two differently nuanced verbs. For example, '''aga''' + '''xer''' can produce '''agaxer'''....''to magnify'' or '''agxer'''....''to grow''. Usually, the compound where the adjective suffix has been eclipsed has the more idiomatic meaning.</small>
==== Most Common Mirad Prefixes ====
{| class="wikitable sortable collapsable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Common Prefixes
|-
! Prefix !! Examples
|-
|'''a(n)-'''....''uni-, one-, mono-''||'''anzyukpar'''....''unicycle''<br> '''antotin'''....''monotheism''<br>'''adeb'''....''emperor''
|-
|'''aa-'''....''arch-, first-, prime''||'''aadub'''....''prime minister''<br>'''aatat'''....''archangel''<br>'''aavyan'''....''principle''<br>'''aasaun'''....''prototype''
|-
|'''aag-'''....''arch-, main, macro-''||'''aagmep'''....''highway''<br> '''aagdovyab'''....''constitution''<br> '''aagovekut'''....''archrival''
|-
|'''aaj-'''....''paleo-, proto-''||'''aajtobtun'''....''paleoanthropology''<br> '''aajsiyn'''....''fossil''
|-
|'''ab-'''....''ad-, top, on, epi-''||'''abtob'''....''superman''<br> '''abtim'''....''attic''<br> '''abzen'''....''epicenter''
|-
|'''aj-'''....''former, ex-'' || '''ajtayd'''....''ex-wife''<br>'''ajdeb'''....''former leader''
|-
|'''ayb-'''....''over-, super-, hyper-, sur-''||'''aybmep'''....''overpass''<br>'''aybdresin'''....''superscript''<br>'''aybdyun'''....''hypernym''
|-
|'''ag-'''....''mega(lo)-'' || '''agvyotos'''....''megalomania''<br>'''agtoj'''....''megadeath''
|-
|'''alo(n)-'''....''deca-, ten-''||'''alojaga'''....''ten years old''<br> '''alojab'''....''decade''<br> '''alonsuna'''....''decimal''
|-
|'''aloy(n)-'''....''deci-, tenth-''||'''aloynux'''....''tithe''<br> '''aloyngoler'''....''decimate''
|-
|'''am-'''....''thermo-''||'''amzemula'''....''thermonuclear''<br> '''amvyabxar'''....''thermostat''
|-
|'''amlo(n)-'''....''mega-''||'''amloagvunak'''....''megavolt''<br> '''amlotoj'''....''megadeath''
|-
|'''amloyn-'''....''micro-''||'''amloynjweb'''....''microsecond''
|-
|'''anyen-'''....''idio-''||'''anyenboka'''....''idiopathic''<br> '''anyendyan'''....''idiom''<br> '''anyentepa'''....''idiotic''
|-
|'''ao(b/p)-'''....''north-south, up-down, vertical, vertically, y-axis''||'''aonab'''....''column'', ''x-y-axis''<br> '''aopuys yuzpar'''....''hop-on-hop-off bus''<br> '''aonada'''....''vertical''
|-
|'''aoye(b/p)-'''....''in-and-out''||'''aoyebar'''....''piston''<br> '''aoyebelen'''....''import-exports''<br> '''aoyepaper'''....''fly in and out''
|-
|'''aro(n)-'''....''kilo-''||'''aronminak'''....''kilometer''<br> '''arobanak'''....''kilobit''
|-
|'''aroyn-'''....''milli-''||'''aroynvunak'''....''millivolt''<br> '''aoynwunak'''....''milliwatt''
|-
|'''(a)so(n)'''....''cent-''||'''asojagat'''....''centenarian''<br> '''asolinak'''....''hectoliter''<br> '''sojab'''....''century''
|-
|'''asoy(n)-'''....''cent-, centi-''||'''asoygenak'''....''centigram''<br> '''asoylinak'''....''centiliter''
|-
|'''av-'''....''pro-''||'''avYanotina'''....''pro-Communist''
|-
|'''ayn-'''....''full-, holo-, whole-''||'''aynnuut'''....''wholesaler''<br> '''aynsin'''....''hologram''<br> '''aynteptija'''....''fully-conscious''
|-
|'''e(b/p)-'''....''inter-''||'''ebmos'''....''mezzanine''<br> '''ebyanmulxer'''....''intermingle''<br> '''eper'''....''intercede''
|-
|'''ejna-'''....''neo-''||'''ejnadun'''....''neologism''<br> '''ejnaobdabin'''....''neocolonialism''
|-
|'''e(n)-'''....''ambi-, bi-, di-, duo-, two-''||'''entyoba'''....''bipedal''<br> '''enzyuspar'''....''bicycle''<br> '''envolza'''....''dichromatic''
|-
|'''eon-'''....''duo-, double-, twin-''||'''eonin'''....''dualism''<br> '''eondal'''....''double-speak''<br> '''eonsum'''....''twin bed''
|-
|'''ev-'''....''a-, neutral'' ||'''evdofina'''....''amoral''<br>'''evdabtuna'''....''apolitical''
|-
|'''ey(b/p)-'''....''intra-, among''||'''eybmasa'''....''intramural''<br> '''eybmimkuma'''....''intracoastal''
|-
|'''eyn-'''....''demi-, half-, hemi-, mixed-, pen-, quasi-, semi-''||'''eynzyus'''....''semi-circle''<br> '''eynzyup'''....''half-turn''<br> '''eyntilsyeb'''....''demitassee''<br> '''eynyonmel'''....''peninsula''
|-
|'''fi-'''....''bene-, eu-, good-, nice-, well-''||'''fixut'''....''benefactor''<br> '''fidrawa'''....''well-written''<br> '''fitos'''...''euphoria''
|-
|'''fu-'''....''dys-, ill-, mal-, mis-, poorly-''||'''futos'''....''dysphoria''<br> '''futuwa'''....''ill-informed''<br> '''fuxeyn'''....''malfeasance''
|-
|'''fya-'''....''hiero-, holy-, sancti-''||'''fyasdresiyn'''....''hieroglyphic''<br> '''fyader'''....''sanctify''<br> '''fyatwed'''....''holy father''
|-
|'''fye-'''....''mythical, fantasy''||'''fyetop'''....''phantom''<br> '''fyetobet'''....''elfin''<br> '''fyetexer'''...''fantacize''<br> '''fyedin'''....''fantasy''
|-
|'''fyo-'''....''evil, profane'' ||'''fyotez'''....''occult''<br>'''fyotat'''....''devil''<br>'''fyotyez'''....''witchcraft''
|-
|'''gaw-'''....''re-, again'' || '''gawteaper'''....''revisit''<br> '''gawaker'''....''regain''
|-
|'''garale-'''....''tera-''||'''garaleagbanak'''....''terabyte''
|-
|'''garalyi-'''....''exa-''||'''garalyibanak'''....''exabit''
|-
|'''garalyo-'''....''peta-''||'''galayoagbanak'''....''petabyte''
|-
|'''garela-'''....''zetta-''||'''garelaagbanak'''....''zettabyte''
|-
|'''garelu-'''....''yotta-''||'''gareluagbanak'''....''yottabyte''
|-
|'''ge-'''....''equal to, equi-, even-''||'''geyafwa'''....''equipollent''<br> '''genaza'''....''equivalent''
|-
|'''gel-'''....''homo-, like-, simul-''||'''gelzena'''....''homocentric''<br> '''gelvolza'''....''homochromatic''
|-
|'''geyl-'''....''simul-''||'''geyldyan'''....''simile''<br> '''geylxer'''....''assimilate''
|-
|'''gla-'''....''many-, multi-, poly-''||'''glatyenika'''....''multi-skilled''<br> '''glatwada'''....''polyandrous''<br> '''glavolza'''....''many-hued''
|-
|'''glo-'''....''mini-, little-, few-''||'''gloduna'''....''succint, of few words''<br> '''glonixea'''....''low-earning''
|-
|'''gorale-'''....''pico-''||'''goraleagfenak'''....''picofarad''
|-
|'''goralyi-'''....''atto-''||'''goralyigenak'''....''attogram''
|-
|'''goralyo-'''....''femto-''||'''goralyoon'''....''quadrillionth''
|-
|'''goralyu-'''....''nano-''||'''goralyusonak'''....''nanosecond''
|-
|'''gorela-'''....''zepto-''||'''gorelagenak'''....''zeptogram''
|-
|'''gorelu-'''....''yocto-''||'''gorelugenak'''....''yoctogram''
|-
|'''gra-'''....''extra-, hyper-, over-, ultra-''||'''gratosea'''....''hypersensitive''<br> '''grazoyaxler'''....''overreact''<br> '''granoxea'''....''extravagant''
|-
|'''gro-'''....''hypo-, under-''||'''groyixlawa'''....''underemployed''<br> '''groaman'''....''hypothermia''
|-
|'''gwa-'''....''hyper-, maxi-, -most, pleisto-, uber-, ultra-, pure, macro-''||'''gwayelza'''....''pure pink''<br> '''gwayafa'''....''supreme''<br> '''gwauja'''....''ultimate''<br> '''gwazoa'''....''hindmost''
|-
|'''gwo-'''....''least-, mini-, micro-''||'''gwosag'''....''minimum''<br> '''gwoyuzpur'''....''minibus''<br>'''gwoexlus'''....''microprocessor''
|-
|'''hi-'''....''hither, these, this''||'''his'''....''this''<br> '''hisi'''....''these''<br> '''him'''....''here''
|-
|'''hya(s)-'''....''pan(to)-, omni-, all-, every-''||'''hyas'''....''everything''<br> '''hyati'''....''all of them''<br> '''hyastea'''....''omniscient''<br> '''hyataadifa'''....''pansexual''
|-
|'''hu-'''....''that''||'''hus'''....''that''<br> '''huj'''....''then''<br> '''huyen'''...''that way''
|-
|'''huim-'''....''here-and-there, here-and-yon''||'''huimkexer'''....''search high and low''<br> '''huimpaper'''....''fly here and there''<br> '''hyuimpoper'''....''travel here-and-there''
|-
|'''huu-'''....''so, such''||'''huugla'''....''so, so very''<br> '''hus'''....''such''<br> '''huyen'''....''in such a way, so, thus''
|-
|'''hyaewa-'''....''ambi-''||'''hyaewati'''....''both of them''<br> '''hyaewaziza'''....''ambidextrous''<br> '''hyaewatoobifa'''....''ambi-sexual''
|-
|'''hye-'''....''-ever, any, whatever, whichever''||'''hyem'''....''anywhere, wherever''<br> '''hyempea'''....''erratic''<br> '''hjej'''....''ever, anytime''
|-
|'''hyi-'''....''homo-, like-, same, syn-''||'''hyitoobifa'''....''homosexual''<br> '''hyis'''....''same thing''<br> '''hyijoba'''....''synchronous''
|-
|'''hyo(s)-'''....''nothing, a-'' || '''hyostosea'''....''apathetic''
|-
|'''hyu(t/s)-'''....''alter-, hetero-, other-, xeno-, else''||'''hyutoobifa'''....''heterosexual''<br> '''hyua'''....''another, alternate''<br> '''hyutufa'''....''xenophobic''<br> '''hyus'''....''something else''
|-
|'''hyui(t/s)-'''....''cross-, mutual, one thing and another, reciprocal''||'''hyuitvikaxen'''....''mutual admiration''<br> '''hyuixer'''....''reciprocate''<br> '''hyuisa'''....''mutual, reciprocal''<br> '''hyuitif'''....''mutual love''
|-
|'''i-'''....''toward the speaker''||'''iber'''....''receive''<br>'''ixer'''....''result''
|-
|'''ik-'''....''fully, thoroughly''||'''iktoxer'''....''forget completely''<br> '''iktos'''....''satisfaction''<br> '''ikyebixer'''....''engulf, swallow up completely''
|-
|'''in-'''....''three-, tri-, tripl-, tern-''||'''inzyuspar'''....''tricycle''<br> '''inaga'''....''three-dimensional''<br> '''injiba'''....''trimensual''<br> '''insuna'''....''ternary''<br> '''intotan'''....''trinity''
|-
|'''iyn-'''....''terci-, third''||'''iyna'''....''terciary''<br> '''iynxer'''....''cut into thirds''
|-
|'''iz-'''....''ortho-, recti-, right-, straight-''||'''iznada'''....''rectilinear''<br> '''izguna'''....''orthogonal''<br> '''iztin'''....''orthdoxy''<br> '''izdea'''....''forthright''
|-
|'''ja-'''....''ante-, fore-, pre-''||'''jaupya'''....''foregone''<br> '''jauper'''....''precede''<br> '''jadropeka'''....''antebellum''
|-
|'''je-'''....''per-, continuously, ever-''||'''jetejer'''....''persevere''<br>'''jeteaxer'''....''watch''<br>'''jexrer'''....''perpetuate''
|-
|'''jo-'''....''after-, meta-, post-''||'''joexlen'''....''postprocessing''<br> '''jomir'''....''metasphere''<br> '''jotej'''....''afterlife''
|-
|'''jwa-'''....''early-, eo-, preter-, proto-''||'''jwaber'''....''prepare''<br> '''jwatuun'''....''premonition''<br> '''jwadodin'''....''early history, protohistory''<br> '''jwamola'''....''preternatural''<br> '''jwajoeb'''....''eocene''
|-
|'''jwo-'''....''ceno-, late-, latter-, tard-''||'''jwonux'''....''late payment''<br> '''jwoa'''....''tardy''<br> '''jwoteja'''....''cenozoic''
|-
|'''ko-'''....''cover-, hidden, secret-, stealth-''||'''koa'''....''covert''<br> '''koexut'''....''spy''<br> '''koyeper'''....''sneak in''
|-
|'''(ko)vyo-'''....''pseudo-, mis-, wrong-''||'''kovyotun'''....''pseudoscience''<br>'''vyobekuer'''....''to mistreat''
|-
|'''ku-'''....''para-''||'''kuifut'''....''paramour''<br> '''kuteliut'''....''parasite''<br> '''kuteptun'''....''parapsychology''
|-
|'''kya-'''....''alternate, dia-, re-, trans-, vari-, cross-''||'''kyaember'''....''relocate''<br> '''kyajoba'''....''diachronic''<br> '''kyatajnad'''....''crossbreed''<br> '''kyatooba'''....''transgendered''<br> '''kyavolza'''....''variegated, motley''
|-
|'''kyao-'''....''falteringly, unsteadily''||'''kyaoper'''....''stagger''<br> '''kyaotexer'''....''vacillate''
|-
|'''kye-'''....''chance-, hap-, random-''||'''kyea'''....''haphazard''<br> '''kyebyus'''....''chance encounter''<br> '''kyeteater'''....''happen to see''<br> '''kyesauna'''....''of a random type''
|-
|'''kyo-'''....''fixed-, still-, stereo-, stat-''||'''kyosaun'''....''stereotype''<br> '''kyopa'''....''stable, static, stationary''<br> '''kyoson'''....''status''
|-
|'''lo-'''....''dis-, semantic reversing prefix, un-''||'''lozeb'''....''disequilibrium''<br> '''loyuvlaxer'''....''disengage''<br> '''loyuzyuber'''....''uncoil''<br> '''lomulvyusber'''....''decontaminate''
|-
|'''logel-'''....''hetero-, different-''||'''logelsauna'''....''heterogenous''<br>'''logelaxer'''....''differentiate''
|-
|'''maz-'''....''bright-''||'''mazteaba'''....''bright-eyed''
|-
|'''mial-'''....''hygro-, atmo-, vapori-''||'''mialama'''....''hygrothermal''<br>'''mialnagar'''....''atomometer, vaporimeter''
|-
|'''mil-'''....''aqua-, hydro-, water-''||'''milyexun'''....''aquaculture''<br> '''milmaka'''....''hydroelectric''<br> '''miltilsyeb'''....''water glass''
|-
|'''mul-'''....''hylo-, substance''||'''mulsana'''....''hylomorphic''
|-
|'''o(l)-'''....''a-, dis-, non-, un-, in-''||'''ovyilxwa'''....''unwashed''<br> '''omalza'''....''non-white''<br> '''ototina'''....''atheist''<br> '''otepzexea'''....''inattentive''
|-
|'''o(b/p)-'''....''de-, hypo-, off-, sub-, vice-''||'''oper'''....''get off''<br> '''obneg'''....''sublevel''<br> '''obxeb'''....''sous-chef, sub-officer''<br>'''obtyodeb'''....''vice-president''
|-
|'''oog-'''....''micro-'' || '''oogpob'''....''microorganism''
<nowiki>-</nowiki>
|-
| '''oj-'''....''future'' || '''ojtayd'''....''bride, future wife''
|-
|'''gaw-'''....''re-'' ||'''gawder'''....''to repeat''<br>'''gawdyeer'''....''to re-read''
|-
|'''gwo-'''....''micro-, mini-'' || '''ogalmor'''....''microcosm''<br>'''ogalteaxer'''....''microscope''<br>'''gowaxer'''....''minimize''
|-
|'''of-'''....''prohibited'' ||'''ofbier'''....''steal''<br>'''ofbekul'''....''prohibited drug''<br>'''ofemkyoxer'''....''to squat''
|-
|'''ov-'''....''contra-, counter-, dis-, non-, the opposite of, un-''||'''ovalxer'''....''countervail''<br> '''ovper'''....''contravene''<br> '''ovkyin'''....''counterweight''<br> '''ovdat'''....''enemy''<br> '''olovmasbwa'''....''undefended''
|-
|'''oy-'''....''-less, a(n)-, without''||'''oytofa'''...''naked''<br> '''oyxer'''....''deprive''<br> '''oytosen'''....''apathy''<br> '''oyteupiba'''....''toothless''
|-
|'''oyb-'''....''hypo-, infra-, sub-, under-''||'''oybnadrer'''....''underline''<br> '''oybtomsan'''....''infrastructure''<br> '''oybseuxa'''....''subsonic''<br> '''oybtayoba'''....''hypodermic''
|-
|'''oyeb-'''....''ex-, extra-, out-''||'''oyebnad'''....''outline''<br> '''oyebyujber'''....''exclude''<br> '''oyebdoabuer'''....''extradite''
|-
|'''oyv-'''....''contra-, opposite, reverse''||'''oyvkuma'''...''opposite''<br> '''oyvder'''....''contradict''<br>'''oyvduer'''....''contraindicate''<br>'''oyvaxer'''....''reverse''
|-
|'''tayi(b)-'''....''neuro-, nerve''||'''tayibteptun'''....''neuropsychology''<br> '''tayibyok'''....''neuralgia''
|-
|'''teeb-'''....''auri-, oto-, ear-''||'''teebbekut'''....''aurist''<br> '''teeteiteyobtut'''....''otorhinolaryngologist''<br> '''teebyel'''....''earwax''
|-
|'''tee(s/x/t)-'''....''audio-, son-, phono-''||'''teesnagen'''....''audiography''<br> '''teestaxdras'''....''phonogram''<br> '''teestun'''....''audiology''<br> '''teexdras'''....''audiogram''<br> '''teetyofwa'''....''inaudible''
|-
|'''tei(b)-'''....''nasal, nose, rhino-, aroma-, olfact-, osmo-''||'''teibbok'''....''rhinitis''<br> '''teibyeg'''....''nostril''<br> '''teiz'''....''perfume''<br> '''teizuka'''....''aroma-free''<br> '''teityaf'''....''olfactory sense''
|-
|'''tiibil-'''....''blood-, hema-, hemato-, hemo-, sanguin-''||'''tiibililp'''....''hemorrhage''<br> '''tiibiliut'''....''bloodsucker''<br> '''tiibloker'''....''exsanguinate''<br> '''tiibiltun'''....''hematology''
|-
|'''tuj-'''....''hypno-, somni-, sopor-''||'''tujbek'''....''hyptotherapy''<br> '''tujbyea'''....''somniferous, soporific''
|-
|'''u(b/p)-'''....''toward''||'''uber'''....''send''<br>'''ubaer'''....''lean toward''
|-
|'''ui-'''....''horizontal, left-right, x-axis''||'''uinab'''....''row'', ''x-axis''<br> '''uinada'''....''horizontal''
|-
|'''uib-'''....''back-and-forth, toward-and-away, transmit-receive''||'''uibar'''....''transceiver''
|-
|'''uig-'''....''fast-and-slow''||'''uigpar'''....''scooter''
|-
|'''uij-'''....''begin-and-end, start-and-stop''||'''uijdaler'''....''stutter''
|-
|'''uip-'''....''come-and-go''||'''uipen'''....''traffic, coming and going''
|-
|'''uiz-'''....''straight-then-crooked''||'''uizbaser'''....''swagger''<br> '''uizdrer'''....''scribble''<br> '''uizpaser'''....''swerve''
|-
|'''u(n)-'''....''four-, quadri-, tetra-, quater-''||'''ungona'''....''quadripartite''<br> '''unnednid'''....''tetrahedron''<br> '''unsuna'''....''quaternary''
|-
|'''uyn-'''....''fourth-, quarti-''||'''uynxer'''....''quarter''<br> '''uynjab'''....''quarter (of a year)''
|-
|'''ut-'''....''auto-, self-, sui-, ego-''||'''utifon'''....''egoism''<br> '''utgober'''....''autodecrement''<br> '''utfuyix'''....''self-abuse''<br> '''uttujben'''....''suicide''
|-
|'''uz-'''....''crooked, di-''||'''uzper'''....''diverge''
|-
|'''va-'''....''yes''||'''vayovder'''....''convict''<br> '''vabier'''....''accept''<br> '''vatexer'''....''believe''
|-
|'''vao-'''....''yes-no''||'''vaoder'''....''decide''<br> '''vaodaler'''....''waffle''<br> '''vaonaza'''....''boolean''
|-
|'''vi-'''....''bell-, eu-, fine-, pulchri-''||'''vituzyan'''....''fine arts, beaux arts''<br> '''vidun'''....''euphemism''<br> '''vidrenyan'''....''literature, belles lettres''<br> '''visuana'''....''classic''
|-
|'''vo-'''....''non-, neg-''||'''voyafxer'''....''veto''<br> '''voxer'''....''negate''<br> '''voyovder'''....''acquit, declare not guilty''
|-
|'''vya-'''....''justi-, recti-, true-, reg-''||'''vyadin'''....''true story''<br> '''vyader'''....''avow''<br> '''vyamol'''....''essence''
|-
| '''vyao-'''....''right or wrong'' ||'''vyaoyek'''....''test''
|-
|'''vyak-'''....''ortho-, correct-''||'''vyakdred'''....''orthography''<br> '''vyakxer'''....''correct''
|-
|'''vyo-'''....''mis-, para-, wrong-''||'''vyoyufa'''....''paranoid''<br> '''vyoyux'''....''perfidy''<br> '''vyoyixer'''....''misuse''
|-
|'''ya-'''....''more than one, multi-''||'''yaota'''....''communal''
|-
|'''yab-'''....''hyper-, supra-, sur-, up-, upper-''||'''yabdom'''....''uptown''<br> '''yabdoneg'''....''upper class''<br> '''yabduzneg'''....''high pitch''<br> '''yabexer'''....''support''<br> '''yabzyobix'''....''hypertension''
|-
|'''yabnan-'''....''height-, hypso-, alti-''||'''yabnanagar'''....''hypsometer, altimeter''
|-
|'''yag-'''....''long-''||'''yagyiban'''....''long distance''<br> '''yagyeker'''....''strive''<br> '''yagblokea'''....''long-suffering''
|-
|'''yan-'''....''co(n)-, fellow-, -mate''||'''yanzena'''....''concentric''<br> '''yanyeker'''....''compete''<br> '''yandit'''....''fellow-citizen''
|-
|'''yao(b/p)-'''....''up-and-down''||'''yaopuyser'''....''skip''<br> '''yaopsim'''....''seesaw''<br> '''yaoblir'''....''elevator''<br> '''yaobaser'''....''bounce''
|-
|'''ya(on)-'''....''six-, hexa-, sex-''||'''yaonat'''....''sextet''<br> '''yaongun'''....''hexagon''<br> '''yaona'''....''six-fold, sextuple''<br>'''yagol'''....''sextile''
|-
|'''yaov-'''....''guilty-or-innocent''||'''yaovder'''....''adjudicate''<br> '''yaovdutyan'''....''jury''<br> '''yaovkader'''....''plead''<br> '''yaovyek'''....''trial''
|-
|'''yaoz-'''....''serrated, bumpy, jagged''||'''yaozaxer'''....''serrate''<br> '''yaozgoblar'''....''saw''<br> '''yaozper'''....''bump along''
|-
|'''yayb-'''....''supra-''||'''yaybdooba'''....''supranational''
|-
|'''yayn-'''....''sex-, sixth''||'''yayna'''...''sixth''
|-
|'''ye(on)-'''....''hept-, hepta-, septi-, seven-''||'''yejub'''....''week''<br> '''yeongun'''....''heptagon''<br> '''yeonat'''....''septuplet''
|-
|'''ye(b/p)-'''....''en-, endo-, in-, intra-, intro-''||'''yebuzaser'''....''.inflect''<br> '''yebzoytiibufa'''....''intravenous''<br> '''yebyujer'''....''enclode''<br> '''yebtayoba'''....''endodermal''<br> '''yeper'''....''enter''<br> '''yeber'''....''introduce''
|-
|'''yeov-'''....''fair or not ''|| '''yeovdut'''....''umpire''
|-
|'''yeyb-'''....''intra-''||'''yeybmepyan'''....''intranet''<br> '''yeybdoeba'''....''intrastate''
|-
|'''ye-'''....''hepto-, seven-, septi-''||'''yejub'''....''week''
|-
|'''yeyn-'''....''seventh''|| '''yeynxer'''....''split into sevenths''
|-
|'''yez'''....''para-, alongside''|| '''yezteptun'''....''parapsychology''<br>'''yezuper'''....''come alongside''
|-
|'''yi(on)-'''....''oct-, eight-''||'''yiona'''...''eight-fold''<br>''octuple''
|-
|'''yib-'''....''far-, tele-, remote''||'''yibsin'''....''televison''<br> '''yibteata'''....''far-sighted''<br> '''yibtrawa'''....''famous''
|-
|'''yibaj-'''....''archai-, archeo-, ancient''||'''yibajtun'''....''archaeology'','''yibajtun'''....''archeology''
|-
|'''yiyn-'''....''eighth''||'''yiynxer'''....''divide into eighths''
|-
|'''yiz-'''....''beyond, extra-, meta-, out-, para-, past, super-, supra-, trans-, ultra-''||'''yiztyun'''...''metaphor''<br> '''yizeza'''....''paranormal''<br> '''yizmeirat'''....''extraterrestrial''<br> '''yizseux'''....''utrasound''
|-
|'''yoon-'''....''five-, penta-, quint-''||'''yoongun'''....''pentagon''<br> '''yoongol'''...''quintile''<br> '''yoon'''....''group of five''<br> ''quintet''
|-
|'''yo(b/p)-'''....''down-, hypo-, sub-''||'''yobdom'''...''downtown''<br> '''yoper'''....''go down''<br> '''yobgoler'''....''subdivide''
|-
|'''yon-'''....''apart, dis-, se-''||'''yonzyaber'''....''disperse''<br> '''yonxer'''....''separate''<br> '''yonsauna'''....''distinct''
|-
|'''yoyn-'''....''fifth-, quinti-''||'''yoynnaga'''....''quintic''<br> '''yoyn'''....''a fifth''
|-
|'''yu(n)-'''....''nine-, nona-''||'''yunapa'''....''ninth (in order)''<br> '''yungunid'''....''nonagon''<br> '''yunkunid'''....''nonahedron''
|-
|'''yub-'''....''near-, proxi-, para-''||'''yuboj'''....''near future''<br> '''yubna'''....''next''<br> '''yubteas'''....''closeup (view)''<br> '''yubge'''....''almost''<br> '''yubfia'''....''intimate''<br> '''yubgeser'''....''approximate''<br>'''yubdopa'''....''paramilitary''
|-
|'''yui(b/p)-'''....''near-and-far''||'''yuibjo'''....''sooner or later''<br> '''yuibteabar'''....''bifocals''<br> '''yuipoper'''....''travel near and far''
|-
|'''yuij-'''....''open-and-shut''||'''yuijar'''....''valve''<br> '''yuijer'''....''blink'', ''wink''<br> '''manyuijer'''....''blink''<br> '''makyuijar'''....''switch''
|-
|'''yuyb-'''....''quasi-, pen-, almost''||'''yuybyonmel'''....''peninsula''<br> '''yuybega'''....''quasi-normal''
|-
|'''yuon-'''....''ninth-, novi-''||'''yuonat'''....''nonuplet''
|-
|'''yuz-'''....''circ-, circum-, peri-, roto-, round-''||'''yuzper'''....''circulate''<br> '''yuznad'''....''perimeter''<br> '''yuzof'''....''wrap-around''<br> '''yuznadrer'''....''circumscribe''
|-
|'''za-'''....''ante-, fore-, front-, pre-, pro-, north''||'''zatim'''....''antechamber''<br> '''zamimuf'''....''foremast''<br> '''zagab'''....''prefix''<br> '''zajuber'''....''procrastinate''<br>'''zamer'''....''north''
|-
|'''zao-'''....''back-and-forth, front-and-back''||'''zaopaser'''....''wobble''<br> '''zaokuper'''....''slalom''<br> '''zaopyoser'''....''pendulate''
|-
|'''zay-'''....''forth-, pro-, forward, ahead''||'''zaypuyser'''....''skip ahead''<br> '''zaypuxer'''....''propel''<br> '''zayper'''....''go forward, procede''<br> '''zayupea'''....''forthcoming''
|-
|'''ze-'''....''mid-, central, medio-''||'''zetej'''....''midlife''<br> '''zepoxer'''....''interrupt, stop midway''<br> '''zetem'''....''central hall''
|-
|'''zey-'''....''cross-, meta-, over-, trans-, across''||'''zeyper'''....''transit, get across''<br> '''zeynod'''....''crosspoint''<br> '''zeytyun'''....''metaphor''
|-
|'''zi-'''....''right, east, dextro-''||'''zim'''....''right side''<br>'''zimera'''....''eastern''
|-
|'''zo-'''....''back-, hind-, retro-, south''||'''zotib'''....''back''<br> '''zotiub'''....''hindquarters''<br> '''zonapa'''....''retrograde''<br>'''zomer'''....''south''
|-
|'''zoy-'''....''back-, retro-, re-''||'''zoyper'''....''recede, go back''<br> '''zoybeler'''....''carry back''<br> '''zoyzyublen'''....''backspin''
|-
|'''zu-'''....''left-, west-''||'''zutinut'''....''leftist''<br> '''zukum'''....''left side''<br>'''zumera'''....''western''
|-
|'''zui-'''....''left-and-right, zig-zag, east-west''||'''zuibyoser'''....''dangle, hang left-and-right''<br> '''zuiper'''....''zigzag''<br> '''zuituyaba'''....''ambidextrous''<br>'''zuimera'''....''east-west''
|-
|'''zya-'''....''-wide, wide-, broad-, all about''||'''zyauber'''....''broadcast''<br> '''zyateaba'''....''wide-eyed''<br> '''zyasauna'''....''general''<br> '''zyapoper'''....''cruise, wander''<br> '''zyamira'''....''global, worldwide''
|-
|'''zye-'''....''per-, thorough-, thru-, trans-''||'''zyetejer'''....''live through, experience''<br> '''zyeteaxer'''....''peruse''<br> '''zyeteatyafwa'''....''transparent''<br> '''zyemep'''....''thoroughfare''<br> '''zyeper'''....''permeate, transit''
|-
|'''zyo-'''....''narrow, steno-'' || '''zyotepa'''....''narrow-minded''<br>'''zyoteat'''....''tunnel vision''<br>'''zyoyija'''....''stenopeic''
|-
|'''zyu-'''....''cyclo-, rot-, round-, gyro''||'''zyutim'''....''rotunda''<br> '''zyusem'''....''roundtable''<br> '''zyuper'''....''cycle, gyrate, rotate''
|}
==== Suffixes ====
: Mirad has semantic stub suffixes, derivational suffixes, and normal semantic suffixes.
: '''Semantic Stub Suffixes'''
:: Semantic stub suffixes are generally formed from the last letters of a base word minus the initial consonant. They serve to put a word into some category, such as liquid, place, person, or material.
{| class="wikitable sortable" style="background:lightyellow;{{text default color}};margin-left:4.8em; font-size:smaller"
|+ Semantic Stub Suffixes
|- style="vertical-align:top;"
! Suffix Stub !! Suffix Full Form !! Suffixed Example < Base Word
|-
| '''-il'''....''liquid, drink'' || '''mil'''....''water'' || '''teab<u>il</u>'''....''tear'' < '''teab'''....''eye''<br>'''teub<u>il</u>'''....''saliva'' < '''teub'''....''mouth''<br>'''tayeb<u>il</u>'''....''sweat'' < '''tayeb'''....''skin''<br>'''mam<u>il</u>'''....''rain'' < '''mam'''....''sky''
|-
| '''-al'''....''gas'' || '''mal'''....''air'' || '''tieb<u>al</u>'''....''breath'' < '''tieb'''....''lung''
|-
| '''-(e)l'''....''food'' || '''tel'''....''food'' || '''sup<u>el</u>'''....''pork'' < '''<u>sup</u>et'''....''swine''<br>'''ta<u>ol</u>''' < '''taob'''....''flesh''<br>'''fe<u>l</u>''' < '''feb'''....''fruit''
|-
| '''-ul'''....''stuff'' || '''mul'''....''substance'' || '''vix<u>ul</u>'''....''cosmetic'' < '''vix-'''....''to beautify''<br>'''bek<u>ul</u>'''....''medecine'' < '''bek'''....''treatment''
|-
| '''-yel'''....''oil, gel, wax, pulp'' || '''yel'''....''oil'' || '''olf<u>yel</u>'''....''olive oil'' < '''olfeb'''....''olive''<br>'''appelat<u>yel</u>'''....''wax'' < '''appelat'''....''bee''<br>'''mag<u>yel</u>'''....''grease'' < '''mag'''....''fire''<br>'''bek<u>yel</u>'''....''salve'' < '''bek'''....''treatment''<br>'''meg<u>yel</u>'''....''cement'' < '''meg'''....''stone''<br>'''yan<u>yel</u>'''....''paste'' < '''yan'''....''together''
|-
| '''-am'''....''house'' || '''tam'''....''house'' || '''apat<u>am</u>'''....''chicken coop'' < '''apat'''....''chicken''<br>'''apellat<u>am</u>'''....''beehive'' < '''apellat'''....''bee''<br>'''melyex<u>am</u>'''....''farmhouse'' < '''melyex'''....''agriculture''<br>'''datib<u>am</u>'''....''hostel'' < '''datib'''....''guest-reception''
|-
| '''-(e)m'''....''place'' || '''nem'''....''place'' || '''vobyex<u>em</u>'''....''plantation, farm'' < '''vob'''....''plant'' + '''yex'''....''work''<br>'''vab<u>em</u>'''....''field'' < '''vab'''....''grass''<br>'''ab<u>em</u>'''....''top, surface'' < '''ab'''....''above, upper''<br>'''ze<u>m</u>'''....''middle'' < '''ze(a)'''....''middle'' <br> '''tim'''....''room''
|-
| '''-im'''....''room'' || '''tim'''....''room'' || '''tul<u>im</u>''' < '''tul'''....''cuisine''<br>'''tuj<u>im</u>'''....''bedroom'' < '''tuj'''....''sleep''
|-
| '''-um'''....''cell, booth'' || '''tum'''....''compartment''|| '''pex<u>um</u>'''....''cage'' < '''pexer'''....''catch''<br>'''ilzyapux<u>um</u>'''....''shower stall'' < '''ilzyapux'''....''shower''
|-
| '''-yem'''....''space'' || '''nyem'''....''enclosure'' || '''yom<u>yem</u>'''....''icebox'' < '''yom'''....''ice''
|-
| '''-yeb'''....''container'' || '''nyeb'''....''container'' || '''z<u>yeb</u>'''....''bottle'' < '''zye(f)'''....''glass''<br>'''vos<u>yeb</u>'''....''vase'' < '''vos'''....''flower''
|-
| '''-of'''....''material'' || '''nof'''....''cloth'' || '''t<u>of</u>'''....''clothes'' < '''t-'''....''human''<br>'''mis<u>of</u>'''....''curtain'' < '''mis'''....''window''<br>'''fa<u>of</u>'''....''wood'' < '''fa(b)-'''....''tree''<br>'''tay<u>of</u>'''....''leather'' < '''tayo(b)'''....''skin''
|-
| '''-ov'''....''linen'' || '''nov'''....''linen'' || '''tey<u>ov</u>'''....''collar'' < '''teyob'''....''neck''
|-
| '''-ar'''....''instrument'' || '''sar'''....''tool'' ||'''p<u>ar</u>'''....''cart'' < '''p-'''....''motion''<br>'''zyup<u>ar</u>'''....''rotor'' < '''zyup'''....''turn''<br>'''gobr<u>ar</u>'''....''knife'' < '''gobrar'''....''cut''<br>'''jwob<u>ar</u>'''....''watch'' < '''jwob'''....''hour''
|-
| '''-ir'''....''machine'' || '''sir'''....''machine'' || '''dr<u>ir</u>'''....''typewriter'' < '''dr-'''....''write''<br>'''gwob<u>ir</u>'''....''clock''
|-
| '''-ur'''....''large machine'' || '''sur'''....''engine'' || '''p<u>ur</u>'''....''car''<br>'''jwob<u>ur</u>'''....''grandfather clock'' < '''jwob'''....''hour''
|-
| '''-(u)n'''....''thing'' || '''sun'''....''thing'' || '''d<u>un</u>'''....''word'' < '''d-'''....''utter, say''<br>'''gofr<u>un</u>'''....''piece, scrap'' < '''gofrer'''....''rip, shread, tear''<br>'''zyi<u>un</u>'''....''plaque, plate'' < '''zyia'''....''flat''<br>'''vyu<u>n</u>'''....''spot'' < '''vyua'''....''dirty''
|-
| '''-on'''....''abstract thing'' || '''son'''....''issue'' || '''yov<u>on</u>'''....''tort, wrong'' < '''yov'''....''guilt''
|-
| '''yen'''....''manner, kind'' || '''byen'''....''manner'' || '''tex<u>yen</u>'''....''opinion'' < '''tex'''....''thought''<br>'''hi<u>yen</u>'''....''this way, thus'' < '''hi-'''....''this''<br>'''es<u>yen</u>'''....''status'' < '''es-'''....''exist''
|-
| '''-in'''....''-ism'' || '''tin'''....''doctrine'' || '''tot<u>in</u>'''....''theism, religion'' < '''tot-'''....''god''<br>'''Krist<u>in</u>'''....''Christianity'' < '''Krist'''....''Christ''<br>'''vyisat<u>in</u>'''....''puritanism'' < '''vysiat'''....''puritan, clean person''<br>'''oytof<u>in</u>'''....''nudism'' < '''oytofa'''....''nude''
|-
| '''-ufyeg'''....''cylinder'' || '''mufyeg'''....''pipe'' || '''man<u>ufyeg</u>'''....''candle'' < '''man'''....''light''<br>'''tiib<u>ufyeg</u>'''....''artery'' < '''tiib'''....''heart''<br>'''mil<u>ufyeg</u>'''....''toilet'' < '''mil'''....''water''<br>'''mov<u>ufyeg</u>'''....''cheminee'' < '''mov'''....''smoke''
|-
| '''-ab'''....''government'' || '''dab'''....''government'' || '''dit<u>ab</u>'''....''democracy'' < '''dit'''....''citizen''
|-
| '''-eb'''....''leader'' || '''deb'''....''leader'' || '''x<u>eb</u>'''....''boss'' < '''x-'''....''do''<br>'''tam<u>eb</u>'''....''master of the house'' < '''tam'''....''house''
|-
| '''-ub'''....''branch'' || '''tub'''....''arm'' || '''pat<u>ub</u>'''....''wing'' < '''pat'''....''bird''
|-
| '''-ad'''....''language'' || '''-a''' + '''d(alzeyn)'''....''language'' || '''Frans<u>ad</u>'''....''French (language)''
|-
| '''-uz'''....''jewelry'' || '''nuz'''....''jewel'' || '''teyob<u>uz</u>'''....''necklace'' < '''teyob'''....''neck''<br>'''teeb<u>uz</u>'''....''earring'' < '''teeb'''....''ear''
|-
| '''-u(er)'''....''give'' || '''buer'''....''give'' || '''tiebal<u>u</u>er'''....''exhale'' < '''tieb'''....''lung'' + '''al'''....''air''
|-
| '''-i(er)'''....''take'' || '''bier'''....''take'' || '''tiebal<u>i</u>er'''....''inhale'' < '''tieb'''....''lung'' + '''al'''....''air''
|-
| '''-ui(er)'''....''exchange'' || '''buier'''....''exchange'' || '''tiebal<u>u</u>ier'''....''breathe'' < '''tieb'''....''lung'' + '''al'''....''air''
|}
==== Derviational Suffixes ====
::: Mirad has only a few derivational suffixes, i.e. suffixes that change the part of speech.
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:4.8em; font-size:smaller"
|+ Derivational Suffixes
|-
! Derivational<br>Suffix !! Function || Base Word <br><br>--> Suffixed<br>Derivation
|-
| '''-er''' || Noun <br>--> Verbal Infinitive || '''sag'''....''count'' <span style="font-size:120%"><br>--></span> '''sag<u>er</u>'''....''to count''
|-
| '''-n''' || Present Tense Verb <br>--> Verbal Noun (Gerund)<br>Adjective <br>--> Abstract Noun || '''yexe'''....''(he/she/...) works'' <span style="font-size:120%"><br>--></span> '''yexe<u>n</u>'''....''working''<br>'''via'''....''beautiful'' <span style="font-size:120%"><br>--></span> '''via<u>n</u>'''....''beauty''<br>'''yuba'''....''near'' <span style="font-size:120%"><br>--></span> '''yuba<u>n</u>'''....''proximity, nearness''
|-
| '''-a''' || Noun <br>--> Adjective<br>Active Verb<br>--> Verbal Adjective (Present Participle)<br>Past Passive Verb <br>--> Perfect Passive Participle (Adjective)||'''mor'''....''universe'' <span style="font-size:120%"><br>--></span> '''mor<u>a</u>'''....''universal''<br>'''ake'''....''wins'' <span style="font-size:120%"><br>--></span> '''ake<u>a</u>'''....''winning''<br>'''teatwa'''....''was seen'' <span style="font-size:120%"><br>--></span>'''teatwa<u>a</u>''' (or, shortened to: '''teatw<u>a</u>'''....''seen'')
|-
| '''-ya''' || INTRANSITIVE VERB STEM <br>--> PAST ACTIVE PARTICIPLE || '''ip-'''....''go away'' <span style="font-size:120%"><br>--></span> '''ip<u>ya</u>'''....''gone away''
|-
| '''-yea''' || VERB STEM <br>--> HABITUAL PRESENT PARTICIPLE (ADJECTIVE) || '''zaypas-'''....''progress'' <span style="font-size:120%"><br>--></span> '''zaypas<u>yea</u>'''....''progressive''
|-
| '''-y''' || ADJECTIVE <br>--> ADVERB || '''iga'''....''quick'' <span style="font-size:120%"><br>--></span> '''iga<u>y</u>'''....''quickly''<br>'''tea-'''....''knowing''<span style="font-size:120%"><br>--></span>'''tea<u>y</u>'''....''knowingly''
|-
| '''-ut''' || VERB STEM <br>--> ANIMATE AGENT NOUN ''one who Xes, -er'' || '''ak-'''....''win'' <span style="font-size:120%"><br>--></span> '''ak<u>ut</u>''' ....''winner''
|-
| '''-us''' || VERB STEM <br>--> INANIMATE AGENT NOUN ''thing that Xes, -er'' || '''gol-'''....''divide'' <span style="font-size:120%"><br>--></span> '''gol<u>us</u>''' ....''divisor''
|-
|- '''-t''' || ADJECTIVE <br>--> ANIMATE NOUN (human, one who is...) || '''yibtrawa'''....''well-known'' <span style="font-size:120%">-<br>--></span>'''yibtrawa<u>t</u>'''....''celebrity''
|-
|- '''-s''' || ADJECTIVE <br>--> INANIMATE NOUN (thing, something X) || '''otwa'''....''unknown'' <span style="font-size:120%"><br>--></span>'''otwa<u>s</u>'''....''mystery''
|}
::: <small>*Derivational affixes change the part of speech of a base word, whereas inflexional affixes change the status of a word within a grammatical paradigm. Verb tense/mood/voice affixes and the plural marker '''-i''' fall under the latter category.</small>
==== Normal Semantic Suffixes====
:* Augmentative Suffixes
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Augmentative Suffixes
|-
! Augmentative Suffix !! Base Word !! Suffixed Derivation
|-
| '''-ag''' (augmentative) || '''tam'''....''house'' || '''tamag'''....''mansion''
|-
| '''-ayg''' (affectionate augmentative) || '''sem'''....''chair'' || '''semayg'''....''big old chair''
|-
| '''-yag''' (pejorative augmentative) || '''apet'''....''horse'' || '''apetyag'''....''nag''
|}
:* Diminutive Suffixes
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:4.8em; font-size:smaller"
|+ Diminutive Suffixes
|-
! Diminutive Suffix !! Base Word !! Suffixed Derivation
|-
| '''-og''' (diminutive) || '''tam'''....''house'' || '''tamog'''....''hut''
|-
| '''-oyg''' (affectionate diminutive) || '''tam'''....''house'' || '''tamoyg'''....''cottage''
|-
| '''-yog''' (pejorative diminutive) || '''tam'''....''house'' || '''tamyog'''....''shack''
|-
| '''-et''' (a smaller person) || '''twob'''....''man'' || '''twobet'''....''boy''
|-
| '''-es''' (thing of lesser importance) || '''nas'''....''money'' || '''nases'''....''change, coin''
|-
| '''-ud''' (child of, offspring) || '''tob'''....''man'' || '''tobud'''....''infant''
|}
:* Semantic Adjectival Suffixes
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:4.8em; font-size:smaller"
|+ Semantic Adjectival Suffixes
|-
! Adjectival Suffix !! Meaning !! Base Word !! Suffixed Derivation
|-
| '''-a''' || '''mor'''....''universe'' || ''related to, -al, -ic'' || '''mora'''....''universal''
|-
| '''-aya''' || '''miek'''....''dust'' || ''full of, -ous, -y'' || '''miekaya'''....''dusty''
|-
| '''-oya''' || '''vyun'''....''spot'' || ''empty of, -less, -free'' || '''vyunoya'''....''spotless''
|-
| '''-ika''' || '''miek'''....''dust'' || ''full of, -ous, -y'' || '''miekika'''....''dusty''
|-
| '''-uka''' || '''miek'''....''dust'' || ''empty of, -less, -free'' || '''miekuka'''....''dust-free''
|-
| '''-yea''' || '''vyod'''....''lie'' || ''given to doing X, -ive'' || '''vyodyea'''....''mendacious, given to lying''
|-
| '''-yena''' || '''tat'''....''angel'' || ''like, -ly, -ic'' || '''tatyena'''....''angelic''
|}
:* Other Semantic Suffixes
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:4.8em; font-size:smaller"
|+ Other Semantic Suffixes
|-
! Suffix !! Base Word || Derivation
|-
| '''-tun'''....''science, ...ology'' || '''tej'''....''life'' || '''tej<u>tun</u>'''....''biology''
|-
| '''-tut'''....''-ologist, expert, -ist'' || '''dar'''....''language'' || '''dar<u>tut</u>'''....''linquist''
|-
| '''-tuin'''....''theory'' || '''tob'''....''mar'' || '''mar<u>tuin</u>'''....''astrology''
|-
| '''-yan'''....''collection, aggregate'' || '''fab'''....''tree''|| '''fab<u>yan</u>'''....''forest''
|-
|'''-tyen'''....''trade, -ics'' || '''sir'''....''machine'' || '''sir<u>tyen</u>'''....''mechanics''
|-
| '''-if'''....''pet name'' || '''twed'''....''father'' || '''twed<u>if</u>'''....''papa''
|-
| '''ifa'''....''-philic, -loving'' || '''dyes'''....''book'' || '''dyes<u>ifa</u>'''....''bibliophilic''
|-
| '''ifwa'''....''liked by'' || '''tyod'''....''people'' || '''tyod<u>ifwa</u>'''....''popular''
|-
| '''ufa'''....''-phobic, -hating'' || '''toyb'''....''woman'' || '''toyb<u>ufa</u>'''....''misogynous''
|-
| '''ufwa'''....''hated by'' || '''tyod'''....''people'' || '''tyod<u>ufwa</u>'''....''unpopular''
|-
| '''yafa'''....''able to'' || '''tyoyap-'''....''walk'' || '''tyoyap<u>yafa</u>'''....''ambulatory''
|-
| '''yafwa'''....''possible to'' || '''teat-'''....''see'' || '''teat<u>yafwa</u>'''....''visible''
|-
| '''yofa'''....''unable to'' || '''teat-'''....''see'' || '''teat<u>yofa</u>'''....''blind''
|-
| '''yofwa'''....''impossible to'' || '''dye-'''....''read'' || '''dye<u>yofwa</u>'''....''illegible''
|-
| '''yika'''....''hard of...ing'' || '''teet-'''....''hear'' || '''teet<u>yika</u>'''....''hard of hearing''
|-
| '''yikwa'''....''hard to'' || '''teet-'''....''hear'' || '''teet<u>yikwa</u>'''....''hard to hear''
|-
| '''yuka'''....''easy at...ing'' || '''vatex-'''....''believe'' || '''vatex<u>yuka</u>'''....''gullible''
|-
| '''yukwa'''....''easily...ed'' || '''test-'''....''understand'' || '''test<u>yukwa</u>'''....''easily understood''
|-
| '''yufa'''....''fearful of, -phobic'' || '''tot'''....''god'' || '''tot<u>yufa</u>'''....''god-fearing''
|-
| '''yufwa'''....''feared'' || '''hyat'''....''everybody'' || '''hyat<u>yufwa</u>'''....''feared by all''
|-
| '''yiva'''....''free to'' || '''kebi-'''....''choose'' || '''kebi<u>yiva</u>'''....''free to choose''
|-
| '''efa'''....''needful of'' || '''tel'''....''food'' || '''tel<u>efa</u>'''....''hungry''
|-
| '''efwa'''....''necessary to'' || '''tej'''....''life'' || '''tej<u>efa</u>'''....''vital''
|-
| '''yefa'''....''duty-bound to, -worthy of'' || '''dud'''....''answer'' || '''dud<u>yefa</u>'''....''responsible''
|-
| '''yefwa'''....''due, -worthy of'' || '''fid-'''....''laud'' || '''fid<u>yefwa</u>'''....''praiseworthy''
|-
| '''afa'''....''authorized to'' || '''dokebi-'''....''vote'' || '''dokebi<u>afa</u>'''....''franchised''
|-
| '''ofwa'''....''prohibited to'' || '''movi-'''....''smoke'' || '''movi<u>ofwa</u>gonem'''....''no-smoking zone''
|-
| '''yiva'''....''free to'' || '''kebi-'''....''choose'' || '''kebi<u>yiva</u>'''....''free to choose''
|-
| '''yivwa'''....''free to be ...ed'' || '''kebi-'''....''choose'' || '''kebi<u>yivwa</u>'''....''optional''
|-
| '''yuva'''....''bound'' || '''tam'''....''house'' || '''tam<u>yuva</u>'''....''house-bound''
|-
| '''ova'''....''resistant, anti-'' || '''aagdovyab'''....''constitution'' || '''aagdovyab<u>ova</u>'''....''anti-constitutional''
|-
| '''ava'''....''in favor of, pro-'' || '''tyodab'''....''democracy'' || '''tyodab<u>ava</u>'''....''pro-democracy''
|-
| '''eva'''....''neutral'' || '''toos'''....''gender'' || '''toos<u>eva</u>'''....''gender-neutral''
|}
==== Inflectional Suffixes ====
: Mirad has only one noun inflectional suffix, namely, '''i''', which makes a singular noun plural:
::* '''tam'''....''house'' --> '''tam<u>i</u>'''....''houses''
: The only other inflectional affixes are the following verb infixes and suffixes:
::* '''-er'''....infinitive
::* '''-e'''....present tense
::* '''-a'''....past tense
::* '''-o'''....future tense
::* '''-u'''....conditional/hypothetical/imperative
::* '''-e-'''....''progressive aspect''
::* '''-a-'''....''perfect aspect''
::* '''-o-'''....''immediate aspect''
::* '''-y-'''....''active voice''
::* '''-w-'''....''passive voice''
: Examples:
:* '''Wit tuj<u>eya</u> hoj van at pua.'''....''He <u>was sleeping</u> when I arrived.''
::* '''-e-''' = progressive aspect infix
::* '''-y-''' = active voice infix
::* '''-a''' = past tense suffix
:* '''Et oyebux<u>awu</u>.'''....''You <u>would have been</u> expelled.''
::* '''-a-''' = perfect aspect
::* '''-w-''' = passive voice
::* '''-u''' = conditional/hypothetical/imperative
=== Rule #3: Ordinal Vowel Scaling ===
: Creating a hierarchy of scalar terms applies only to base words of the Group 1. The hierarchy of scalar terms is built by increasing the numeric value of the ordinal vowel of the base word as the importance or relevance of the word decreases from the topmost, zeroth object. This process is called '''''first-level ordinal scaling'''''.
==== First-level Ordinal Scaling ====
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller"
|+ First-level Ordinal Scaling
|- style="vertical-align:top;"
! ORDINAL VOWEL !! t...b !! m...r !! j...b !! m...s !! t...m !! d...b || f...b || s...m || d...t || t...d
|-
!row=1| '''o''' = 0
|'''tob'''<br>''man'' || '''mor'''<br>''universe'' || '''job'''<br>''time'' || '''mos'''<br>''floor''|| '''tom'''<br>''building'' || '''dob'''<br>''state'' || '''fob'''<br>''plant'' || '''som'''<br>''furniture''||'''dot'''<br>''society''||'''tod'''<br>''family''
|-
!row=1| '''a''' = 1
|'''tab'''<br>''body'' || '''mar'''<br>''sun'' || '''jab'''<br>''year'' || '''mas'''<br>''wall'' || '''tam'''<br>''house'' || '''dab'''<br>''government'' || '''fab'''<br>''tree'' || '''sam'''<br>''armoire''||'''dat'''<br>''friend'' || '''tad'''<br>''spouse''
|-
!row=1| '''e''' = 2
|'''teb'''<br>''head'' || '''mer'''<br>''planet'' || '''jeb'''<br>''season''|| '''mes'''<br>''door'' || '''tem'''<br>''hall'' || '''deb'''<br>''leader'' || '''feb'''<br>''fruit'' || '''sem'''<br>''table''||'''det'''<br>''associate'' || '''ted'''<br>''parent''
|-
!row=1| '''i''' = 3
|'''tib'''<br>''trunk'' || '''mir'''<br>''earth'' || '''jib'''<br>''month'' || '''mis'''<br>''window'' || '''tim'''<br>''room'' || '''dib'''<br>''office'' || '''fib'''<br>''tree trunk'' || '''sim'''<br>''chair''||'''dit'''<br>''citizen'' || '''tid'''<br>''sibling''
|-
!row=1| '''u''' = 4
|'''tub'''<br>''arm'' || '''mur'''<br>''moon'' || '''jub'''<br>''day'' || '''mus'''<br>''stairs'' || '''tum'''<br>''cell'' || '''dub'''<br>''minister'' || '''fub'''<br>''branch'' || '''sum'''<br>''bed''||'''dut'''<br>''gentleperson'' || '''tud'''<br>''child''
|-
!row=1| '''yo''' = 5
|'''tyob'''<br>''leg'' || || '''jyob*'''<br>''hour'' || || || || '''fyob'''<br>''root'' || || || '''tyod'''<br>''people''
|}
::: <small>* The palatal glide '''y''' in these words, which follows a palatal '''j''' is hard to pronounce, so the '''y''' is replaced with a '''w''', giving '''jwob''', '''jwab''', and '''jweb'''.</small>
==== Second-level Ordinal Scaling ====
:: A second-level hierarchy of scalar words can be creating by adding an ordinal vowel immediately after a word's stem vowel.
::: Examples:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:4.8em; font-size:smaller"
|+ Second-level Ordinal Scaling
|-
! '''mi...p''' !! '''me...p''' !! '''tu...b''' !! '''tyo...b'''!! '''ma...f''' !! '''me...g''' !! '''do...b'''
|-
| '''mip'''<br>''river'' || '''mep'''<br>''way'' || '''tub'''<br>''arm'' || '''tyob'''<br>''leg'' || '''maf'''<br>''cloud'' || '''meg'''<br>''stone'' || '''dob'''<br>''state''
|-
| '''mi<u>a</u>p'''<br>''stream'' || '''meap'''<br>''road'' || '''tuab'''<br>''shoulder'' || '''tyoab'''<br>''hip''|| '''maaf'''<br>''stratus'' || '''meag'''<br>''marble'' || '''doab'''...''fatherland''
|-
| '''mi<u>e</u>p'''<br>''brook'' || '''meep'''<br>''path'' || '''tueb'''<br>''upper arm'' || '''tyoeb'''<br>''thigh''|| '''maef'''<br>''cumulus'' || '''meeg'''<br>''slate'' || '''doeb'''<br>''province, state''
|-
| '''mi<u>i</u>p'''<br>''rivulet'' || '''meip'''<br>''trail'' || '''tuib'''<br>''elbow'' || '''tyoib'''<br>''knee''|| '''maif'''<br>''stratocumulus'' || '''meig'''<br>''granite'' || '''doib'''<br>''county, shire''
|-
| '''mi<u>u</u>p'''<br>''torrent'' || '''meup'''<br>''track'' || '''tuub'''<br>''forearm'' || '''tyoub'''<br>''shin''|| '''mauf'''<br>''cumulonimbus'' || '''meug'''<br>''clay, dough'' || '''doub'''<br>''district''
|-
| '''mi<u>yo</u>p'''<br>''trickle'' || || '''tuyob'''<br>''wrist'' || '''tyoyob'''<br>''ankle''||'''mayof'''<br>''nimbostatus'' || '''meyog'''<br>''china'' ||
|-
| || || '''tu<u>ya</u>b'''<br>''hand'' || '''tyoyab'''<br>''foot''||'''mayaf'''<br>''altostratus'' || '''meyag'''<br>''chalk'' ||
|-
| || || '''tu<u>ye</u>b'''<br>''fist'' || '''tyoyeb'''<br>''heel''|| '''mayef'''<br>''altocumulus'' || '''meyeg'''<br>''limestone'' ||
|-
| || || '''tu<u>yi</u>b'''<br>''palm'' || '''tyoyib'''<br>''sole''|| '''mayif'''<br>''cirrus'' || '''meyig'''<br>''alabaster'' ||
|-
| || || '''tu<u>yu</u>b'''<br>''finger'' || '''tyoyub'''<br>''toe''|| '''mayuf'''<br>''cirrostratus'' || '''meyug'''<br>''gypsum''||
|-
| || || '''tu<u>lo</u>b'''<br>''fingernail'' || '''tyolob'''<br>''toenail''||'''malof'''<br>''cirrocumulus'' ||
|}
==== Third-level Ordinal Scaling ====
::: A third-level hierarchy can be created by prefixing an ordinal number vowel to the word.
::: Example:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:4.8em; font-size:smaller"
|+ Third-level Ordinal Scaling
|-
! '''tuyub'''....''finger''
|-
| '''<u>a</u>tuyub'''....''thumb''
|-
| '''<u>e</u>tuyub'''....''index''
|-
| '''<u>i</u>tuyub'''....''middle finger''
|-
| '''<u>u</u>tuyub'''....''ring finger''
|-
| '''<u>yo</u>tuyub'''....''pinky''
|}
::: So, to sum up, we have:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:6.4em; font-size:smaller"
|+ Summary of Scaling
|-
! '''t...b''' !! '''tob''' = ''human being''
|-
| FIRST-LEVEL || '''tub'''....''arm''
|-
| SECOND-LEVEL || '''tuyub'''....''finger''
|-
| THIRD-LEVEL || '''atuyub'''....''thumb''
|}
==== Scaling with Prefixed Numbering ====
::: We can also obtain a very convenient classification for new words by prefixing an ordinal vowel even though there is no first-level or second-level numbering. In this case, the first level usually begins with '''a'''.
::: Example:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:4.8em; font-size:smaller"
|+ Prefix Numbering
|-
! style="text-align:left"| NUMBER || '''dob'''....''state'' !! '''deb'''....''leader'' !! '''mez'''....''gem'' !! '''mer'''....''planet'' || '''maf'''....''cloud'' || '''sagtun'''....''mathematics''
|-
! 1
| '''<u>a</u>dob'''....''empire'' || '''adeb'''....''emperor'' || '''amez'''....''diamond'' || '''Amer'''....''Mercury'' || '''amaf'''....''nimbus'' || '''asagtun'''....''arithmetic''
|-
! 2
| '''<u>e</u>dob'''....''kingdom'' || '''edeb'''....''king'' || '''emez'''....''topaz'' || '''Emer'''....''Venus'' || '''emaf'''....''stratus'' || '''esagtun'''....''geometry''
|-
! 3
| '''<u>i</u>dob'''....''principality'' || '''ideb'''....''prince'' || '''imez'''....''ruby'' || '''Imer'''....''Earth'' || '''imaf'''....''nimbostatus'' || '''isagtun'''....''algebra''
|-
! 4
| '''<u>u</u>dob'''....''duchy'' || '''udeb'''....''duke'' || '''umez'''....''emerald'' ||'''Umer'''....''Mars'' || '''umaf'''....''cumulus'' || '''usagtun'''....''trigonometry''
|-
! 5
| '''<u>yo</u>dob'''....''marquisate'' || '''yodeb'''....''marquis'' || '''yomez'''....''saphire'' || '''Yomer'''....''Jupiter'' || '''yomaf'''....''cumulostatus'' || '''yosagtun'''....''calculus''
|-
! 6
| '''<u>ya</u>dob'''....''county'' || '''yadeb'''....''count'' || '''yamez'''....''lapis lazuli'' || '''Yamer'''....''Saturn'' || '''yamaf'''....''stratocumulus'' ||
|-
! 7
| '''<u>ye</u>dob'''....''dominion'' || '''yedeb'''....''lord'' || '''yemez'''....''amthyst'' || '''Yemer'''....''Uranus'' || '''yemaf'''....''altocumulus'' ||
|-
! 8
| '''<u>yi</u>dob'''....''viscounty'' || '''yideb'''....''viscount'' || '''yimez'''....''amber'' ||'''Yimer'''....''Pluto'' || '''yimaf'''....''altostratus'' ||
|-
! 9
| '''<u>yu</u>dob'''....''barony'' || '''yudeb'''....''baron'' || '''yumez'''....''topaz'' || || '''yumaf'''....''cirrocumulus'' ||
|-
! 10
| '''<u>alo</u>dob'''....''tribe'' || '''alodeb'''....''tribal chief'' || '''alomez'''....''opal'' || || '''alomaf'''....''cirrus'' ||
|}
=== Rule #4: Overlapping ===
: When combining two words, if the generic (final) consonant of the first word is the same as the classifier (first) consonant of the second word, the generic consonant of the determining word is dropped. This results in '''''overlapping''''' or a '''''portmanteau'''''.
: Examples:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Overlapping in Compounds
|-
! First Word !! Second Word !! Portmanteau
|-
| '''dom'''....''city'' || '''mep'''....''road'' || '''domep'''....''boulevard''
|-
| '''pat'''....''bird'' || '''teub'''....''mouth'' || '''pateub'''....''beak''
|-
| '''pat'''....''bird'' || '''tub'''....''arm'' || '''patub'''....''wing''
|-
| '''teupib'''....''tooth'' || '''byok'''....''pain'' || '''teypibyok'''....''toothache''
|}
: In some cases, this type of overlapping can cause ambiguity, and is therefore avoided.
=== Rule #5: Adding Ordinal Vowels ===
: When forming a compound word with the words of a same family of terms, if the ordinal vowel is an '''o''', replace it with the ordinal vowel of the determinant word.
: Examples:
::* '''edob'''....''kingdom'' -> '''deb'''....''chief'' -> '''edeb'''....''monarch'' ('''edweb'''....''king'', '''edeyb'''....''queen'')
::* '''udob'''....''principality'' -> '''deb'''....''chief'' -> '''udeb'''....''prince'' ('''udweb'''....''prince'', '''udeyb'''....''princess'')
: By contrast, if the two words are already ordered, the vowel of the determinant (first word) is inserted between the ordinal vowel of the determined (second) word and the generic (final) consonant:
: Examples:
: '''mil'''....''water'' + '''mal'''....''air'' -> '''mial'''....''vapor, steam''
=== Rule #6: Swapping Generic Consonants ===
: When the generic (final) consonant of a base word is replaced by that of another base word, the entire family of the latter undergoes the transformation by the new generic consonant.
: Example:
<b>to<u>b</u></b> ⇘ (<b>-b</b> = <i>organism</i>)
(<b>t-</b> = <i>human</i>) ⇒ <b>tof</b>....<i>clothing, apparel</i>
(<b>n-</b> = <i>commercial</i>) ⇒ <b>nof</b>....<i>cloth, fabric</i>
<b>no<u>f</u></b> ⇗ (<b>-f</b> = <i>cloth</i>)
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:1.6em; font-size:smaller"
|+ Swapping Generic Consonants
|-
! Base Word 1 !! Base Word 2 !! Derived Word
|-
| '''tob'''....''human'' || '''nov'''....''linen'' || '''tov'''....''lingerie''
|-
| '''tab'''....''body'' || '''nof'''....''cloth'' || '''taf'''....''suit''
|-
| '''teb'''....''head'' || '''nof'''....''cloth'' || '''tef'''....''hat''
|-
| '''tib'''....''trunk'' || '''nof'''....''cloth'' || '''tif'''....''vest''
|-
| '''tyoyab'''....''foot'' || '''nof'''....''cloth'' || '''tyoyaf'''....''shoe''
|-
| '''tyoyab'''....''foot'' || '''nov'''....''linen'' || '''tyoyav'''....''sock''
|-
| '''tuyab'''....''hand'' || '''nof'''....''cloth'' || '''tuyaf'''....''glove''
|-
| '''doob'''<sup>*</sup>....''nation'' || '''nof'''....''cloth'' || '''doof'''....''flag''
|-
| '''taob'''<sup>*</sup>....''flesh'' || '''tol'''....''food'' || '''taol'''....''meat''
|}
:<small>* This is a derived, not base, word, but the principle holds.</small>
=== Rule #7: Marking Words for Gender ===
: Words in Mirad are neutral with respect to gender, but specifically masculine or feminine gender can be marked in nouns and pronouns with the use of the masculine infix '''w''' and the feminine infix '''y'''. If the noun or pronoun is animate, then gender can marked. If the noun or pronoun is inanimate, then it can be marked for predominate use by or reference to a male or female.
::* To make a neutral animate noun or pronoun specifically male, precede the ordinal (stem) vowel with '''w'''.
::* To make a neutral animate noun or pronoun specifically female, follow the ordinal (stem) vowel with '''y'''.
: Examples:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Marking Animate Nouns for Gender
|-
! Gender-Neutral !! Male !! Female
|-
| '''tob'''....''human being'' || '''twob'''....''man'' || '''toyb'''....''woman''
|-
| '''tobet'''....''young person'' || '''twobet'''....''boy'' || '''toybet'''....''girl''
|-
| '''ted'''....''parent'' || '''twed'''....''father'' || '''teyd'''....''mother''
|-
| '''it'''....''he/she/it'' || '''wit'''....''he'' || '''iyt'''....''she''
|-
| '''apat'''....''cock'' || '''apwat'''....''rooster'' || '''apayt'''....''hen''
|-
| '''toob'''....''gender'' || '''twoob'''....''male'' || '''tooyb'''....''female''
|}
::* Inanimate objects, such as items of clothing or body pats, can be "feminized" in a similar way. In such a case, the feminized form refers to an object that is for women, rather than men, eg.:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Making Inanimate Objects Female-related
|-
! Male-oriented or Neutral !! Female-oriented
|-
| '''taf'''....''suit'' || '''tayf'''....''dress''
|-
| '''tyoyav'''....''sock'' || '''tyoyayv'''....''stockings''
|-
| '''tiav'''....''shirt'' || '''tiayv'''....''blouse''
|}
::* Some body parts can be marked for maleness or femaleness:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Body Parts Genderized
|-
! Neutral !! Male-oriented !! Female-oriented
|-
| '''tilab'''....''breast'' || '''twilab'''....''male breast'' || '''tilayb'''....''female breast''
|-
| || '''twiyib'''....''testicals'' || '''tiyiyb'''....''ovary''
|-
| '''tiyub'''....''sexual organ'' || '''twiyub'''....''penis'' || '''tiyuyb'''....''vagina''
|}
::* In nouns that end in '''-ut''', the agentive suffix meaning ''-er, one who...'', the nouns can be feminized by changing '''-ut''' to '''-uyt''', eg. '''dezut'''....''actor'' -> '''dezuyt'''....''actress''. Because the stem of such words is often a verb, prefixing '''-ut''' with '''w''' to make it specifically male is normally not done, because the '''w''' can sometimes be confused with the passive voice marker. For this reason, a word like '''dezut''' can mean ''actor'' of neutral or male gender. However a word like '''dezut''' can be made specifically masculine by suffixing '''(t)wob''' (''man''), thus, '''dezutwob'''....''male actor''.
::* Animate nouns having the ending '''-et''' (smaller version of some person), are genderized by adding '''w''' or '''y''' to the semantic base of the word, eg. '''tobet'''....''child, youth'' -> '''toybet'''....''girl'' or '''twobet'''....''boy''.
=== Rule #8: Deriving Words with Geo-specific Vowels ===
: A series of related words can be derived from a Group 1 base word by replacing the ordinal vowel with one of the following vowels, which have certain specific geographic meanings.
: Geo-specific Vowels:
<div style="background: lightyellow;{{text default color}};">
::* '''o'''<span style="font-size:120%"> = </span>'''outer space, abstract object, initial stuff'''
::* '''a'''<span style="font-size:120%"> = </span>'''sky, air, gas'''
::* '''e'''<span style="font-size:120%"> = </span>'''land, soil, solid'''
::* '''i'''<span style="font-size:120%"> = </span>'''sea, water, liquid'''
::* '''u'''<span style="font-size:120%"> = </span>'''underground, mineral, concrete object, other'''
</div>
:: Examples:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Deriving Words with Geo-specific Vowels
|-
! !!'''m...p''' !! '''m...m''' !! '''d...p''' !! '''p...t''' !! '''m...l'''
|-
! Space
| '''mop'''....''orbit'' || '''mom'''....''space'' || '''dop'''....''military'' || '''pot'''....||'''mol'''....''nature''
|-
! Sky
| '''map'''....''wind'' || '''mam'''....''sky'' || '''dap'''....''air force'' || '''pat'''....''bird'' || '''mal'''....''air''
|-
! Land
| '''mep'''....''road''|| '''mem'''....''land''|| '''dep'''....''army'' || '''pet'''....''land animal'' || '''mel'''....''soil''
|-
! Water
| '''mip'''....''river''|| '''mim'''....''sea''|| '''dip'''....''marine force'' || '''pit'''....''fish'' || '''mil'''....''water''
|-
! Underground (or other)
| '''mup'''....''tunnel''|| '''mum'''....''underground'' || || || '''mul'''....''stuff''
|}
: This vowel codification also allows generating other categories of words by infixing, just before the generic (final) consonant, a vowel having the value that is attributed to it in Rule #9. This creates "hybrid" nouns. See the chapter on [[Mirad Grammar/Hybrids|Hybrids]] for more on this subject.
:: Examples:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Hybrid nouns
|-
! First-level Derivation !! + Geospecific Vowel !! Second-level Derivation
|-
| '''pet'''....''land animal'' || '''i'''....''water, sea''|| '''pe<u>i</u>t'''....''aquatic mammal''
|-
| '''pelt'''....''insect'' || '''a'''....''air, sky''|| '''pel<u>a</u>t'''....''flying insect''
|-
| '''mel'''....''soil'' || '''i'''....''water, sea'' || '''me<u>i</u>l'''....''mud''
|-
| '''mil'''....''water'' || '''a'''....''air, gas'' || '''mi<u>a</u>l'''....''vapor''
|}
=== Rule #9: Deriving Words with Vectorial Vowels ===
: The rule for deriving words with vectorial ( = directional and positional) vowels starts with the following schema:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:4.8em; font-size:smaller"
|+ Vectorial Vowel Values
|-
| colspan=8 style="text-align:center"| '''A'''
|-
| rowspan=6 style="text-align:center"| '''U''' || || '''a'''<br><span style="font-size:120%">↓</span> || <span style="font-size:120%">↓</span><br>'''<u>a</u>''' || <span style="font-size:120%">↑</span><br>'''<u>ya</u>''' ||'''ya'''<br>↑<span style="font-size:120%"></span> || || rowspan=6 style="text-align:center"| '''I'''
|-
| '''u''' → || || '''<u>e</u>'''||'''<u>ye</u>''' || || → '''i'''
|-
| → '''<u>u</u>''' || ||'''e''' ||'''ye''' || || '''<u>i</u>''' →
|-
| → '''<u>yu</u>''' || || colspan=2 align=center| '''E''' || || '''<u>yi</u>''' →
|-
| '''yu''' → || || || || || → '''yi'''
|-
| || <span style="font-size:120%">↑</span><br>'''o''' || '''<u>o</u>'''<br>↑<span style="font-size:120%"></span> || '''<u>yo</u>'''<br><span style="font-size:120%">↓</span> || <span style="font-size:120%">↓</span><br>'''yo''' ||
|-
| colspan=8 align=center| '''O'''
|}
:: Explanation of the above chart:
:::* If the vowel is capitalized, it indicates a '''''positional''''' value. It is used in its lowercase spelling as a prefix in Group I words.
:::* The non-capitalized vowels (including y-glides) indicate '''''directional''''' values.
:::* If the vowel is underlined, it means that it is placed '''''before''''' the classifier consonant (prefixed) in verbs and involves contact.
:::* Otherwise, a normal vowel means that it is placed '''''after''''' the classifier consonant (infixed) in Group 2 words and involves free movement.
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:4.8em; font-size:smaller" border="0"
|+ Explanation of the Vectorial Vowels Chart
|-
| '''A''' || position || || on, above, north || '''amer'''....''north''
|-
| '''a''' || movement || (free) || ''on'' || '''baer'''....''lean''
|-
| '''<u>a</u>''' || movement || (contact) || ''onto''||'''aber'''....''put on''
|-
| '''ya''' || movement || (free) || ''up, ascend''|| '''byaer'''....''lift''
|-
| '''<u>ya</u>''' || movement || (contact) || ''up, get up, set up''|| '''yaber'''....''raise''
|-
| '''O''' || position || || under, lower, south|| '''omer'''....''south''
|-
| '''o''' || movement || (free) || ''off''|| '''boer'''....''hang''
|-
| '''<u>o</u>''' || movement || (contact) || ''on the bottom of, underneath''|| '''oper'''....''get off''
|-
| '''yo''' || movement || (free) || ''down''|| '''pyoser'''....''fall''
|-
| '''<u>yo</u>''' || movement || (contact) || ''fall''|| '''yoper'''....''rise''
|-
| '''U''' || position || || left, west|| '''umer'''....''west''
|-
| '''u''' || movement || (free) || ''move toward the center, come''|| '''uber'''....''send''
|-
| '''<u>u</u>''' || movement || (contact) || ''reach the center, arrive''|| '''pyuer'''....''reach''
|-
| '''yu''' || movement || (free) || ''near, approach''|| '''yuber'''....''approach''
|-
| '''<u>yu</u>''' || movement || (contact) || ''near, reach''|| '''byuser'''....''touch''
|-
| '''I''' || position || || right, east|| '''imer'''....''east''
|-
| '''i''' || movement || (free) || ''from the center out, go away''|| '''pier'''....''go away''
|-
| '''<u>i</u>''' || movement || (contact) || ''from the center out, leave''|| '''iper'''....''leave''
|-
| '''yi''' || movement || (free) || ''away, go far''|| '''yiper'''....''go far''
|-
| '''<u>yi</u>''' || movement || (contact) || ''from afar, originate''|| '''pyiser'''....''originate''
|-
| '''E''' || position || || center, equator|| '''emer'''....''equator''
|-
| '''e''' || rest || || ''between''|| '''eb'''....''between''
|-
| '''<u>e</u>''' || rest || || ''at, stay, hold''|| '''bexer'''....''hold''
|-
| '''ye''' || movement || || ''in, into, enter''|| '''yeper'''....''enter''
|-
| '''<u>ye</u>''' || ||(contact) || ''up against, strike''|| '''pyexer'''....''strike''
|}
==== Special value of certain vowels ====
: The prefixes '''a-''' or '''an-''' meaning ''one, sole, singular'':
::* '''aot'''....''person, individual''
::* '''anota'''....''alone, solitary''
::* '''anay'''....''only''
::* '''aun'''....''unit''
: The prefixes '''ya-''' or '''yan-''' meaning ''collection, plural'':
::* '''yat'''....''we, us''
::* '''yanot'''....''constituent''
::* '''yanota'''....''communal''
::* '''yanotyan'''....''community''
::* '''yan'''....''together''
: Also, the prefix '''yan-''' meaning ''together'' contrasts with '''yon-'''....''apart''.
::* '''yon'''....''apart''
::* '''yanota'''....''communal'' vs. '''yonota'''....''private''
::* '''yanxer'''....''to combine'' vs. '''yonxer'''....''to separate''
=== Rule #10: Deriving Words with Mnemonic Patterns ===
: Sometimes part of a derived word can serve as a mnemonic pattern for forming other words having some relationship or parallelism in meaning.
: For example, the mnemonic '''eu''' pattern from the word for mouth, '''teud''' can be used to form many other words having an oral, acoustic, vocal, or sound-related meaning:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Mnemonic Pattern Derivation
|-
! Pattern Word<br>'''teub'''....''mouth'' !! Classifier !! Generic
|-
| '''teud'''....''shout'' || '''t''' = human || '''d''' = communication
|-
| '''teuz'''....''voice'' || '''t''' = human || '''z''' = art
|-
| '''deuz'''....''song'' || '''d''' = communication || '''z''' = art
|-
| '''seuz'''....''tone'' || '''s''' = thing || '''z''' = art
|-
| '''seux'''....''sound'' || '''s''' = thing || '''x''' = action
|-
| '''xeus'''....''noise'' || '''x''' = action || '''s''' = thing
|-
| '''teuf'''....''muzzle'' || '''t''' = human || '''f''' = apparel
|-
| '''teuv'''....''mask'' || '''t''' = human || '''v''' = linen
|-
| '''teus'''....''taste''|| '''t''' = human || '''s''' = thing
|-
| '''deup'''....''rhythm''|| '''d''' = communication || '''p''' = ''motion''
|}
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ More Mnemonic Pattern Derivations
|-
! Pattern Word<br>'''teab'''....''eye'' !! '''(t)ea-''' = ''see'' !! Generic
|-
| '''teaper'''....''visit'' || " " " || '''p''' = ''go''
|-
| '''teader'''....''witness'' || " " " || '''d''' = ''say''
|-
| '''teaxer'''....''look'' || " " " || '''x''' = ''do''
|-
| '''teaser'''....''seem'' || " " " || '''s''' = ''be''
|-
| '''teater'''....''see'' || " " " || '''t''' = ''know''
|-
| '''keaxer'''....''scan'' || '''ke-''' = ''seek'' || '''x''' = ''do''
|-
| '''vyaleaxer'''....''check'' || '''vyal-''' = ''certain''|| '''x''' = ''do''
|-
| '''yoneater'''....''distinguish'' || '''yon-''' = ''apart''|| '''t''' = ''know''
|-
| '''beaxer'''....''guard'' || '''be-''' = ''hold'' || '''x''' = ''do''
|-
| '''teatier'''....''perceive'' || || '''-i-''' = subject-directed
|-
| '''teatuer'''....''show'' || || '''-u-''' = object-directed
|-
! Pattern Word<br>'''teeb'''....''ear'' !! '''(t)ee-''' = ''hear'' !! Generic
|-
| '''teeper'''....''attend'' || " " " || '''p''' = ''go''
|-
| '''teeder'''....''testify'' || " " " || '''d''' = ''say''
|-
| '''teexer'''....''listen'' || " " " || '''x''' = ''do''
|-
| '''teeser'''....''sound (like)'' || " " " || '''s''' = ''be''
|-
| '''teeter'''....''hear'' || " " " || '''t''' = ''know''
|-
| '''keexer'''....''scan (acoustically)'' || '''ke-''' = ''seek'' || '''x''' = ''do''
|-
| '''koteexer'''....''snoop on'' || '''ko-''' = ''hide'' || '''x''' = ''do''
|-
| '''vyaleexer'''....''sound out'' || '''vyal-''' = certain || '''x''' = ''do''
|-
| '''teetier'''....''get wind of'' || || '''-i-''' = subject-oriented
|-
| '''teetuer'''....''make heard'' || || '''-u-''' = patient-oriented
|-
| '''zyateetuer'''....''rumor'' || '''zya-''' = ''all around'' || '''-u-''' = patient-oriented
|}
: A syllable of a long compound can be suppressed as long as it does not cause ambiguity or confusion.
: Examples:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Shortening Long Compounds
|-
! Word 1 !! Word 2 !! Long Compound !! Shortened Compound
|-
| '''ekpet'''....''horse'' || '''teuder'''....''make a noise'' || *'''ekpeteuder''' || '''ekpeder'''....''neigh''
|-
| '''serpyet'''....''snake'' || '''teuder'''....''make a noise'' || *'''serpyeteuder''' || '''sepyeder'''....''hiss''
|-
| '''vifeyb'''....''grape'' || '''il'''....''liquid'' || *'''vifebil'''....''grape juice'' || '''vifil'''....''wine''
|-
| '''povob'''....''grain'' || '''il'''....''liquid'' || *'''povobil''' || '''povil'''....''beer''
|}
: Sometimes, the last syllable of a compound or last letters of a word will give birth to a new stubs whose derivations, through the application of this rule, will not be long.
: Examples:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ From Full Words to Stubs
|-
! Compound !! New Stub !! Derivation
|-
| '''tilabil'''....''breast milk'' || '''bil'''....''milk''|| '''bilyug'''....''butter''
|-
| '''fauf'''....''log'' || '''-uf'''....(stub suffix for types of) ''cylinder''|| '''muf'''....''rod, stick''
|-
| '''zyeg'''....''hole'' || '''-yeg'''....(stub suffix for types of) ''hole'', ''hollow thing''|| '''mufyeg'''....''pipe''
|}
: The clipped word '''bil''' now gives rise to other compounds:
::* '''bilyig'''....''cheese''
::* '''bilyigem'''....''cheese factory''
::* '''bilyug'''....''butter''
::* '''bilyugyena'''....''butter-like''
: The word '''mufyeg''' (Lit: hollow stick) means '''pipe, reed, cylinder'''
=== Rule #11: Deriving Nuanced Words Phonetically ===
: Words which follow Rule #11 are those that are connected by a similarity of meaning or quality. These words differ by nuances and it is phonetic nuances that govern their formation.
: These nuances are obtained by:
:* Addition of a subordinal vowel of the same type as the ordinal vowel.
:: These vowels are:
::: '''a''' for '''a''' and '''ya'''
::: '''e''' for '''e''' and '''ye'''
::: '''i''' for '''i''' and '''yi'''
::: '''o''' for '''o''' and '''yo'''
::: '''u''' for '''u''' and '''yu'''
:: Examples:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Creating Nuances with a Doubled Vowel
|-
! Word !! Nuanced Derivation
|-
| '''nad'''....''line'' || '''naad'''....''rail''
|-
| '''dob'''....''state'' || '''doob'''....''nation''
|-
| '''vyab'''....''rule'' || '''vyayab'''....''system''
|-
| '''boka'''....''sick'' || '''booka'''....''tired''
|-
| '''nog'''....''degree'' || '''noog'''....''phase''
|-
| '''bil'''....''milk'' || '''biil'''....''juice''
|}
:* Post-y-gliding the ordinal vowel or subordinal vowel, to produce a nuance of '''''less''''' intensity:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Deintensification with Post-y-gliding
|-
! Word !! Mitigated Derivation
|-
| '''ifer'''....''love'' || '''iyfer'''....''like''
|-
| '''iva'''....''happy'' || '''iyva'''....''glad''
|-
| '''zyutom'''....''tower'' || '''zyutoym'''....''turret''
|-
| '''ama'''....''hot'' || '''ayma'''....''warm''
|-
| '''oma'''....''cold'' || '''oyma'''....''cool''
|}
:* Pre-y-gliding the ordinal vowel or subordinal vowel, to produce a nuance of '''''greater''''' intensity:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Intensification with Pre-y-Gliding
|-
! Word !! Enhanced Derivation
|-
| '''pot'''....''wild animal'' || '''pyot'''....''predator animal''
|-
| '''pat'''....''bird'' || '''pyat'''....''bird of prey''
|-
| '''tod'''....''family'' || '''tyod'''....''people''
|-
| '''oma'''....''cold'' || '''yoma'''....''frozen''
|-
| '''nuxer'''....''pay'' || '''nyuxer'''....''deliver''
|-
| '''nexer'''....''save'' || '''nyexer'''....''store''
|-
| '''teb'''....''head'' || '''tyeb'''....''brain''
|-
| '''tep'''....''mind'' || '''tyep'''....''intellect''
|}
:* Following the ordinal vowel or the consonant with the intensifying liquid '''l''' or the further intensifying liquid '''r''':
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Intensification with L and R
|-
! Word !! L-Intensitifed || R-Intensified
|-
| '''ifer'''....''love'' || '''ifler'''....''be fond of'' || '''ifrer'''....''adore''
|-
| '''iva'''....''happy'' || '''ivla'''....''content'' || '''ivra'''....''delighted''
|-
| '''vaa'''....''affirmative'' || '''vlaa'''....''sure'' || '''vraa'''....''indubitable''
|-
| '''aga'''....''big'' || '''agla'''....''huge'' || '''agra'''....''immense''
|-
| '''ga'''....''more'' || '''gala'''....''multiple'' || '''gara'''....''exponential''
|-
| '''baer'''....''lean on'' || '''baler'''....''press'' || '''barer'''....''crush''
|-
| '''yexer'''....''work'' || '''yexler'''....''labor'' || '''yexrer'''....''toil, slave''
|-
| '''yixer'''....''use'' || '''yixler'''....''hire'' || '''yixrer'''....''exploit''
|}
:* Adding consonants other than '''l''' or '''r''' as the generic consonant:
: Some words have so many nuanced varieties that other letters like '''t''', '''f''', '''s''', '''k''', and '''z''' are used, eg.:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Creating Nuances with Other Consonants
|-
! Word !! Nuanced Derivation
|-
| '''fia'''....''good'' || '''fika'''....''perfect''<br>'''fira'''....''excellent''
|-
| '''fua'''....''bad'' || '''futa'''....''wicked''<br>'''fura'''....''rotten''
|-
| '''gea'''....''equal'' || '''geta'''....''identical''<br>'''gela'''....''alike''
|-
| '''vyaa'''....''true'' || '''vyaka'''....''correct''<br>'''vyama'''....''real''
|-
| '''vyoa'''....''false'' || '''vyoka'''....''incorrect''<br>'''vyoma'''....''fake''
|-
| '''yiga'''....''hard'' || '''yigza'''....''sour''<br>'''yigla'''....''brusk''<br>'''yigra'''....''brutal''
|-
| '''yuga'''....''soft'' || '''yugfa'''....''smooth''<br>'''yugla'''....''tender''<br>'''yugra'''....''mild''
|}
:* Transforming the generic consonant from voiced to unvoiced or vice versa:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Voicing or Devoicing Consonants for Nuance
|-
! Word !! Nuanced Derivation
|-
| '''nab'''....''row'' || '''nap'''....''order''
|-
| '''vyava'''....''just'' || '''vyafa'''....''precise''
|-
| '''jwab'''....''minute'' || '''jwap'''....''moment''
|-
| '''jweb'''....''second'' || '''jwep'''....''instant''
|-
| '''tab'''....''body'' || '''tap'''....''physique''
|-
| '''teb'''....''head'' || '''tep'''....''mind''
|-
| '''tob'''....''person'' || '''top'''....''soul, animus''
|-
| '''nov'''....''linen'' || '''nof'''....''cloth''
|-
| '''naz'''....''value'' || '''nas'''....''money''
|-
| '''nag'''....''dimension'' || '''nak'''...''unit of measurement''
|}
=== Rule #12: Reduplication ===
: Repeating a word, or '''''reduplication''''', is a way of intensifying it. Here are some examples of reduplication:
::* '''xeus'''....''noise'' --> '''xeusxeus'''....''racket, hubbub, uproar''
::* '''pas'''....''movement'' --> '''paspas'''....''commotion, bustle, tumult''
::* '''bas'''....''stir'' --> '''basbas'''....''brouhaha, ado, kerfuffle''
== Technical Nomenclature ==
: The sections below describe how techical vocabulary is developed in Mirad. In most cases, there are common, ordinary words, but these are supplemented with less common, technical terms that are usually somehow based on an international nomenclature standard. Typically, the common words share a stem, which is prefixed with ordinal syllables that group words of the basis of some like features.
=== Zoological Nomenclature ===
{{status|100%}}
[[File:Animal diversity.jpg|thumb|]]
: The names of animals are formed in a systematic way.
==== Base Names ====
: First of all, the base stem of all animal names (except human) begin with '''p''' (mobile) and end with '''t''' (sentient), the idea being that animals are moving, sentient creatures.
: The vowels in the stem are geo-specific and indicate whether the animal inhabits the air ('''a'''), water ('''i'''), land ('''e'''), or a hybrid of these; whether it is wild ('''o'''), tame, or predatory ('''y'''); and a few other features, as shown in the chart below:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Animal Base Names in Geo-specific Terms
|-
! Type !! Air = a !! Water = i !! Land = e !! Anywhere = o
|- style="vertical-align:top;"
!row=1| Ordinary
|'''pat'''....''bird'' || '''pit'''....''fish'' || '''pet'''....''domestic land animal'' || '''pot'''....''wild animal''
|- style="vertical-align:top;"
!row=1| Predatory
|'''pyat'''....''raptor'' || '''pyit'''....''predatory fish'' || '''pyet'''....''reptile'' ||'''pyot'''....''predatory animal''
|- style="vertical-align:top;"
!row=1| Hybrid
|'''piat'''....''waterfowl''<br>'''pelat'''....''flying insect''<br>'''paet'''....''flightless bird'' ||'''piit'''....''crustacean''<br>'''pilt'''....''marine invertebrate''<br>'''peit'''....''mammalian fish''<br>'''pyeit'''....''mollusk''|| '''payet'''....''flying reptile''<br>'''piyet'''....''batracian''<br>'''peyet'''....''worm''<br>'''pelt'''....''insect'' ||'''piot'''....''aquatic mammal''
|}
==== Derived Names ====
: The names of different species of animals are derived by prefixing syllables to the base names that are obtained from the Latin names in the [https://www.itis.gov/| Linnaean taxonomy]. In that taxonomy, all of the dog or dog-like animal species are ranked under the family name '''Canidae''' (''canids''). The family prefix is derived by taking the first syllable and spelling it in Mirad as it is pronounced in Latin. ''Ca'' in Latin is pronounced '''ka'''. See the table below in which Latin spellings are given in Mirad. In this family, one dog species is domestic, Canis familiaris, while all the others are wild or predatory. So, to derive the word for the common domesticated dog, we would affix the family taxonomic prefix '''ka''' to the base name for domestic land animal '''pet''', yielding '''kapet''' (''dog''). All other members of the dog family end in '''pot''' (feral animal) or '''pyot''' (predatory animal). The taxonomic prefix must contain at least one consonant and one vowel. If not, the prefix derived from the Latin taxon is extended until that rule is met. The taxonomic syllables are prefixed to the base animal type name in reverse order of the Linnaean; for example, ''prairie dog'' (which is not a dog, but a rodent) is rendered by '''ci<sup>3</sup>xi<sup>2</sup>ro<sup>1</sup>pot''' from '''<u>Ro</u><sup>1</sup>dentia <u>Sci</u><sup>2</sup>uridae <u>Cy</u><sup>3</sup>nomys''', where '''pot''' is the basic animal type ''wild animal''. All rodents have the taxonomic syllable '''ro''' from the Latin "order" taxon ''Rodentia'', while all squirrel names will have the syllable '''xi''' from a pronunciation spelling of the Latin "family" taxon ''<u>Sci</u>uridae'' ('''<u>xi</u>uriday'''). The following shows the system as it is applied to the dog family:
:: <u>Ca</u>nidae (''dog family'') >
::: '''<u>ka</u>pet'''...''the common domestic dog'' (only one species, ''Canis familiaris'')
::: '''<u>ka</u>pot'''...''wild dog''
::: '''<u>ka</u>pyot'''...''predatory dog''
: Species under '''kapyot''' are derived by taking the first syllables of the respective Latin binomial (and sometimes trinomial) species names:
:: ''Canis <u>lu</u>pus'' > '''<u>lu</u>kapyot'''...''gray wolf (or just wolf)''
:: ''Canis <u>la</u>trans'' > '''<u>la</u>kapyot'''...''coyote, prairie wolf''
::: ''Canis latrans <u>les</u>tes'' > '''<u>les</u>lakapyot'''...''mountain coyote''
:: ''Canis <u>au</u>rus'' > '''<u>aw</u>kapyot''' > ''jackal, golden jackal''
::: ''Canis aurus <u>cur</u>ensis'' > '''<u>kur</u>awkapyot'''....''Indochinese jackal''
:: ''Canis <u>vul</u>pus'' > '''<u>vul</u>kapyot'''...''fox, red fox''
: If the taxonomic syllable ends in a vowel and precedes another syllable beginning with a vowel, the first taxonomic syllable is extended until it ends in a consonant. In the case of the Indochinese jackal, the base is '''awkapyot''' and the taxonomic syllable to be prefixed from ''curensis'' would normally be '''ku''', but it has to be extended to '''kur''' because the base begins in a vowel.
: The conversion of Latin/Greek spellings to Mirad is governed by the following chart:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Latin/Greek - Mirad correspondences
|-
! Latin/Greek Spelling !! Latin Sound !! Mirad Spelling !! Example
|-
| ''au'' || ''aw'' || '''aw''' || ''<u>au</u>rus''....'''aw-'''
|-
| ''eu'' || ''ew'' || '''ew''' || ''<u>eu</u>ropa''....'''ew-'''
|-
| ''ai''<br>''ae'' || ''ay'' || '''ay''' || ''<u>ae</u>gyptus''....'''ay-'''
|-
| ''ei'' <br> ''ey'' || ''ey'' || '''ey''' || ''Rh<u>ei</u>dae''....'''<u>ey</u>'''
|-
| ''oe'' || ''oy'' || '''oy''' || ''F<u>oe</u>niculum''....'''oy'''
|-
| ''ua'' || ''wa'' || '''wa''' || ''s<u>ua</u>vis''....'''s<u>wa</u>'''
|-
| ''ca/co/cu'' || ''ka/ko/ku'' || '''ka/ko/ku''' || ''<u>ca</u>nis''....'''<u>ka</u>'''
|-
| ''ce/ci/cy''' || ''che/chi/chi'' || '''ce/ci/cy''' || ''<u>cy</u>pris''....'''<u>ci</u>'''
|-
| ''y'' || ''i'' || '''i''' || ''c<u>y</u>pris''....'''<u>i</u>'''
|-
| ''g''' || ''g'' || '''g''' || ''<u>Ge</u>ococcyx''/''<u>Ga</u>stropoda''....'''<u>g</u>'''
|-
| ''ch'' || ''k'' || '''k''' || ''<u>Chi</u>roptera''....'''<u>ki</u>'''
|-
| ''ph'' || ''f'' || '''f''' ||''S<u>ph</u>yrapicus''....'''<u>f</u>'''
|-
| ''rh'' || ''r'' || '''r''' || ''Rh<u>ei</u>dae''....'''<u>ey</u>'''
|-
| ''x'' || ''ks'' || '''ks''' || ''Lo<u>x</u>odonta''....'''<u>ks</u>'''
|-
| ''qu'' || ''kw'' || '''kw''' || ''<u>Qu</u>ercus''....'''<u>kw</u>'''
|-
| ''j'' || ''y'' || '''j''' || ''<u>ju</u>lianus''....'''<u>ju</u>'''
|-
| ''sci'' || ''shi'' || '''xi''' || ''<u>Sci</u>uridae''....'''<u>xi</u>'''
|-
| ''th'' || ''t'' || '''t''' || ''<u>Th</u>unnus''....'''<u>t</u>'''
|-
| ''cci'' || ''ksi'' || '''ksi''' || ''Va<u>cc</u>inus''....'''<u>ksi</u>'''
|}
: Note that double consonants are counted as being two consonants in different syllables. So, for example, the taxonomic syllable for ''Cinnamomum'' would be '''cin'''.
: The Latin letter ''j'' is represented in Mirad with '''j''' even though it is pronounced like a ''y''. This is for better recognizability.
==== Genderized and Other Forms ====
: Form the female of an animal by inserting a '''y''' before the '''t''' of the base adult name:
::* '''kapet'''....''dog'' ====> '''kape<u>y</u>t'''....''bitch''
::* '''vulkapyot'''....''fox'' ====> '''vulkapyo<u>y</u>t'''....''vixen''
: Form the specific male of an animal by inserting a '''w''' right after the '''p''' of the base adult name, unless the base name begins with '''py''' in which case the '''w''' is inserted just before the '''t''' of the base name:
::* '''ekpet'''....''horse'' ====> '''ekp<u>w</u>et'''....''stallion''
::* '''ovbopet'''....''sheep'' ====> '''ovbop<u>w</u>et'''....''ram''
::* '''vulkapyot'''....''fox'' ====> '''vulkpyo<u>w</u>t'''....''dog fox''
: Form the gelded version of an animal by inserting an '''o''' after the ordinal vowel of the base male adult name:
::* '''bopet'''....''bovine'' ====> '''bopwe<u>o</u>t'''....''ox''
::* '''gafapat'''....''cock'' ====> '''gafapwe<u>o</u>t'''....''capon''
: The offspring of an animal is formed by suffixing '''-ud''', the stub for '''tud'''....''child'':
::* '''ekpet'''....''horse'' ====> '''ekpet<u>ud</u>'''....''colt''
::* '''kapet'''....''dog'' ====> '''kapet<u>ud</u>'''....''pup''
::* '''ovbopet'''....''sheep'' ====> '''ovbopet<u>ud</u>'''....''lamb''
: The pet name of an animal is derived by suffixing '''-if''':
::* '''kapet'''....''dog'' ====> '''kapet<u>if</u>'''....''puppy''
::* '''fepet'''....''cat'' ====> '''fepet<u>if</u>'''....''kitty''
: The diminutive of an animal is formed by suffixing '''-og''':
::* '''supet'''....''pig'' ====> '''supet<u>og</u>'''....''piggy''
::* '''ekpet'''....''horse'' ====> '''ekpet<u>og</u>'''....''pony''
: Sometimes, the above derivations can be combined. The animal '''ekpet'''....''horse'' can serve as an example:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Derivations of Horse
|-
! Variation !! Mirad Name !! English Name
|-
!row=1| Adult
|'''ekpet'''||''horse''
|-
!row=1| Male
| '''ekpwet'''||''stallion''
|-
!row=1| Female
| '''ekpeyt'''||''mare''
|-
!row=1| Offspring
| '''ekpetud'''||''colt''
|-
!row=1| Female Offspring
| '''ekpetuyd'''||''filly''
|-
!row=1| Small adult
|'''ekpetog'''||''pony''
|-
!row=1| Gelded
| '''ekpweot'''||''gelding''
|}
==== Animal Sounds ====
: The sound that an animal makes can be derived by substituting the '''t''' of the base name with '''d''', the letter associated with communication. The verb form ends in '''-der''':
::* '''ekpet'''....''horse'' ====> '''ekpeder'''....''to neigh''
::* '''kapet'''....''dog'' ====> '''kapeder'''....''to bark''
::* '''pat'''....''bird'' ====> '''pader'''....''to tweet, chirp''
::* '''serpyet'''....''snake'' ====> '''serpyeder'''....''to hiss''
: A collection of animals can be derived by suffixing '''-yan''' or '''-nyan''':
::* '''lepanfepyot'''....''lion'' ====> '''lepanfepyotyan'''....''a pride of lions''
::* '''ovbopet'''....''sheep'' ====> '''ovbopetyan'''....''a herd of sheep''
::* '''pit'''....''fish'' ====> '''pityan'''....''a school of fish''
: Motions that animals make can be derived by replacing the final '''t''' of the base name with '''-per'''....''to go'':
::* '''serpyet'''....''snake'' ====> '''serpeper'''....''to slither''
::* '''lapet'''....''rabbit'' ====> '''lapeper'''....''to hop''
::* '''ekpet'''....''horse'' ====> '''ekpeper'''....''to gallop''
: The food name associated with an animal can be derived by ending the animal or animal part name in '''l''' (a stub for '''tel''', meaning ''food''):
::* '''supet'''....''pig'' ====> '''supel'''....''pork''
::* '''supetyob'''....''hog leg'' ====> '''supetyol'''....''ham''
::* '''bopet'''....''steer'' ====> '''bopel'''....''beef''
::* '''ovbopet'''....''sheep'' ====> '''ovbopel'''....''mutton''
::* '''bopetud'''....''calf'' ====> '''bopetul'''....''veal''
::* '''appelat'''....''bee'' ====> '''appelatel'''....''honey''
: The habitats of animals are formed by suffixing '''-am'''....''house'', '''-um'''....''cage'', etc. to the base name:
::* '''supet'''....''pig'' ====> '''supetam'''....''pigsty''
::* '''gafapayt'''....''chicken'' ====> '''gafapaytam'''....''chicken coop''
::* '''lepanfepyot'''....''lion'' ====> '''lepanfepyotam'''....''lion's den''
::* '''kapet'''....''dog'' ====> '''kapetam'''....''doghouse''
::* '''forpelt'''....''ant'' ====> '''forpeltam'''....''anthill''
::* '''appelat'''....''bee'' ====> '''appelatam'''....''bee hive''
::* '''pat'''....''bird'' ====> '''patum'''....''birdcage'', '''patsum'''....''nest'', '''patyanam'''...''aviary''
::* '''pot'''....''wild animal'' ====> '''potam'''....''lair''
==== Dog Breeds ====
[[File:The dog book - a popular history of the dog, with practical information as to care and management of house, kennel, and exhibition dogs, and descriptions of all the important breeds (1909) (20785715825).jpg|thumb|]]
: Dog breeds are created by prefixing elements to '''kapet'''....''dog'' that are based on the official World Canine Organization dog breed site [[https://www.fci.be/en/nomenclature/]]. This site organizes dog breeds by groups, sections, subsections, and country ownership.
: The base of the dog breed name is '''kapet'''....''dog''. The group number is converted to the lowercase alphabetic consonants ('''b''', '''c''', '''d''', etc.). The top or zeroth group is assigned to the ordinal vowel '''o''', so '''bokepet''' is a group category for sheepdogs and cattledogs. The sections underneath this group change the '''o'''....''zero'' to '''a'''....''one'', '''e'''....''two'', etc. The subsections below are enumerated with an initial ordinal vowel starting with '''a'''....''one'', '''e'''....''two'', etc. A particular breed is written as the country adjective representing the breed country of origin, followed a space, and the lowest section name preceded by the number of the country entry alphabetized. If there is only one entry of that country, no ordinal number is prefixed.
: As an example:
: To get the name for ''basset hound'':
::* Start with the word for dog: '''kapet'''.
: This animal is in Group 6 for scent hounds and related breeds, so the 6th consonant in the Mirad alphabet is '''h'''. This is prefixed to '''kapet''', with an ordinal vowel representing the section the breed is in, starting with '''a''' for ''one''. The ''basset hound'' is in Section 1 for "scent hounds", so the prefix becomes '''ha-'''.
::* '''hakapet''' is a "scent hound" (not to be confused with '''ha kapet'''....''the dog''.).
A basset hound is classified in subsection 1.3 as a "small-sized scent hound", so the ordinal vowel '''i'''.... ''three'' is prefixed:
::* '''ihakapet''' is a "small-sized scent hound"
: A basset hound is the 1st small-sized scent hound entry under the country Great Britain, so the Mirad word '''a'''.... ''one'' is prefixed (with a '''w''' buffer glide when prefixed to a vowel) and the adjectival word for Great Britain, '''Gebaroma''' is placed in front, separated by a space:
::* '''Gebaroma awahikapet''' is a ''basset hound'', a dog breed name owned by Great Britain. The name can usually be abbreviated by dropping the country owner name, thus: '''awahikapet'''
<gallery>
</gallery>
: Here is a partial representation of the hiararchy as obtained by the World Canine Organization (FCI) site. Other Mirad dog breed names can be created by consulting the site.
Group 1 = '''<u>b</u>okapet'''....sheepdogs/cattledogs
::* Section <u>1</u> = '''b<u>a</u>kapet'''....sheepdogs
::::* Belgian only entry = '''Belima bakapet'''....''Belgian shepherd dog''
::::* German only entry = '''Deuma bakapet'''....''German shepherd''
::* Section 2 = '''bekapet'''....cattledogs except Swiss cattledogs
::::* Great Britain <u>2</u>nd entry = '''Gebaroma <u>e</u>bekapet'''....''Welsh corgi (Cardigan)''
Group 2 = '''<u>c</u>okapet'''....pinscher/schnauzer/Molossoid/Swiss Mountain-/Cattle Dogs
::* Section <u>1</u> = '''c<u>a</u>kapet'''....pinscher/schnauzer type
::* Section <u>2</u> = '''c<u>e</u>kapet'''....Molossian type
::* Section <u>3</u> = '''c<u>i</u>kapet'''....''Swiss mountain/cattledogs''
Group 3 = '''<u>d</u>okapet'''....''terriers''
::* Section <u>1</u> = '''d<u>a</u>kapet'''....large and medium-sized terriers
::::* Great Britain <u>9</u>th entry = '''Gebaroma <u>yu</u>dakapet'''....''Welsh terrier''
::* Section <u>2</u> = '''d<u>a</u>kapet'''....small-sized terriers
::* Section <u>3</u> = '''d<u>e</u>kapet'''....bull type terriers
::::* Great Britain <u>3</u>rd entry = '''Gebaroma <u>i</u>dekapet'''....''Staffordshire bull terrier''
::* Section <u>4</u> = '''d<u>a</u>kapet'''....toy terriers
Group 4 = '''<u>f</u>okapet'''....<u>dachshunds</u>
::::* Germany only entry = '''fakapet'''....''dachshund''
Group 5 = '''<u>g</u>okapet'''....spitz and primitive types
::* Section <u>1</u> = '''g<u>a</u>kapet'''....nordic sledge dogs
:::: USA <u>1</u>st entry = '''<u>a</u>gakapet'''....''Siberian husky''
::* Section <u>2</u> = '''g<u>e</u>kapet'''....nordic hunting dogs
::* Section <u>3</u> = '''g<u>i</u>kapet'''....nordic watchdogs/herders
::* Section <u>4</u> = '''g<u>u</u>kapet'''....European spits
::* Section <u>5</u> = '''g<u>yo</u>kapet'''....Asian spitz and related breeds
::* Section <u>6</u> = '''g<u>ya</u>kapet'''....primitive types
::* Section <u>7</u> = '''g<u>ye</u>kapet'''....hunting dogs
Group 6 = '''<u>h</u>okapet'''....scent hounds and related breeds
::* Section <u>1</u> = '''h<u>a</u>kapet'''....''scent hounds''
:::* Subsection 1.<u>1</u> = '''<u>a</u>hakapet'''....large-sized hounds
::::* USA <u>1</u>st entry = '''Usoma <u>aw</u>ahakapet'''....''American foxhound''
:::* Subsection 1.<u>2</u> = '''<u>e</u>hakapet'''....medium-sized hounds
::::* Great Britain only entry = '''Gebaroma ehakapet'''....''harrier''
:::* Subsection 1.<u>3</u> = '''<u>i</u>hakapet'''....small-sized hounds
::::* Great Britain <u>1</u>st entry = '''Gebaroma <u>aw</u>ihakapet'''....''basset hound''
::::* Great Britain <u>2</u>nd entry = '''Gebaroma <u>ew</u>ihakapet'''....''beagle''
Group 7 = '''<u>j</u>okapet'''....pointing dogs
::* Section <u>1</u> = '''j<u>a</u>kapet'''....''continental pointing dogs''
::* Section <u>2</u> = '''j<u>e</u>kapet'''....''British and Irish pointers and setters''
Group 8 = '''<u>k</u>akapet'''....retrievers/flushing dogs/water dogs
::* Section <u>1</u> = '''k<u>a</u>kapet'''....''retrievers''
::* Section <u>2</u> = '''k<u>e</u>kapet'''....''flushing dogs''
::* Section <u>3</u> = '''k<u>i</u>kapet'''....''water dogs''
Group 9 = '''<u>l</u>okapet'''....companion and toy dogs
::* Section <u>1</u> = '''l<u>a</u>kapet'''....bichons
::* Section <u>2</u> = '''l<u>e</u>kapet'''....poodles
::::* France only entry = '''Ferama lekapet'''....''poodle''
::* Section <u>3</u> = '''l<u>i</u>kapet'''....small Belgian dogs
::* Section <u>4</u> = '''l<u>u</u>kapet'''....hairless dogs
::* Section <u>5</u> = '''l<u>yo</u>kapet'''....Tibetan breeds
::::* Tibet <u>2</u>nd entry = '''Tibama <u>e</u>lekapet'''....''shih tzu''
::* Section <u>6</u> = '''l<u>ya</u>kapet'''....Chihuahueno
::::* Mexico only entry = '''Mexuma lyakapet'''....''chihuahua''
::* Section <u>7</u> = '''l<u>ye</u>kapet'''....English toy spaniels
::* Section <u>8</u> = '''l<u>yi</u>kapet'''....Japan Chin and Pekingese
::* Section <u>9</u> = '''l<u>yu</u>kapet'''....continental toy spaniel and others
::* Section <u>10</u> = '''l<u>alo</u>kapet'''....Kromforhländer
::* Section <u>10</u> = '''l<u>ale</u>kapet'''....small Molossian type dogs
Group 10 = '''<u>m</u>okapet'''....sight hounds
::* Section <u>1</u> = '''m<u>a</u>kapet'''....long-haired sighthounds
::::* Great Britain <u>1</u>st entry = '''Gebaroma <u>a</u>makapet'''....''greyhound''
::::* Great Britain <u>2</u>nd entry = '''Gebaroma <u>e</u>makapet'''....''whippet''
::* Section <u>2</u> = '''m<u>e</u>kapet'''....rough-haired sighthounds
::* Section <u>3</u> = '''m<u>i</u>kapet'''....short-haired sighthounds
==== Cat Breeds ====
: The names for cat breeds are generated from the CFA organization's alphabetical list of cat breeds (See [https://cfa.org/breeds/]. You take the first letters of the CFA name up to the first non-initial consonant, and convert them to lowercase. If the next breed on the list has the same letters, add a Mirad number (1=a, 2=e, 3=i, ...) to distinguish them. Now, end the word with the Mirad word for cat '''fepet'''.
: This chart shows the process for the first few cat breeds in the CFA list:
{| class="wikitable" style="background: lightyellow;{{Text default color}}; margin-left:1.6em; font-size:smaller"
|+ Creating Cat Breed Names
|-
! CFA Name !! First Letters<br>Lowercase !! Number<br>If Any + fepet!! Mirad Name
|-
| ''<u>Am</u>erican Shorthair'' || '''am''' || '''a + fepet'''|| '''amafepet'''
|-
| ''<u>Am</u>erican Wirehair'' || '''am''' || '''e + fepet'''|| '''amefepet'''
|-
| ''<u>Bal</u>inese'' || '''bal''' || '''bal + fepet''' || '''balfepet'''
|-
| ''<u>Ben</u>gal'' || '''ben''' || '''ben + fepet''' || '''benfepet'''
|}
=== Color Nomenclature ===
: The word for ''color'' in Mirad is '''volz''', which is mnemonically related to the word for ''flower'' ('''vos'''). The diminutive of ''color'' is '''voylz''', meaning ''tint, shade, hue''.
: The names of common color adjectives in Mirad are based on a scale relating to the natural spectrum, with the first part of the word being the a number representing the spectrum order and the last half being the color stub '''-lza'''. The zeroth-color is no color, simple ''blank'', ''clear'', or ''transparent''.
:: {| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:1.6em; font-size:smaller;"
|+ Basic Color Words
|-
! 0 - clear !! 1 - red !!2 - orange !!3 - yellow !!4 - green !! 5 - blue !! 6 - purple !! 7 - indigo
|-
|<br><br><br> ||bgcolor="#d30000"| ||bgcolor="#fc6600"| ||bgcolor="#fff200"| ||bgcolor="#3bb143"| ||bgcolor="#0018f9"| || bgcolor="#b200ed"| || bgcolor="#4b0082"|
|-
| '''olza''' || '''alza''' || '''elza''' || '''ilza''' || '''ulza''' || '''yolza''' || '''yalza''' || '''yelza'''
|}
: There are some other common colors:
:: {| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:1.6em; font-size:smaller;"
|+ Other Basic Color Words
|-
|bgcolor="white"| || '''malza'''....''white'' ||(Associated with '''man''' (''light'')
|-
|bgcolor="#7c4700"| || '''melza'''....''brown'' ||(Associated with '''mel''' (''soil'')
|-
|bgcolor="#222021"| ||'''molza'''....''black'' ||(Associated with '''mon''' (''dark'')
|-
|bgcolor="#828282"| ||'''maolza'''....''gray'' ||(A blend of '''malza''' and '''molza''')
|-
|bgcolor="#fc0fc0"| ||'''aolza'''....''pink'' ||(A blend of '''olza'''....''clear'' and '''alza'''....''red'')
|}
: All other colors are formed by prefixing a word or mnemonic word stub (usually flowers or fruits) to the basic color with hyphenation. For example:
::* '''mecirufeb-ulza'''....''lime green'' from '''mecirufeb'''....''lime fruit'' + '''ulza'''....''green''
::* '''mim-yalza'''....''aquamarine'' from '''mim'''....''sea'' + '''yalza'''....''blue''
::* '''licirufeb-ilza'''....''lemon yellow'' from '''licirufeb'''....''lemon'' + '''ilza'''....''yellow''
::* '''salpyit-alza'''....''salmon red''
::* '''magmef-alza'''....''firebrick red''
::* '''mim-yalza'''....''sea blue, aquamarine''
: Shaded variants of color terms can be achieved in the following manner:
::# A "light" shade by changing '''lza''' to '''ylza''': '''uylza'''....''light green''
::# A "-ish" shade by changing '''lza''' to '''lzyena''': '''ulzyena'''....''greenish''
::# A "bright" shade by changing '''lza''' to '''lzayna''': '''ulzayna'''....''bright green''
::# A "dark" shade by changing '''lza''' to '''lzoyna''': '''ulzoyna'''....''dark green''
: Shaded variants can also be created by prefixing adjectival components such as these:
:* '''oz-'''....''-ish, light-''
:* '''az-'''....''bright-, dark-''
:* '''kyu-'''....''light-''
:* '''maz-'''....''bright-''
:* '''eyn-'''....''semi-''
etc.
: Some hybrid colors can be created by mixing the ordinal vowel:
::* '''maolza'''....''gray'' from '''malza'''....''white'' and '''molza'''....''black''
::* '''yaulza'''....''blue-green, cyan'' from '''yalza'''....''blue'' and '''ulza'''....''green''
::* '''maelza'''....''beige'' from '''malza'''....''white'' and '''melza'''....''brown''
: Colors can be made into nouns by dropping the adjectival suffix '''-a''':
::* '''<u>Ulz</u> se via volz.'''....''<u>Green</u> is a beautiful color.''
::* '''At gaife <u>yalzayn</u>.'''....''I prefer <u>dark blue</u>.''
: Colors can also be used to form verbs:
::* '''Iyta teobi <u>alzasa</u>.'''....''Her cheeks <u>turned red (= blushed)</u>.''
::* '''His se fia <u>teubip malzaxus</u>.'''....''This is a good <u>teeth whitener</u>.''
::* '''Eta teupibi <u>ilzaseye</u>.'''....''Your teeth are <u>yellowing</u>.''
==== Rarely Used Colors ====
: The more exotic or rare colors can be expressed by the RAL number / 10 in the [[w:List_of_RAL_colors|Wikipedia Chart of RAL Colors]] expressed in Mirad + '''-lz'''. For example, the color ''golden yellow'' has the RAL number 1004. Divided by 10 yields the number 104 ('''ase''', in Mirad), thus, the color is named '''aselz'''. The adjectival form of this color is '''aselza'''. One advantage of this system is that the colors are grouped by nine classic colors represented by the thousands unit, then subdivided by up to 999 shades of those classic colors, although in practice, the number of shades belonging to each classic color is under 40. For that reason, the thousands unit is reduced to a hundreds unit in the formation of Mirad color names.
===== Skin colors =====
[[File:Coloured-family.jpg|thumb|]]
: When a color refers specifically to skin tone, the prefix '''tayo(b)-''' is used. The final '''-b''' of '''tayob''' is dropped before a consonant or glide. The word for ''skin-color'' itself is '''tayovolz'''. Thus:
::* '''(tayo-)molzat'''....''black(-skinned) person''
::* '''(tayo-)malzat'''....''white(-skinned) person''
::* '''(tayo-)melzat'''....''brown(-skinned) person''
::* '''(tayob)omalzat'''....''non-white(-skinned) person''
::* '''(tayob)omolzat'''....''non-black(-skinned) person''
::* '''(tayob)omelzat'''....''non-brown(-skinned) person''
::* '''(tayob)eymolzat'''....''half-black(skinned) person''
::* '''(tayob)eymalzat'''....''half-white(-skinned) person''
::* '''(tayo-)maolzat'''....''mulatto, mixed-skinned person''
::* '''(tayob)olzat'''....''albino''
::* '''hyetayovolza'''....''of any skin-tone''
::* '''hyatayovolzati'''....''people of all colors''
::* '''Duhotayovolza iyt se?'''....''What skin color is she?''
==== Hair Colors ====
: Hair colors are produced by suffixing the color to the word for hair, '''tayeb'''. The final '''-b''' of '''tayeb''' is dropped before a consonant or '''y'''. The word for ''hair color'' is '''tayevolz'''.
::* '''tayebalza'''....''red-headed, auburn''
::** '''tayebalzayt'''....''an auburn female''
::* '''tayemolza'''....''brunette''
::* '''tayemelza'''....''brown-haired''
::* '''tayebiylza'''....''blond''
::* '''tayemaolza'''....''gray, gray-haired''
:::* '''It gwa tayemaolzaso.'''....''He will go gray early.''
::* '''Duhotayevolza iyt se?'''....''What color hair is she?''
==== Eye Colors ====
: Eye colors are expressed by the prefix '''tea(b)''' followed by the color. The word for ''eye color'' is '''teavolz'''. In the following examples, '''teab''' (''eye'') becomes '''tea''' before any consonants or glides:
::* '''teayolza'''....''blue-eyed''
::* '''teabulza'''....''green-eyed''
::* '''teamelza'''....''brown-eyed''
:::* '''teamelzat'''....''brown-eyed person''
::* '''teamolz'''....''a black eye''
::* '''teamalz'''....''the white of the eye''
::* '''Duhoteavolza et se?'''....''What color eyes do you have?''
=== Chemical Nomenclature ===
[[File:14LaAc periodic table IIb.jpg|thumb|]]
: The names of chemical elements are formed by converting the abbreviation for the element into Mirad lowercase alphabetic equivalents, then adding '''lk''', a suffix stub for chemicals. For example, the abbreviation for ''hydrogen'' is ''H''. So we replace that with the word for lowercase '''h''' in Mirad: '''he'''. By adding the stub suffix '''lk''', we get '''helk'''.
: Use the names of the '''''small''''' letters of the alphabet as shown below. The letter name '''ca''' is pronounced '''cha''' as in English ''cha-cha''.
{| class="wikitable" style="background:lightyellow;; margin-left:1.6em; font-size:smaller" style="vertical-align:top;"; align=center
|+ Lowercase Alphabet with Letter Names
|-
! Lowercase !! a !! b !! c !! d !! !! e !! f !! g !! h !! !! i !! j !! k !! l !! m !! n !! !! o !! p !! q !! r !! s !! t !! !! u !! v !! w !! x !! y !! z
|- style="text-align:center"|
!row=1| Mirad Name
| '''a''' || '''ba''' || '''ca''' || '''da''' ||bgcolor=lightgray| || '''e''' || '''fe''' || '''ge''' || '''he''' ||bgcolor=lightgray| || '''i''' || '''ji''' || '''ki''' || '''li''' || '''mi''' || '''ni''' ||bgcolor=lightgray| || '''o''' || '''po''' || '''ko''' || '''ro''' || '''so''' || '''to''' ||bgcolor=lightgray| || '''u''' || '''vu''' || '''wu''' || '''xu''' || '''yu''' || '''zu'''
|}
==== Coding Chemical Elements ====
: The following chart shows some examples of how words for chemical elements are formed:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Coding Chemical Elements
|-
! English Element Name !! Abbreviation !! Mirad Name
|-
| ''silver'' || ''Ar'' || '''arolk'''
|-
| ''iron'' || ''Fe'' || '''feelk'''
|-
| ''hydrogen'' || ''H'' || '''helk'''
|-
| ''nitrogen'' || ''N'' || '''nilk'''
|-
| ''mercury'' || ''Hg'' || '''hegelk'''
|-
| ''darmstadtium'' || ''Ds'' || '''dasolk'''
|}
: In chemical compounds, the '''lk''' is used only on the last element of the compound.
: Chemical compounds such as ''H<sub>2</sub>O (hydrogen dioxide)'' are coded in the following manner.
::# The ''H'' for ''hydrogen'' is rendered as '''he''' (without the '''-lk''').
::# The number 2 refers to two hydrogen atoms, so the Mirad prefix for ''two, bi-'', '''en-''' is prefixed to the '''h''', giving '''enhe'''.
::# The word for ''oxygen'', '''ol''' is added, and, since it is the last element in the compound, the '''lk''' is suffixed.
::# The English word ends in ''-ide'', which is rendered in Mirad as '''-iyd''', giving '''enheolkiyd'''
: Such chemical suffix equivalents are given below:
: Given the chemical element ''sulfur'', which has the abbreviation ''S'', the Mirad equivalent for this solid is '''solk'''. Possible variants of this chemical, plus others, are:
==== Chemical Compound Suffixes ====
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Chemical Suffix Equivalents
|-
! English Suffix !! Mirad Equivalent !! English Example !! Mirad Equivalent
|-
| ''-ide'' || '''-iyd''' || ''sulfide'' || '''solkiyd'''
|-
| ''-ite'' || '''-iyt''' || ''sulfite'' || '''solkiyt'''
|-
| ''-ate'' || '''-ayt''' || ''sulfate'' || '''solkayt'''
|-
| ''-ine'' || '''-iyn''' || ''iodine'' || '''ilkiyn'''
|-
| ''-ane'' || '''-ayn''' || ''methane'' || '''ahelkayn'''
|-
| ''-ene'' || '''-eyn''' || ''benzene'' || '''ehelkeyn'''
|-
| ''-one'' || '''-oyn''' || ''ketone'' || '''ketoyn'''
|-
| ''-ine'' || '''--iyn''' || ''alanine'' || '''alaniyn'''
|-
| ''-ic'' || '''-a''' || ''ferric'' || '''feelka'''
|-
| ''-ous'' || '''aya''' || ''ferrous'' || '''feelkaya'''
|}
: Note that the numeral prefixes in chemical formulae end in '''-n'''. : The numeral prefixes ''5'' and ''6'' end in '''-on''' instead of '''-n''' so as to distinguish them from the words '''yan'''....''together'' and '''yon'''....''apart''.
: The chart below shows some of the numeric prefixes:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:3.2em; font-size:smaller"
|+ Numeric Prefixes
|-
! Number !! Prefix !! Example
|-
| '''a'''....''mono-'' || '''an''' || '''anolkiyd'''....''<u>mono</u>xide (O)''
|-
| '''e'''....''bi-/di-'' || '''en''' || '''encalkayt'''....''<u>bi</u>carbonate (C<sub>2</sub>)''
|-
| '''i'''....''tri-'' || '''in''' || '''inolkiyd-'''....''trioxide (O<sub>3</sub>)''
|-
| '''u'''....''tetr(a)-'' || '''un''' || '''unolkiyd-'''....''tetroxide (O<sub>4</sub>)''
|-
| '''yo'''....''pent(a)-'' || '''yown''' || '''yownolkiyd-'''....''pentoxide (O<sub>5</sub>)''
|-
| '''ya'''....''hex(a)-'' || '''yawn''' || '''yawnolkiyd'''....''hexoxide (O<sub>6</sub>)''
|-
| '''ye'''....''hept(a)-'' || '''yen''' || '''yenolkiyd'''....''heptoxide (O<sub>7</sub>)''
|-
| '''yi'''....''oct(o)-'' || '''yin''' || '''yinolkiyd-'''....''octoxide (O<sub>8</sub>)''
|-
| '''yu'''....''non(a)-'' || '''yun''' || '''yunolkiyd-'''....''nonoxide (O<sub>9</sub>)''
|-
| '''alo'''....''dec(a)-'' || '''alon''' || '''alonolkayt-'''....''decoxidate (O<sub>10</sub>)''
|}
: Examples:
::* ''carbon <u>di</u>oxide (C<sub>2</sub>O)''....'''calk <u>en</u>olkiyd'''
::* ''sodium <u>bi</u>carbonate (Na2C)''....'''nialk <u>en</u>calkayt'''
::* ''calcium <u>di</u>hydrogen phosphate''....'''caalk <u>en</u>helk polkayt'''
::* ''glucose (C<sub>6</sub>H<sub>12</sub>O<sub>6</sub>)''....'''<u>yawn</u>ca<u>alan</u>he<u>yaon</u>olk''' (or: '''sakolos''')
::* ''methanol (C<sub>3</sub>HOH)''....'''ca<u>in</u>heohelk'''
: Note: the '''-lk''' is added only at the end of a compound and before the endings '''-iyd''', '''-iyt''', and '''-ayt''', etc.
==== Names of Atomic Parts ====
: The word for ''atom'' in Mirad is '''gwomulk''', which literally is ''least particle''.
: The main particles in an atom are:
::* '''vamulk'''....''proton'' (positive)
::* '''vemulk'''....''neutron'' (neutral)
::* '''vomulk'''....''electron'' (negative)
: Every atom contains '''mulki''' (''subatomic particles'').
[[File:Standard Model of Elementary Particles.svg|thumb|392x392px|The [[Standard Model]] classification of particles]]
: The principle elementary atomic particles (quarks, leptons, bosons) are named from the alphabetic spellings of the letter abbreviations in the Standard Abbreviations chart above, some of which are Greek letters, both upper and lower case. (See [[wikipedia:Subatomic_particle]] ).
::* '''hamulk'''....''hadron''
:::* '''mi-hamulk'''....''meson''
::::* '''pimi-hamulk'''....''pion''
::::* '''kami-hamulk'''....''kaon''
:::* '''ba-hamulk'''....''baryon''
::::* '''lambda-ba-hamulk'''....''lambda baryon''
::* '''vamulk'''....''proton''
::* '''vemulk'''....''neutron''
::* '''vomulk'''....''electron''
::* '''zemulk'''....''nucleon''
::* '''alfamulk'''....''alpha particle''
::* '''fermimulk'''....''fermion''
::* '''oogmulk'''....''nanoparticle''
::* '''kyinazon mulk'''....''graviton''
::* '''bamulk'''....''boson particle''
:::* '''agha-bamulk'''....''higgs particle''
:::* '''agwu-bamulk'''....''W boson''
:::* '''agzu-bamulk'''....''Z boson''
:::* '''gamma-bamulk'''....''photon''
:::* '''ge-bamulk'''....''gluon''
::* '''qomulk'''....''quark''
:::* '''ba-qomulk'''....''bottom quark''
:::* '''ca-qomulk'''....''charm quark''
:::* '''da-qomulk'''....''down quark''
:::* '''ov-qomulk'''....''antiparticle, antiquark''
:::* '''penta-qomulk'''....''penta quark''
:::* '''tetra-qomulk'''....''tetra quark''
:::* '''to-qomulk'''....''top quark''
:::* '''u-qomulk'''....''up quark''
:::* '''so-qomulk'''....''strange quark''
::* '''limulk'''....''lepton''
:::* '''gamma-limulk'''....''photon'' (also: '''manmulk''')
:::* '''mu-limulk'''....''muon''
:::* '''pi-limulk'''....''pion''
:::* '''tau-limulk'''....''tau''
:::* '''nu-e-limulk'''....''electron neutrino''
:::* '''nu-mu-limulk'''....''muon neutrino''
:::* '''nu-tau-limulk'''....''tau neutrino''
:::* '''e-limulk'''....''electron'' (also: '''vomulk''')
: The nucleus of an atom is called '''zemulk'''. Therefore, '''zemulka''' means ''nuclear''.
=== Musical Nomenclature ===
==== Musical Instruments ====
: The musical instruments are encoded as follows, where all instruments contain the word for musical instrument ('''duzar''' < '''duz''' (''music'') + '''-ar''' (''instrument''). The system is based on a five-way classification system that relates to the way the instrument is played.
[[File:Madras musical instruments and snake charmer's music.jpg|thumb|<small>Madras_musical_instruments_and_snake_charmer's_music</small>]]
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:1.6em; font-size:smaller"
|+ Musical Instruments
|-
! Mirad !! English
|-
! colspan=2 | Bowed-String
|-
| '''aduzar''' || ''violin''
|-
| '''eduzar''' || ''violin alto''
|-
| '''iduzar''' || ''cello'', ''violoncello''
|-
| '''uduzar'''<br>'''eona uduzar''' || ''bass''<br>''double bass''
|-
| '''yoduzar''' || ''viola''
|-
| '''yaduzar''' || ''fiddle''
|-
| '''yeduzar''' || ''viol''
|-
|- '''yiduzar''' || ''erhu''
|-
| '''yuduzar''' || ''hardanger fiddle''
|-
| '''aloduzar''' || ''kemenche''
|-
| '''aladuzar''' || ''nyckelharpa''
|-
| '''aleduzar''' || ''rebab''
|-
! colspan=2 | Woodwind
|-
| '''faduzar''' || ''flute''
|-
| '''feduzar''' || ''oboe''
|-
| '''fiduzar''' || ''clarinet''
|-
| '''fuduzar''' || ''bassoon''
|-
| '''fyoduzar''' || ''French harp, harmonica''
|-
| '''fyaduzar''' || ''recorder''
|-
| '''fyeduzar''' || ''bagpipe''
|-
| '''fyiduzar''' || ''didgeridoo''
|-
| '''fyuduzar''' || ''piccolo''
|-
| '''faloduzar''' || ''fife, hornpipe''
|-
| '''faladuzar''' || ''ocarina, ocarine''
|-
| '''faleduzar''' || ''sheng''
|-
| '''faliduzar''' || ''duduk''
|-
| '''faluduzar''' || ''bansuri''
|-
| '''falyoduzar''' || ''suling''
|-
! colspan=2 | Brass 🎷
|-
| '''voduzar''' || ''horn''
|-
| '''vaduzar''' || ''trumpet''
|-
| '''veduzar''' || ''trombone''
|-
| '''vuduzar'''<br>-- '''avuduzar'''<br>-- '''evuduzar'''<br>--'''ivuduzar'''|| ''saxophone''<br>-- ''tenor saxophone''<br>-- ''alto saxophone''<br>-- ''bass saxophone''
|-
| '''vyoduzar''' || ''tuba''
|-
| '''vyaduzar''' || ''bugle''
|-
| '''vyeduzar''' || ''French horn''
|-
| '''vyiduzar''' || ''cornet''
|-
| '''vyuduzar''' || ''baritone horn''
|-
| '''valoduzar''' || ''alto horn''
|-
| '''valaduzar''' || ''euphonium''
|-
| '''valeduzar''' || ''flugelhorn''
|-
| '''validuzar''' || ''sousaphone''
|-
| '''valuduzar''' || ''clarion''
|-
| '''valyoduzar''' || ''mellophone''
|-
| '''valyaduzar''' || ''climbasso''
|-
| '''valyeduzar''' || ''ophicleide''
|-
! colspan=2 | Percussion
|-
| '''kaduzar'''<br>-- '''akaduzar'''<br>-- '''ekaduzar'''<br>-- '''ikaduzar'''<br>-- '''ukaduzar'''<br>-- '''yokaduzar'''<br>-- '''yakaduzar'''<br>-- '''yekaduzar'''<br>-- '''yikaduzar'''<br>-- '''yukaduzar'''<br>-- '''alokaduzar'''<br>-- '''alakaduzar'''<br>-- '''alekaduzar'''<br>-- '''alikaduzar'''<br>-- '''alukaduzar''' || ''drum''<br>-- ''snare drum''<br>-- ''bass drum''<br>-- ''tenor drum''<br>-- ''steel drum''<br>-- ''bongo drum''<br>-- ''timbrel''<br>-- ''kettledrum''<br>-- ''hang drum''<br>-- ''tupan''<br>-- ''taiko''<br>-- ''spring drum''<br>-- ''octoban''<br>-- ''candombe drum''<br>-- ''steel tongue drum''
|-
| '''keduzar''' || ''glockenspiel''
|-
| '''kiduzar''' || ''vibraphone''
|-
| '''kuduzar''' || ''marimba''
|-
| '''kyoduzar''' || ''tubular bell''
|-
| '''gaduzar''' || ''triangle''
|-
| '''geduzar''' || ''gong''
|-
| '''giduzar''' || ''castanet''
|-
| '''guduzar''' || ''rattle''
|-
| '''gyoduzar''' || ''xylophone''
|-
| '''gyaduzar''' || ''maraca''
|-
| '''gyeduzar''' || ''cajón''
|-
| '''gyiduzar''' || ''cymbal''
|-
| '''gyuduzar''' || ''tambourine''
|-
| '''galoduzar''' || ''steelpan''
|-
| '''galaduzar''' || ''wind chime''
|-
| '''galeduzar''' || ''chime bar''
|-
| '''galiduzar''' || ''celeste''
|-
| '''galuduzar''' || ''clapper''
|-
| '''galyoduzar''' || ''Jew's harp''
|-
| '''galyaduzar''' || ''bazooka''
|-
| '''galyeduzar''' || ''waterphone''
|-
| '''galyiduzar''' || ''balafon''
|-
| '''galyuduzar''' || ''boomwhackers''
|-
| '''geloduzar''' || ''udu''
|-
| '''geladuzar''' || ''thunder sheet''
|-
! colspan=2 | Keyboard 🎹
|-
| '''raduzar'''<br>-- '''utekea raduzar'''<br>-- '''agala raduzar'''<br>-- '''sem raduzar''' || ''piano''<br>-- ''player piano''<br>-- ''grand piano''<br>-- ''keyboard''
|-
| '''reduzar''' || ''clavichord''
|-
| '''riduzar''' || ''harpsichord''
|-
| '''ruduzar'''<br>-- '''mufyeg ruduzar'''<br>-- '''maka ruduzar''' || ''organ''<br>-- ''pipe organ''<br>-- ''electric organ''
|-
| '''ryoduzar''' || ''accordion''
|-
| '''ryaduzar''' || ''dulcimer''
|-
| '''ryeduzar''' || ''calliope''
|-
| '''ryiduzar''' || ''melodica''
|-
| '''ryuduzar''' || ''concertina''
|-
! colspan=2 | Guitar 🎸
|-
| '''baduzar'''<br>-- '''seuxa baduzar'''<br>-- '''maka baduzar'''<br>-- '''yoba baduzar''' || ''guitar''<br>-- ''accoustic guitar''<br>-- ''electric guitar''<br>-- ''bass guitar''
|-
| '''beduzar''' || ''banjo''
|-
| '''biduzar''' || ''lute''
|-
| '''buduzar''' || ''harp''
|-
| '''byoduzar''' || ''mandolin''
|-
| '''byaduzar''' || ''ukelele''
|-
| '''byeduzar''' || ''zither''
|-
| '''byiduzar''' || ''lyre''
|-
| '''byuduzar''' || ''cithara, kithara''
|-
| '''baloduzar''' || ''sitar''
|-
| '''baladuzar''' || ''veena''
|-
| '''baleduzar''' || ''koto''
|-
| '''baliduzar''' || ''balalaika''
|-
| '''baluduzar''' || ''charango''
|-
| '''balyoduzar''' || ''hurdy-gurdy''
|}
==== Voice Ranges ====
{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller"
|+ Voice Ranges (Deuz nabyani)
|-
! Mirad !! English !! Meaning
|-
! colspan=3 | Women
|-
| '''yabdeuztoyb''' || ''soprano'' || "high-voice-female"
|-
| '''zeyabdeuztoyb''' || ''mezzo-soprano'' || "high-ish-voice-female"
|-
| '''yobdeuztoyb''' || ''alto, contralto'' || "low-voice-female"
|-
! colspan=3 | Men
|-
| '''yabdeuztwob''' || ''tenor'' || "high-voice-male"
|-
| '''zeyabdeuztwob''' || ''baritone'' || "middle-high-voice-male"
|-
| '''yobdeuztwob''' || ''bass''||"low-voice-male"
|-
| '''vyoyabdeuztwob''' || ''falsetto'' || "false-high-voice-male"
|-
! colspan=3 | Boys
|-
| '''yabdeuztwobet''' || ''treble'' || "high-voice-boy"
|}
: Suffix these nouns with '''-a''' to make the above vocal range adjectives, eg.:
::* '''His se <u>yabdeuztwoba</u> duznod.'''....''This is a <u>tenor</u> note.''
==== Solmization Syllables ====
: The syllables used in Mirad to spell out musical notes is like the system used in the English-speaking world:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:1.6em; font-size:smaller"
|+ Solmization Syllables
|-
| '''do''' || '''re''' || '''mi''' || '''fa''' || '''sol''' || '''la''' || '''ti''' || '''do'''
|}
==== Musical Score Elements ====
[[File:Gigault-dernier-kyrie-mm9-12.png|thumb]]
: The semitone or accidental symbols are:
{| class="wikitable" style="background:lightyellow;{{Text default color}}; margin-left:1.6em; font-size:smaller"
|+ Accidentals
|-
! ENGLISH NAME !! SYMBOL !! MIRAD NAME !! ENGLISH EXAMPLE !! MIRAD EXAMPLE || MIRAD PRONUNCIATION
|-
| ''flat'' || <span style="font-size:120%">𝄬</span>|| '''yobwa''' (=''lowered'')|| ''B flat'' || '''B yobwa''' || '''ba YOBwa'''
|-
| ''sharp'' || <span style="font-size:120%">𝄰</span> || '''yabwa''' (=''raised'')|| ''C sharp'' || '''C yabwa''' || '''ca YABwa'''
|-
| ''natural'' || <span style="font-size:120%">𝄮</span> || '''egxwa''' (=''normalized'')|| ''F natural'' || '''F egxwa''' || '''fe EGxwa'''
|}
: Some staff notation:
{| class="wikitable" style="background:lightyellow;{{text default color}};margin-left:1.6em; font-size:smaller"
|+ Staff Notation
|-
! English Name !! Symbol !! Mirad Name
|-
| ''staff'' || <span style="font-size:120%">𝄙</span> || '''nuidyan'''
|-
| ''treble clef, G clef'' || <span style="font-size:120%">𝄞</span> || '''G yijar'''
|-
| ''C clef'' || <span style="font-size:120%">𝄡</span> || '''C yijar'''
|-
| ''base clef, F clef'' || <span style="font-size:120%">𝄢</span> || '''F yijar'''
|-
| ''note'' || || '''nod'''
|-
| ''half note'' || <span style="font-size:120%">𝅗𝅥</span> || '''eyna nod'''
|-
| ''quarter note'' || <span style="font-size:120%">𝅘𝅥</span> || '''uyna nod'''
|-
| ''whole note'' || <span style="font-size:120%">𝅝</span> || '''ayna nod'''
|-
| ''quarter rest'' || <span style="font-size:120%">𝄽 </span> || '''uyna poys'''
|-
| ''eighth note'' || <span style="font-size:120%">𝅘𝅥𝅮 </span> || '''yiyna nod'''
|-
| ''bar, measure'' || <span style="font-size:120%">𝄀</span> || '''nodzyan'''
|-
| ''ligature'' || || '''yanxus'''
|}
==== Characteristic Features of Music ====
{| class="wikitable sortable" style="background:lightyellow;{{text default color}};font-size:smaller"
|+ Characteristic Features of Music
! Mirad !! English
|-
|'''deup'''||'' beat''
|-
|'''seupan'''||'' cadence''
|-
|'''jes'''||'' duration''
|-
|'''zoyteuz'''||'' echo''
|-
|'''yanseuz'''||'' harmony''
|-
|'''duzneg'''||''pitch''
|-
|'''ijduzneg'''||'' key''
|-
|'''druz'''||'' lyric''
|-
|'''agala duzmus'''||'' major scale''
|-
|'''duznag'''||'' measure''
|-
|'''duznad'''||'' melody''
|-
|'''duzjob''' ||''tempo''
|-
|'''nak'''||'' meter''
|-
|'''ogala duzmus'''||'' minor scale''
|-
|'''duz'''||'' music''
|-
|'''yinig'''||'' octave''
|-
|'''byes'''||'' pulse''
|-
|'''zoyseuzen'''||'' resonance''
|-
|'''deupyan'''||'' rhythm''
|-
|'''duzmus'''||'' scale''
|-
|'''duzdreyn'''||'' score''
|-
|'''seux'''||'' sound''
|-
|'''duzigan'''||'' tempo''
|-
|'''seuzvolz'''||'' timbre''
|-
|'''seuz'''||'' tone''
|-
|'''yanseuz'''||''chord, harmonic''
|-
|'''aybseuz'''||''overtone''
|-
|'''deuzunog'''||'' tune''
|-
|'''deuz'''||'' voice''
|-
|'''seuxnid'''||'' volume''
|}
==== Dynamics ====
: Notations having to do with musical dynamic accents are usually in Italian and are recognized the world over. For this reason, they are left ''as is'' in Mirad.
: These include:
<div style="background:lightyellow;{{text default color}};font-style:italics">
: <i>a tempo, accelerando, accelerando, crescendo, decrescendo, diminuendo, fermata, forte, fortissimo, glissando, legato, lento, marcato, mezzo forte, mezzo piano, pianissimo, piano, poco a poco, portamento, rallentando, ritardanto, rubato, sforzando, staccatissimo, staccato, subito piano, tenuto, tremolo</i>, and others.
</div>
==== Types of Arrangements ====
{| class="wikitable sortable" style="background: lightyellow;{{text default color}}; font-size:smaller"
|+ Musical Arrangements
! English !! Mirad
|-
|''a capella song''||'''a kapella deuzun, deuzun boy duzari'''
|-
|''anthem''||'''fizdeuzun, tezdeuzun'''
|-
|''antiphon''||'''duiddeuzun'''
|-
|''aria''||'''arya, awat deuzun'''
|-
|''arrangement''||'''napbeyn'''
|-
|''art song''||'''tuz deuz'''
|-
|''ballad''||'''daz deuz, ifonkex deuzun'''
|-
|''battle hymn''||'''dropek deuzun'''
|-
|''bird song''||'''pat deuzun'''
|-
|''broadway song''||'''Broadway deuzun'''
|-
|''campfire song''||'''tamoftem deuzun'''
|-
|''cantata''||'''kantata'''
|-
|''canticle''||'''efyadeuzun'''
|-
|''carol''||'''ivdeuzun'''
|-
|''chant''||'''yagdeuzun'''
|-
|''choral arrangement''||'''deuzutyan napxeyn'''
|-
|''Christmas carol''||'''Kristtaj ivdeuzun'''
|-
|''classical song''||'''visauna deuzun'''
|-
|''composition''||'''duzdrun'''
|-
|''concerto''||'''koncerto'''
|-
|''country song''||'''odom deuzun, meimtyoda deuzun'''
|-
|''dance song''||'''daz deuzun'''
|-
|''dirge''||'''uvdeuzun'''
|-
|''ditty''||'''deuzog'''
|-
|''doggerel verse''||'''dizdeuzun'''
|-
|''drinking song''||'''tilien deuzun'''
|-
|''duet''||'''ewat (deuzun)'''
|-
|''folksong''||'''tyoyd deuzun'''
|-
|''glee''||'''Gebama deuzun'''
|-
|''gospel song''||'''fyadin deuzun'''
|-
|''hip hop song''||'''hip hop deuzun'''
|-
|''hit song''||'''agakus deuzun'''
|-
|''hymn''||'''fyadeuzun '''
|-
|''instrumental''||'''duzarun'''
|-
|''jingle''||'''nundeuzunog'''
|-
|''karaoke song''||'''karaoke deuzun'''
|-
|''love song''||'''ifon deuzun'''
|-
|''lullaby''||'''tudet deuzun'''
|-
|''lute song''||'''riduzar deuzun'''
|-
|''madrigal''||'''duzuka deuzun'''
|-
|''marching song''||'''doptyopen deuzun'''
|-
|''medley''||'''ebmulxwa deuzyan'''
|-
|''metal song''||'''mug deuzun'''
|-
|''musical number''||'''duzun'''
|-
|''old standard''||'''ajdeuzun'''
|-
|''opera''||'''dyuz, dyuzun'''
|-
|''oratorio''||'''oratoryo'''
|-
|''paean''||'''akrun deuzun'''
|-
|''partsong''||'''gon deuzun'''
|-
|''patter song''||'''deuzig'''
|-
|''pop song''||'''tyoda deuzun'''
|-
|''psalm''||'''afyadeuzun'''
|-
|''rock song''||'''rok deuzun'''
|-
|''round''||'''zoydea deuzun'''
|-
|''sea shanty''||'''mim deuz'''
|-
|''show tune''||'''duez deuzun'''
|-
|''signature song''||'''ujak deuzun'''
|-
|''slow jam''||'''bluz deuzun'''
|-
|''soliloquy''||'''awat, awat deuzun'''
|-
|''solo''||'''awat (duzun), awat (deuzun)'''
|-
|''song''||'''deuzun'''
|-
|''spiritual, negro spiritual''||'''topa deuzun'''
|-
|''sporting song''||'''tapifek deuzun'''
|-
|''symphony''||'''viduzunyag'''
|-
|''theme song''||'''texzena deuz'''
|-
|''torch song''||'''ifonok uvdeuzun'''
|-
|''vaudeville song''||'''Vaudeville deuzun'''
|-
|''Wienerlied''||'''Viena deuzun'''
|}
==== Musicians ====
{| class="wikitable sortable" style="background: lightyellow;{{text default color}}; font-size:smaller"
|+ Musicians
! English !! Mirad
|-
|''musician''||'''duzut, duztoyb, duzuyt, duztwob'''
|-
|''instrumentalist''||'''duzarut'''
|-
|''violinist''||'''aduzarut'''
|-
|''conductor''||'''duzdeb''', '''duzutyaneb'''
|-
|''soloist''||'''anduzut'''
|-
|''singer, vocalist''||'''deuzut'''
|-
|''danseur''||'''dyaztwob'''
|-
|''ballerina''||'''dyazuyt, dyaztoyb'''
|-
|''dancer''||'''dazut, dazuyt'''
|-
|''opera singer''||'''dyuzut, dyuzuyt'''
|-
|''operatist, librettist''||'''dyuzdrut'''
|-
|''composer''||'''duzdrut'''
|-
|''lyricist, songwriter''||'''deuzdrut'''
|-
|''dance conductor''||'''dazeb'''
|-
|''(symphony) orchestra''||'''duzarutyan'''
|-
|''philharmonic orchestra''||'''duzarutyanag'''
|-
|''chorus, chorale'' ||'''deuzutyan'''
|-
|''dance troupe''||'''dazutyan'''
|}
==== Song Parts ====
{| class="wikitable sortable" style="background:lightyellow;{{text default color}};font-size:smaller"
|+ Song Parts
! Mirad !! English
|-
|'''ujgon'''||''coda''
|-
|'''ijgon'''||''intro''
|-
|'''ebek'''||''interlude''
|-
|'''ijek'''||''finale''
|-
|'''gawijun'''||''reprise''
|-
|'''gawdeuzun'''||''refrain''
|-
|'''agalduznad'''||''theme''
|-
|'''nadyan'''||''verse''
|-
|'''zeymep'''||''bridge''
|-
|'''gawdwas'''||''chorus''
|-
|'''ujnadyan'''||''outro''
|}
==== Music Genres ====
: Some genres and styles of music:
{| class="wikitable sortable" style="background:lightyellow;{{text default color}};font-size:smaller"
|+ Genres of Music
! Mirad !! English
|-
|'''a kapella, boy duzari'''||''a capella''
|-
|'''yugtaxea duz'''||''ambiant''
|-
|'''Usoma tyoyduz'''||''American folk''
|-
|'''Usoma egona duz'''||''American standard''
|-
|'''yizejna'''||''avant garde''
|-
|'''Baroka'''||''Baroque''
|-
|'''yolza vab'''||''bluegrass''
|-
|'''bluz'''||''blues''
|-
|'''Bolliwud'''||''Bollywood''
|-
|'''bossa nova'''||''bossa nova''
|-
|'''kalipso'''||''calypso''
|-
|'''Kelta yagdeuz'''||''Celtic chant''
|-
|'''Canima tyoyduz'''||''Chinese folk''
|-
|'''Canima ajutbyena dyuz'''||''Chinese traditional opera''
|-
|'''jejoba deupyan ay bluz'''||''contemporary R&B''
|-
|'''maima bluz'''||''country blues''
|-
|'''maima duz'''||''country music''
|-
|'''maima pop'''||''country pop''
|-
|'''maima rap'''||''country rap''
|-
|'''maima rok'''||''country rock''
|-
|'''dazam pop'''||''dancehall pop''
|-
|'''disko'''||''disco''
|-
|'''du-wop'''||''doo-wop''
|-
|'''maka dauz'''||''electronic dance music (EDM)''
|-
|'''yugtaxea duz'''||''elevator music''
|-
|'''Euma disko'''||''Euro-disco''
|-
|'''jwayeka'''||''experimental''
|-
|'''flamenko'''||''flamenco''
|-
|'''funk'''||''funk''
|-
|'''Gregoria yagdeuz'''||''Gregorian chant''
|-
|'''hip-hop'''||''hip-hop''
|-
|'''honki-tonk'''||''honky-tonk''
|-
|'''hyusuna rok'''||''Indie rock''
|-
|'''jaz'''||''jazz''
|-
|'''makjaz'''||''jazztronica''
|-
|'''juju'''||''juju''
|-
|'''fyaxela duz'''||''liturgical music''
|-
|'''majika'''||''majika''
|-
|'''mamo'''||''mambo''
|-
|'''merengwe'''||''merengue''
|-
|'''mesitzo'''||''mesitzo''
|-
|'''mug'''||''metal''
|-
|'''Mixuma duz'''||''Mexican''
|-
|'''seuz bi Naxvil'''||''Nashville sound''
|-
|'''Ejna Orleans bluz'''||''New Orleans blues''
|-
|'''dyuz'''||''opera''
|-
|'''rancera'''||''ranchera''
|-
|'''rap'''||''rap''
|-
|'''rege'''||''reggae''
|-
|'''deupyan ay blus, ro-ay-ba'''||''rhythm & blues''
|-
|'''rok-ay-rol'''||''rock & roll''
|-
|'''salsa'''||''salsa''
|-
|'''samba'''||''samba''
|-
|'''ska'''||''ska''
|-
|'''galoduzaruta duz'''||''steel band music''
|-
|'''swing'''||''swing''
|-
|'''Tehano'''||''Tejano''
|-
|'''eyntuj duz'''||''trance music''
|-
|'''Zumera visauna'''||''Western classical''
|-
|'''Zumeryena'''||''Western''
|-
|'''zideko'''||''zydeco''
|}
=== Geographic Placenames ===
: As in English, Geograpic placenames are capitalized, including the languages and inhabitants.
==== Countries of the World ====
[[File:Flickr - …trialsanderrors - Johnson's new chart of national emblems, 1868.jpg|thumb|]]
Below is a complete list of the current officially assigned ISO 3166-1 alpha-3 codes, with country names being English short country names officially used by the ISO 3166 Maintenance Agency (ISO 3166/MA). The Mirad equivalents are formed by replacing the letters of the ISO code with the lowercase Mirad alphabetic spells, except if the letter is followed by a vowel, in which case the ISO letter is kept as is, but lower-cased. The letter '''m''' is suffixed as a stub for "place" and then the word-initial letter is capitalized, eg.:
: Example 1:
: ''Burundi'' is translated as follows:
::* The ISO 3166-1 alpha-3 code is BDI.
::* ''BDI'' is lowercased to ''bdi''
::* '''b''' is convered to the Mirad alphabetic spell '''ba'''.
::* Since ''d'' is followed by a vowel, it is left as is: '''d'''.
::* The vowel ''i'' is left as is: '''i'''
::* '''m''' is appended for ''place'': '''badim'''
::* The initial letter of the country name is capitalized: '''Badim'''
::* BDI (Burundi) = '''Badim'''.
: Example 2:
: ''Uzbekistan'' is translated as follows:
::* The ISO 3166-1 alpha-3 code is UZB.
::* ''UZB'' is lowercased to ''uzb''
::* '''u''' is left as is: '''u'''.
::* '''z''' is converted to the Mirad alphabetic spell: '''zu'''
::* '''b''' is converted to the Mirad alphabetic spell: '''ba'''
::* '''m''' is appended for ''place'': '''uzubam'''
::* The initial letter of the country name is capitalized: '''Uzubam'''
::* UZB (Uzbekistan) = '''Uzubam'''.
{| class="wikitable sortable" style="background: lightyellow;{{text default color}}; margn-left:1.6em; font-size:smaller;"
|+ Country Names (click on arrows to sort a column)
! ISO !! English !! Mirad
|-
| ABW || ''Aruba''||'''Abawum'''
|-
| AFG || ''Afghanistan''||'''Afegem'''
|-
| AGO || ''Angola''||'''Agom'''
|-
| AIA || ''Anguilla''||'''Aiam'''
|-
| ALA || ''[[w:Åland|Åland Islands]]''||'''Alam'''
|-
| ALB || ''Albania''||'''Alibam'''
|-
| AND || ''Andorra''||'''Anidam'''
|-
| ANT || ''Netherlands Antilles''||'''Anitom'''
|-
| ARE || ''United Arab Emirates''||'''Arem'''
|-
| ARG || ''Argentina''||'''Arogem'''
|-
| ARM || ''Armenia''||'''Aromim'''
|-
| ASM || ''American Samoa''||'''Asomim'''
|-
| ATA || ''Antarctica''||'''Atam'''
|-
| ATF || ''French Southern Territories''||'''Atofem'''
|-
| ATG || ''Antigua and Barbuda''||'''Atogem'''
|-
| AUS || ''Australia''||'''Ausom'''
|-
| AUT || ''Austria''||'''Autom'''
|-
| AZE || ''Azerbaijan''||'''Azem'''
|-
| BDI || ''Burundi''||'''Badim'''
|-
| BEL || ''Belgium''||'''Belim'''
|-
| BEN || ''Benin''||'''Benim'''
|-
| BFA || ''Burkina Faso''||'''Bafam'''
|-
| BGD || ''Bangladesh''||'''Bagedam'''
|-
| BGR || ''Bulgaria''||'''Bagerom'''
|-
| BHR || ''Bahrain''||'''Baherom'''
|-
| BHS || ''[[w|The Bahamas|Bahamas]]''||'''Bahesom'''
|-
| BIH || ''Bosnia and Herzegovina''||'''Bihem'''
|-
| BLM || ''Saint Barthélemy''||'''Balimim'''
|-
| BLR || ''Belarus''||'''Balirom'''
|-
| BLZ || ''Belize''||'''Balizum'''
|-
| BMU || ''Bermuda''||'''Bamum'''
|-
| BOL || ''Bolivia''||'''Bolim'''
|-
| BRA || ''Brazil''||'''Baram'''
|-
| BRB || ''Barbados''||'''Barobam'''
|-
| BRN || ''[[w:Brunei|Brunei Darussalam]]''||'''Baronim'''
|-
| BTN || ''Bhutan''||'''Batonim'''
|-
| BVT || ''Bouvet Island''||'''Bavutom'''
|-
| BWA || ''Botswana''||'''Bawam'''
|-
| CAF || ''Central African Republic''||'''Cafem'''
|-
| CAN || ''Canada''||'''Canim'''
|-
| CCK || ''Cocos Islands''||'''Cacakim'''
|-
| CHE || ''Switzerland''||'''Cahem'''
|-
| CHL || ''Chile''||'''Cahelim'''
|-
| CHN || ''[[w:People's Republic of China|China]]''||'''Cahenim'''
|-
| CIV || ''Côte d'Ivoire''||'''Civum'''
|-
| CMR || ''Cameroon''||'''Camirom'''
|-
| COD || ''Democratic Republic of the Congo''||'''Codam'''
|-
| COG || ''Republic of the Congo''||'''Cogem'''
|-
| COK || ''Cook Islands''||'''Cokim'''
|-
| COL || ''Colombia''||'''Colim'''
|-
| COM || ''Comoros''||'''Comim'''
|-
| CPV || ''Cape Verde''||'''Capovum'''
|-
| CRI || ''Costa Rica''||'''Carim'''
|-
| CUB || ''Cuba''||'''Cubam'''
|-
| CXR || ''Christmas Island''||'''Caxurom'''
|-
| CYM || ''Cayman Islands''||'''Cayumim'''
|-
| CYP || ''Cyprus''||'''Cayupom'''
|-
| CZE || ''Czechia''||'''Cazem'''
|-
| DEU || ''Germany''||'''Deum'''
|-
| DJI || ''Djibouti''||'''Dajim'''
|-
| DMA || ''Dominica''||'''Damam'''
|-
| DNK || ''Denmark''||'''Danikim'''
|-
| DOM || ''Dominican Republic''||'''Domim'''
|-
| DZA || ''Algeria''||'''Dazam'''
|-
| ECU || ''Ecuador''||'''Ecum'''
|-
| EGY || ''Egypt''||'''Egeyum'''
|-
| ERI || ''Eritrea''||'''Erim'''
|-
| ESH || ''Western Sahara''||'''Esohem'''
|-
| ESP || ''Spain''||'''Esopom'''
|-
| EST || ''Estonia''||'''Esotom'''
|-
| ETH || ''Ethiopia''||'''Etohem'''
|-
| FIN || ''Finland''||'''Finim'''
|-
| FJI || ''Fiji''||'''Fejim'''
|-
| FLK || ''Falkland Islands (Malvinas)''||'''Felikim'''
|-
| FRA || ''France''||'''Feram'''
|-
| FRO || ''Faroe Islands''||'''Ferom'''
|-
| FSM || ''Federated States of Micronesia''||'''Fesomim'''
|-
| GAB || ''Gabon''||'''Gabam'''
|-
| GBR || ''United Kingdom''||'''Gebarom'''
|-
| GEO || ''Georgia''||'''Geom'''
|-
| GGY || ''Guernsey''||'''Gegeyum'''
|-
| GHA || ''Ghana''||'''Geham'''
|-
| GIB || ''Gibraltar''||'''Gibam'''
|-
| GLP || ''Guadeloupe''||'''Gelipom'''
|-
| GMB || ''Gambia''||'''Gemibam'''
|-
| GNB || ''Guinea-Bissau''||'''Genibam'''
|-
| GNQ || ''Equatorial Guinea''||'''Geniqom'''
|-
| GRC || ''Greece''||'''Gerocam'''
|-
| GRD || ''Grenada''||'''Gerodam'''
|-
| GRL || ''Greenland''||'''Gedolim'''
|-
| GTM || ''Guatemala''||'''Getomim'''
|-
| GUF || ''French Guiana''||'''Gufem'''
|-
| GUM || ''Guam''||'''Gumim'''
|-
| GUY || ''Guyana''||'''Guyum'''
|-
| HKG || ''Hong Kong''||'''Hekigem'''
|-
| HMD || ''Heard Island and McDonald Islands''||'''Hemidam'''
|-
| HND || ''Honduras''||'''Henidam'''
|-
| HRV || ''Croatia''||'''Herovum'''
|-
| HTI || ''Haiti''||'''Hetim'''
|-
| HUN || ''Hungary''||'''Hunim'''
|-
| IDN || ''Indonesia''||'''Idanim'''
|-
| IMN || ''Isle of Man''||'''Iminim'''
|-
| IND || ''India''||'''Inidam'''
|-
| IOT || ''British Indian Ocean Territory''||'''Iotom'''
|-
| IRL || ''Republic of Ireland''||'''Irolim'''
|-
| IRN || ''Iran''||'''Ironim'''
|-
| IRQ || ''Iraq''||'''Iroqom'''
|-
| ISL || ''Iceland''||'''Isolim'''
|-
| ISR || ''Israel''||'''Isorom'''
|-
| ITA || ''Italy''||'''Itam'''
|-
| JAM || ''Jamaica''||'''Jamim'''
|-
| JEY || ''Jersey''||'''Jeyum'''
|-
| JOR || ''Jordan''||'''Jorom'''
|-
| JPN || ''Japan''||'''Jiponim'''
|-
| KAZ || ''Kazakhstan''||'''Kazum'''
|-
| KEN || ''Kenya''||'''Kenim'''
|-
| KGZ || ''Kyrgyzstan''||'''Kigezum'''
|-
| KHM || ''Cambodia''||'''Kihemim'''
|-
| KIR || ''Kiribati''||'''Kirom'''
|-
| KNA || ''Saint Kitts and Nevis''||'''Kinam'''
|-
| KOR || ''[[w:South Korea|Korea, Republic of]]''||'''Korom'''
|-
| KWT || ''Kuwait''||'''Kiwutom'''
|-
| LAO || ''Laos''||'''Laom'''
|-
| LBN || ''Lebanon''||'''Libanim'''
|-
| LBR || ''Liberia''||'''Libarom'''
|-
| LBY || ''Libya''||'''Libayum'''
|-
| LCA || ''Saint Lucia''||'''Licam'''
|-
| LIE || ''Liechtenstein''||'''Liem'''
|-
| LKA || ''Sri Lanka''||'''Likam'''
|-
| LSO || ''Lesotho''||'''Lisom'''
|-
| LTU || ''Lithuania''||'''Litum'''
|-
| LUX || ''Luxembourg''||'''Luxum'''
|-
| LVA || ''Latvia''||'''Livam'''
|-
| MAC || ''[[W:Macau|Macao]]''||'''Macam'''
|-
| MAF || ''Saint Martin''||'''Mafem'''
|-
| MAR || ''Morocco''||'''Marom'''
|-
| MCO || ''Monaco''||'''Micom'''
|-
| MDA || ''Moldova''||'''Midam'''
|-
| MDG || ''Madagascar''||'''Midagem'''
|-
| MDV || ''Maldives''||'''Midavum'''
|-
| MEX || ''Mexico''||'''Mexum'''
|-
| MHL || ''Marshall Islands''||'''Mihelim'''
|-
| MKD || ''Republic of Macedonia''||'''Mikidam'''
|-
| MLI || ''Mali''||'''Milim'''
|-
| MLT || ''Malta''||'''Militom'''
|-
| MMR || ''Myanmar''||'''Mimirom'''
|-
| MNE || ''Montenegro''||'''Minem'''
|-
| MNG || ''Mongolia''||'''Minigem'''
|-
| MNP || ''Northern Mariana Islands''||'''Minipom'''
|-
| MOZ || ''Mozambique''||'''Mozum'''
|-
| MRT || ''Mauritania''||'''Mirotom'''
|-
| MSR || ''Montserrat''||'''Misorom'''
|-
| MTQ || ''Martinique''||'''Mitoqom'''
|-
| MUS || ''Mauritius''||'''Musom'''
|-
| MWI || ''Malawi''||'''Miwim'''
|-
| MYS || ''Malaysia''||'''Miyusom'''
|-
| MYT || ''Mayotte''||'''Miyutom'''
|-
| NAM || ''Namibia''||'''Namim'''
|-
| NCL || ''New Caledonia''||'''Nicalim'''
|-
| NER || ''Niger''||'''Nerom'''
|-
| NFK || ''Norfolk Island''||'''Nifekim'''
|-
| NGA || ''Nigeria''||'''Nigam'''
|-
| NIC || ''Nicaragua''||'''Nicam'''
|-
| NOR || ''Norway''||'''Norom'''
|-
| NIU || ''Niue''||'''Nium'''
|-
| NLD || ''Netherlands''||'''Nilidam'''
|-
| NPL || ''Nepal''||'''Nipolim'''
|-
| NRU || ''Nauru''||'''Nirum'''
|-
| NZL || ''New Zealand''||'''Nizulim'''
|-
| OMN || ''Oman''||'''Ominim'''
|-
| PAK || ''Pakistan''||'''Pakim'''
|-
| PAN || ''Panama''||'''Panim'''
|-
| PCN || ''Pitcairn Islands''||'''Pocanim'''
|-
| PER || ''Peru''||'''Perom'''
|-
| PHL || ''Philippines''||'''Pohelim'''
|-
| PLW || ''Palau''||'''Poliwum'''
|-
| PNG || ''Papua New Guinea''||'''Ponigem'''
|-
| POL || ''Poland''||'''Polim'''
|-
| PRI || ''Puerto Rico''||'''Porim'''
|-
| PRK || ''North Korea''||'''Porikim'''
|-
| PRT || ''Portugal''||'''Porotom'''
|-
| PRY || ''Paraguay''||'''Poroyum'''
|-
| PSE || ''Palestinian territories''||'''Posem'''
|-
| PYF || ''French Polynesia''||'''Poyufem'''
|-
| QAT || ''Qatar''||'''Qatom'''
|-
| REU || ''Réunion''||'''Reum'''
|-
| ROU || ''Romania''||'''Roum'''
|-
| RUS || ''Russia''||'''Rusom'''
|-
| RWA || ''Rwanda''||'''Rowam'''
|-
| SAU || ''Saudi Arabia''||'''Saum'''
|-
| SDN || ''Sudan''||'''Sodanim'''
|-
| SEN || ''Senegal''||'''Senim'''
|-
| SGP || ''Singapore''||'''Sogepom'''
|-
| SGS || ''South Georgia and the South Sandwich Islands''||'''Sogesom'''
|-
| SHN || ''Saint Helena''||'''Sohenim'''
|-
| SJM || ''Svalbard and Jan Mayen''||'''Sojimim'''
|-
| SLB || ''Solomon Islands''||'''Solibam'''
|-
| SLE || ''Sierra Leone''||'''Solem'''
|-
| SLV || ''El Salvador''||'''Solivum'''
|-
| SMR || ''San Marino''||'''Somirom'''
|-
| SOM || ''Somalia''||'''Somim'''
|-
| SPM || ''Saint Pierre and Miquelon''||'''Sopomim'''
|-
| SRB || ''Serbia''||'''Sorobam'''
|-
| STP || ''São Tomé and Príncipe''||'''Sotopom'''
|-
| SUR || ''Suriname''||'''Surom'''
|-
| SVK || ''Slovakia''||'''Sovukim'''
|-
| SVN || ''Slovenia''||'''Sovunim'''
|-
| SWE || ''Sweden''||'''Sowem'''
|-
| SWZ || ''Swaziland''||'''Sowuzum'''
|-
| SYC || ''Seychelles''||'''Soyucam'''
|-
| SYR || ''Syria''||'''Soyurom'''
|-
| TCA || ''Turks and Caicos Islands''||'''Tocam'''
|-
| TCD || ''Chad''||'''Tocadam'''
|-
| TGO || ''Togo''||'''Togom'''
|-
| THA || ''Thailand''||'''Toham'''
|-
| TJK || ''Tajikistan''||'''Tojikim'''
|-
| TKL || ''Tokelau''||'''Tokilim'''
|-
| TKM || ''Turkmenistan''||'''Tokimim'''
|-
| TLS || ''East Timor''||'''Tolisom'''
|-
| TON || ''Tonga''||'''Tonim'''
|-
| TTO || ''Trinidad and Tobago''||'''Totom'''
|-
| TUN || ''Tunisia''||'''Tunim'''
|-
| TUR || ''Turkey''||'''Turim'''
|-
| TUV || ''Tuvalu''||'''Tuvum'''
|-
| TWN || ''Taiwan''||'''Towunim'''
|-
| TZA || ''Tanzania''||'''Tozam'''
|-
| UGA || ''Uganda''||'''Ugam'''
|-
| UKR || ''Ukraine''||'''Ukirom'''
|-
| UMI || ''United States Minor Outlying Islands''||'''Umim'''
|-
| URY || ''Uruguay''||'''Uroyum'''
|-
| USA || ''United States''||'''Usam'''
|-
| UZB || ''Uzbekistan''||'''Uzubam'''
|-
| VAT || ''Vatican City''||'''Vatom'''
|-
| VCT || ''Saint Vincent and the Grenadines''||'''Vucatom'''
|-
| VEN || ''Venezuela''||'''Venim'''
|-
| VGB || ''British Virgin Islands''||'''Vugebam'''
|-
| VIR || ''United States Virgin Islands''||'''Virom'''
|-
| VNM || ''Vietnam''||'''Vunimim'''
|-
| VUT || ''Vanuatu''||'''Vutom'''
|-
| WLF || ''Wallis and Futuna''||'''Wulifem'''
|-
| WSM || ''Samoa''||'''Wusomim'''
|-
| YEM || ''Yemen''||'''Yemim'''
|-
| ZAF || ''South Africa''||'''Zafem'''
|-
| ZMB || ''Zambia''||'''Zumibam'''
|-
| ZWE || ''Zimbabwe''||'''Zuwem'''
|}
: The adjective for these Mirad country names can be formed by suffixing the adjective marker '''a''', eg:
::* '''Feram'''....''France'' ==> '''Ferama'''....''French''
::* '''Usam'''....''United States'' ==> '''Usama'''....''American''
::* '''Deum'''....''Germany'' ==> '''Deuma'''....''German''
: The inhabitant of a country is formed by changing the final '''m''' of the placename to '''t''' (meaning person), eg:
::* '''Feram'''....''French'' ==> '''Ferat'''....''a French person, a Frenchman''
: The names of country inhabitants can be pluralized and genderized, as other animate nouns, eg:
::* '''Ferat'''....''a French person'' ==> '''ha Ferati'''....''the French''
::* '''Etohet'''....''an Ethiopian'' ==> '''Etohetwob'''....''an Ethiopian male''
::* '''Finit'''....''a Finn'' ==> '''Finiyt'''....''a Finnish woman''
::* '''Finitwob'''....''a male Finn'' ==> '''Finitoyb'''....''a female Finn''
: Do not confuse the adjectival name of a country with the language: '''Ferama''' refers to the country of ''France'', not the language ''French''. ''French'' the language is '''Ferad.'''
: Occasionally, a country name can be made into a verb, eg:
::* '''Usamaxer'''....''to Americanize'' (trans.)
::* '''Usamaser'''....''to Americanize'' (intr.)
::* '''Usamaxen'''....''Americanization''
::* '''Feramaxer'''....''to Frenchify'' (trans.)
::* '''Feramaser'''....''to become French'' (intr.)
: To say ''in a country'', the preposition '''be''' is always used (not '''yeb'''):
::* '''be Usam'''....''in the U.S.''
::* '''be Venim'''....''in Venezuela''
::* '''be Turim'''....''in Turkey'' (or Tüaut;rkiye)
==== Continents ====
[[File:Continental models.gif|thumb]]
: The word for ''continent'' in Mirad is '''yanmel''' (= "together-soil"). The names of the continents in Mirad are formed from the word '''yanmel''' with vectorial prefixes.
{| class="wikitable" style="background:lightyellow;{{text default color}};margn-left:1.6em; font-size:smaller;"
|+ Continent Names
|-
! Mirad !! English
|-
| '''Ayanmal''' || ''North America''
|-
| '''Oyanmel''' || ''South America''
|-
| '''Iyanmel''' || ''Asia''
|-
| '''Uyanmel''' || ''Europe''
|-
| '''Eyanmel''' || ''Africa''
|-
| '''Yoyanmel''' || ''Oceania''
|}
: The adjective counterparts of these placenames are derived by suffixing '''-a''':
:* '''Iyanmela'''....''Asian''
:* '''Uyanmela'''....''European''
: By appending '''-t(i)''' to the adjectival names, we get the inhabitants:
:* '''Eyanmelat'''....''an African''
:* '''Ayanmelati'''....''North Americans''
: Note:
<div style="background: lightyellow;{{text default color}};">
:* The ''Americas'' is expressed in Mirad with the hybrid word '''Aoyanmel''' (a combination of North and South America).
:* ''Central America'' is expressed in Mirad by '''Zea Aoyanmel''' (''Central America'')
:* The word '''Usam''' means ''United States of America'' or ''USA''. The word ''America'' by itself is not used in Mirad; only ''North America'' or ''South America''.
:* The word '''Usamati''' is used for ''Americans'' when referring to inhabitants of the U.S.
:* The word '''Ayanmelati''' is used to refer to North Americans (U.S. and Canada).
:* The word '''Eyanmel-Usamat''', or more briefly, '''Eusamat''' is used for ''African American''.
:* ''Latin America'' is expressed as '''Liada Oyanmel'''.
:* ''A Latino, Latina, or Latinx'' in the U.S. is called '''Liadwut, Liaduyt, or Liadut'''.
:* In some geographic systems, '''Ausom'''....''Australia'' is considered a continent.
</div>
: The preposition '''be''' is used to mean ''in'' or ''on'' a continent, eg.:
::* '''Yit bese be Iyanmel.'''....''They live in Asia.''
: The word for ''island'' is '''yonmel''' (= ''separate land''). An islander is '''yonmelat'''.
: The preposition '''be''' is used to mean ''on'' an island, eg:
::* '''At fu beser be awas bi ha yonmeli bi Hawai.'''....''I would like to live on one of the islands of Hawaii.''
==== Oceans ====
: The Mirad word for ocean is '''mimag'''. The ocean names are formed by prefixing a vectorial ordinal to the word '''mimag''':
{| class="wikitable" style="background:lightyellow;{{text default color}};margn-left:1.6em; font-size:smaller;"
|+ Ocean Names
|-
! Mirad !! English
|-
| '''Amimag''' || ''Arctic Ocean''
|-
| '''Omimag''' || ''Southern Ocean''
|-
| '''Imimag''' || ''Pacific Ocean''
|-
| '''Umimag''' || ''Atlantic Ocean''
|-
| '''Emimag''' || ''Indian Ocean''
|}
==== Compass Directions and Poles ====
: The compass directions ('''merizoni''') and poles ('''mernodi''') are as follows:
::* '''zamer'''....''north'' / '''zamera'''....''northern'' / '''zamernod'''....''north pole''
::* '''zomer'''....''south'' / '''zomera'''....''southern'' / '''zomernod'''....''south pole''
::* '''zimer'''....''east'' / '''zimera'''....''eastern''
::* '''zumer'''....''west'' / '''zumera'''....''western''
: The words '''Yibzamer'''....''Arctic'' and '''Yibzomer'''...''Antarctic(a)'' both use the prefix '''yib'''....''far''.
: Prefixing the directions with '''iz-'''....''due-'' yields:
::* '''iz zamer'''....''due north''
::* '''iz zomer'''....''due south'', etc.
: Directional words can be hybridized, eg:
::* '''zaomera'''....''north-south''
::* '''zuimera'''....''east-west''
::* '''zaumera'''....''north-west''
::* '''zaimera'''....''north-east''
==== Earth Grid Lines ====
: The earth grid lines ('''mernadi''') are as follows:
::* '''zamernad'''....''Arctic Circle''
::* '''zomernad'''....''Antarctic Circle''
::* '''zaomernad'''....''longitude''
::* '''zuimernad'''....''latitude''
::* '''zemernad'''....''equator''
:::* '''abzemernad'''....''Tropic of Capricorn''
:::* '''obzemernad'''....''tropic, Tropic of Cancer''
::::* '''yizobzemernad'''....''subtropic''
::* '''eymernad'''....''meridian''
::* '''mamnad'''....''horizon''
::* '''aonada'''....''vertical''
::* '''uinada'''....''horizontal''
::* '''zyenada'''....''perpendicular''
==== Languages of the World ====
[[File:Wiktionary-logo.svg|thumb|]]
: Mirad names of languages are based on either:
::* the name of the country most associated with the language (English < England, French < France), or:
::* the ISO 639-2 alpha-3 three-letter code. (See [[https://www.loc.gov/standards/iso639-2/php/code_list.php|Library of Congress ISO639-2 Codes]].
: If formed from the country name, the language name is acquired by replacing the final '''m''' or the country name with '''d'''. For example, '''Enigem''' (''England''), becomes '''Eniged''' (''English''). See [[Mirad_Grammar#Countries of the World|Countries of the World]].
: If formed from the ISO 639-2 code, because their is no particular country associated with the language, the letters of the code are replaced with the Mirad lowercase alphabetic spells. The initial letter is capitalized and '''d''' is suffixed to the word. A Mirad alphabetic spell in the shape of consonant+vowel loses its vowel before a spell consisting of just a vowel. For example, '''ba''' + '''e''' becomes '''be'''.
:{| class="wikitable sortable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Mirad Language Names
|-
! ISO Language Name !! Country or ISO Code !! Mirad Language Name
|-
| Abkhazian || abk || '''Abakid'''
|-
| Afar || aar || '''Aarod'''
|-
| Afrikaans || '''Zafem'''....''South Africa'' || '''Zafed'''
|-
| Akan || aka || '''Akad''' (< a + ki + a +d, where ki + a = ka)
|-
| Albanian || '''Alibam'''....''Albania'' || '''Alibad'''
|-
| Amharic || amh || '''Amihed'''
|-
| Arabic || ara || '''Arad'''
|-
| Aragonese || arg || '''Aroged'''
|-
| Armenian || '''Aromim''' || '''Heyud'''
|-
| Assamese || asm || '''Asomid'''
|-
| Avaric || ava || '''Avad'''
|-
| Avestan || ave || '''Aved'''
|-
| Aymara || aym || '''Ayumid'''
|-
| Azerbaijani || '''Azem'''....''Azerbaijan'' || '''Azed'''
|-
| Bambara || bam || '''Bamid'''
|-
| Bashkir || bak || '''Bakirod'''
|-
| Basque || baq || '''Baqod'''
|-
| Belarusian || '''Balirom'''....''Belarusia'' || '''Balirod'''
|-
| Bengali || '''Bagedim'''....''Bangladesh'' || '''Bagedid'''
|-
| Bislama || bis || '''Bisod'''
|-
| Bosnian || '''Bihem'''....''Bosnia'' || '''Bihed'''
|-
| Breton || bre || '''Bared'''
|-
| Bulgarian || '''Bagerom'''....''Bulgaria'' || '''Bagerod'''
|-
| Burmese || '''Mimirom'''....''Miyanmar'' || '''Mimirod'''
|}
...and so on...
: The language names can be adjectivized by suffixing '''-a''', eg:
::* '''Eniged'''....''(the) English (language)'' ==> '''Enigeda'''....''(in the) English (language)''
::* '''Hia Enigeda dreun se testiyofwa.'''....''This English language document is incomprehensible.''
: The language names can be verbalized with the addition of '''-der'''....''to say'', '''-daler'''....''to speak'', and '''-xer'''....''to translate into'', eg:
::* '''Ferad'''....''French'' ==> '''Ferader'''....''to say in French''
::* '''Esopod'''....''Spanish'' ==> '''Esopodaler'''....''to speak Spanish''
::* '''Arad'''....''Arabic'' ==> '''Aradxer'''....''to Arabicize/translate into Arabic''
::* '''Ferad bayse gla Enigedxwasi.'''....''French has many Anglicizations.''
: The speaker of a language is created by adding '''-ut''' or '''-alut''', eg:
::* '''Eniged'''....''English'' ==> '''Enigedut (or) Enigedalut'''....''English speaker''
::* '''Duven et Enigedale?'''....''Do you speak English?''
::* '''Aradu hia dun.'''....''Say this word in Arabic.''
::* '''At se Itadut/Itadalut.'''....''I am a speaker of Italian.''
: Specialized forms, dialects, levels, and regional variants of languages are expressed as follows:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Language Variants
|-
! Variation Category !! Example
|-
| '''Ajna'''....''Old/Ancient'' || '''Ajna Eniged'''....''Old English''
|-
| '''Ejoba'''....''Modern'' || '''Ejoba Perod'''....''Modern Persian, Farsi''
|-
| '''Visauna'''....''Classical'' || '''Visauna Gerocad'''....''Classical Greek''
|-
| '''Vyirina'''....''Puristic'' || '''Vyirina Gerocad'''....''Katharevousa (Puristic Greek)''
|-
| '''Tyoda'''....''Vulgar/Popular/Demotic'' || '''Tyoda Latod'''....''Vulgar Latin''<br>'''Tyoda Gerocad'''....''Demotic Greek''
|-
| '''Fyaxela'''....''Liturgical'' || '''Fyaxela Hebad'''....''Liturgical Hebrew''
|-
| '''Fyadyesa'''....''Biblical'' || '''Fyadyesa Hebad'''....''Biblical Hebrew''
|-
| '''Egona'''....''Standard'' || '''Ejoba Egona Arad'''....''Modern Standard Arabic''
|-
| '''Egema'''....''Egyptian'' || '''Egema Arad'''....''Egyptian Arabic''
|-
| '''Usoma'''....''American'' || '''Usoma Eniged'''....''American English''
|}
: There are some languages with no ISO code that have to be formed in another way, in particular, Mirad itself.
::* '''Mirad'''....''Mirad'' ('''Mir'''....''world'')
::* '''Umerad'''....''Martian'' ('''Umer'''...''Mars'')
::* ''Celtic'', which is the name of a family of languages, is represented by the ISO code "cel" and is therefore called '''Celid''' in Mirad.
::* ''Indo-European'', with the code "ine", translates to '''Inied''' in Mirad.
==== Cities and Their Residents ====
: Here are some key cities, their adjectival forms, and inhabitants. The adjective can end in '''-a''' or '''-yena'''.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Cities and Their Residents
|-
! City !! Adjective !! Inhabitant
|-
| '''Paris'''....''Paris'' || '''Paris<u>yena</u>'''....''Parisian'' || '''Paris<u>at</u>'''....''Parisian''
|-
| '''Ejna York'''....''New York'' || '''Ejna York<u>a</u>'''....''of New York'' || '''Ejna York<u>at</u>'''....''New Yorker''
|-
| '''Rom'''....''Rome'' || '''Rom<u>a</u>'''....''Roman'' || '''Rom<u>at</u>'''....''Roman''
|-
| '''Beijing'''....''Beijing'' || '''Beijing<u>a</u>'''....''of Beijing'' || '''Beijing<u>at</u>'''....''resident of Beijing''
|-
| '''Berlin'''....''Berlin'' || '''Berlin<u>a</u>'''....''from Berlin'' || '''Berlin<u>at</u>'''....''Berliner''
|}
: Examples:
:* '''Berlina diti dyunwe Berlinati.'''....''Berlin citizens are called Berliners.''
:* '''Bostonati bayse Bostonyena deus.'''....''Bostonians have a Bostonian accent.''
=== Playing Cards Notation ===
: The playing card suits and prime denominations are:
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller"
|+ Playing Card Suits
|-
! Mirad !! English !! Image
|-
| '''tiib''' || ''heart''|| <span style="font-size:120%">{{cards|h}}</span>
|-
| '''melukar''' || ''spade''|| <span style="font-size:120%">{{cards|s}}</span>
|-
| '''amez''' || ''diamond''|| <span style="font-size:120%">{{cards|d}}</span>
|-
| '''infayeb''' || ''club''|| <span style="font-size:120%">{{cards|c}}</span>
|}
::{| class="wikitable" style="background: lightyellow;{{text default color}}; font-size:smaller"
|+ High Cards plus the Joker
|-
! Mirad !! English !! Image
|-
| '''Az bi tiibi''' || ''ace of hearts''||[[File:Simple_h_a.svg|40px|thumb]]
|-
| '''Edweb bi melukari'''||''king of spades''||[[File:Simple_s_k.svg|40px|thumb]]
|-
| '''Edeyb bi amezi'''||''queen of diamonds''||[[File:Simple_d_q.svg|40px|thumb]]
|-
| '''Yuxtwobet bi infayebi''' || ''jack of clubs''||[[File:Simple_c_j.svg|40px|thumb]]
|-
| '''hihiduut''' || ''joker''|| [[File:Simple_jk_b.svg|40px|thumb]]
|}
: Some useful terms:
::* '''eker drafi'''....''to play cards''
::* '''zyabuer ha drafi'''....''to deal the card''
::* '''ebnapxer ha drafi'''....''to shuffle the cards''
::* '''goler ha nyan'''....''to cut the deck''
::* '''ujber'''....''to fold''
::* '''durer'''....''to bid''
::* '''lokoxer draf'''....''to turn over a card''
::* '''lokoxer ota tuyab'''....''to show one's hand''
::* '''abnabxer'''....''to trump''
::* '''ekdrafnyan'''....''deck of cards''
::* '''nab'''....''suit''
::* '''joper nab'''...''to follow suit''
::* '''kyesdraf'''....''wild card''
::* '''abnaba draf'''....''trump card''
::* '''ha yannas'''....''the pot''
::* '''ha nax'''....''the ante''
::* '''yaber ha nax'''....''to up/raise the ante''
=== Chess Piece Nomenclature ===
{{chess diagram
| tright
|
|=
8 |rd|nd|bd|qd|kd|bd|nd|rd|=
7 |pd|pd|pd|pd| |pd|pd|pd|=
6 | | | | | | | | |=
5 | | | | |pd| | | |=
4 | | | | |pl|pl| | |=
3 | | | | | | | | |=
2 |pl|pl|pl|pl| | |pl|pl|=
1 |rl|nl|bl|ql|kl|bl|nl|rl|=
a b c d e f g h
| The King's Gambit
}}
: The game of chess is called '''xahifek''' in Mirad.
: The chess pieces ('''xahifek goyni''') are as follows:
:{| class="wikitable" style="background: lightyellow;{{text default color}}; font-size:smaller;"
|+ Chess Piece Names
|-
! Mirad !! English !! Image
|-
| '''edweb''' || ''king'' || [[File:Chess_klt45.svg|thumb|30px]]
|-
| '''edeyb''' || ''queen'' || [[File:Chess_qlt45.svg|30px|thumb]]
|-
| '''efyaxeb''' || ''bishop'' || [[File:Chess_blt45.svg|30px|thumb]]
|-
| '''ekpetob''' || ''knight'' || [[File:Chess_nlt45.svg|30px|thumb]]
|-
| '''tamaz''' || ''rook'' || [[File:Chess_rlt45.svg|30px|thumb]]
|-
| '''melyexut''' || ''pawn'' || [[File:Chess_plt45.svg|30px|thumb]]
|}
: Some chess terms:
::* ''to checkmate''....'''xahpexer'''
::* ''Check!''....'''Xah!'''
::* ''Checkmate!''....'''xahpexwa!'''
::* ''chess board''....'''xahifek drof'''
::* ''to move a piece''....'''paxer goun'''
::* ''to capture a piece''....'''pixler goun'''
::* ''chess clock''....'''xahifek jwobar'''
::* ''chess set''....''xahifek gounyan''
::* ''chess tournament''....'''xahifekanyan'''
::* ''chess player''....'''xahifekut'''
::* ''my turn''....'''ata zyuj'''
::* ''score''....'''aoksag'''
::* ''world champion''....'''miraklut'''
=== Botanical Nomenclature ===
: The plant world is a mighty big place and the names of all those flowers, fruits, vegetables, plants, etc. are very difficult to put into a rational naming scheme any better that the existing one using Latin appelations classified into phyla, classes, orders, families, genera, and species. This botanical world in Mirad, much like the system for coding the zoological world, is coded by a system of syllables that relate to the [https://rationalwiki.org/wiki/Linnaean_taxonomy|international Linnaean taxonomy].
==== Base Names ====
: So, in Mirad, botanical organism names have at their base the following words:
::* '''fab'''....trees
:::* '''feb'''....''fruits''
::::* '''feeb'''....''nuts''
::* '''fayb'''....''vines and shrubs''
:::* '''feyb'''....''berries''
::* '''vob'''....''crops''
::* '''vol'''....''vegetables''
::* '''veel'''....''legumes and beans''
::* '''vos'''....''flowers''
==== Specific Names ====
: To create more specific names, syllables derived from the Greco-Latin Linnaean Taxonomy, spelled to conform to Mirad pronuncation, are prefixed left-to-right onto one of the above base categories, with the left-most syllable representing the most specific taxon. So, for example, ''pine'' tree is rendered as '''pifab'''. The '''pi''' prefix is the first syllable of the family of pine trees ''<u>Pi</u>naceae''. The '''fab''' ending applies to all trees. To specify other trees in this family, other syllables are prepended, eg. ''cedar tree'' is '''<u>ce</u>pifab''' from ''Pianaceae <u>Ce</u>drus''. A ''cedar of Lebanon'' is '''<u>li</u>cepifab''' from the more specific ''Pinaceae Cedrus <u>li</u>bani''.
: By constructing botanical terms this way, all pine trees can be listed by searching for all names ending in '''pifab'''.
[[File:171 Magnolien.JPG|thumb|]]
{| class="wikitable" style="background: lightyellow;{{text default color}}; font-size:smaller;"
|+ '''Basic Botanical Terms'''
|-
|style="vertical-align:top;"|'''fob'''....''plant''||style="vertical-align:top;"|'''vob'''....''crop''||style="vertical-align:top;"|'''vol'''....''vegetable''||style="vertical-align:top;"|'''vos'''....''flower''
|-
|style="vertical-align:top;"|'''fab'''....''tree''<br>'''fayeb'''....''leaf''<br>'''faob'''....''wood''<br>'''fayob'''....''bark''||style="vertical-align:top;"|'''vab'''....''grass''<br>'''vayob'''....''peel''|| ||'''vosayeb'''....''petal''<br>'''vosayob'''....''sepal''
|-
|style="vertical-align:top;"|'''feb/feeb'''....''fruit/nut''||style="vertical-align:top;"|'''veb'''....''ear/tuft''<br>'''veeb'''....''seed''<br>'''veeyb'''....''grain''||style="vertical-align:top;"|'''veel'''....''legume''||'''voseb'''....''capitulum''
|-
|style="vertical-align:top;"|'''fib'''....''trunk''||style="vertical-align:top;"|'''vib'''....''stem'' || || '''vosib'''....''receptacle''
|-
|style="vertical-align:top;"|'''fub'''....''branch''||style="vertical-align:top;"|'''vub'''....''blade''<br>'''vulob'''....''thorn'' || ||
|-
|style="vertical-align:top;"|'''fyob'''....''root''||style="vertical-align:top;"|'''vyob'''....''tuber'' || || '''vosyob'''....''peduncle''
|}
===== Product Names =====
: Products derived from plants are formed with the following words:
::* '''-fiil'''....''juice (from a pome)''
:::* '''licirufiil'''....''lemon juice'' < '''licirufeb'''....''lemon''
::* '''-feel'''....''-ade''
:::* '''licirufeel'''....''lemonade'' < '''licirufeb'''....''lemon''
::* '''-feyl'''....''juice (from a berry or bean)''
:::* '''kofeyl'''....''coffee'' < '''kofeyb'''....''coffee bean''
::* '''-fayel'''....''leaf juice''
:::* '''tefayel'''....''tea'' < '''tefayeb'''....''tea leaf''
::* '''-fil'''....''alcoholic drink/cider''
:::* '''zepofil'''....''bourbon whiskey'' < '''zepovob'''....''corn''
::* '''-fyel'''....''oil/jam/syrup''
:::* '''frarofyel'''....''strawberry jam'' < '''frarofeyb'''....''strawberry''
::* '''-fyeyl'''....''jelly''
:::* '''frarofyeyl'''....''strawberry jelly''
::* '''-ol'''....''grounds/powder''
:::* '''sakol'''....''sugar'' < '''sakvob'''....''sugar cane''
: Individual derivations of these base words are formed exactly as the names of animals in the section [[Mirad_Grammar#Zoological_Nomenclature|Zoological Nomenclature]]. For example, an ''apple'' is from the <u>Ro</u>saceae family of trees, the genus being ''<u>Ma</u>lus''. So the word for ''apple'' becomes '''marofeb'''. ''Apple tree'' is '''marofab''' and ''apple juice'' is '''marofiil'''. Thus, ''apple cider'' is '''marofil'''.
===== Crops =====
: Crops are grassy plants that humans cultivate for clothing, food, medicine, or other social needs. Individual crop names are formed by prefixing the base '''vob''' with taxonomic syllables.
[[File:Usdaemmer1.jpg|thumb|]]
: The base words of this group are:
::* '''-vob'''....''crop''
::* '''-vab'''....''grass''
::* '''-vayeb'''....''leaf''
::* '''-veb'''....''ear, cob, head, spike, tuft''
::* '''-veeb'''....''seed, germ''
::* '''-veel'''....''bean, legume''
::* '''-veeyb'''....''grain, kernel, pip''
::* '''-vib'''....''stem''
::* '''-vub'''....''blade, sprig, twig''
::* '''-vyob'''....''tuber''
::* '''-vel'''....''edible product''
::* '''-vil'''....''drinkable product, beer''
::* '''-vyel'''....''syrup''
::* '''-vol'''....''vegetable''
: From the above base words are derived these products, among others:
::* '''sakol'''....''sugar'' < '''sakvob'''....''sugarcane''
::* '''povel'''....''bread'' < '''povob'''....''cereal''
::* '''zepovyel'''....''corn syrup, corn oil'' < '''zepovob'''....''corn''
::* '''zepovil'''....''whiskey, bourbon''
::* '''sepovil'''....''rye whiskey'' < '''zepovob'''....''rye''
::* '''povil'''....''beer''
::* '''epovil'''....''ale''
::* '''avpovob mekil'''....''oatmeal'' < '''avpovob'''....''oat''
::* '''orpovob zyiglal'''....''rice cake'' < '''orpovob'''....''rice''
::* '''mekuvol'''....''melon''
===== Vegetables and Legumes =====
: Vegetables are crops grown by human for food. Individual vegetable names are formed by prefixing the base '''vol''' (''vegetable'') or '''veel''' (''legume, bean'') with classifier syllables derived from the international Linnean Taxonomy. Vegetables can consist of bulbs, flowers, fruits, fungi, leaves, roots, seeds, legumes, beans, or stalks.
[[File:Hrushikesh kulkarni vegetables.JPG|thumb|]]
{| class="wikitable" style="background: lightyellow;{{text default color}}; font-size:smaller;"
|+ Vegetables
|-
! Edible Crop !! Taxonomy
|-
! colspan=2| LEGUMES: EDIBLE SEEDS
|-
|'''faveel'''....''bean'' || ''Fabaceae Phaseolus vulgaris''
|-
|'''lensfaveel'''....''lentil'' || ''Fabaceae Lens culinaris''
|-
|'''glifaveel'''....''soybeen'' || ''Fabaceae Glycine max''
|-
|'''vigfaveel'''....''black-eyed pea'' || ''Fabaceae Faseolus vigna unguiculata''
|-
! colspan=2 | Vegetables: Berries/Fruits
|-
|'''lisovol'''....''tomato'' || ''Solanaceae Solanum lycopersicum''
|-
|'''mesovol'''....''eggplant'' || ''Solanaceae Solanum melongena''
|-
|'''perlawvol'''....''avocado'' || ''Lauraceae Persea americana''
|-
|'''sakuvol'''....''cucumber'' || ''Cucurbitaceae Cucumis sativus''
|-
|'''cinasvol'''....''artichoke'' || ''Asteraceae Cynara cardunculus''
|-
|'''akapsovol'''....''chili pepper'' || ''Solanaceae Capsicum annuum''
|-
|'''abmalvol'''....''okra'' || ''Malvaceae Abelmoschus esculentus''
|-
! colspan=2 |bulbs
|-
|'''amalvol'''....''leek'' || ''Allium ampeloprasum''
|-
|'''cepalvol'''....''onion'' || ''Allium cepa''
|-
|'''alkalvol'''....''shallot'' || ''Alium ascalonicum''
|-
|'''satalvol'''....''garlic'' || ''Allium sativum''
|-
|'''zinvol'''....''ginger'' || ''Zingiberaceae Zingiber officinale''
|-
|'''skoynalvol'''....''chive'' || ''Allium Schoenoprasum''
|-
|'''foynapvol'''....''fennel'' || ''Apiaceae Phoenix dactylifera''
|-
! colspan=2 | melons/gourds
|-
|'''kuvol'''....''squash, gourd''|| ''Cucurbitaceae Cucurbita''
|-
|'''makuvol'''....''pumpkin'' || ''Cucurbitaceae Cucurbita maxima''
|-
|'''mekuvol'''....''melon, honeydew, cantaloupe'' || ''Cucurbitaceae Cucumis melon''
|-
|'''cikuvol'''....''watermelon'' || ''Cucurbitaceae Citrullus lanatus''
|-
|'''pekuvol'''....''zucchini'' || ''Cucurbitaceae Cucurbita pepo''
|-
! colspan=2 | Tubers/Root Vegetables
|-
|'''tusovol'''....''potato'' || ''Solanaceae Solanum tuberosum''
|-
|'''betamvol'''....''beet, beetroot'' || ''Amaranthaceae Beta vulgaris''
|-
|'''rafbravol'''....''radish''|| ''Brassicaceae Raphanus raphanistrum sativus''
|-
|'''kadawapvol'''....''carrot''||''Apiaceae Daucus carota''
|-
|'''nabravol'''....''turnip''|| ''Brassica napus''
|-
|'''cinasvol'''....''artichoke'' || ''Asteraceae Cynara cardunculus''
|-
|'''pasavol'''....''parsnip'' ||''Apiaceae Pastinaca sativa''
|-
|'''eskolaravol'''....''taro'' ||''Araceae Colocasia esculenta''
|-
|'''divol'''....''yam'' ||''Dioscoreaceae Dioscorea''
|-
! colspan=2| Leafy/Flowering Vegetables
|-
|'''bravol'''....''cabbage'' || ''Brassicaceae''
|-
|'''botrolbravol'''....''cauliflower''||''Brassica oleracea botrytis''
|-
|'''gemolbravol'''....''Brussels sprouts''|| ''Brassica oleracea gemmifera''
|-
|'''valkavol'''....''corn salad, lamb's lettuce''|| ''Caprifocilaceae Valerianella locusta''
|-
|'''lakasvol'''....''lettuce''|| ''Asteraceae Lactuta sative''
|-
|'''spinamvol'''....''spinach'' || ''Amaranthaceae Spinancia oleracea''
|-
|'''rupolivol'''....''sorrel''|| ''Polygonaceae Rumex acetosa''
|-
|'''tarasvol'''....''mustard greens''|| ''Asteraceae Taraxacum officinale''
|-
|'''itolbravol'''....''broccoli''|| ''Brassica Oleracea italica''
|-
|'''abmalvol'''....''okra''|| ''Malvaceae Abelmoschus esculentus''
|-
|'''petapvol'''....''parsley''|| ''Apiaceae Petroselinum crispum''
|-
|'''basoclamvol'''....''basil''|| ''Lamiaceae Ocimum basilicum''
|-
|'''orlamvol'''....''thyme''|| ''Lamiaceae Origanum vulgare''
|-
|'''encivol'''....''chicory, endive''|| ''Cichorium endivia''
|-
|'''nasbravol'''....''watercress''|| ''Brassicaceae Nasturtium officinale''
|-
|'''korapvol'''....''coriander''|| ''Apiaceae Coridandrum sativum''
|-
! colspan=2 | Stalks
|-
|'''aspavol'''....''asparagus''|| ''Asparagaceae Asparagus officinalis''
|-
|'''gravapvol'''....''celery''|| ''Apiaceae Apium graveolens''
|-
|'''rewmpolivol'''....''rhubarb''|| ''Polygonaceae Rheum hybridum''
|-
|'''kurzinvol'''....''turmeric''|| ''Zingiberaceae Curcuma longa''
|-
|'''kokarvol'''....''heart of palm, swamp cabbage''|| ''Arecaceae Cocos''
|-
|'''cimpovol'''....''lemongrass''|| ''Poaceae Cymbopogon''
|}
==== Common Flower Names ====
[[File:Madeira-flowers hg.jpg|thumb|]]
===== Flower Parts =====
: Flower names are built on the base name '''vos''', meaning ''flower''. First, here is a list of flower parts:
::* '''vosayob'''....''sepal''
::* '''vosayeb'''....''petal''
::* '''vosib'''....''receptacle''
::* '''veeybpexus''' or '''vosmekibar'''....''stigma''
::*'''vosij'''....''bud, flower bud''
::* '''tooybgon'''....''pistil''
::* '''veeybyan'''....''pollen''
::* '''twoobgon'''....''stamen''
::* '''twoobgonyif'''....''filament''
::* '''veeybyem''' or '''vosmekuar'''....''anther''
::* '''vosyob'''....''peduncle''
===== Flower Names =====
[[File:Tulipa suaveolens floriade to Canberra.jpg|thumb|]]
: Common flower names are generated by prefixing classifying syllables to the base '''vos''' that reflect the Linnaean taxonomic specification. Here are some examples:
: '''<u>som</u>pavos'''....''opium poppy'' (''<u>Pa</u>paver <u>som</u>niferum'')
: '''<u>mag</u>vos'''....''magnolia'' (''<u>Mag</u>noliaceae Magnolia'')
: '''<u>or</u>vos'''....''orchid'' (''<u>Or</u>chidaceae Orchis'')
: '''<u>krokir</u>vos'''....''crocus'' (''<u>Ir</u>idaceae <u>Cro</u>cus'')
=== Computer Terminology ===
[[File:Generic-office-desktop2.svg|thumb]]
: This section will be ever-changing as new technology emerges.
{| class="wikitable sortable collapsable" style="background: lightyellow;{{text default color}}; font-size:smaller;"
|+ Computerese
|-
! Mirad !! English
|-
|'''agna saibyan syaagir'''||''mainframe computer''
|-
|'''absem syaagir'''||''desktop computer''
|-
|'''agbanak'''||''byte''
|-
|'''ajnexer'''||''to archive''
|-
|'''amloagbanak'''||''megabyte''
|-
|'''anay dyewa tax'''||''read-only memory, ROM''
|-
|'''aota syaagir'''||''personal computer''
|-
|'''aottuunyan'''||''profile''
|-
|'''meys'''||''port''
|-
|'''apaxler'''||''to swipe''
|-
|'''aroagbanak'''||''kilobyte''
|-
|'''baler buxnuf'''||''to press/hit a key''
|-
|'''banak'''||''bit''
|-
|'''agdresin kyoxea buxnuf'''||''caps lock key''
|-
|'''buxnuf'''||''key''
|-
|'''buxnufsemes'''||''keyboard''
|-
|'''buxnufseym'''||''keypad''
|-
|'''izeaxus'''||''cursor''
|-
|'''byuxseym'''||''touchpad''
|-
|'''datier'''||''to friend''
|-
|'''dodrer ebdras'''||''to post a message''
|-
|'''dota zeyni'''||''social media''
|-
|'''ebdrer'''||''to text''
|-
|'''dreun'''||''document''
|-
|'''dreuzyufer'''||''to scroll, pan''
|-
|'''droer naab'''||''to delete a file''
|-
|'''drou buxnuf'''||''delete key''
|-
|'''drur'''||''printer''
|-
|'''drurer naab'''||''to print out a file''
|-
|'''drurer'''||''to print out''
|-
|'''druru mays buxnuf'''||''print screen key''
|-
|'''drurun'''||''a printout''
|-
|'''dunexlus'''||''word processor''
|-
|'''dyessiyn'''||''bookmark''
|-
|'''dyezier'''||''to take a movie''
|-
|'''ebdayler'''||''to chat''
|-
|'''ebdaylim'''||''chatroom''
|-
|'''emojin'''||''emoji''
|-
|'''ex buxnuf'''||''function key''
|-
|'''exen vyaab'''||''operating system''
|-
|'''extuundras'''||''program, application''
|-
|'''extuundrasog'''||''app''
|-
|'''extuunmul'''||''software''
|-
|'''extuundrer'''||''to program''
|-
|'''fuk'''||''bug''
|-
|'''fukaya'''||''buggy''
|-
|'''fukober'''||''to debug''
|-
|'''garalyoagbanak'''||''petabyte''
|-
|'''gelxer naab'''||''to copy a file''
|-
|'''googler'''||''to google''
|-
|'''gyia kyos yebiar'''||''solid state drive, SSD''
|-
|'''gyia zyiun yebiar'''||''cd drive''
|-
|'''haydren dyun'''||''login name''
|-
|'''haydrer bay tuyubbal'''||''to log in with one's fingerprint''
|-
|'''haydrer'''||''to log in''
|-
|'''hoydrer'''||''to log out''
|-
|'''huisteaxar'''||''browser''
|-
|'''kyeteaxer'''||''to browse''
|-
|'''hyux buxnuf'''||''alt key''
|-
|'''iber naab'''||''to receive a file''
|-
|'''ila mez sinuar, IMS'''||''liquid crystal display, LDC''
|-
|'''izbex buxnuf'''||''control key''
|-
|'''izbexdrof'''||''motherboard''
|-
|'''kliker ab'''||''click on''
|-
|'''kodun'''||''password''
|-
|'''gawdyunxer naab'''||''to rename a file''
|-
|'''kyabu buxnuf'''||''shift key''
|-
|'''kyea yempuen tax'''||''random access memory, RAM''
|-
|'''kyisier naab'''||''to download a file''
|-
|'''kyisuer naab'''||''to upload a file''
|-
|'''kyisuar'''||''charger''
|-
|'''kyisuer'''||''to charge''
|-
|'''lodatier'''||''to unfriend''
|-
|'''makebdren'''||''email''
|-
|'''makebdrer'''||''to email''
|-
|'''man-oyebubea enmep sinuar, MOES'''||''LED''
|-
|'''mansin dyes'''||''photo album''
|-
|'''mis'''||''window''
|-
|'''naab'''||''file''
|-
|'''naedzyun'''||''trackball''
|-
|'''nagonxar'''||''modem''
|-
|'''neaf mansiniar'''||''web camera''
|-
|'''nexer naab'''||''to save a file''
|-
|'''num yibdalir'''||''cellphone''
|-
|'''belyafwa syaagir'''||''laptop computer''
|-
|'''ooggos'''||''microchip''
|-
|'''oogteexar'''||''microphone''
|-
|'''omijber'''||''to boot up''
|-
|'''omola tyep, OT'''||''artificial intelligence, AI''
|-
|'''gawomijber'''||''to reboot''
|-
|'''paxer naab'''||''to move a file''
|-
|'''paxyafwa yibdalir'''||''mobile phone''
|-
|'''poxu zyumuf buxnuf'''||''scroll lock key''
|-
|'''sagbexu buxnuf'''||''numlock key''
|-
|'''sagseym'''||''number pad''
|-
|'''sam'''||''console''
|-
|'''saunesber naab'''||''to sort a file''
|-
|'''semes syaagir'''||''tablet computer''
|-
|'''sindren semes'''||''graphics tablet''
|-
|'''sindrenyan exlen aun'''||''graphics processing unit, GPU''
|-
|'''sines'''||''icon''
|-
|'''sinuar'''||''screen, display, monitor''
|-
|'''syaager'''||''to compute''
|-
|'''syaagir'''||''computer''
|-
|'''syaagirdal'''||''computerese''
|-
|'''syaagirtun'''||''computer science''
|-
|'''syaagnyed'''||''spreadsheet''
|-
|'''taam mays'''||''home screen''
|-
|'''taampu buxnuf'''||''home key''
|-
|'''sirmul'''||''hardware, physical matter''
|-
|'''taxdrer'''||''to record''
|-
|'''taxmuf'''||''memory stick''
|-
|'''teataxdrer'''||''to video''
|-
|'''teataxdrun'''||''video''
|-
|'''tuunnabyan'''||''database''
|-
|'''tuyab izdar'''||''mouse''
|-
|'''uber naab'''||''to send a file''
|-
|'''uinig buxnuf'''||''tab key''
|-
|'''utmansin'''||''selfie''
|-
|'''yaybdreniv sindren dalzeyn (YSD)'''||''HTML''
|-
|'''yeber'''||''to enter, insert''
|-
|'''yebu buxnuf'''||''enter key, return key, insert key''
|-
|'''yiga zyiun yebiar'''||''hard disk drive, HDD''
|-
|'''yijber naab'''||''to open a file''
|-
|'''yujber naab'''||''to close a file''
|-
|'''yuzpemdrof'''||''circuitboard''
|-
|'''zea exlen aun'''||''central processing unit, CPU''
|-
|'''zoynigxu buxnuf'''||''backspace key''
|-
|'''zyiun yebiar'''||''disk drive''
|}
=== Medical and Pharmaceutical Terminology ===
: This is a vast field where the limited morpheme aggregate of Mirad cannot serve to translate all the technical vocabulary. It will, therefore, translate only very common words and leave the rest in Greco-Latin as do many natural languages.
==== Medical Diseases ====
: Some common medical conditions can be readily be translated in Mirad using its existing set of morphemes, eg.
::* '''tiebalyoganbok'''....''asthma'' (lit: shortness of breath illness)
::* '''tiebbok'''....''pneumonia'' (lit: lung illness)
::* '''teibbok'''....''rhinitis'' (lit: nose illness)
::* '''tayibblok'''....''neuropathy'' (lit: nerve suffering)
::* '''tebbyoyk'''....''headache'' (lit: head ache)
::* '''teibzyegikanbok'''....''osteoporosis'' (lit: bone porosity illness)
==== Pharmaceuticals ====
: Medicines can be referred to by their trade names, some of which have been genericized.
::* '''aspirin'''....''aspirin''
::* '''Ibupropen'''....''Ibupropen''
: Others can be translated by words indicating the purpose:
::* '''bukpoyxol, bukkyuxlol'''....''analgesic, painkiller'' (Lit: pain reliever)
::* '''tikebilokxol'''....''emetic'' (Lit: vomit-inducing-substance)
: Less common drugs, and any drugs for that matter, can be referred to by the official International Nonproprietary Name (INN) (see [https://www.who.int/teams/health-product-and-policy-standards/inn|International Nonproprietary Names]). For example, ''phenobarbital''. In case a Greco-Roman name is used, the following pronunciation guide applies to Mirad:
:{| class="wikitable" style="background: lightyellow;{{text default color}}; font-size:smaller;"
|+ INN names pronunciation
|-
! Greco-Roman<br>Spelling !! Mirad<br>Pronunciation
|-
| ch || '''k'''
|-
| ph || '''f'''
|-
| x || '''ks'''
|-
| y || '''i'''
|-
| qu || '''kw'''
|-
| rh || '''r'''
|-
| th || '''t'''
|-
| ae || '''ay'''
|-
| oe || '''oy'''
|-
| c before i, e, or y || '''c'''
|-
| c otherwise || '''k'''
|-
| final e || silent
|-
| double consonant || single consonant
|}
: Examples:
::* '''acetaminophen'''....''a-ce-ta-mi-no-FEN''
::* '''amphetamine'''....''am-fe-ta-MIN''
::* '''trimethroprim'''....''tri-me-tro-PRIM''
::* '''sulfamethoxazole'''....''sul-fa-me-to-ksa-ZOL''
::* '''oxacillin'''....''o-ksa-ci-LIN''
=== Mineral and Crystal Nomenclature ===
: Minerals end in '''-muk''' with a prefix related to the official 3-letter International Mineorological Association (IMA) symbol name (see [[Wikipedia:List_of_mineral_symbols|The Wikipedia List of Mineral Symbols]]). The IMA name is substituted with lower-case Mirad alphabetic spellings. For example:
:{| class="wikitable" style="background: lightyellow;{{text default color}}; font-size:smaller;"
|+ Some Mineral Names
|-
! English!! IMA Symbol !! Mirad Spellings !! Mirad Name
|-
| ''argyrodyte'' || Agy || '''a-ge-yu''' || '''ageyumuk'''
|-
|''brochantyte'' || Bct || '''ba-ca-to''' || '''bacatomuk'''
|-
|''chromite'' || Chr || '''ca-he-ro''' || '''caheromuk'''
|}
: There are some minerals having an IMA with a hyphenated suffix of one or two letters. In that case, the extra letters are added to the name (without the hyphen), eg.:
::* ''Lemmleinite-K'' (Lem-k) is '''liemikomuk''' in Mirad.
: Crystals end in '''-mez'''. The first part of the word is an enumeration.
: The common crystals are listed here:
:{| class="wikitable" style="background: lightyellow;{{text default color}}; font-size:smaller;"
|+ Names of Common Crystals
|-
! Mirad !! English
|-
| '''mez''' || ''crystal''
|-
| '''amez''' || ''diamond''
|-
| '''emez''' || ''topaz''
|-
| '''imez''' || ''ruby''
|-
| '''umez''' || ''emerald''
|-
| '''yomez''' || ''sapphire''
|-
| '''yamez''' || ''lapis lazuli''
|-
| '''yemez''' || ''amethyst''
|-
| '''yimez''' || ''amber''
|-
| '''yumez''' || ''quartz''
|-
| '''alomez''' || ''opal''
|-
| '''alamez''' || ''tourmaline''
|-
| '''alemez''' || ''garnet''
|-
| '''alimez''' || ''zirconia''
|-
| '''alumez''' || ''jasper''
|-
| '''alyomez''' || ''jade''
|-
| '''alyamez''' || ''marganite''
|}
: Other, less common crystals end in '''-mez''' and are formed from the Wikipedia list of mineral symbols.
: General words for earthen matter:
:* '''muk'''....''mineral''
:* '''muz'''....''ore''
:* '''mug'''....''metal''
:* '''mez'''....''crystal''
:* '''meg'''....''rock, stone''
::* '''megog'''....''pebble''
::* '''meges'''....''gravel''
:* '''mel'''....''soil''
:* '''meil'''....''mud''
:* '''mek'''....''dust''
:* '''miek'''....''sand''
:* '''mev'''....''porcelain''
:* '''mef'''....''brick''
==== Rock Classification ====
: The naming of individual rock types is based on the [[https://www.bgs.ac.uk/download/bgs-rock-classification-scheme-igneous/| BGS Rock Classification Scheme ]].
: All rocks (other than the general word for ''rock'', '''meg''') end in one of the following suffixes, depending on the main type:
::* '''ameg'''....''sedimentary rock''
::* '''emeg'''....''igneous rock''
::* '''imag'''....''metamorphic rock''
: The names for obscure rocks are taken from the BGS Rock Classification Scheme. The final ''e'' is dropped from names that end in ''yte'' or ''ite''. For example, ''trachydacite'' in the scheme becomes '''trachydacit''' in Mirad. This word is then followed by one of the rock types above ('''emeg''' ''igneous rock''). So ''trachydacite'' becomes '''trachydacitemeg''' in Mirad. For obvious reason, all the thousands of rock names cannot be listed here or included in the Mirad dictionary.
:The word '''meg''' ''rock'' has some common derivatives:
::* '''megag'''....''boulder''
::* '''meg'''....''stone''
::* '''megog'''....''pebble''
::* '''meges'''....''gravel''
::* '''megyel'''....''cement, asphalt, bitumen''
:::* '''megyelyig'''....''concrete''
::* '''megil'''....''lava''
::* '''meggos'''....''crag''
::* '''megyig'''....''flintstone, basalt''
::* '''meag'''....''marble''
::* '''meeg'''....''slate''
::* '''meig'''....''granite''
::* '''meug'''....''clay, dough''
::* '''meyog'''....''china''
::* '''meyag'''....''chalk''
:::* '''meyaz'''....''pastel''
:::* '''meyayg'''....''calcite''
::* '''meyeg'''....''limestone, sediment''
::* '''meyig'''....''alabaster''
::* '''meyug'''....''gypsum''
::* '''mealog'''....''sandstone, stoneware''
::* '''mameg'''....''coal''
:::* '''eymameg'''....''coke''
:::* '''maameg'''....''anthracite''
:::* '''maemeg'''....''peat''
:::* '''maimeg'''....''lignite''
: Related are:
::* '''mek'''....''dust''
:::* '''mekes'''....''grit''
:::* '''mekil'''....''grout''
:::* '''meyk'''....''grit''
::* '''myek'''....''powder''
::* '''miek'''....''sand''
::* '''mieg'''....''coral''
::* '''mel'''....''dirt''
::* '''muk'''....''mineral''
::* '''meil'''....''mud''
::* '''mez'''....''crystal''
:::* '''meyz'''....''spar''
:::* '''meyzag'''....''feldspar''
::* '''muz'''....''ore''
::* '''memol'''....''alkali''
::* '''mimol'''....''salt''
::* '''mef'''....''brick''
=== Metric Nomenclature ===
[[File:Conversion Factors.png|thumb|]]
: Mirad uses the [[Wikt:International System of Units (SI)|International System of Units (SI)]]) for rendering measurement units. These symbols are pronounced as if you were spelling each letter out (see [[Mirad_Grammar/Alphabet]]. Bear in mind that majuscules (uppercase letters are prefaced with the word '''ag-''' (''big''). Similarly, Greek letters are spelled with the Greek names ('''alpha''', '''gamma''', etc.) preceded with the word '''ag-''' if majuscule ('''aggamma''' for ''Γ'') The Mirad equivalent of the SI symbol for ''ohm'' (Ω) is '''agomega'''. All metric units end in the word '''nak'''.
==== SI Base Units ====
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ <span style="font-size:120%">SI base units</span>
|-
!English<br>Unit<br>Name
!Symbolic<br>Abbeviation
!Quantity<br>Unit
!Mirad<br>Pronunciation
|-
!second
|style="text-align:center" |s
|time
|style="text-align:center" |'''sonak'''
|-
!meter
|style="text-align:center" |m
|length
|style="text-align:center" |'''minak'''
|-
!kilogram
|style="text-align:center" |kg
|mass
|style="text-align:center" |'''kigenak'''
|-
!ampere
|style="text-align:center" |A
|electric current
|style="text-align:center" |'''aganak'''
|-
!kelvin
|style="text-align:center" |K
|thermodynamic temperature
|style="text-align:center" |'''agkinak'''
|-
!Mole
|style="text-align:center" |mol
|amount of substance
|style="text-align:center" |'''miolinak'''
|-
!candela
|style="text-align:center" |cd
|luminous intensity
|style="text-align:center" |'''cadanak'''
|}
==== SI Derived Units ====
: Here are SI derived units with special names and symbols:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ <span style="font-size:120%">SI derived units with special names and symbols</span>
|-
! English<br>Name
! Symbolic<br>Written<br>Abbreviation
! Quantity<br>Unit
! Mirad<br>Pronunciation
|-
|'''radian'''
| align="center" | rad
| plane angle
| align="center" |'''roadanak'''
|-
|'''steradian'''
| align="center" | sr
| solid angle
| align="center" |'''soronak'''
|-
|'''hertz'''
| align="center" | Hz
| frequency
| align="center" |'''aghezunak'''
|-
|'''newton'''
| align="center" | N
| force, weight
| align="center" |'''agninak'''
|-
| '''pascal'''
| align="center" | Pa
| pressure, stress
| align="center" | '''agpoanak'''
|-
| '''joule'''
| align="center" | J
| energy
| align="center" | '''agjinak'''
|-
| '''watt'''
| align="center" | W
| power
| align="center" | '''agwunak'''
|-
| '''coulomb'''
| align="center" | C
| electric charge
| align="center" |'''agcanak'''
|-
| '''volt'''
| align="center" | V
| electrical potential difference
| align="center" | '''agvunak'''
|-
| '''farad'''
| align="center" | F
| capacitance
| align="center" | '''agfenak'''
|-
| '''ohm'''
| align="center" | Ω
| electrical resistance
| align="center" | '''agomeganak'''
|-
| '''Siemens'''
| align="center" | S
| electrical conductance
| align="center" | '''agsonak'''
|-
| '''Weber'''
| align="center" | Wb
| magnetic flux
| align="center" | '''agwubanak'''
|-
| '''tesla'''
| align="center" | T
| magnetic flux density
| align="center" | '''agtonak'''
|-
| '''henry'''
| align="center" | H
| inductance
| align="center" | '''aghenak'''
|-
| '''degree Celsius'''
| align="center" | °C
| temperature
| align="center" | '''nogagcanak'''
|-
| '''lumen'''
| align="center" | lm
| luminous flux
| align="center" | '''liminak'''
|-
| '''lux'''
| align="center" | lx
| illuminance
| align="center" | '''lixunak'''
|-
| '''becquerel'''
| align="center" | Bq
| radioactivity
| align="center" | '''agbakonak'''
|-
| '''gray'''
| align="center" | Gy
| absorbed dose (of ionizing radiation)
| align="center" | '''aggeyunak'''
|-
| '''sievert'''
| align="center" | Sv
| equivalent dose (of ionizing radiation)
| align="center" | '''agsovunak'''
|-
| '''katal'''
| align="center" | kat
| catalytic activity
| align="center" | '''kiatonak'''
|-
| '''byte'''
| align="center" | B
| 8 bits of information
| align="center" | '''agbanak'''
|-
| '''bit'''
| align="center" | b
| one bit of information
| align="center" | '''banak'''
|}
: Also, here are some non-SI units that are very convenient and acceptable:
==== Convenient Non-SI Units ====
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ <span style="font-size:120%">Convenient non-SI units</span>
|-
! English<br>Name
! Symbolic<br>Written<br>Abbreviation
! Quantity<br>Unit
! Mirad<br>Pronunciation
|-
|'''litre'''
| align="center" | L
| volume
| align="center" |'''aglinak'''
|-
|'''hectare'''
| align="center" | ha
| area
| align="center" |'''heabak'''
|-
|'''ton'''
| align="center" | t
| area
| align="center" |'''tonak'''
|-
|'''decibel'''
| align="center" | dB
| loudness
| align="center" |'''daagbanak'''
|}
==== Metrical Formulae ====
: The following chart shows how in Mirad to pronounce coherent derived unit formulae in terms of base units. Note that the backslash means ''per'' or ''divided by'' and is pronounced '''gol'''. The symbol x means ''times'' and is pronounced '''gal'''. The superscript number is a power and is pronounced '''gar''' plus the number (with '''-wa''', if a unit number). The negative superscript number is pronounced '''gor''' plus the number (again, with '''-wa''' if a unit number). See [[Mirad Grammar/Determiners#Arithmetical Expressions|Arithmetical Expressions]] for further information on these terms.
::{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ <span style="font-size:120%">Examples of coherent derived units in terms of base units</span>
|-
! Name
! Symbolic<br>Formula
! Derived<br>Quantity
! Typical <br>Symbol
! Mirad<br>Pronunciation
|-
| '''square meter'''
| align="center" | m<sup>2</sup>
| area
| align="center" |{{math|''A''}}
| align="center" | '''mi-gar-ewa'''
|-
| '''cubic meter'''
| align="center" | m<sup>3</sup>
| volume
| align="center" | {{math|''V''}}
| align="center" | '''mi-gar-iwa'''
|-
| '''meter per second'''
| align="center" | m/s
| speed, velocity
| align="center" | {{math|''v''}}
| align="center" | '''mi-gol-so'''
|-
| '''meter per second squared'''
| align="center" | m/s<sup>2</sup>
| acceleration
| align="center" | {{math|''a''}}
| align="center" | '''mi-gol-so-gar-ewa'''
|-
|rowspan=2| '''reciprocal meter'''
|rowspan=2 align="center" | m<sup>−1</sup>
| wavenumber
| align="center" | {{math|''σ''}}, {{math|''ṽ''}}
| align="center" | '''mi-gor-awa'''
|-
| vergence (optics)
| align="center" | {{math|''V''}}, 1/{{math|''f''}}
|-
| '''kilogram per cubic meter'''
| align="center" | kg/m<sup>3</sup>
| density
| align="center" | {{math|''ρ''}}
| align="center" | '''kige-gol-mi-gar-iwa'''
|-
| '''kilogram per square meter'''
| align="center" | kg/m<sup>2</sup>
| surface density
| align="center" | {{math|''ρ''}}<sub>A</sub>
| align="center" | '''kige-gol-mi-gar-ewa'''
|-
| '''cubic meter per kilogram'''
| align="center" | m<sup>3</sup>/kg
| specific volume
| align="center" | {{math|''v''}}
| align="center" | '''mi-gar-iwa-gol-kige'''
|-
| '''ampere per square meter'''
| align="center" | A/m<sup>2</sup>
| current density
| align="center" | {{math|''j''}}
| align="center" | '''aga-gol-mi-gar-ewa'''
|-
| Amperes per meter|'''ampere per meter'''
| align="center" | A/m
| magnetic field strength
| align="center" | {{math|''H''}}
| align="center" | '''aga-gol-mi'''
|-
| '''mole per cubic meter'''
| align="center" | mol/m<sup>3</sup>
| concentration
| align="center" |{{math|''c''}}
| align="center" | '''mioli-gol-mi-gar-iwa'''
|-
| '''kilogram per cubic meter'''
| align="center" | kg/m<sup>3</sup>
| Mass concentration (chemistry)|mass concentration
| align="center" | {{math|''ρ''}}, {{math|''γ'' }}
| align="center" | '''kige-gol-mi-gar-iwa'''
|-
| '''candela per square meter'''
| align="center" | cd/m<sup>2</sup>
| luminance
| align="center" | {{math|''L''}}<sub>v</sub>
| align="center" | '''cada-gol-mi-gar-ewa'''
|}
==== Metric Micro and Macro Prefixes ====
: The SI has a whole list of prefixes that act as multipliers (macro) or dividers (micro) of the above and other measurement units. For example, a ''kilometer'' is a meter times a 1,000 (macro unit), whereas a millimeter is a meter divided by a 1,000 (micro unit). The SI symbol for ''b'' (byte) is pronounced '''ba''' in Mirad. A terabyte ( ''Tb'') is therefore pronounced '''ag-to-ba''', which This amounts ''10<sup>12</sup> bytes''. Here is a table showing the Mirad macro and micro prefixes:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Scalar Metrics
|-
! colspan=4 | Macro !! colspan=4 | Micro
|-
! Base<br>10!! US/UK Name!!Mirad Prefix<br>SI Prefix<br><br>Mirad Pron. !!SI Symbol !! Base<br>10 !! (US/UK Name) !! Mirad Prefix<br>SI Prefix !! SI Symbol<br><br>Mirad Pron.
|-
| 1 || one || '''an-''' ... ''mono-, uni-'' || ||1/1 ||whole || '''ayn-'''<br>''holo-, uni-'' ||
|-
| 2 ||two || '''en-'''<br>''bi-'' || || 1/2 ||half||'''eyn-'''<br>''demi-, di-''||
|-
| 3 ||three || '''in-'''<br>''tri-'' || || 1/3 ||third ||'''iyn-'''<br>''terci-''||
|-
| 4 ||four || '''un-'''<br>''tetra-'' || || 1/4 ||fourth || '''uyn-'''<br>''quadri-''||
|-
| 5 ||five || '''yown-''' <br>''penta-'' || || 1/5 ||fifth ||'''yoyn'''<br>''quinti-''||
|-
| 6 ||six || '''yawn-'''<br>''hexa-'' || || 1/6 ||sixth ||'''yayn'''<br>''sexti-''||
|-
| 7 ||seven || '''yen-'''<br>''hepta-'' || || 1/7 ||seventh || '''yeyn'''<br>''septi-''||
|-
| 8 ||eight || '''yin'''<br>''octo-'' || || 1/8 ||eighth || '''yiyn'''<br>''octi-''||
|-
| 9 ||nine || '''yun'''<br>''nona-'' || || 1/9 ||ninth || '''yuyn'''<br>''novi-''||
|-
| 10 ||ten || '''alo-'''<br>''deca-'' || ''da''<br>'''da-a-''' || 1/10 ||tenth || '''aloy-'''<br>''deci-''|| ''d''<br>'''da-'''
|-
| 10<sup>2</sup> ||hundred || '''aso-'''<br>''hexa-'' || ''h''<br>'''hi-''' || 10<sup>-2</sup> ||hundredth || '''asoy-'''<br>''centi-''|| ''c''<br>'''ca-'''
|-
| 10<sup>3</sup> ||thousand || '''amso-'''<br>''kilo-'' ||''k''<br>'''ki-''' || 10<sup>-3</sup> ||thousandth)|| '''amsoy-'''<br>''milli-''|| ''m''<br>'''mi-'''
|-
| 10<sup>6</sup> ||million || '''amlo-'''<br>''mega-'' || ''M''<br>'''agmi-''' || 10<sup>-6</sup> ||millionth || '''amloy-'''<br>''micro-''|| ''r''<br>'''ro-'''
|-
| 10<sup>9</sup> ||billion /milliard || '''amro-'''<br>''giga-'' || ''G''<br>'''agge-''' || 10<sup>-9</sup> ||billionth/ milliardth || '''amroy-'''<br>''nano-''|| ''n''<br>'''ni-'''
|-
| 10<sup>12</sup> ||trillion /billion || '''garale-'''<br>''tera-'' || ''T''<br>'''agto-''' || 10<sup>-12</sup> ||trillionth / billionth)|| '''gorale-'''<br>''pico-''|| ''p''<br>'''po-'''
|-
| 10<sup>15</sup> ||quadrillion)/ billiard|| '''garalyo-'''<br>''peta-'' || ''P''<br>'''agpo-'''||10<sup>-15</sup> ||quadrillionth) / billiardth || '''goralyo-'''<br>''femto-''||''f''<br>'''fe-'''
|-
| 10<sup>18</sup> ||quintillion / trillion || '''garalyu-'''<br>''exa-'' || ''E''<br>'''age-'''||10<sup>-18</sup> ||quintillionth)/ trillionth || '''goralyu'''<br>''atto-''||''a''<br>'''a-'''
|-
| 10<sup>21</sup> ||sextillion)/ trilliard || '''garela-'''<br>''zetta-'' || ''Z''<br>'''agzu-'''||10<sup>-21</sup> ||sextillionth / trilliardth || '''gorela'''<br>''zepto-''||''z''<br>'''zu-'''
|-
| 10<sup>24</sup> ||septillion)/ quadrillion || '''garelu-'''<br>''yotta-'' || '' Y''<br>'''agyu''' ||10<sup>-27</sup> ||septillionth / quadrillionth|| '''gorelu'''<br>''yocto-''||''y''<br>'''yu-'''
|}
: *Note: The '''gar''' (''to a plus power'') and '''gor''' (''to a minus power'') forms are alternatives for the numeric prefixes beyond 100. For example, ''billion'' (10<sup>9</sup>) could be expressed as '''garyu-'''(ten) to the 9th power'', while ''billionth'' could be expressed by '''goryu''' (''(ten) to the minus 9th power). The prefix '''garya-''' is composed of the positive exponential operator '''gar''' (''to the power of''), followed by the number ''6''. The prefix '''gorale-''' is composed of the negative exponential operator '''gor''' (''to the root of''), followed by the number ''12''.
==== Abbreviated Symbols ====
: The macro and micro values can also be represented with abbreviated symbols, which can be pronounced in Mirad as spelled out alphabetics. Upper case equivalents are preceded with '''ag-'''. Here is a table showing grams:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Kg Metrics With Abbreviated Symbols
|-
! colspan=2 | Macro !! colspan=2 | Micro
|-
! Symbol (Expansion) !! Mirad Pronunciation !! Symbol (Expansion) !! Mirad Pronunciation
|-
| ''dag'' (decagram)|| '''daage''' || ''dg'' |(decigram)||'''dage'''
|-
| ''hg'' (hexagram)|| '''hege''' || ''cg'' (centigram)||'''cage'''
|-
| ''kg'' (kilogram) || '''koge''' || ''mg'' (milligram) ||'''mige'''
|-
| ''Mg'' (megagram)|| '''agmige''' ||''rg'' or '''μg''' (microgram)|| '''roge''' or '''muge'''
|-
| ''Gg'' (gigagram)|| '''aggege''' || ''ng'' (nanogram)|| '''nige'''
|-
| ''Tg'' (teragram)|| '''agtoge''' || ''pg'' (picagram)|| '''poge'''
|-
| ''Pg'' ( petagram)|| '''agpoge''' || ''fg'' (femtogram)|| '''fege'''
|-
| ''Eg'' (exagram)|| '''agege''' || ''ag'' (attogram)|| '''age'''
|-
| ''Zg'' (zettagram)|| '''agzege''' || ''zg'' (zeptogram) || '''zege'''
|-
| ''Yg'' (yottagram)|| '''agyuge''' || ''yg'' (yoctogram) || '''yuge'''
|}
: The squared and cubed representations of the above are followed by '''gar ewa''' (''squared'') and '''gar iwa''' (''cubed''), respectively:
::* '''10 kg2'''....(pronounced as:) ''alo koge gar ewa''
::* '''12 mm3'''....(pronounced as:) ''ale mimi gar iwa''
=== Trigonometric Nomenclature ===
: This table shows trigonometry functions and their equivalents in Mirad. The function symbols are translated into Mirad by a succession of the pronounced Mirad values of the function abbreviation followed by '''-naz''' (''value'').
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Trigonometry Functions
|-
! Function (Symbol) !! Mirad Technical Name !! Mirad Ordinary Name
|-
| ''sine (sin)'' || '''soini-naz''' || '''uznaz'''
|-
| ''cosine (cos)'' || '''caoso-naz''' || '''yanuznaz'''
|-
| ''arccosine (arccos, cos<sup>-1</sup>)''<br>''anticosine''<br>''inverse cosine''|| '''arocacaoso-naz''' || '''ovuznaz'''
|-
| ''hyperbolic sine (sinh)'' || '''soinihe-naz'''|| '''enuza uznaz'''
|-
| ''hyperbolic cosine (cosh)'' || '''caosohe-naz''' || '''enuza yanuznaz'''
|-
| ''secant (sec)'' || '''soeca-naz''' || '''golus naz'''
|-
| ''cosecant (csc)'' || '''casoca-naz''' || '''yangolus naz'''
|-
| ''arccosecant (arccsc)'' || '''arocacasoca-naz''' || '''enuza yangolus naz'''
|}
=== Poetry Nomenclature ===
: Mirad uses the nonsense syllables '''di''' and '''da''' to form various poetic meter words that usually are formed with Greek words in English. The syllable '''di''' represents an ''unstressed'' syllable in verse, while the syllable '''da''' denotes a ''stressed'' syllable. These are hyphenated and followed with a space and the word '''deup''' as a noun, which means ''meter'' or ''rhythm''. The adjectival form of the word ends in '''deupa'''. Here are the most common poetic meters:
::* '''di-da deupa'''.... iambic
:::* '''di-da yoondeup'''.... ''iambic pentameter''
::* '''di-di-da deupa'''.... ''anapestic''
::* '''di-da-da deupa'''.... ''bacchius''
::* '''da-da deupa'''.... ''spondaic''
::* '''da-da-da deupa'''.... ''molossus''
::* '''da-da-di deupa'''.... ''antibacchius''
::* '''da-di deupa'''.... ''tochaic''
:::* '''da-di deup'''.... ''trochee, choree''
::* '''da-di-da deupa'''.... ''cretic, amphimacer''
::* '''da-di-di deupa'''.... ''dactylic''
::* '''da-di-di yaondeup'''.... ''dactylic hexameter''
::* '''da-di-di-da deupa'''.... ''amphibrachic''
: Other words representing elements of poetry are:
::* '''drez'''....''poetry, verse''
:::* '''dreza'''....''poetic''
:::* '''drezyen'''....''poesy''
:::* '''drezyan'''....''anthology'' (of poetry)
:::* '''drezut'''....''poet''
::::* '''drezuyt'''....''poetess''
::::* '''popdrezut'''....''minstrel''
::::* '''Vikinga drezut'''....''skald''
::::* '''dreuzut'''....''bard''
:::* '''odrez'''....''prose''
:::* '''vyasma drez'''....''concrete verse''
:::* '''tyoda drez'''....''folk poetry''
:::* '''indeupa drez'''....''trimeter''
:::* '''undeupa drez'''....''tetrameter''
:::* '''yoondeupa drez'''....''pentameter''
:::* '''yaondeupa drez'''....''hexameter''
:::* '''yendeupa drez'''....''heptameter''
:::* '''yindeupa drez'''....''octameter''
:::* '''ogelseuxwa drez'''....''blank verse''
:::* '''yiva drez'''....''free verse''
:::* '''drezun'''....''poem''
::::* '''deuzwa drezun'''....''sung poem, lay''
::::* '''dindrezun'''....''ballad''
::::* '''dizdrezun'''....''limerick''
::::* '''fiddrezun'''....''ode''
::::* '''fizdrezun'''....''epic poem''
::::* '''haikudrezun'''....''haiku''
::::* '''viysindrezun'''....''idyll''
::::* '''ifondrezun'''....''love poem, romantic poem''
::::* '''indrezun'''....''terzain''
::::* '''jodrezun'''....''epode''
::::* '''yindrezun'''....''sistina''
::::* '''klerihyudrezun'''....''clerihew''
::::* '''meimdrezun'''....''pastoral''
::::* '''melyexdrezun'''....''georgic''
::::* '''petnyanuta drezun'''....''pastoral, eclogue''
::::* '''popduzuta drezun'''....''troubadour poem''
::::* '''rondodrezun'''....''rondeau, rondel, roundel''
::::* '''seuz drezun'''....''sound poem''
::::* '''tadyandrezun'''....''prothalamion, epithalamion''
::::* '''tankadrezun'''....''tanka''
::::* '''taxdrezun'''....''epitaph''
::::* '''tuddrezun'''....''nursery rhyme''
::::* '''ulondrezun'''....''sonnet''
::::* '''ujdreznadeon'''....''envoi''
::::* '''undrezun'''....''quatrain''
::::* '''unnad drezun'''....''tetrastich''
::::* '''uvdrezun'''....''elegy''
::::* '''alyundrezun'''....''villanelle''
::::* '''virelaydrezun'''....''virelai, virelay''
::::* '''yizivtos drezun'''....''rhapsody''
::::* '''yoondrezun'''....''quintain''
::* '''dreznad'''....''line, -stich, verse''
:::* '''eyndreznad'''...''hemistich''
:::* '''endreznad'''....''couplet''
::* '''dreznadyan'''....''stanza''
::* '''gelseux'''....''rhyme''
:::* '''gelseuxyen'''....''rhyme scheme''
:::* '''dunija gelseuxen'''....''alliteration''
::* '''seuxzoyxen'''....''assonance''
::* '''geyldyan'''....''simile''
::* '''yiztyun'''....''metaphor''
::* '''yanseuzan'''....''consonance''
::* '''deup'''....''rhythm, beat, metrical foot, meter''
::* '''kyib'''....''stress''
::* '''seuz'''....''tone''
=== Dimensional Nomenclature ===
: This chart shows adjectives that describe dimensional relationships:
{| class="wikitable" style="background: lightyellow;{{text default color}};"
|+ Dimensional Words
|-
! Positive !! Intermediate !! Negative
|-
| '''yaba'''....''high(er)'' || '''yeba'''....''inner'' || '''yoba'''....''low(er)''
|-
| '''yaiba'''....''tall'' || '''yeiba'''....''deep inside'' || '''yoiba'''....''deep (down)''
|-
| '''yauba'''....''short'' || '''yeuba'''....''a short way in'' || '''youba'''....''shallow''
|-
| '''yaga'''....''long'' || || '''yoga'''....''short''
|-
| '''yiba'''....''far'' || || '''yuba'''....''near''
|-
| '''aonada'''....''vertical'' || || '''uinada'''....''horizontal''
|-
| '''kia'''....''diagonal'' || || '''kua'''....''lateral''
|-
| '''zyia'''....''flat'' || || '''zyua'''....''round''
|-
| '''yaza'''....''concave'' || '''yeza'''....''flush'' || '''yoza'''....''convex''
|}
=== Geologic Period Nomenclature ===
: The principal geochronologic units of the geologic time scale, from largest to smallest, are:
:** '''joob'''....''eon''
:*** '''ajoob'''....''Hadean Eon''
:*** '''ejoob'''....''Archean Eon''
:*** '''ijoob'''....''Proterozoic Eon''
:*** '''ujoob'''....''Phanerozoic Eon''
:** '''joab'''....''era''
:*** '''ajoab'''....''Eoarchean Era''
:*** '''ejoab'''....''Paleoarchean Era''
:*** '''ijoab'''....''Mesoarchean Era''
:*** '''ujoab'''....''Neoarchean Era''
:*** '''yojoab'''....''Paleoproterozoic Era''
:*** '''yajoab'''....''Mesoproterozoic Era''
:*** '''yejoab'''....''Neoproterozoic Era''
:*** '''yijoab'''....''Paleozoic Era''
:*** '''yujoab'''....''Mesozoic Era''
:*** '''alojoab'''....''Cenozoic Era''
:** '''joeb'''....''period''
:*** '''ajoeb'''....''Siderian Period''
:*** '''ejoeb'''....''Rhyacian Period''
:*** '''ijoeb'''....''Orosirian Period''
:*** '''ujoeb'''....''Statherian Period''
:*** '''yojoeb'''....''Calymmian Period''
:*** '''yajoeb'''....''Ectasian Period''
:*** '''yejoeb'''....''Stenian Period''
:*** '''yijoeb'''....''Tonian Period''
:*** '''yujoeb'''....''Cryogenian Period''
:*** '''alojoeb'''....''Ediacaran Period''
:*** '''alajoeb'''....''Cambrian Period''
:*** '''alejoeb'''....''Ordovician Period''
:*** '''alijoeb'''....''Silurian Period''
:*** '''alujoeb'''....''Devonian Period''
:*** '''alyojoeb'''....''Carboniferous Period''
:*** '''alyajoeb'''....''Permian Period''
:*** '''alyejoeb'''....''Triassic Period''
:*** '''alyijoeb'''....''Jurassic Period''
:*** '''alyujoeb'''....''Cretaceous Period''
:*** '''elojoeb'''....''Paleogene Period''
:*** '''elajoeb'''....''Neogene Period''
:*** '''elejoeb'''....''Quarternary Period''
:** '''joib'''....''epoch''
:*** '''ajoib'''....''Terreneuvian Epoch''
:*** '''ejoib'''....''Series 2 Epoch''
:*** '''ijoib'''....''Miaolingian Epoch''
:*** '''ujoib'''....''Furongian Epoch''
:*** '''yojoib'''....''Lower Epoch''
:*** '''yajoib'''....''Middle Epoch''
:*** '''yejoib'''....''Upper Epoch''
:*** '''yijoib'''....''Llandovery Epoch''
:*** '''yujoib'''....''Wenlock Epoch''
:*** '''alojoib'''....''Ludlow Epoch''
:*** '''alajoib'''....''Pridoli Epoch''
:** '''joub'''....''age''
:*** '''ajoub'''....''Fortunian Age''
:*** '''ejoub'''....''Stage 2 Age''
:*** '''ijoub'''....''Stage 3 Age''
:*** '''ujoub'''....''Stage 4 Age''
:*** '''yojoub'''....''Wulian Age''
:*** '''yajoub'''....''Drumian Age''
:*** '''yejoub'''....''Guzhangian Age''
:*** '''yijoub'''....''Paibian Age''
:*** '''yujoub'''....''Jianshanian Age''
:*** '''alojoub'''....''Stage 10 Age''
:*** '''alajoub'''....''Temadocian Age''
:*** '''alejoub'''....''Floian Age''
:*** '''alijoub'''....''Dapingian Age''
:*** '''alujoub'''....''Darriwilian Age''
:*** '''alyojoub'''....''Sandbian Age''
:*** '''alyajoub'''....''Katian Age''
:*** '''alyejoub'''....''Hirnantian Age''
:*** '''alyijoub'''....''Rhuddanian Age''
:*** '''alyujoub'''....''Aeronian Age''
:*** '''elojoub'''....''Telychian Age''
:*** '''elajoub'''....''Cheinwoodian Age''
:*** '''elejoub'''....''Homerian Age''
:*** '''elijoub'''....''Gorstian Age''
:*** '''elujoub'''....''Ludfordian Age''
:*** '''elyojoub'''....''Pridoli Age''
:*** '''elyajoub'''....''Lochkovian Age''
:*** '''elyejoub'''....''Pragian Age''
:*** '''elyijoub'''....''Emsian Age''
:*** '''elyujoub'''....''Eifelian Age''
:*** '''ilojoub'''....''Givetian Age''
:*** '''ilajoub'''....''Frasnian Age''
:*** '''ilejoub'''....''Famennian Age''
:*** '''ilijoub'''....''Tournaisian Age''
:*** '''ilujoub'''....''Visean Age''
:*** '''ilyojoub'''....''Serpukhovian Age''
:*** '''ilyajoub'''....''Bashkirian Age''
:*** '''ilyejoub'''....''Moscovian Age''
:*** '''ilyijoub'''....''Kasimovian Age''
:*** '''ilyujoub'''....''Gzhelian Age''
:*** '''ulojoub'''....''Asselian Age''
:*** '''ulajoub'''....''Sakmarian Age''
:*** '''ulejoub'''....''Artinskian Age''
:*** '''ulijoub'''....''Kungurian Age''
:*** '''ulujoub'''....''Roadian Age''
:*** '''ulyojoub'''....''Wordian Age''
:*** '''ulyajoub'''....''Capitanian Age''
:*** '''ulyejoub'''....''Wuchiapingian Age''
:*** '''ulyijoub'''....''Changhsingian Age''
:*** '''ulyujoub'''....''Induan Age''
:*** '''yolojoub'''....''Olenekian Age''
:*** '''yolajoub'''....''Anisian Age''
:*** '''yolejoub'''....''Ladnian Age''
:*** '''yolijoub'''....''Carnian Age''
:*** '''yolujoub'''....''Norian Age''
:*** '''yolyojoub'''....''Rhaetian Age''
:*** '''yolyajoub'''....''Hettangian Age''
:*** '''yolyejoub'''....''Sinemurian Age''
:*** '''yolyijoub'''....''Pliensbachian Age''
:*** '''yolyujoub'''....''Toarcian Age''
:*** '''yalojoub'''....''Aalenian Age''
:*** '''yalajoub'''....''Bajocian Age''
:*** '''yalejoub'''....''Bathonian Age''
:*** '''yalijoub'''....''Callovian Age''
:*** '''yalujoub'''....''Oxfordian Age''
:*** '''yalyojoub'''....''Kimmeridgian Age''
:*** '''yalyajoub'''....''Tithonian Age''
:*** '''yalyejoub'''....''Berriasian Age''
:*** '''yalyijoub'''....''Valanginian Age''
:*** '''yalyujoub'''....''Hauterivian Age''
:*** '''yelojoub'''....''Barremian Age ''
:*** '''yelajoub'''....''Aptian Age ''
:*** '''yelejoub'''....''Albian Age ''
:*** '''yelijoub'''....''Cenomanian ''
:*** '''yelujoub'''....''Turonian ''
:*** '''yelyojoub'''....''Coniacian ''
:*** '''yelyajoub'''....''Santonian ''
:*** '''yelyejoub'''....''Campanian ''
:*** '''yelyijoub'''....''Maastrichtian ''
:*** '''yelyujoub'''....''Danian ''
:*** '''yilojoub'''....''Selandian ''
:*** '''yilajoub'''....''Thanetian ''
:*** '''yilejoub'''....''Ypresian ''
:*** '''yilijoub'''....''Lutetian ''
:*** '''yilujoub'''....''Bartonian ''
:*** '''yilyojoub'''....''Priaboanian ''
:*** '''yilyajoub'''....''Rupelian ''
:*** '''yilyejoub'''....''Chattian ''
:*** '''yilyijoub'''....''Aquitanian ''
:*** '''yilyujoub'''....''Burdigalian ''
:*** '''yulojoub'''....''Langhian ''
:*** '''yulajoub'''....''Serravallian ''
:*** '''yulejoub'''....''Tortonian ''
:*** '''yulijoub'''....''Messinian ''
:*** '''yulujoub'''....''Zanclean ''
:*** '''yulyojoub'''....''Piacenzian ''
:*** '''yulyajoub'''....''Gelasian ''
:*** '''yulyejoub'''....''Calabrian ''
:*** '''yulyijoub'''....''Chibanian ''
:*** '''yulyujoub'''....''Tarantian ''
:*** '''asojoub'''....''Greenlandian ''
:*** '''asajoub'''....''Northgrippian ''
:*** '''asejoub'''....''Meghalayan ''
=== Names of Diacritics ===
: The Mirad words for diacritics (= accents) are based on the worldwide Unicode 4.0 standard. There are three kinds of diacritics based on where they are positioned relative to the base:
::* <b>aybsiyn</b>....<i>above mark</i>
::* <b>oybsiyn</b>....<i>below mark</i>
::* <b>absiyn</b>....<i>overlay mark</i>
: The names are based on some common shapes:
::* <b>nod</b>....<i>dot</i>
::* <b>grun</b>....<i>hook</i>
::* <b>nad</b>....<i>line</i>
::* <b>kin</b>....<i>slash</i>
::* <b>vu</b>....<i>wedge</i>
::* <b>pyaon</b>....<i>wave</i>
::* <b>zyus</b>....<i>ring</i>
::* <b>uz</b>....<i>arch</i>
::* <b>zeymep</b>....<i>bridge</i>
::* <b>izmufseb</b>....<i>arrowhead</i>
::* <b>mar</b>....<i>star</i>
: The above shapes can be modified by adjectives:
::* <b>kia</b>....<i>slanted</i>
::* <b>ao</b>....<i>vertical</i>
::* <b>yoga/yaga</b>....<i>short/long</i>
::* <b>en</b>....<i>double</i>
::* <b>yaba/yoba</b>....<i>up/down</i>
::* <b>zua/zia</b>....<i>left/right</i>
::* <b>oyvuzbwa</b>....<i>inverted</i>
: Here is a chart listing the most common diacritics in the world's languages. (Note: Mirad does not use diacritics for its native words.)
{| class="wikitable" style="background:lightyellow;{{text default color}};"
|+ Mirad Names of Diacritics
|-
! Diacritic !! Unicode<br>Value !! Mirad !! Unicode Name
|-
|<span style="font-size:120%"><b>́</b></span>|| 0301||<b> zukin aybsiyn</b>||<i>acute accent</i>
|-
|<span style="font-size:120%"><b>̀</b></span>|| 0300||<b> zukin oybsiyn</b>||<i>acute accent below</i>
|-
|<span style="font-size:120%"><b>̋</b></span>|| 030B||<b> enzukin aybsiyn</b>||<i>double acute accent</i>
|-
|<span style="font-size:120%"><b>̀</b></span>|| 0300||<b> zikin aybsiyn</b>||<i>grave accent</i>
|-
|<span style="font-size:120%"><b>̗</b></span>|| 0317||<b> zikin oybsiyn</b>||<i>grave accent below</i>
|-
|<span style="font-size:120%"><b>̏</b></span>|| 030F||<b> enzikin aybsiyn</b>||<i>double grave accent</i>
|-
|<span style="font-size:120%"><b>̉</b></span>|| 0309||<b> zigrun aybsiyn</b>||<i>hook above, hoi</i>
|-
|<span style="font-size:120%"><b>̧</b></span>|| 0327||<b> zugrun oybsiyn</b>||<i>cedilla</i>
|-
|<span style="font-size:120%"><b>̨</b></span>|| 0328||<b> zigrun oybsiyn</b>||<i>ogonek, nasal hook</i>
|-
|<span style="font-size:120%"><b>̂</b></span>|| 0302||<b> yobvu aybsiyn</b>||<i>circumflex accent, hat</i>
|-
|<span style="font-size:120%"><b>̭</b></span>|| 032D||<b> yobvu oybsiyn</b>||<i>circumflex accent below</i>
|-
|<span style="font-size:120%"><b>̌</b></span>|| 030C||<b> vu aybsiyn</b>||<i>hachek, v above, caron</i>
|-
|<span style="font-size:120%"><b>̬</b></span>|| 032C||<b> vu oybsiyn</b>||<i>caron below</i>
|-
|<span style="font-size:120%"><b>̆</b></span>|| 0306||<b> yabuz aybsiyn</b>||<i>breve above</i>
|-
|<span style="font-size:120%"><b>̑</b></span>|| 0311||<b> yobuz aybsin</b>||<i>inverted breve above</i>
|-
|<span style="font-size:120%"><b>̯</b></span>|| 032F||<b> yobuz oybsin </b>||<i>inverted breve below</i>
|-
|<span style="font-size:120%"><b>̡</b></span>|| 0321||<b> teumibxwa grun oybsiyn</b>||<i>palatalized hook below</i>
|-
|<span style="font-size:120%"><b>̈</b></span>|| 0308||<b> ennod aybsiyn</b>||<i>diaeresis above, double dot above, umlaut, trema</i>
|-
|<span style="font-size:120%"><b>̤</b></span>|| 0324||<b> ennod oybsiyn</b>||<i>diaeresis below, double dot below</i>
|-
|<span style="font-size:120%"><b>̇</b></span>|| 0307||<b> nod aybsiyn</b>||<i>dot above, overdot, tecka, tittle</i>
|-
|<span style="font-size:120%"><b>̣</b></span>|| 0323||<b> nod oybsiyn</b>||<i>dot below, underdot, nang</i>
|-
|<span style="font-size:120%"><b>͑</b></span>|| 0351||<b> zua eynzyus aybsiyn</b>||<i>left half ring above</i>
|-
|<span style="font-size:120%"><b>̜</b></span>|| 031C||<b> zua eynzyus oybsiyn</b>||<i>left half ring below</i>
|-
|<span style="font-size:120%"><b>͐</b></span>|| 0350||<b> zia eynzyus aybsign</b>||<i>right half ring above</i>
|-
|<span style="font-size:120%"><b>̹</b></span>|| 0339||<b> zia eynzyus oybsiyn</b>||<i>right half ring below</i>
|-
|<span style="font-size:120%"><b>̅</b></span>|| 0305||<b> nad aybsiyn</b>||<i>overline, overscore, vinculum</i>
|-
|<span style="font-size:120%"><b>̿</b></span>|| 033F||<b> ennad aybsiyn</b>||<i>double overline</i>
|-
|<span style="font-size:120%"><b>̲</b></span>|| 0332||<b> nad oybsiyn</b>||<i>single lowline below</i>
|-
|<span style="font-size:120%"><b>̳</b></span>|| 0333||<b> ennad oybsiyn</b>||<i>double lowline, double underline, double underscore</i>
|-
|<span style="font-size:120%"><b>̄</b></span>|| 0304||<b> nad aybsiyn</b>||<i>macron</i>
|-
|<span style="font-size:120%"><b>̱</b></span>|| 0331||<b> nad oybsiyn</b>||<i>macron below</i>
|-
|<span style="font-size:120%"><b>͞</b></span>|| 935E||<b> ennad aybsiyn</b>||<i>double macron, longum</i>
|-
|<span style="font-size:120%"><b>͟</b></span>|| 035F||<b> ennad oybsiyn</b>||<i>double macron below</i>
|-
|<span style="font-size:120%"><b>̊</b></span>|| 030A||<b> zyus aybsiyn</b>||<i>ring above, kroujek, overring</i>
|-
|<span style="font-size:120%"><b>̥</b></span>|| 0325||<b> zyus oybsiyn</b>||<i>ring below</i>
|-
|<span style="font-size:120%"><b>͆</b></span>|| 0346||<b> zeymep aybsiyn</b>||<i>bridge above</i>
|-
|<span style="font-size:120%"><b>̪</b></span>|| 032A||<b> zeymep oybsiyn</b>||<i>bridge below</i>
|-
|<span style="font-size:120%"><b>͆</b></span>|| 0346||<b> oyvuzbwa zeymep aybsiyn</b>||<i>inverted bridge above</i>
|-
|<span style="font-size:120%"><b>̺</b></span>|| 033A||<b> oyvuzbwa zeymep oybsiyn</b>||<i>inverted bridge below</i>
|-
|<span style="font-size:120%"><b>̉</b></span>|| 0309||<b> grun aybsiyn</b>||<i>hook above, hoi</i>
|-
|<span style="font-size:120%"><b>̃</b></span>|| 0303||<b> pyaon aybsiyn</b>||<i>tilde</i>
|-
|<span style="font-size:120%"><b>͂</b></span>|| 0342||<b> yagpyaon aybsiyn</b>||<i>Greek perispomeni</i>
|-
|<span style="font-size:120%"><b>͠</b></span>|| 0360||<b> enpyaon aybsiyn</b>||<i>double tilde above</i>
|-
|<span style="font-size:120%"><b>̰</b></span>|| 0330||<b> pyaon oybsiyn</b>||<i>tilde below</i>
|-
|<span style="font-size:120%"><b>̫</b></span>|| 032B||<b> oyvuzbwa enuz oybsiyn</b>||<i>inverted double arch below</i>
|-
|<span style="font-size:120%"><b>̾</b></span>|| 033E||<b> aonada pyaon aybsiyn</b>||<i>vertical tilde, yerik</i>
|-
|<span style="font-size:120%"><b>̚</b></span>|| 031A||<b> zua gun aybsiyn</b>||<i>left angle above</i>
|-
|<span style="font-size:120%"><b>̍</b></span>|| 030D||<b> aonad aybsiyn</b>||<i>vertical line above</i>
|-
|<span style="font-size:120%"><b>̍</b></span>|| 030D||<b> enaonad aybsiyn</b>||<i>double vertical line above</i>
|-
|<span style="font-size:120%"><b>̩</b></span>|| 0329||<b> aonad oybsiyn</b>||<i>vertical line below</i>
|-
|<span style="font-size:120%"><b>̎</b></span>|| 030E||<b> enaonad aybsiyn</b>||<i>double vertical line above</i>
|-
|<span style="font-size:120%"><b>̽</b></span>|| 033D||<b> xu aybsiyn</b>||<i>x above</i>
|-
|<span style="font-size:120%"><b>͓</b></span>|| 0353||<b> xu oybsiyn</b>||<i>x below</i>
|-
|<span style="font-size:120%"><b>̼</b></span>|| 033C||<b> lapiat oybsiyn</b>||<i>seagull below</i>
|-
|<span style="font-size:120%"><b>̐</b></span>|| 0310||<b> nod ayb uz aybsiyn</b>||<i>candrabindu</i>
|-
|<span style="font-size:120%"><b>͒</b></span>|| 0352||<b> nod oyb uz aybsiyn</b>||<i>fermata</i>
|-
|<span style="font-size:120%"><b>̔</b></span>|| 0314||<b> zia grun aybsiyn</b>||<i>right comma above, dasia</i>
|-
|<span style="font-size:120%"><b>̦</b></span>|| 0326||<b> zia grun oybsiyn</b>||<i>right comma below</i>
|-
|<span style="font-size:120%"><b>̓</b></span>|| 0313||<b> zua grun aybsiyn</b>||<i>reversed comma above, psili</i>
|-
|<span style="font-size:120%"><b>̠</b></span>|| 0320||<b> gobsiyn oybsiyn</b>||<i>minus sign below</i>
|-
|<span style="font-size:120%"><b>̟</b></span>|| 031F||<b> gabsiyn oybsiyn</b>||<i>plus sign below</i>
|-
|<span style="font-size:120%"><b>͌</b></span>|| 034C||<b> yubay ge aybsiyn</b>||<i>almost equals above</i>
|-
|<span style="font-size:120%"><b>͉</b></span>|| 0349||<b> zua gun oybsiyn</b>||<i>left angle below</i>
|-
|<span style="font-size:120%"><b>̻</b></span>|| 033B||<b> ungun oybsiyn</b>||<i>square below</i>
|-
|<span style="font-size:120%"><b>̴</b></span>|| 0334||<b> Gereda nod-kin-nod aybsiyn</b>||<i>Greek dialytika tonos</i>
|-
|<span style="font-size:120%"><b>͐</b></span>|| 0350||<b> zia izmufseb aybsiyn</b>||<i>right arrowhead above</i>
|-
|<span style="font-size:120%"><b>ࣷ</b></span>|| 0356||<b> zia izmufseb ay yabizmufseb oybsiyn</b>||<i>right arrowhead and up arrowhead below</i>
|-
|<span style="font-size:120%"><b>͕</b></span>|| 0355||<b> zia izmufseb oybsiyn</b>||<i>right arrowhead below</i>
|-
|<span style="font-size:120%"><b>͔</b></span>|| 0354||<b> zua izmufseb oybsiyn</b>||<i>left arrowhead below</i>
|-
|<span style="font-size:120%"><b>̘</b></span>|| 0318||<b> zua zyisebmuv oybsiyn</b>||<i>left tack below</i>
|-
|<span style="font-size:120%"><b>̙</b></span>|| 0319||<b> zia zyisebmuv oybsiyn</b>||<i>right tack below</i>
|-
|<span style="font-size:120%"><b>̝</b></span>|| 031D||<b> yob zyisebmuv oybsiyn</b>||<i>up tack below</i>
|-
|<span style="font-size:120%"><b>̞</b></span>|| 031E||<b> yab zyisebmuv oybsiyn</b>||<i>down tack below</i>
|-
|<span style="font-size:120%"><b>̷</b></span>|| 0337||<b> yoga kinad absiyn</b>||<i>short slash overlay, short solidus overlay</i>
|-
|<span style="font-size:120%"><b≯</b></span>|| 0338||<b> yaga kinad absiyn</b>||<i>long slash overlay, long solidus overlay</i>
|-
|<span style="font-size:120%"><b>̡</b></span>|| 0321||<b> teumibxwa grun oybsiyn</b>||<i>palatalized hook below</i>
|-
|<span style="font-size:120%"><b>̢</b></span>|| 0322||<b> zoykixwa grun oybsiyn</b>||<i>retroflex hook below</i>
|-
|<span style="font-size:120%"><b>͙</b></span>|| 0359||<b> mar oybsiyn</b>||<i>asterisk below</i>
|-
|<span style="font-size:120%"><b>͚</b></span>|| 035A||<b> enzyus oybsiyn</b>||<i>double ring below</i>
|-
|<span style="font-size:120%"><b>͘</b></span>|| 0358||<b> zinod aybsiyn</b>||<i>dot above right</i>
|-
|<span style="font-size:120%"><b>͜</b></span>|| 035C||<b> enyabuz oybsiyn</b>||<i>double breve below, ligature tie below</i>
|-
|<span style="font-size:120%"><b>͝</b></span>|| 035D||<b> enyabuz aybsiyn</b>||<i>double breve</i>
|-
|<span style="font-size:120%"><b>͡</b></span>|| 0361||<b> enyobuz aybsiyn</b>||<i>double inverted breve, top ligature, tie bar</i>
|-
|<span style="font-size:120%"><b>͛</b></span>|| 035B||<b> uiznad aybsiyn</b>||<i>zigzag above</i>
|-
|<span style="font-size:120%"><b>͇</b></span>|| 0347||<b> gese oybsiyn</b>||<i>equals sign below</i>
|-
|<span style="font-size:120%"><b>͌</b></span>|| 034C||<b> yubgese aybsiyn</b>||<i>almost equal to above</i>
|-
|<span style="font-size:120%"><b>͢</b></span>|| 0362||<b> enziizmuf oybsiyn</b>||<i>double rightwards arrow below</i>
|-
|<span style="font-size:120%"><b>͎</b></span>|| 034E||<b> yabizmuf oybsiyn</b>||<i>upwards arrow below</i>
|-
|<span style="font-size:120%"><b>̩</b></span>|| 0329||<b> ziizmuf aybsiyn</b>||<i>right arrowhead above</i>
|-
|<span style="font-size:120%"><b>͊</b></span>|| 034A||<b> opyaon aybsiyn</b>||<i>not tilde above</i>
|-
|<span style="font-size:120%"><b>ͺ</b></span>|| 037A||<b> iota oybsiyn</b>||<i>Greek ypogegrammeni, iota subscript</i>
|-
|<span style="font-size:120%"><b>ʹ</b></span>|| 0374||<b> Gereda sag aybsiyn</b>||<i>Greek numeral sign, dexia keraia</i>
|-
|<span style="font-size:120%"><b>͵</b></span>|| 0375||<b> Gereda sag oybsiyn</b>||<i>Greek lower numeral sign, aristeri keraia</i>
|-
|<span style="font-size:120%"><b>ّ</b></span>|| 0651||<b> xadda aybsiyn</b>||<i>Arabic shadda</i>
|-
|<span style="font-size:120%"><b>ٞ</b></span>|| 065E||<b> fatha aybsiyn</b>||<i>Arabic fatha with two dots</i>
|-
|<span style="font-size:120%"><b>ؚ</b></span>|| 061A||<b> kasra oybsiyn</b>||<i>Arabic small kasra</i>
|-
|<span style="font-size:120%"><b>ٌ</b></span>|| 064C||<b> damma aybsiyn</b>||<i>Arabic dammatan</i>
|-
|<span style="font-size:120%"><b>ْ</b></span>|| 0652||<b> sukun aybsiyn</b>||<i>Arabic sukun</i>
|}
=== Grammar Terms ===
:*'''drevyab'''....''grammar''
:*'''dun'''....''word''
:*'''dyen'''....''phrase''
:*'''dyan'''....''sentence''
:** '''delyea'''....''declarative''
:** '''didyea'''....''interrogative''
:** '''azteudyea'''....''exclamatory''
:*'''dyangon'''....''clause''
:** '''agala dyangon'''....''main clause''
:** '''abbyosyea dyangon'''....''dependent clause''
:** '''obdabyea dyangon'''....''subordinate clause''
:*'''anyendyen'''....''idiom''
:*'''dalzeyn'''....''language''
:*'''dalzeynes'''....''dialect''
:*'''dalyen'''....''locution''
:*'''dungon'''....''syllable''
:*'''abun'''....''affix''
:** '''zabun'''....''prefix''
:** '''zobun'''....''suffix''
:** '''yebun'''....''infix''
:*'''kyid'''....''stress''
:*'''dredyen'''....''spelling, orthography''
:*'''seuxden'''....''pronunciation''
:*'''dalgon'''....''part of speech''
:**'''sundun'''....''noun''
:**'''avdun'''....''pronoun''
:**'''erdun'''....''verb''
:**'''adun'''....''adjective''
:**'''aydun'''....''adverb''
:**'''ebdun'''....''preposition''
:**'''yanxdun'''....''conjunction''
:**'''oybdun'''....''particle''
:**'''asaundun'''....''article, determiner''
:*'''jobyen'''....''tense''
:** '''eja'''....''present''
:** '''aja'''....''past''
:** '''oja'''....''future''
:** '''vensona'''....''conditional''
:* '''teagun'''....''aspect''
:** '''ikna'''....''perfect''
:** '''oikna'''....''imperfect''
:** '''zaypasyea'''....''progressive''
:*'''tipyen'''....''mood''
:** '''izeadyea'''....''indicative mood''
:** '''ovyama'''....''subjunctive mood''
:*'''teuz'''....''voice''
:** '''axlyea'''....''active''
:** '''xolyea'''....''passive''
:** '''syundabea'''....''transitive''
:** '''osyundabea'''....''intransitive''
:** '''zoykixeea'''....''reflexive''
:*'''sankyas'''....''case''
:** '''syina'''....''nominative, subject''
:** '''bina'''....''genitive, possessive''
:** '''buna'''....''dative''
:** '''izsyuna'''....''accusative, direct object''
:** '''oizsyuna'''....''indirect object''
:** '''byina'''....''ablative''
:** '''dyuena'''....''vocative''
:*'''toob'''....''gender''
:** '''twooba'''....''masculine''
:** '''tooyba'''....''feminine''
:** '''evtooba'''....''neuter''
:*'''sag'''....''number''
:** '''ansaga'''....''singular''
:** '''glasaga'''....''plural''
:*'''sagdun'''....''numeral''
:*'''sag'''....''number''
== Forming Adjectives ==
: You can form an adjective by adding the suffix '''a''' to a substantive, any adverb not ending in '''-ay''', or preposition. By substantive is meant a noun, pronoun, or gerund. Any of these can be adjectivized.
: Examples:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Deriving Adjectives
|-
! Noun !! Adjective
|-
| '''taam'''....''home'' || '''taama'''....''domestic''
|-
| '''doob'''....''nation'' || '''dooba'''....''national''
|-
| '''tej'''....''life'' || '''teja'''....''vital''
|-
| '''tyoyapyaf'''....''ability to walk'' || '''tyoyapyafa'''....''ambulatory''
|-
| '''martun'''....''astronomy'' || '''martuna'''....''astronomical''
|-
! Pronoun !! Adjective
|-
| '''at'''....''I, me'' || '''ata'''....''my''
|-
| '''eut'''....''yourself'' || '''euta'''....''your own''
|-
| '''hiyen'''....''this kind'' || '''hiyena'''....''this kind of''
|-
| '''duhot?'''....''who?'' || '''duhota?'''....''whose?''
|-
! Gerund !! Adjective
|-
| '''ifeken'''....''recreation'' || '''ifekena'''....''recreational''
|-
! Adverb !! Adjective
|-
| '''yib'''....''far'' || '''yiba'''....''distant''
|-
| '''yab'''....''up'' || '''yaba'''....''high, upper''
|-
! Verb Form !! Adjective (= Participle)
|-
| '''teje'''....''(he) lives'' || '''tejea'''....''living''
|-
| '''tojo'''....''will die'' || '''tojoa'''....''moribund, about to die''
|-
| '''tojbu'''....''would kill'' || '''tojbua'''....''lethal''
|-
| '''twa'''....''was known'' || '''twaa'''....''known'' (usu. shortened to '''twa''')
|}
=== Adjectival Suffixes ===
: Various types of adjectives can be created with adjectival suffixes beyond just '''a'''.
: Examples:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Deriving Other Adjectives
|-
! Suffix !! Meaning !! Noun !! Adjective
|-
! rowspan=3|-ava !!rowspan=3| ''pro-, for'' !! !!
|-
| '''Usom'''<br>''U.S.'' || '''Usomava'''<br>''pro-U.S.''
|-
| '''yuvrin'''<br>''slavery'' || '''yuvrinava'''<br>''pro-slavery''
|-
! rowspan=3|-ova !!rowspan=3| ''anti-, against'' !! !!
|-
| '''dobvyabyan'''<br>''constitution'' || '''dovyabyanova'''<br>''anti-constitutional''
|-
| '''dot'''<br>''society'' || '''dotova'''<br>''anti-social''
|-
! rowspan=5|-aya !!rowspan=5| ''full of, having, -ous, -ful, -ly'' !! !!
|-
| '''volz'''<br>''color'' || '''volzaya'''<br>''colorful''
|-
| '''futax'''<br>''resentment'' || '''futaxaya'''<br>''resentful''
|-
| '''tiibil'''<br>''blood'' || '''tiibilaya'''<br>''bloody''
|-
| '''yiflan'''<br>''courage'' || '''yiflanaya'''<br>''courageous''
|-
! rowspan=3|-oya !!rowspan=3| ''bereft of, -less, un-'' !! !!
|-
| '''volz'''<br>''color'' || '''volzoya'''<br>''colorless, pale''
|-
| '''tajyaf'''<br>''talent'' || '''tajyafoya'''<br>''untalented''
|-
! rowspan=2|-ika !!rowspan=2| ''full of, -ous, -ful, -y'' !! !!
|-
| '''map'''<br>''wind'' || '''mapika'''<br>''windy''
|-
! rowspan=2|-uka !!rowspan=2| ''bereft of, without, -less'' !! !!
|-
| '''nas'''<br>''money'' || '''nasuka'''<br>''broke, penniless''
|-
! rowspan=4|-yena !! rowspan=4|''-like, -ous, -ly, -y, -ish, -ic, -al'' !! !!
|-
| '''tudet'''<br>''child'' || '''tudetyena'''<br>''childish, infantile''
|-
| '''tot'''<br>''god'' || '''totyena'''<br>''divine, godly''
|-
| '''pit'''<br>''fish'' || '''pityena'''<br>''fish-like, fishy''
|-
! rowspan=5|-wa or -awa !! rowspan=5|''-ed, past passive participle''<br>(added to verb stem) !! Verb Stem !! Past Passive Participle
|-
| '''t-'''<br>''know'' || '''twa'''<br>''known''
|-
| '''dal-'''<br>''speak'' || '''dalwa'''<br>''spoken, oral''
|-
| '''nixbu-'''<br>''sell'' || '''nixbuwa'''<br>''sold''
|-
| '''dr-'''<br>''write'' || '''drawa'''<br>''written''
|-
! rowspan=4|-ea !!rowspan=4| ''-ing''<br>(added to verb stem) !! Verb Stem !! Present Active Participle
|-
| '''ot-'''<br>''not know'' || '''otea'''<br>''ignorant''
|-
| '''tej-'''<br>''live'' || '''tejea'''<br>''living, alive''
|-
| '''tuj-'''<br>''die'' || '''tujea'''<br>''dying''
|-
! rowspan=5|-yea !!rowspan=5| ''-ive, prone to Xing, given to X''<br>(added to verb stem) !! Verb Stem !! Present Active Participle
|-
| '''tujb-'''<br>''kill'' || '''tujbyea'''<br>''murderous''
|-
| '''tex-'''<br>''think'' || '''texyea'''<br>''pensive, thoughtful''
|-
| '''tox-'''<br>''forget'' || '''toxyea'''<br>''forgetful''
|-
| '''axl-'''<br>''act'' || '''axlyea'''<br>''active''
|-
! rowspan=5|-uwa !!rowspan=5| ''-able, apt to be Xed''<br>(added to verb stem) !! Verb Stem !! Potential Passive Participle
|-
| '''ex-'''<br>''operate'' || '''exuwa'''<br>''operable''
|-
| '''tos'''<br>''feel'' || '''tosuwa'''<br>''palpable''
|-
| '''tex-'''<br>''think'' || '''texuwa'''<br>''conceivable''
|-
| '''tel-'''<br>''eat'' || '''teluwa'''<br>''edible''
|-
! rowspan=3|-yafa !!rowspan=3| ''-able, capable of Xing'' <br>(added to verb stem) !! Verb Stem !! Potential Subject-oriented
|-
| '''teat-'''<br>''see'' || '''teatyafa'''<br>''sightful, able to see''
|-
| '''dyed-'''<br>''read'' || '''dyedyafa'''<br>''literate''
|-
! rowspan=5|-yafwa !!rowspan=5| ''-able, possible to be Xed''<br> (added to verb stem) !! Verb Stem !! Potential Object-oriented
|-
| '''teat-'''<br>''see'' || '''teatyafwa'''<br>''visible''
|-
| '''tax-'''<br>''remember'' || '''taxyafwa'''<br>''memorable''
|-
| '''teet-'''<br>''hear'' || '''teetyafwa'''<br>''audible''
|-
| '''tel-'''<br>''eat'' || '''telyafwa'''<br>''edible''
|-
! rowspan=5|-yofa !!rowspan=5| ''incapable of Xing'' <br>(added to verb stem) !! Verb Stem !! Negative Potential Subject-oriented
|-
| '''teat-'''<br>''see'' || '''teatyofa'''<br>''blind''
|-
| '''tyoyap-'''<br>''walk'' || '''tyoyapyofa'''<br>''lame''
|-
| '''teet-'''<br>''hear'' || '''teetyofa'''<br>''deaf''
|-
| '''dal-'''<br>''speak'' || '''dalyofa'''<br>''dumb, incapable of speaking''
|-
! rowspan=5|-yofwa !!rowspan=5| ''un-X-able'' <br>(added to verb stem) !! Verb Stem !! Negative Potential Object-oriented
|-
| '''teat-'''<br>''see'' || '''teatyofwa'''<br>''invisible''
|-
| '''teet-'''<br>''hear'' || '''teetyofa'''<br>''inaudible''
|-
| '''tox-'''<br>''forget'' || '''toxyofa'''<br>''unforgetable''
|-
| '''dal-'''<br>''speak'' || '''dalyofa'''<br>''unspeakable''
|-
! rowspan=6|-ifa !!rowspan=6| ''fond of, -phile'' !! Noun Stem !! Adjective
|-
| '''pot'''<br>''animal'' || '''potifa'''<br>''pet-friendly''
|-
| '''hyitoob-'''<br>''same-gender'' || '''hyitoobifa'''<br>''homophile''
|-
| '''tobot'''<br>''child'' || '''tobotifa'''<br>''pedophile''
|-
| '''fitel'''<br>''food'' || '''fitelifa'''<br>''gourmand''
|-
| '''doob'''<br>''nation'' || '''doobifa'''<br>''patriotic''
|-
! rowspan=2|-ifwa !!rowspan=2| ''loved by'' !! Noun Stem !! Adjective
|-
| '''tyod'''<br>''people'' || '''tyodifwa'''<br>''popular''
|-
! rowspan=4|-ufa !!rowspan=4| ''adverse to, hating, miso-, -phobic'' !! Noun Stem !! Adjective
|-
| '''tob'''<br>''human'' || '''tobufa'''<br>''misanthropic''
|-
| '''hyut-'''<br>''other person'' || '''hyutufa'''<br>''xenophobic''
|-
| '''toyb-'''<br>''woman'' || '''toybufa'''<br>''misogynist''
|-
! rowspan=5|-ef(w)a !!rowspan=5|''needful of,<br>(necessary to be X-ed)'' !! Noun or Verb Stem !! Adjective
|-
| '''til'''<br>''drink'' || '''tilefa'''<br>''thirsty''
|-
| '''tel'''<br>''food'' || '''telefa'''<br>''hungry''
|-
| '''nas'''<br>''money'' || '''nasefa'''<br>''poor, needy''
|-
| '''yelb-'''<br>''to oil'' || '''yelbefwa'''<br>''squeaky, in need of oil''
|-
! rowspan=4|-yef(w)a !!rowspan=4| ''worthy of,<br> due to be (deserving of being X-ed)'' !! Noun or Verb Stem !! Adjective
|-
| '''fid'''<br>''praise'' || '''fidyefa'''<br>''praiseworthy''
|-
| '''dud'''<br>''answer'' || '''dudyefa'''<br>''responsible''
|-
| '''tax-'''<br>''remember'' || '''taxyefwa'''<br>''memorable''
|-
! rowspan=3|-yuk(w)a !!rowspan=3| ''easy to, (easily X-ed)'' !! Verb Stem !! Adjective
|-
| '''vatex-'''<br>''believe'' || '''vatexyuka'''<br>''gullible''
|-
| '''vatex-'''<br>''believe'' || '''vatexyukwa'''<br>''incredible, hard to believe''
|-
! rowspan=3|-yik(w)a !!rowspan=3| ''hard to,<br>(hard of X-ing)'' !! Verb Stem !! Adjective
|-
| '''teat-'''<br>''see'' || '''teatyikwa'''<br>''opaque''
|-
| '''teet-'''<br>''hear'' || '''teetyika'''<br>''hard of hearing''
|}
=== Adjectival Prefixes ===
==== Negating the Meaning of Adjectives ====
::: The semantics of an adjective can be reversed with the prefix '''o-'''.
::: Examples:
::::* '''vlea'''....''probable'' <span style="font-size:120%">→</span> '''<u>o</u>vlea'''....''improbable''
::::* '''fika'''....''perfect'' <span style="font-size:120%">→</span> '''<u>o</u>fika'''....''imperfect''
::::* '''twa'''....''known'' <span style="font-size:120%">→</span> '''<u>o</u>twa'''....''unknown''
::::* '''bosa'''....''quiet'' <span style="font-size:120%">→</span> '''<u>o</u>bosa'''....''upset, unquiet''
::: Note: Occasionally, the prefix '''lo-''' is used to avoid ambiguity, as in the following case:
::::* '''fwa'''....''wanted''
::::* <span style="font-size:120%">→</span> '''<u>o</u>fwa'''....''prohibited'' <span style="font-size:120%"><</span> '''ofer'''....''to prohibit''
::::* <span style="font-size:120%">→</span> '''<u>yo</u>fwa'''....''impossible'' <span style="font-size:120%"><</span> '''yofer'''....''to be unable''
::::* <span style="font-size:120%">→</span> '''<u>lo</u>fwa'''....''unwanted'' <span style="font-size:120%"><</span> '''fer'''....''to want'' (disambiguated)
::: The prefixes '''lyo-''' and '''ov''' are more intense for reversing the meaning of an adjective:
::::* '''data'''....''friendly''
::::* '''odata'''....''unfriendly''
::::* '''ovdata'''....''hostile''
::::* '''lyodata'''....''inimical''
::::* '''dota'''....''social''
::::* '''odota'''....''unsocial''
::::* '''ovdota'''....''antisocial''
::::* '''lyodota'''....''savage''
==== Table of Adjective Prefixes ====
::: As in English, where the sense of adjectives can be altered by a number of prefixes of Germanic, Latin, and Greek origin, the sense of adjectives in Mirad can also be altered with prefixes. Here are the principal ones:
:::{| class="wikitable sortable collapsable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Altering the Sense of Adjectives with Prefixes<br>Click on double arrow to alphabetize the column
|-
! Mirad Prefix !! English Prefix !! Altered Adjective Examples
|-
| '''o-''' || ''un-, a(n)-, in-, non-'' ||'''<u>o</u>baka'''....''unhealthy''<br>'''<u>o</u>yezyebeya'''....''incontinent'', '''<u>o</u>yelpea'''....''non-invasive''<br>'''<u>o</u>totina'''....''atheist''
|-
|'''ov-''' || ''anti-, counter-'' || '''<u>ov</u>zuina'''....''anti-leftist''<br>'''<u>ov</u>iztida'''....''counter-intuitive''
|-
|'''av-''' || ''pro-'' || '''<u>av</u>hyitoosifa'''....''pro-gay''
|-
| '''kovyo-''' ||''pseudo-'' || '''<u>kovyo</u>tepina'''....''pseudo-intellectual''
|-
| '''hya(s)-''' || ''all-, pan-, omni-'' || '''<u>hyas</u>tea'''....''all-knowing, omniscient''
|-
| '''voy-, gal-''' || ''re-'' || '''<u>voy</u>upya'''....''returned''<br>'''<u>gal</u>abwa'''....''<u>re</u>applied''
|-
| '''vyo-''' || ''mis-'' || '''<u>vyo</u>seudxwa'''....''mispronounced''
|-
| '''eyn-''' || ''semi-, half-'' ||'''<u>eyn</u>levelaya'''....''semi-sweet''<br>'''<u>eyn</u>tija'''....''half-awake''
|-
|'''yiz-''' || ''ultra-, super-'' || '''<u>yiz</u>doobina'''....''ultra-nationalist''<br>'''<u>yiz</u>mola'''....''supernatural''
|-
| '''gro-''' || ''under-, hypo-'' || '''<u>gro</u>jaga'''....''under-aged''
|-
| '''gra-''' || ''over-, hyper-, uber-'' || '''<u>gra</u>agxwa'''....''overgrown''<br>'''<u>gra</u>toseya'''....''hypersensitive''
|-
| '''gla-''' ||''multi-, many-, poly-'' || '''<u>gla</u>kuma'''....''multilateral''<br>'''<u>gla</u>tadaya'''....''polygamous''
|-
|'''fu-''' || ''mal-, ill-'' || '''<u>fu</u>teyenxwa'''....''ill-conceived''<br>'''<u>fu</u>sanxwa'''....''malformed''
|-
| '''fi-''' || ''well-'' || '''<u>fi</u>tofabwa'''....''well-dressed''
|-
| '''yuyb-''' ||''quasi-, almost'' || '''<u>yuyb</u>daba'''....''quasi-governmental''
|-
| '''ja-''' || ''pre-, (a)fore-, pro-'' ||'''<u>ja</u>teyenxwa'''....''pre-conceived''<br>'''<u>ja</u>igdawa'''....''aformentioned''
|-
| '''jo-''' || ''post-'' || '''<u>jo</u>dropeka'''....''post-war''
|-
| '''oyeb-'''|| ''extra-, exo-, '' || '''<u>oyeb</u>tada'''....''extra-marital''
|-
| '''yeb-''' || ''endo-'' || '''<u>yeb</u>tayoba'''....''endo-dermal''
|-
| '''agl(a)-''' || ''macro-'' || '''<u>agla</u>mora'''....''macrocosmic''
|-
| '''ogl(a)-''' || ''micro-'' || '''<u>ogla</u>mora'''....''microcosmic''
|-
| '''ut-''' || ''auto-, self-, sui-'' || '''<u>ut</u>pana'''....''automatic''<br>'''<u>ut</u>tojbua'''....''suicidal''
|-
| '''hyaewa-''' || ''ambi-'' || '''<u>hyaewa</u>tesea'''....''ambivalent''
|-
| '''en-''' || ''bi-'' || '''<u>en</u>toobifa'''....''bisexual''
|-
| '''yuz-''' || ''circum-'' || '''<u>yuz</u>teaxea'''....''circumspect''
|-
| '''gel-''' || ''homo-'' || '''<u>gel</u>sauna'''....''homogeneous''
|-
| '''ogel-''' || ''hetero-'' || '''<u>ogel</u>sauna'''....''heterogeneous''
|-
| '''oyb-''' || ''infra-, sub-'' || '''<u>oyb</u>ivoza'''....''infrared''
|-
| '''ge-''' || ''iso-, equi-'' || '''<u>ge</u>voza'''....''isochromatic''
|-
| '''agr(a)-''' || ''mega-'' || '''<u>agra</u>tipa'''....''megamaniacal''
|-
| '''ku-''' || ''para-'' || '''<u>ku</u>ega'''....''paranormal''
|-
| '''yuyb-''' || ''quasi-, almost, pen-'' || '''<u>yuyb</u>dobyena'''....''quasi-official''
|-
| '''yib-''' || ''tele-, far-'' || '''<u>yib</u>pyuxea'''....''far-reaching''
|-
| '''zey-''' || ''trans-, cross-'' || '''<u>zey</u>mimaga'''....''transoceanic''
|-
| '''aaj-''' || ''paleo-'' || '''<u>aaj</u>toba'''....''paleoloanthropic''
|-
| '''eej-''' || ''neo-'' || '''<u>eej</u>visauna'''....''neoclassical''
|-
| '''yibaj-''' || ''arch(a)eo-, ancient'' || '''yibajtuna'''....''archaeological''
|-
| '''yeb-''' || ''endo-, inner, intro-'' || '''yebzena'''....''endocentric''<br>'''yebuzbwa'''....''introverted''
|-
| '''oyeb-''' || ''exo-, outer, ex-, extr(a/o)-'' || '''oyebzena'''....''exocentric''<br>'''oyebuzbwa'''....''extroverted''
|-
| '''yab(an)-''' || ''high-, up'' || '''yabnoga'''....''upscale''<br>'''yabnayxa'''....''high-priced''
|-
| '''yaban-''' || ''acro-'' || '''yabanyufa'''....''acrophobic''
|-
| '''yob-''' || ''low-, down-'' || '''yobnoga'''....''low-grade, down-scale''
|}
=== English and Mirad Adjectival Suffix Comparison ===
: Here is a chart showing a comparison between English adjectival suffixes and their Mirad counterparts:
:{| class="wikitable sortable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ English and Mirad Adjectival Suffixes Compared
|-
! English Suffix !! Meaning !! Mirad Suffix !! Altered Adjective Examples
|-
| ''-ful'' || full of || '''-aya<br> -ika''' || '''voz<u>aya</u>'''....''colorful''<br> '''tuz<u>ika</u>'''....''skillful''
|-
| ''-ous'' || full of || '''-aya<br> -ika''' || '''naz<u>ika</u>'''....''precious''<br> '''mil<u>aya</u>'''....''aqueous''
|-
| ''-filled'' || full of || '''-aya<br> -ika''' || '''mov<u>ika</u> / mov<u>aya</u>'''....''smoke-filled''
|-
| ''-y'' || full of || '''-aya<br> -ika''' || '''mov<u>ika</u> / mov<u>aya</u>'''....''smoky''<br>
|-
| ''-ous'' || of<br> like || '''-a''' || '''totin<u>a</u>'''....''religious''<br> '''vyos<u>a</u>'''....''erroneous''
|-
| ''-ly'' || like || '''-yena''' || '''tot<u>yena</u>'''....''godly''<br> '''toyb<u>yena</u>'''....''womanly''
|-
| ''-like'' || like || '''-yena''' || '''pat<u>yena</u>'''....''bird-like''
|-
| ''-ish'' || like || '''-yena''' || '''tobot<u>yena</u>'''....''childish''
|-
| ''-y'' || like || '''-yena''' || '''fyab<u>yena</u>'''....''fruity''
|-
| ''-ic'' || like || '''-yena''' || '''tuz<u>yena</u>'''....''artistic''<br> '''sil<u>yena</u>'''....''acidic''
|-
| ''-ic'' || of<br> related to || '''-a''' || '''tun<u>a</u>'''....''scientific''<br> '''bek<u>a</u>'''....''therapeutic''
|-
| ''-ical'' || of<br> related to || '''-a''' || '''zyunid<u>a</u>'''....''spherical''<br> '''iztex<u>a</u>'''....''logical''
|-
| ''-ological'' || pertaining to the study of || '''-tuna''' || '''tej<u>tuna</u>'''....''biological''
|-
| ''-ist(ic)'' || pertaining to the doctrine of || '''-ina''' || '''dopar<u>ina</u>'''....''militarist(ic)''<br> '''nasyan<u>ina</u>'''....''capitalist(ic)''
|-
| ''-ophobic'' (and ''miso-'' prefix) || hating<br> fearful of || '''-ufa''' || '''yudat<u>ufa</u>'''....''xenophonic''<br> '''tobyan<u>ufa</u>'''....''misanthropic''
|-
| ''-ophilic'' (and ''philo-'' prefix) || loving || '''-ifa''' || '''tobot<u>ifa</u>'''....''pedophilic''<br> '''tob<u>ifa</u>'''....''philanthropic''
|-
| ''-al'' || like || '''-yena''' || '''pyot<u>yena</u>'''....''bestial''
|-
| ''-al'' || of<br> pertaining to || '''-a''' || '''tej<u>a</u>'''....''vital''<br> '''aman<u>a</u>'''....''thermal''
|-
| ''-less'' || without<br> empty of || '''-oya<br> -uka''' || '''tej<u>uka</u>'''....''lifeless''<br> '''tobot<u>oya</u>'''....''childless''
|-
| ''-free'' || without<br> empty of || '''-oya<br> -uka''' || '''yom<u>uka</u>'''....''ice-free''<br> '''vyos<u>oya</u>'''....''error-free''
|-
| ''-safe<br> -proof'' || free<br> not subject to || '''-vaka''' || '''mil<u>vaka</u>'''....''water<u>proof</u>''
|}
== Forming Adverbs ==
: Adjectives can be converted into adverbs by post-y-gliding the adjectival suffix '''a''', in other words, by adding a '''y''' to the adjective. Adverbs modify verbs, adjectives, and other adverbs.
: Examples:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Deriving Adverbs
|-
! Adjective !! Adverb
|-
| '''fi<u>a</u>'''....''good'' || '''fi<u>ay</u>'''....''well''
|-
| '''vya<u>a</u>'''....''true'' || '''vya<u>ay</u>'''....''truly''
|-
| '''gyu<u>a</u>'''....''easy'' || '''gyu<u>ay</u>'''....''easily''
|-
| '''ig<u>a</u>'''....''quick'' || '''ig<u>ay</u>'''....''quickly''
|-
| '''aut<u>a</u>'''....''personal'' || '''aut<u>ay</u>'''....''personally''
|}
: For brevity's sake, the stem of monosyllabic de-adjectival adverbs can be used at the end of a clause or sentence. For example:
::* '''It tyoyape <u>ig</u>.'''....''He walks <u>fast</u>.''
::* '''Yit xa has <u>fi</u>.'''....''They did it <u>well</u>.''
=== Special Adverbs ===
: Mirad has special adverbs that are not derived from adjectives and may or may not end in '''-ay'''.
: Here are the principal such adverbs:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Special Adverbs
|-
! Mirad !! English
|-
| '''vay'''||''indeed, really, certainly, do'' (cf. '''va'''....''yes'')
|-
| '''vey'''||''possibly, may, might'' (cf. '''ve'''....''maybe'')
|-
| '''voy'''||''not'' (cf. '''vo'''....''no'')
|-
| '''ga'''||''more'' (modifying an adjective, adverb, or verb)
|-
| '''gay'''||''also, moreover, further, still''
|-
| '''ge'''||''as, equally'' (modifying an adjective, adverb, or verb)
|-
| '''gey'''||''even''
|-
| '''go'''||''less'' (modifying an adjective, adverb, or verb)
|-
| '''goy'''||''no longer, no more''
|-
| '''gla'''||''very''
|-
| '''glay'''||''quite, rather, so''
|-
| '''gle'''||''so''
|-
| '''glo'''||''not very, not so''
|-
| '''gra'''||''too''
|-
| '''gre'''||''enough, sufficiently, over-''
|-
| '''gro'''||''not...enough, inadequately, under-''
|-
| '''gwa'''||''most, super-''
|-
| '''gwe'''||''average''
|-
| '''gwo'''||''least, sub-''
|-
| '''zay'''||''ahead, forward''
|-
| '''zey'''||''across''
|-
| '''zoy'''||''back''
|-
| '''zye'''||''through''
|-
| '''zya'''||''throughout''
|}
: The first three adverbs in the above chart are used to affirm or emphasize, cast doubt on, or negate verb predicates as in the examples that follow:
::* AFFIRMATIVE: '''Va, at <u>vay</u> se taduwa.'''....''Yes, I am <u>indeed</u> married.''
::* DUBITIVE: '''Iyta dud se <u>vey</u> vyosa.'''....''Her response is <u>possibly</u> wrong.''
::* NEGATIVE: '''At <u>voy</u> se eta yuxrut.'''....''I am <u>not</u> your slave.''
: The adverbs above beginning with '''g''' are quantitative adverbs and modify an adjective, verb, or another adverb:
::* '''Et se <u>gla</u> via.'''....''You are <u>very</u> beautiful [=ADJECTIVE].''
::* '''Et peya <u>gra</u> ig.'''....''You were going <u>too</u> fast [=ADVERB].''
::* '''It <u>gra</u> dale.'''....''He talks [=VERB] <u>too</u> much.''
=== Pro-adverbs ===
: There are also adverbial expressions that are formed with deictic prefixes and categorical stubs to produce what are known as '''''pro-adverbs'''''. These include interrogative pro-adverbs like '''duhom?''' (''where?''), '''duhoyen?''' (''how?''), '''duhoj?''' (''when?''), '''duhogla''' (''to what extent?''), and their answers, such as '''hum''' (''there''), '''heyen''' (''somehow''), and '''hyoj''' (''never''), '''hugla''' (''so, to that extent''). These words are discussed under the chapter on [[Mirad_Grammar/Determiners#Deictic Determiners|Deictic Determiners]].
== Forming Verbs ==
[[File:Various forms of using the verb "to inform" in LSC.png|thumb|]]
: Verbs can be formed from various parts of speech:
::* Noun stems
::* Adjective stems
::* Verb stems
=== Forming Verbs from Nouns ===
: Verbs can sometimes be formed from nouns simply by adding the verb infinitive suffix '''er''':
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Denominal Verb Derivation
|-
! Noun !! Verb
|-
| '''ak'''....''a gain'' || '''aker'''....''to win''
|-
| '''af'''....''permission'' || '''afer'''....''may, be allowed''
|-
| '''teud'''....''cry, shout'' || '''teuder'''....''to cry, shout, exclaim''
|-
| '''taj'''....''birth'' || '''tajer'''....''to be born''
|-
| '''tej'''....''life'' || '''tejer'''....''to live''
|-
| '''toj'''....''death'' || '''tojer'''....''to die''
|-
| '''ej'''....''present'' || '''ejer'''....''to continue''
|-
| '''ij'''....''beginning'' || '''ijer'''....''to begin''
|-
| '''uj'''....''end'' || '''ijer'''....''to end''
|-
| '''yuj'''....''sleep'' || '''tujer'''....''to sleep''
|}
=== Verb Formants ===
: More often, an auxiliary verb or verb stub is used to create various verbs from nouns. The most common such '''''verb formants''''' are in this chart:
:* '''-ser'''....''to be/become'' usually intransitive and stative (''unite'' = ''become one'')
::* '''-sler'''....(more intensive)
::* '''-srer'''....(most intensive)
:* '''-xer'''....''to do/make'' usually transitive and dynamic (''unite'' = ''make one'')
::* '''-xler'''....(more intensive)
::* '''-xrer'''....(most intensive)
:* '''-per'''....''to go'' usually intransitive and a dynamic verb of motion (''mount'' = ''get onto'')
::* '''-pler'''....(more intensive)
::* '''-prer'''....(most intensive)
:* '''-ber'''....''to put'' usually transitive and a verb of gesture (''apply'' = ''put onto'')
::* '''-bler'''....(more intensive)
::* '''-brer'''....(most intensive)
:* '''-ier''' a stub from the verb '''bier'''....''to take'', usually an action verb benefiting the agent (''eat'' = ''take food'')
:* '''-uer''' a stub from the verb '''buer'''....''to give'', usually an action verb benefiting the patient (''feed'' = ''give food'')
:* '''-der'''....''to say'', a verb of communication (''affirm'' = ''say yes'')
:* '''-drer'''....''to write''
:* '''-ter'''....''to know'', verbs of the perception and knowledge ('''teater''' = ''see'')
:: Some of the above formants can be intensified with the liquids '''l''' or '''r''', eg.'''sler, -xler, -xrer, -bler, -prer'''.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Verb Derivation with Verb Formants
|-
! Noun !! Auxiliary Verb Or Verb Stub Formant !! Verb
|-
| '''yav'''....''innocence'' || '''der'''....''to say'' || '''yavder'''....''to acquit''
|-
| '''yov'''....''shame, guilt'' || '''aber'''....''to apply, put on'' || '''yovaber'''....''to shame, accuse''
|-
| '''yov'''....''shame, guilt'' || '''ober'''....''to remove, take off'' || '''yovober'''....''to excuse, exculpate''
|-
| '''tof'''....''clothes'' || '''aber'''....''to apply, put on'' || '''tofaber'''....''to dress, don''
|-
| '''tof'''....''clothes'' || '''ober'''....''to remove, take off'' || '''tofober'''....''to undress, strip''
|-
| '''det'''....''associate'' || '''ser'''....''to be, become'' || '''detser'''....''to associate''
|-
| '''dat'''....''friend'' || '''xer'''....''to do, make'' || '''datxer'''....''to befriend''
|-
| '''san'''....''form'' || '''ser'''....''to be, become'' || '''sanser'''....''to form (intransitive)''
|-
| '''san'''....''form'' || '''xer'''....''to do, make'' || '''sanxer'''....''to form (transitive)''
|-
| '''tel'''....''food'' || '''(b)ier'''....''to take'' || '''telier'''....''to eat, consume''
|-
| '''tel'''....''food'' || '''(b)uer'''....''to give'' || '''teluer'''....''to feed, nourish''
|-
| '''if'''....''pleasure'' || '''(b)ier'''....''to take'' || '''ifier'''....''to enjoy''
|-
| '''if'''....''pleasure'' || '''(b)uer'''....''to give'' || '''ifuer'''....''to please''
|-
| '''taj'''....''birth'' || '''ber'''....''to put'' || '''tajber'''....''to give birth''
|-
| '''tej'''....''life'' || '''per'''....''to go'' || '''tejper'''....''to come alive''
|-
| '''tej'''....''life'' || '''ber'''....''to put'' || '''tejber'''....''to bring to life''
|-
| '''toj'''....''death'' || '''per'''....''to go'' || '''tojper'''....''to drop dead''
|-
| '''toj'''....''death'' || '''ber'''....''to put'' || '''tojber'''....''to kill''
|-
| '''tij'''....''wakefulness'' || '''per'''....''to go'' || '''tijper'''....''to wake up''
|-
| '''tij'''....''wakefulness'' || '''ber'''....''to put'' || '''tijber'''....''to awaken''
|-
| '''tuj'''....''sleep'' || '''per'''....''to go'' || '''tujper'''....''to fall asleep''
|-
| '''tuj'''....''sleep'' || '''ber'''....''to put'' || '''tujber'''....''to put to sleep''
|-
| '''tax'''....''memory'' || '''(b)ier'''....''to take'' || '''taxier'''....''to recall''
|-
| '''tax'''....''memory'' || '''(b)uer'''....''to give'' || '''taxuer'''....''to remind''
|-
| '''yev'''....''justice'' || '''der'''....''to say, tell'' || '''yevder'''....''to judge''
|-
| '''vyan'''....''truth'' || '''der'''....''to say, tell'' || '''vyander'''....''to tell the truth''
|-
| '''vyon'''....''falsehood'' || '''der'''....''to say, tell'' || '''vyonder'''....''to tell a lie''
|-
| '''il'''....''liquid'' || '''aker'''....''to gain'' || '''ilaker'''....''to take on liquid''
|-
| '''il'''....''liquid'' || '''oker'''....''to lose'' || '''iloker'''....''to leak, lose liquid''
|-
| '''il'''....''liquid'' || '''(b)ier'''....''to take'' || '''ilier'''....''to soak up''
|-
| '''il'''....''liquid'' || '''(b)uer'''....''to give'' || '''iluer'''....''to pour, water''
|-
| '''il'''....''liquid'' || '''ikser'''....''to get full'' || '''ilikser'''....''to be soaked'' (intransitive)
|-
| '''il'''....''liquid'' || '''ikxer'''....''to fill up'' || '''ilikxer'''....''to flood, soak'' (transitive)
|-
| '''il'''....''liquid'' || '''ukser'''....''to become empty'' || '''ilukser'''....''to drain'' (intransitive)
|-
| '''il'''....''liquid'' || '''ukxer'''....''to empty'' || '''ilukxer'''....''to flush'' (transitive)
|-
| '''il'''....''liquid'' || '''ser'''....''to be, become'' || '''ilser'''....''to liquify, melt'' (intransitive)
|-
| '''il'''....''liquid'' || '''xer'''....''to do, make'' || '''ilxer'''....''to liquify, melt'' (transitive)
|-
| '''il'''....''liquid'' || '''aber'''....''to apply, put on'' || '''ilaber'''....''to wash'' (transitive)
|-
| '''il'''....''liquid'' || '''aper'''....''to get on'' || '''ilaper'''....''to float'' (intransitive)
|-
| '''il'''....''liquid'' || '''per'''....''to go'' || '''ilper'''....''to flow'' (intransitive)
|-
| '''il'''....''liquid'' || '''zyaber'''....''to spread'' || '''ilzyaber'''....''to spray, shower'' (transitive)
|-
| '''il'''....''liquid'' || '''zyober'''....''to squeeze'' || '''ilzyober'''....''to squirt'' (transitive)
|-
| '''il'''....''liquid'' || '''pyexer'''....''to strike'' || '''ilpyexer'''....''to splash (with liquid)''
|-
| '''il'''....''liquid'' || '''yujer'''....''to close'' || '''ilyujer'''....''to plug''
|}
: Note that verbs ending in '''-ser''' and '''-ier''' are intransitive (they take no object), while those ending in '''-xer''' and '''-uer''' are transitive. Also, '''-ier''' verbs are subject-directed, while '''-uer''' verbs are object-directive or causative (making someone do something).
=== Forming Verbs from Adjectives With -xer and -ser ===
: The verbs that are formed from adjectives fall mainly into two groups, the transitive group with '''-xer'''....''to do, make, cause'', and the intransitive group with '''-ser'''....''to be, become''.
: The following chart shows how these verbs are formed:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Forming Verbs with Xer and Ser
|-
! Adjective !! Transitive Verb !! Intransitive Verb
|-
| '''aza'''....''strong'' || '''azaxer'''....''fortify, strengthen, make strong'' || '''azaser'''....''get strong''
|-
| '''oza'''....''week'' || '''ozaxer'''....''weaken'' || '''ozaser'''....''grow weaker''
|-
| '''kyia'''....''heavy'' || '''kyiaxer'''....''weigh down'' || '''kyiaser'''....''grow heavy''
|-
| '''kyua'''....''light'' || '''kyuaxer'''....''lighten, make lighter'' || '''kyuaser'''....''get lighter''
|-
| '''yana'''....''together'' || '''yanaxer'''....''bring together'' || '''yanaser'''....''get together''
|}
: The final adjective ending '''a''' is often dropped to form a verb with a slightly different meaning, usually somewhat more idiomatic. In some cases, dropping the '''a''' makes it clear that the verb is created from a noun rather than an adjective, as in the last example of the following chart:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Comparing Full and Stub Adjectives in Verb Formation
|-
! Adjective !! Transitive Verb !! Intransitive Verb
|-
| '''aga'''....''big'' || '''agaxer'''....''magnify'' || '''agaser'''....''get big''
|-
| || '''agxer'''....''grow'' || '''agxer'''....''grow up, mature''
|-
! !! !!
|-
| '''iga'''....''fast'' || '''igaxer'''....''accelerate'' || '''igaser'''....''speed up''
|-
| || '''igxer'''....''rush'' || '''igser'''....''hurry up''
|-
! !! !!
|-
| '''baka'''....''healthy'' || '''bakaxer'''....''make healthy'' || '''bakaser'''....''get healthy''
|-
| || '''bakxer'''....''heal'' || '''bakser'''....''heal''
|-
! !! !!
|-
| '''sana'''....''formal'' || '''sanaxer'''....''formalize'' || '''sanaser'''....''become formal''
|-
| || '''sanxer'''....''form, shape'' || '''sanser'''....''form, take shape''
|}
=== Forming Verbs of Gesture and Motion with -ber and -per ===
: Verbs of gesture are formed with the transitive auxiliary verb '''ber'''....''to put'', while parallel verbs of motion are formed with the intransitive auxiliary verb '''per'''....''to go''. These verbs are usually paired and are often built from a prepositional base. If the prepositional base ends in '''b''', the '''b''' is dropped. Here are some examples:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Verb Derivation with Ber and Per
|-
! Preposition<br>Base !! Transitive Gesture Verb !! Intransitive Motion Verb
|-
| '''ab'''....''on'' || '''aber'''....''apply, put on'' || '''aper'''....''mount, get on''
|-
| '''eb'''....''between'' || '''eber'''....''block'' || '''eper'''....''intervene''
|-
| '''ob'''....''off'' || '''ober'''....''remove, take off'' || '''oper'''....''dismount, get off''
|-
| '''ib'''....''away'' || '''iber'''....''receive'' || '''iper'''....''leave''
|-
| '''ub'''....''toward'' || '''uber'''....''send'' || '''uper'''....''come''
|-
! !! !!
|-
| '''yab'''....''up'' || '''yaber'''....''raise'' || '''yaper'''....''rise''
|-
| '''yeb'''....''in''<br>'''oyeb'''....''out'' || '''yeber'''....''insert''<br>'''oyeber'''....''take out'' || '''yeper'''....''enter''<br>'''oyeper'''....''exit''
|-
| '''yob'''....''down'' || '''yober'''....''lower'' || '''yoper'''....''descend''
|-
| '''yib'''....''far'' || '''yiber'''....''take away'' || '''yiper'''....''move away''
|-
| '''yub'''....''near'' || '''yuber'''....''bring'' || '''yuper'''....''approach''
|-
! !! !!
|-
|-
| '''za'''....''front'' || '''zaber'''....''put up front'' || '''zaper'''....''take the lead''
|-
| '''zay'''....''forward'' || '''zayber'''....''advance'' || '''zayper'''....''advance, go forward''
|-
| '''ze'''....''middle'' || '''zeber'''....''balance'' || '''zeper'''....''balance''
|-
| '''zey'''....''across'' || '''zeyber'''....''take across, transfer'' || '''zeyper'''....''cross, go over, transit''
|-
| '''zo'''....''behind'' || '''zober'''....''hinder'' || '''zoper'''....''trail, lag''
|-
| '''zoy'''....''back'' || '''zoyber'''....''set back, return'' || '''zoyper'''....''retreat, go back, return''
|-
! !! !!
|-
| '''iz'''....''straight'' || '''izber'''....''guide'' || '''izper'''....''aim for''
|-
| '''uz'''....''crooked'' || '''uzber'''....''divert'' || '''uzper'''....''turn, diverge''
|-
|- '''zi'''....''right'' || '''ziber'''....''set to the right'' || '''ziper'''....''go right''
|-
| '''zu'''....''left'' || '''zuber'''....''set to the left'' || '''zuper'''.... ''go left''
|-
| '''yiz'''....''beyond'' || '''yizber'''....''take beyond'' || '''yizper'''....''pass by''
|-
| '''yuz'''....''around'' || '''yuzber'''....''take around'' || '''yuzper'''....''go around''
|}
==== Deriving Further Verbs of Gesture and Motion ====
: More elaborate verbs of gesture and motion can be formed by adding positional/directional ordinal vowels along with combinations of '''ser''' and '''xer''', plus the intensifiers '''y''', '''l''' and '''r'''. In this more complex scheme, the stem-initial '''p''' is a more semantically intense version of '''b'''. Also the verb endings '''-sler''' and '''-srer''' and more intense versions of the intransitive ending '''-ser''', while '''-xler''' and '''-xrer''' and more intense version of the transitve ending '''-xer'''. Verbs ending in '''-ler''' and '''-rer''' are transitive voice by nature, '''-rer''' being more semantically intense. Prepositions can be prefixed to change the direction of the gestures or motions.
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Creating More Elaborate Verbs
|-
! colspan="2"| Gesture Verb !! colspan="2"| Motion Verb
|-
! Intransitive !! Transitive !! Intransitive !! Transitive
|-
| -- ||'''ber'''....''put''
<br>'''beer'''....''have''
<br>'''beler'''....''carry''
<br>'''bexer'''....''hold''
<br>'''bexler'''....''keep''
| '''per'''....''go''||--
|-
! !! !! !!
|-
| '''baer'''....''lean on'' || '''baler'''....''press''<br>'''yanbaler'''....''compress''<br>'''yobaler'''....''depress, suppress''<br>'''yuzbaler'''....''hug''<br>'''zoybaler'''....''repress''<br>'''barer'''....''crush'' ||'''paer'''....''hover'' ||
|-
|'''baser'''....''gesticulate'' || '''baxer'''....''make a gesture''<br>'''abaxer'''....''caress, pat'' || '''paser'''....''move''||'''paxer'''....''move''
|-
|'''byaser'''....''stand up'' || '''byaxer'''....''set up, erect'' || '''pyaser'''....''jump up'' || '''pyaxer'''....''shoot, launch''
|-
|'''basler'''....''budge'' || '''baxler'''....''rouse''<br>'''abaxler'''....''stroke'' || '''paaser'''....''get excited'' || '''paaxer'''....''excite''<br>'''apaxler'''....''sweep''
|-
|'''basrer'''....''shake'' || '''baxrer'''....''shake''<br>'''abaxrer'''....''rub'' || || '''apaxrer'''....''scrub''
|-
! !! !! !!
|-
|'''beser'''....''stay'' || '''bexer'''....''hold''<br>'''zoybexer'''....''restrain''<br>'''yobexer'''....''detain, hold down'' || '''peser'''....''wait'' || '''pexer'''....''trap''<br>'''pexler'''....''capture''<br>'''pexrer'''....''abduct''
|-
|'''byeser'''....''behave''|| '''byexer'''....''hit'' || '''pyeser'''....''run into, bump into''|| '''pyexer'''....''strike, knock''<br>'''yonpyexer'''....''break''<br>'''yopyexer'''....''knock down''<br>'''epyexer'''....''fight''<br>'''apyexer'''....''attack''<br>'''ovpyexer'''....''offend''<br>'''kunpyexer'''....''sideswipe''<br>'''tuyapyexer'''....''slap''
|-
|'''besler'''....''adhere'' || '''bexler'''....''retain''|| || '''pyexler'''....''pound, beat''<br>'''apyexler'''....''assault''<br>'''yonpexler'''....''shatter, burst''
|-
| || || '''yanpyesrer'''....''implode''<br>'''yonpyesler'''....''explode'' || '''pyexler'''....''blast, bomb''
|-
! !! !! !!
|-
| '''boser'''....''calm down''<br>'''boyser'''....''rest'' || '''boxer'''....''quieten, quell'' || '''poser'''....''stop''<br>'''poyser'''....''pause'' || '''poxer'''....''stop''
|-
| '''byoser'''....''hang'' || '''byoxer'''....''hang'' || '''pyoser'''....''fall''<br>'''yonpyoser'''....''decay'' || '''pyoxer'''....''drop, throw down''<br>'''yopyoxer'''....''topple''<br>
|-
! !! !! !!
|-
| '''biser'''....''originate'' || '''bixer'''....''pull''<br>'''yanbixer'''....''contract''<br>'''yonbixer'''....''distract''<br>'''yubixer'''....''attract''<br>'''yibixer'''....''distract''<br>'''oyebixer'''....''extract''<br>'''yebixer'''....''push in'' || || '''pixer'''....''catch''
|-
|'''bisler'''....''spring'' || '''bixler'''....''yank''<br>'''bixrer'''....''ravage'' || || '''pixler'''....''snatch''<br>'''pixrer'''....''rape''
|-
! !! !! !!
|-
| '''buser'''....''be destined'' || '''buxer'''....''push, drive''<br>'''zyobuxer'''....''squeeze''<br>'''yebuxer'''....''expel''<br>'''abuxer'''....''impose'' || '''apuser'''....''assault'' || '''puxer'''....''throw, thrust''
|-
|'''byuser'''....''bump into'' || '''byuxer'''....''touch''<br>'''yanbyuxer'''....''contact'' ||'''pyuser'''....''run into'' || '''pyuxer'''....''crash''
|-
|'''busler'''....''swoop'' || '''buxler'''....''shove'' || '''pusler'''....''lunge, pounce'' || '''puxler'''....''thrust''<br>'''zyapuxler'''....''splatter''
|}
=== Deriving New Verbs with Prefixes ===
: Yet more complex verbs can be generated by adding directional and positional prefixes to the above verbs. Let's just take the one verb '''baxer''' (and its intransitive partner '''baser''') as our base verb and generate many others through prefixation of prepositional and other words as shown in the following chart:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Baxer Verbs
|-
! Prefix !! Verb
|-
! colspan=2 | '''baxer'''....''gesture, make a bodily motion''
|-
| '''ab'''....''on'' || '''abaxer'''....''caress, pat, pet, stroke, rub''
|-
| '''iz'''....''straight'' || '''izbaxer'''....''point''
|-
| '''teb'''....''head'' || '''tebaxer'''....''nod''
|-
| '''va'''....''yes'' || '''vatebaxer'''....''nod yes''
|-
| '''vo'''....''no'' || '''votebaxer'''....''nod no''
|-
| '''ve'''....''maybe'' || '''vetebaxer'''....''shrug''
|-
| '''tuyab'''....''hand'' || '''tuyabaxer'''....''wave''
|-
| '''tub'''....''arm'' || '''tubaxer'''....''flail, swing''
|-
| '''teubab'''....''tongue'' || '''teubabaxer'''....''lick''
|-
| '''teab'''....''eye'' || '''teubaxer'''....''wink''
|-
| '''patub'''....''wing'' || '''patubaxer'''....''flap''
|-
| '''tiyub'''....''tail'' || '''tiyubaxer'''....''wag''
|-
! colspan=2 | '''baser'''....''gesticulate''
|-
| '''ig-'''....''fast'' || '''igbaser'''....''jerk''
|-
| '''zay'''....''forward'' || '''igzaybaser'''....''lurch''
|-
| '''zoy'''....''back'' || '''zoybaser'''....''recoil''
|-
| '''yob'''....''down'' || '''yobaser'''....''bow, bend down''
|-
| '''ku-'''....''side'' || '''kubaser'''....''slide''
|-
| '''ig-'''....''fast'' || '''igkubaser'''....''slip''
|-
| '''iz'''....''straight'' + '''uz'''....''curved'' || '''uizbaser'''....''sway, swagger, swish''
|-
| '''zi'''....''right'' + '''zu'''....''left'' || '''zuibaser'''....''wiggle, wobble, totter''
|}
=== Forming Frequentative Verbs ===
: A frequentative verb, that is, one that involves an action done quickly multiple times in succession, can be formed by prefixing the syllable '''je-''' to the verb. Here are some examples:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ The -eg- Frequentative Infix
|-
! Regular Verb !! Frequantative Verb
|-
| '''paser'''....''move'' || '''jepaser'''....''shake, shudder''
|-
| '''pyaser'''....''jump'' || '''jepyaser'''....''bounce''
|-
| '''paper'''....''fly'' || '''jepaper'''....''flutter, flit''
|-
| '''braser'''....''shake'' || '''jebraser'''....''shudder, quiver, vibrate''
|-
| '''teupixer'''....''bite'' || '''jeteupiger'''....''nibble''
|-
| '''ilzyaber'''....''spray'' || '''jeilzyaber'''....''sprinkle''
|-
| '''pyexer'''....''beat'' || '''jepyexer'''....''batter, whip''
|}
=== Forming Hybrid Words ===
: Expressions with alternating components like ''back-and-forth'', ''up-and-down'', etc. are formed in a peculiar, hybrid way. The following table shows this formation and how such words can be used, especially as prefixes on verbs:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ Hybrid Words
|-
! Alternative Components !! Hybrid Expression !! Examples
|-
| '''yab'''....''up'' +<br>'''yob'''....''down'' || '''yao(b)-'''....''up-and-down'' || '''yaoper'''....''fluctuate'', '''yaopuser'''....''bounce''
|-
| '''a-'''....''up, north, skyward'' +<br>'''o-'''....''down, south'' || '''ao-'''....''vertical'' || '''aonada'''....''vertical'', '''aonab'''....''column''
|-
| '''za(y)'''....''forth, north'' +<br>'''zo(y)'''....''back, south'' || '''zao(b)-'''....''front-back/north-to-south'' || '''zaobaser'''....''rock'', '''zaomera'''....''north/south''
|-
|- '''zu'''....''left/west'' +<br>'''zi'''....''right/east'' || '''zui(b)-'''....''right-to-left/east-to-west'' || '''zuinada'''....''horizontal'', '''zuibaser'''....''wiggle'', '''zuimera'''....''east/west''
|-
| '''bu'''....''to'' +<br>'''bi'''....''from'' || '''bui-'''....''to-and-from'' || '''buipar'''....''shuttle'', '''buipop'''....''round-trip''
|-
| '''ab'''....''on'' +<br>'''ob'''....''off'' || '''ao(b)-'''....''on-and-off'' || '''aoper'''....''get on and off''
|-
| '''yuj-'''....''closed'' +<br>'''yij-'''....''open'' || '''yuij-'''....''open-and-shut'' || '''yuijbar'''....''switch'', '''igyuijer'''....''blink''
|-
| '''uj-'''....''stop'' +<br>'''ij-'''....''start'' || '''uij-'''....''stop-and-start'' || '''uijparpan'''....''stop-and-go traffic''
|-
| '''(a)yeb'''....''in'' +<br>'''oyeb'''....''out'' || '''aoye(b)-'''....''in-and-out'' || '''igaoyeper'''....''run in-and-out''
|-
| '''yub'''....''near'' +<br>'''yib'''....''far'' || '''yui(b)-'''....''near-and-far'' || '''yuipoper'''....''travel near-and-far''
|-
| '''ub'''....''toward'' +<br>'''ib'''....''away'' || '''ui(b)-'''....''toward-and-away'' || '''uipen'''....''coming and going''
|-
| '''hum'''....''there'' +<br>'''him'''....''here'' || '''huim'''....''here-and-there'' || '''huimkexer'''....''search high-and-low (here-and-there)''
|-
| '''hus'''....''that'' +<br>'''his'''....''this'' || '''huis'''....''this-and-that'' || '''huisyexer'''....''do odd jobs, work at this-or-that''
|-
| '''hyut'''....''other person'' +<br>'''hyit'''....''same person'' || '''hyuit'''....''one another'' || '''hyuitifer'''....''love one another'', '''hyuita'''....''mutual, reciprocal''
|}
: Here are some more examples:
:{| class="wikitable" style="background:lightyellow;{{text default color}};font-size:smaller;"
|+ More Hybrids
! Hybrid Word !! English Gloss !! Alternating Components
|-
|'''aogsen'''||'' fluctuation (in size) ''|| '''ag-''' (''big'') + '''og-''' (''little'') + '''s-''' (''become'') + '''-en''' (''-ing'')
|-
|'''aonada'''||''vertical ''|| '''a-''' (''up/north'') + '''o-''' (''down/south'') + '''nad''' (''line'') + '''-a''' (''adj.'')
|-
|'''aopuys'''||'' hop-on-hop-off ''|| '''a(p)-''' (''on'') + '''o(p)-''' (''off'') + '''puys-''' (''hop'')
|-
|'''buien'''||'' trading, swapping ''|| '''bu-''' (''give'') + '''bi-''' (''trake'') + '''-en''' (''-ing'')
|-
|'''buip'''||'' traffic ''|| '''bu-''' (''to'') + '''bi-''' (''from'') + '''p-''' (''go'')
|-
|'''buixar'''||''spring''|| '''bux-''' (''push'') + '''bix''' (''pull'') + '''-ar''' (''instrument'')
|-
|'''buixek'''||'' tug-o-war ''|| '''bux-''' (''push'') + '''bix-''' (''pull'') + '''ek''' (''play'')
|-
|'''buixnyem'''||'' drawer ''|| '''bux-''' (''push'') + '''bix-''' (''pull'') + '''nyem''' (''box'')
|-
|'''byaosen'''||'' teetering, stumbling ''|| '''byas-''' (''stand'') + '''byos-''' (''fall'') + '''-en''' (''-ing'')
|-
|'''diep'''||'' marine force ''|| '''dip''' (''sea force'') + '''dep''' (''land force'')
|-
|'''duid'''||'' q&a, interview ''|| '''dud''' (''answer'') + '''did''' (''question'')
|-
|'''eigpyexer''' || ''batter, whip'' || '''eg-''' (''again'') + '''ig-''' (''fast'') + '''pyexer''' (''to hit'')
|-
|'''gao'''||'' more-or-less ''|| '''ga''' (''more'') + '''go''' (''less'')
|-
|'''glaojo'''||'' sooner or later ''|| '''gla''' (''very'') + '''glo''' (''slightly'') + '''jo''' (''after'')
|-
| '''huimkexer''' || ''search here and there'' || '''hu-''' (''that'') + '''hi-''' (''this'') + '''-m''' (''place'') + '''kex''' (''search'') + '''-er''' (''inf.'')
|-
|'''huis'''||'' this-and-that ''|| '''hu-''' (''that'') + '''hi-''' (''this'') + '''-s''' (''thing'')
|-
|'''hyuit'''||'' one another ''|| '''hyu-''' (''other'') + '''hyi-''' (''same'') + '''-t''' (''person'')
|-
|'''kyaopen'''||'' fluctuation ''|| '''kya-''' (''mobile'') + '''kyo''' (''static'') + '''-pen''' (''going'')
|-
|'''maluier'''||'' breathe ''|| '''mal-''' (''air'') + '''u-''' (''let out'') + '''i-''' (''take in'') '''-er''' (''inf.'')
|-
|'''maojyex'''||'' double-shift work ''|| '''maj''' (''day'') + '''moj''' (''night'') + '''yex''' (''work'')
|-
|'''maonig'''||'' flicker ''|| '''man''' (''light'') + '''mon''' (''dark'') + '''ig-''' (''fast'')
|-
|'''maolza'''||'' black&white/gray ''|| '''malza''' (''white'') + '''molza''' (''black'')
|-
|'''meil'''||'' mud ''|| '''mel''' (''soil'') + '''mil''' (''water'')
|-
|'''memuiben'''||'' import-exports ''|| '''mem''' (''country'') + '''ub-''' (''send'') + '''ib-''' (''receive'') + '''-en''' (''-ing'')
|-
|'''mial'''||'' vapor ''|| '''mil''' (''water'') + '''mal''' (''air'')
|-
|'''mieg'''||'' reef ''|| '''mi-''' (''sea'') + '''me-''' (''land'') + '''-g''' (''stone'')
|-
|'''miek'''||'' sand ''|| '''mi-''' (''sea'') + '''me-''' (''land'') + '''-k''' (''rocky substance'')
|-
|'''miem'''||'' swamp ''|| '''mim''' (''sea'') + '''mem''' (''land'')
|-
|'''mimpuin'''||'' dock ''|| '''mim''' (''sea'') + '''pu-''' (''arrive'') + '''pi-''' (''depart'') + '''-m''' (''place'')
|-
|'''mimpyaos'''||'' surf ''|| '''mim''' (''sea'') + '''pyas-''' (''surge'') + '''pyos-''' (''sink'')
|-
|'''mimuip'''||'' tide ''|| '''mim''' (''sea'') + '''up-''' (''come'') + '''ip-''' (''go'')
|-
|'''peit'''||'' amphibian ''|| '''pet''' (''land animal'') + '''pit''' (''sea creature'')
|-
|'''puim'''||'' kiss-and-ride zone''|| '''pu-''' (''arrive'') + '''pi-''' (''depart'') + '''-m''' (''place'')
|-
|'''puixek'''||'' baseball ''|| '''pux-''' (''pitch'') + '''pix-''' (''catch'') + '''ek''' (''play'')
|-
| '''pyaos''' || ''wave'' || '''pyas-''' (''surge'') + '''pyos-''' (''crest'')
|-
|'''teabyuij'''||'' blink ''|| '''teab''' (''eye'') + '''yuj-''' (''close'') + '''yij-''' (''open'')
|-
|'''tuijea'''||'' nodding off ''|| '''tuj-''' (''sleep'') + '''tij''' (''wake'') '''-ea''' (''-ing'')
|-
|'''uijdal'''||'' stutter ''|| '''uj-''' (''finish'') + '''ij-''' (''start'') + '''dal''' (''speech'')
|-
|'''uipeni'''||'' comings & goings ''|| '''up-''' (''come'') + '''ip''' (''go'') + '''-en''' (''-ing'') + '''-i''' (''pl.'')
|-
|'''uiza'''||'' serpentine, snaky ''|| '''uza''' (''crooked'') + '''iza''' (''straight'')
|-
|'''vao?'''||'' yes or no? ''|| '''va''' (''yes'') + '''vo''' (''no'')
|-
|'''vaod'''||'' decision ''|| '''va''' (''yes'') + '''vo''' (''no'') + '''d-''' (''say'')
|-
|'''yaobar'''||'' elevator ''|| '''yab-''' (''raise'') + '''yob-''' (''lower'') + '''-ar''' (''instrument'')
|-
|'''yaobyuijar'''||''piston''|| '''yab-''' (''raise'') + '''yob-''' (''lower'') + '''yuj-''' (''close'') + '''yij-''' (''open '') + '''-ar''' (''instrument'')
|-
|'''yaoplas'''||''oscillation''|| '''yap-''' (''up'') + '''yop-''' (''down'') + '''plas''' (''shake'')
|-
|'''yaopsim'''||''seesaw''|| '''yap-''' (''ascend'') + '''yop-''' (''descend'') + '''sim''' (''seat'')
|-
|'''yaopus'''||''bounce''|| ya(''b'')'''-''' (''up'') + yo(''b'')'''-''' (''down'') + '''pus''' (''jump'')
|-
|'''yaovdut'''||''juror''|| '''yav-''' (''innocent'') + '''yov-''' (''guilty'') + '''d-''' (''say'') + '''-ut''' (''agent'')
|-
|'''yaoza'''||''uneven, bumpy, serrated''|| '''yaza''' (''convex'') + '''yoza''' (''concave'')
|-
|'''yaozgoblar'''||''saw''|| '''yaz''' (''protrusion '') + '''yoz''' (''indentation'') + '''gobl-''' (''cut'') + '''-ar''' (''instrument'')
|-
|'''yaozil'''||''wave''|| '''yaz''' (''swell'') + '''yoz''' (''trough'') + '''-il''' (''liquid'')
|-
|'''yuibteabar'''||''bifocals''|| '''yub''' (''near'') + '''yib''' (''far'') + '''teab''' (''eye'') + '''-ar''' (''instrument'')
|-
|'''yuijar'''||'' valve, switch''|| '''yuj-''' (''close'') + '''yij-''' (''open'') + '''-ar''' (''instrument'')
|-
|'''zaobelur'''||''ferry''|| '''za-''' (''forth'') + '''zo''' (''back'') + '''bel-''' (''carry'') + '''-ur''' (''vehicle'')
|-
|'''zaobyexar'''||''swatter, bat''|| '''za''' (''forth'') + '''zo''' (''back'') + '''byex-''' (''strike'') + '''-ar''' (''instrument'')
|-
|'''zaodal'''||''dialog''|| '''za-''' (''forth'') + '''zo''' (''back'') + '''dal''' (''speech'')
|-
|'''zaogoblar'''||''saw''|| '''za''' (''forth'') + '''zo''' (''back'') + '''gobl''' (''cut'') + '''-ar''' (''instrument'')
|-
|'''zaokyax'''||''alternation''|| '''za''' (''forth'') + '''zo''' (''back'') + '''kyax''' (''change'')
|-
|'''zaopasen'''||''swinging''|| '''za-''' (''forth'') + '''zo-''' (''back'') + '''pasen''' (''moving'')
|-
|'''zaopsim'''||''swing or rocker''|| '''zap-''' (''go forth'') + '''zap''' (''go back'') + '''sim''' (''seat'')
|-
|'''zuibasen'''||''wiggling''|| '''zu-''' (''left'') + '''zi-''' (''right'') + '''bas-''' (''move bodily'') + '''-en''' (''-ing'')
|-
|'''zuibayx'''||''wag''|| '''zu-''' (''left'') + '''zi-''' (''right'') + '''bayx-''' (''slight body move'')
|-
|'''zuibyoxea'''||''dangling''|| '''zu''' (''left'') + '''zi''' (''right'') + '''byox-''' (''hang down'') + '''-ea''' (''-ing'')
|-
|'''zuiyafa'''||''ambidextrous''|| '''zu-''' (''left'') + '''zi-''' (''right'') + '''yafa''' (''capable'')
|-
|'''zyaobas'''||''throb''|| '''zya-''' (''wide'') + '''zyo-''' (''narrow'') + '''bas''' (''bodily movement'')
|}
<noinclude>{{Chapter navigation with TOC|Acronyms and Abbreviations|Word Families}}</noinclude>
opfaxaihfrhbwesatgy23tf3hz12itd
Mirad Grammar/Word Families
0
417656
4674693
4674573
2026-10-06T12:13:24Z
ShakespeareFan00
46022
/* Non-templatic Noun Rootwords */
4674693
wikitext
text/x-wiki
{{TOC right|limit=2}}
== Introduction ==
: Words in Mirad can be grouped into families. By "family" is meant a group of words derived from the same rootword. This chapter explains that process.
== Rootwords ==
: All non-borrowed words in Mirad are formed from a combination of some 600 building blocks or '''''rootwords'''''. Some of the rootwords consist of a '''''templatic noun''''' whose middle vowel is the ordinal value for zero, representing the top element of a group of scalarized words where the vowel represents how far down the scale the word is relative to the base word. An example is '''mor''' (''universe''), which is the base word of '''mar''' (''star''), '''mer''' (''planet''), '''mir''' (''world''), and '''mur''' (''moon''). Some rootwords are semantic, in that they carry meaning, whereas others are functional or grammatical.
:* Semantic Rootwords
::* Templatic Noun Rootwords
::* Non-templatic Noun Rootwords
::* Rootword Stubs
::* Non-noun Rootwords
:::* Pronominal Rootwords
:::* Numeric Rootwords
:::* Alphabetic Rootwords
:::* Adjective Nuance Modifiers
:::* Abstract Pattern Rootwords
:* Grammatical/Functional Rootwords
=== Semantic Rootwords ===
: These rootwords have meaning and are not merely functional or grammatical.
==== Templatic Noun Rootwords ====
: Templatic nouns have an ordinal stem vowel that determines the meaning. As the numeric value of the ordinal vowel scales, related words are created.
{{small/top}}
:*'''bok'''....''illness/health/pain/care/wound, etc.''
:*'''dob'''....''state/government/leader/administration/minister''
:*'''dom'''....''city/airport/park/fountain''
:*'''dop'''....''military/airforce/army/navy''
:*'''dot'''....''society/friend/associate/citizen/gentleman''
:*'''doz'''....''dance/theater/comedy/music/ballet/cinema/opera/poetry/music composition''
:*'''fob'''....''plants, trees, vines, etc.''
:*'''job'''....''time/year/season/month/day/hour/minute/second''
:*'''mol'''....''nature/air/water/soil/matter...''
:*'''mom'''....''outer space/sky/land/sea/underground...''
:*'''mop'''....''orbit/wind/path/river/road/tunnel...''
:*'''mor'''....''universe/sun/planet/world/moon...''
:*'''mos'''....''floor/wall/door/window/stairs...''
:*'''nof'''....''cloth,knot,net,rope,cord,button,ribbon,film,package''
:*'''nod'''....''point/line/surface/volume''
:*'''nog'''....''degree,measure,level,space''
:*'''olz-'''....colors of the spectrum
:*'''nom'''....''situation,place,store/cell''
:*'''nov'''....''linen, thread''
:*'''pot'''....''animals''
:*'''pop''' .... ''travel,flight,ride,sea voyage,tunneling''
:*'''som'''....''furniture/chest/table/chair/bed''
:*'''tob'''....''human/body/head/trunk/arm/leg/hand/foot, etc.''
:*'''tod'''....''family/spouse/parent/sibling/child/people...''
:*'''tof'''....''clothing,shirt,dress/hat,socks...''
:*'''tol'''....''nutrition/food/drink/meal...''
:*'''tom'''....''building/house/hall/room/closet...''
:*'''tot'''....''god/angel''
:*'''top'''....''soul/physique/mind/sentiment/limb''
:*'''tov'''....''hat/shirt/socks,etc.''
:*'''vob'''....''crops/grasses''
:*'''xob'''....''organization/staff/boss, etc.''
{{small/end}}
==== Non-templatic Noun Rootwords ====
: The vowel stems in these words are not part of an ordinal scaling.
{{small/top}}
:*'''bem'''....''position''
:*'''byem'''....''situation''
:*'''byen'''....''manner''
:*'''did/dud'''....''question/answer''
:*'''din'''....''story''
:*'''daz'''....''dance'', '''dez'''....''theatre'', '''dyez'''....''cinema'', '''diz'''....''comedy'', '''duz'''....''music'', '''dyuz'''....''opera'', '''dyaz'''....''ballet'', '''duez'''....''musical'', '''druz'''....''musical poetry''
:*'''draf'''....''card'', '''dras'''....''document'', '''draz'''....''badge'', '''drayef'''....''sheet'', '''dref'''....''paper'', '''drev'''....''page'', '''dres'''....''note'', '''dril'''....''ink'', '''drof'''....''board'', '''drov'''....''cardboard''
:*'''dun'''....''word''
:*'''dyan'''....''sentence'', '''dyen'''....''phrase'', '''dyun'''....''name''
:*'''gia'''....''sharp'', '''gin'''....''tip'', '''grin'''....''blade''
:*'''gum'''....''corner'', '''gun'''....''angle'', '''grun'''....''hook''
:*'''jep'''....''process'', '''jop'''....''sequence''
:*'''jod'''....''occasion'', '''jud'''....''date''
:*'''jwap'''....''moment'', '''jwep'''....''instant''
:*'''kad'''....''disclosure'', '''kap'''....''adventure'', '''kas'''....''locus'', '''kaz'''....''treasure''
:*'''kin'''....''slant'', '''kim'''....''slope'', '''kis'''....''bend''
:*'''kod'''....''secret'', '''kof'''....''cover'', '''kos'''....''mystery'', '''kov'''....''veil'', '''koz'''....''mystery''
:*'''kun'''....''flank'', '''kum'''....''side''
:*'''kyan'''....''change''
:*'''kyen'''....''luck'', '''kyed'''....''guess'', '''kyej'''....''contingency'', '''kyen'''....''chance'', '''kyes'''....''event''
:*'''maf'''....''cloud'', '''miaf'''....''mist''
:*'''mag/mog'''....''fire/ash''
:*'''maj/moj'''....''day/night''
:*'''mak'''....''electricity''
:*'''man/mon'''....''light/dark''
:*'''mav/mov'''....''flame/smoke''
:*'''maz/moz'''....''glow/shade''
:*'''mef'''....''brick'', '''mev'''....''porcelain''
:*'''meg'''....''stone''
:*'''mek'''....''dust''
:*'''mez'''....''crystal''
:*'''mieg'''....''coral'','''miek'''....''sand'','''miel'''....''mud''
:*'''muf'''....''rod'', '''muv'''....''pin''
:*'''mug'''....''metal'', '''muk'''....''mineral''
:*'''mul'''....''matter'', '''mulk'''....''chemical element''
:*'''muz'''....''precious ore''
:*'''myek'''....''powder'', '''myeik'''....''dough''
:*'''nab'''....''row'', '''nap'''....''order''
:*'''nak'''....''metric unit''
:*'''nas'''....''money'', '''naz'''....''value'', '''nax'''....''price''
:*'''noz'''....''jewel''
:*'''nyef'''....''bag'', '''nyev'''....''sack'', '''nyeb'''....''container'', '''nyem'''....''box''
:*'''pib'''....''tooth''
:*'''pob'''....''organism''
:*'''pan/pon'''....''motion/rest''
:*'''paz/poz'''....''ruckus/peace''
:*'''sab'''....''body''
:*'''sag'''....''number'', '''syag'''....''count''
:*'''san'''....''form''
:*'''sat'''....''creature''
:*'''saun'''....''kind''
:*'''saz/sez/siz/suz'''....''sculpture/chisel/painting/artifact''
:*'''sar/sir/sor/sur'''....''tool/machine/hardware/engine''
:*'''sin'''....''image'', '''siun'''....''sign'', '''siyn'''....''mark''
:*'''son'''....''matter'', '''sun'''....''thing'', '''suan'''....''element''
:*'''syab/syob'''....''summit/base''
:*'''syan'''....''class (of things)''
:*'''syeb'''....''container''
:*'''syem'''....''establishment''
:*'''syen'''....''style''
:*'''syin/syun'''....''subject/object''
:*'''syuf'''....''effects''
:*'''tap'''....''physique''
:*'''taz'''....''sculpture'', '''tez'''...''culture'', '''tuz'''....''art''
:*'''tes'''....''meaning''
:*'''tin/tun/tuin'''....''doctrine,-ism/science,-ology/theory''
:*'''top'''....''spirit''
:*'''tos'''....''feeling'', '''toos'''....''instinct''
:*'''toz'''....''complexion''
:*'''tyan'''....''class (of people)''
:*'''tyeb'''....''brain'', '''tyep'''....''intellect''
:*'''tyen'''....''skill'', '''tyez'''....''magic''
:*'''tyun'''....''concept, idea''
:*'''vaf'''....''intention''
:*'''va/vo'''....''yes/no''
:*'''vak/vok'''....''safety/danger''
:*'''vyan'''....''truth'', '''vyab'''....''rule''
:*'''vyen'''....''relation''
:*'''vyon'''....''falsehood''
:*'''vol'''....''vegetable''
:*'''volz'''....''color''
:*'''vos'''....''flower''
:*'''xag'''....''frequency''
:*'''yom'''....''ice''
:*'''yim/yum'''....''flood/drought''
:*'''yan/yon, yank/yonk'''....''together/apart, joint/fissure''
:*'''zyad'''....''report'', '''zyan'''....''span'', '''zyag'''....''stretch'', '''zyam'''....''expanse''
:*'''zye'''....''through, '''zyeb'''....''glass (container)'', '''zyef'''....''pane of glass'', '''zyel'''....''glaze'', '''zyev'''....''glass'', '''zyeg'''....''hole'', '''zyek'''....''pore''
:*'''zyia'''....''flat'', '''zyin'''....''plate''
:*'''zyub'''....''spindle'', '''zyuj'''....''round,turn,cycle'', '''zyul'''....''drop (of water)'', '''zyum'''....''sphere'', '''zyun'''....''ball'', '''zyup'''....''circuit'', '''zyug'''....''tire'', '''zyuk'''....''wheel'', '''zyus'''....''circle''
{{small/end}}
==== Rootword Stubs ====
: Stubs are abbreviated pieces of a rootword that are often used as suffixes and sometimes as prefixes or infixes. Here is an alphabetical list:
:
{{small/top}}
{| class="wikitable sortable" style="background:lightyellow"
|+ Stubs
|-
! Stub Affix !! Full Form !! Example
|-
| '''-ab'''....''government, staff'' || '''dab'''....''government''|| '''fyaantinab'''....''abbey''
|-
| '''-al'''....''gaseous substance'' || '''mal'''....''air, gas''|| '''tiebal'''....''breath''
|-
| '''-am'''....''house'' || '''tam'''....''house''|| '''tilam'''....''bar''
|-
| '''-ar'''....''instrument'' || '''sar'''....''tool'' || '''belar'''....''wagon, cart''
|-
| '''-ayob'''....''skin'' || '''tayob'''....''skin'' || '''fayob'''....''bark''
|-
| '''bil'''....''milk'' || '''tilabil'''...''milk'' || '''bilyig'''....''cheese''
|-
| '''do-'''....''public'' || '''dobyena'''....''official''|| '''doyiv'''....''right''
|-
| '''-eb'''....''leader'' || '''deb'''....''leader''|| '''xeb'''....''boss''
|-
| '''-el'''....''food'' || '''tel'''....''food''|| '''kapetel'''....''dogfood''
|-
| '''-em'''....''place'' || '''nem'''....''place'' || '''ekem'''....''playing field''
|-
| '''-fil'''....''alcohol'' || '''filefkyox'''....''alcohol addiction'' || '''vifil'''....''wine''
|-
|'''-i-'''.....subject-oriented verb formant||'''bier'''....''take'' || '''yekier'''....''to undertake''
|-
| '''-ib'''....''administration'' || '''dib'''....''administration'' || '''doyevib'''....''judiciary''
|-
| '''-if'''....''endearing term'' || '''ifer'''....''to love''||'''petif'''....''pet''
|-
| '''-il'''....''liquid substance'' || '''mil'''....''water''|| '''dril'''....''ink''
|-
| '''-im'''....''room'' || '''tim'''....''room'' || '''efim'''....''w.c.''
|-
| '''-ir'''....''machine'' || '''sir'''....''machine''|| '''syagir'''....''computer''
|-
| '''-j'''....''time'' || '''job'''....''time''|| '''hij'''....''now''
|-
| '''-lk'''....''chemical'' || '''mul'''....''substance'' || '''solk'''....''sulfur''
|-
| '''-lz'''....''color'' || '''volz'''....''color'' || '''malz'''....''white''
|-
| '''-m'''....''place'' || '''nem'''....''place'' || '''hum'''....''there''
|-
| '''-of'''....''material'' || '''nof'''....''tissue'' || '''misof'''....''curtain''
|-
| '''-om'''....''situation'' || '''nom'''....''situation''|| '''yukom'''....''comfort''
|-
| '''-or'''....''device in general'' || '''sor'''....''device''||'''enzyukpor'''....''motorcycle''
|-
| '''-ov'''....''cloth'' || '''nov'''....''linen''|| '''suemov'''....''sheet''
|-
| '''-pib'''....''tooth, cog, tine'' || '''teupib'''....''tooth'' || '''pibar'''....''fork''
|-
| '''-s'''....''thing'' || '''sun'''....''thing''|| '''zyus'''....''circle''
|-
| '''sul'''....''chemical base'' || '''syob+mul''' ||
|-
| '''-t'''....''person from'' || '''aot/tob'''....''person''|| '''Usat'''....''an American''
|-
| '''te-'''....''mental'' || '''tep'''....''mind'' || '''tesiun'''....''symbol''
|-
| '''-u-'''....patient-oriented verb formant || '''buer'''....''give''||'''tuer'''....''to inform''
|-
| '''-ud'''....''descendant'' || '''tud'''....''child''|| '''ekpetud'''....''foal''
|-
| '''-ul'''....''substance'' || '''mul'''....''substance''|| '''bekul'''....''medecine''
|-
| '''-ulob'''....''needle'' || '''tulob'''....''nail'' || '''vulob'''....''thorn''
|-
| '''-um'''....''cell, compartment'' || '''tum'''....''compartment''|| '''yibdalirum'''....''telephone booth''
|-
| '''-un'''....''thing'' || '''sun'''....''thing''|| '''zyiun'''....''plaque''
|-
| '''-ur'''....''motorized device'' || '''sur'''....''motor''|| '''pur'''....''vehicle''
|-
| '''-uz'''....''piece of jewelry'' || '''nuz'''....''jewel''|| '''tuyubuz'''....''ring''
|-
| '''-yeb'''....''container'' || '''nyeb'''....''container''|| '''tilyeb'''....''drinking glass''
|-
| '''-yeg'''....''hole, hollow'' || '''zyeg'''....''hole''|| '''mumilyeg'''....''well''
|-
| '''-yel'''....''gel, oil'' || '''myel'''....''viscous substance''|| '''arvobyel'''....''peanut oil''
|-
| '''-yem'''....''enclosed space'' || '''nyem'''....''enclosed space''|| '''veebyem'''....''pod''
|-
| '''-yen'''....''manner, kind'' || '''byen'''....''manner, style''|| '''dalyen'''....''idiom''<br> '''heyen'''....''somehow''
|-
| '''zil'''....''acid'' || '''yigzil'''....''acid'' || '''hesolka zil'''....''hydrosulfuric acid''
|}
{{small/end}}
==== Non-noun Rootwords ====
: These include rootwords other than nouns, such as verbs, prepositions, and adverbs. Those rootwords with a hyphen at the end cannot stand alone, but require a verb or adjective ending to be complete words.
::*'''b-'''....''put''
::*'''ab/eb/ob'''....''on/between/off''
::*'''be'''....''at''
::*'''bay/bey/boy'''....''with/by/without''
::*'''yab/yeb/yob'''....''up/in/out''
::*'''ib/ub'''....''away/toward''
::*'''bi/bu'''....''from/to''
::*'''byi/byu'''....''since/up to''
::*'''yib/yub'''....''far/near''
::*'''ba-/be-/bo-'''....''stir/stay/still''
::*'''bya-/bye-/byo-'''....''stand/hit/fall''
::*'''d-'''....''say''
::*'''dal/del/dol'''....''speak/state/be silent''
::*'''di-/du-'''....''ask/suggest''
::*'''dr-'''....''write''
::*'''dye-'''....''read''
::*'''dyu-'''....''call''
::*'''f-'''....''want''
::*'''if/uf'''....''love/hate''
::*'''yif/yuf'''....''dare/fear''
::*'''fi-/fu-'''....''good/bad''
::*'''fyi-/fyu-'''....''useful/harmful''
::*'''af/ef/of'''....''allow/need/prohibit''
::*'''yaf/yef/yof'''....''can/must/cannot''
::*'''fya-/fye-/fyo-'''....''holy/mystical/profane''
::*'''ag-/eg-/og-'''....''big/normal/small''
::*'''yag-/yog-'''....''long/short''
::*'''ga/ge/go'''....''more/equal/less''
::*'''gla-/gle-/glo-'''....''very/rather/slightly''
::*'''gra-/gre-/gro-'''....''too/enough/insufficiently''
::*'''gwa-/gwe-/gwo-'''....''most/just/least''
::*'''gya-/gyo-'''....''fat/thin''
::*'''gyi-/gyu-'''....''solid/frail''
::*'''ig-/ug-'''....''fast/slow''
::*'''gi-/gu-'''....''point,sharp/angle''
::*'''yig-/yug-'''....''hard/soft''
::*'''ho-/ha-/he-/hi-/hu-'''....''which/the/some/this/that''
::*'''hyo-/hya-/hye-/hyi-/hyu-'''....''no/all/whatever/same/other''
::*'''hay/hey/hoy'''....''hello/hey/goodbye''
::*'''hiy/huy'''....''here is/there is''
::*'''hihi-/huhu-'''....''laugh/cry''
::*'''hyay/hyey/hyoy'''....''thanks/please/sorry''
::*'''hway/hwey/hwoy'''....''congratulations/good luck/boo''
::*'''ja/je/jo'''....''before/during/after''
::*'''jay/jey/joy'''....''already/meanwhile/next''
::*'''aj/ej/oj'''....''past/present/future''
::*'''ji/ju'''....''since/until''
::*'''ij/uj'''....''beginning/end''
::*'''yij/yuj'''....''open/close''
::*'''jag/jeg-/jog-'''....''age(d)/middle-aged/young''
::*'''jwa/jwe/jwo'''....''early/timely/late''
::*'''ak/ek/ok'''....''win/play/lose''
::*'''yak/yek/yok'''....''expect/try/surprise''
::*'''ka-/ke-/ko-'''....''find/seek/lose''
::*'''kya-/kye-/kyo-'''....''mobile/random/fixed''
::*'''ki-/ku-'''....''diagonal/lateral''
::*'''ik-/uk-'''....''full/empty''
::*'''yik-/yuk-'''....''difficult/easy''
::*'''kyi-/kyu-'''....''heavy/light''
::*'''am-/om-'''....''hot/cold''
::*'''im-/um-'''....''wet/dry''
::*'''na-/ne-/no-'''....''price/save/spend''
::*'''nya-/nye-/nyo-'''....''accumulate/store/waste''
::*'''ni-/nu-'''....''earn/pay''
::*'''nyi-/nyu-'''....''demand/supply''
::*'''p-'''....''go''
::*'''pa-/pe-/po-'''....''move/wait/stop''
::*'''ap-/ep-/op-'''....''get on/intervene/get off''
::*'''pi-/pu-'''....''leave/arrive''
::*'''ip-/up-'''....''go away/come''
::*'''s-'''....''be''
::*'''as-/es-/os-'''....''become/exist/cease to exist''
::*'''is-/us-'''....''start out/end up''
::*'''sa-'''....''comprise''
::*'''su-'''....''provide''
::*'''t-'''....''know''
::*'''ty-'''....''know how''
::*'''tr-'''....''recognize''
::*'''tax/tex/tox'''....''remember/think/forget''
::*'''taj/tej/toj'''....''be born/live/die''
::*'''tij/tuj'''....''to be awake/to sleep''
::*'''va/ve/vo'''....''yes/maybe/no''
::*'''vay/vey/voy'''....''indeed/perhaps/not''
::*'''van/ven/von'''....''that/if/don't''
::*'''av/ev/ov'''....''for/neutral/against''
::*'''iv-/uv-'''....''happy/sad''
::*'''yav-/yev-/yov-'''....''innocent/fair/guilty''
::*'''vya-/vye-/vyo-'''....''true/relative/false''
::*'''vi-/vu-'''....''beautiful/ugly''
::*'''vyi-/vyu-'''....''clean/dirty''
::*'''x-'''....''do''
::*'''ax-/ex-/ox-'''....''act/operate/fail''
::*'''xal-/xel-/xol-'''....''accomplish/celebrate/undergo''
::*'''ix-/ux-'''....''effect/cause''
::*'''xi-/xu-'''....''result/affect''
::*'''yan/yon'''....''together/apart''
::*'''yax/yex/yox'''....''be busy/work/be idle''
::*'''yix/yux'''....''use/help''
::*'''za/ze/zo'''....''front/middle/rear''
::*'''zay/zey/zoy'''....''forward/across/back''
::*'''az-/ez-/oz-'''....''strong/moderate/weak''
::*'''iz/uz'''....''straight/curved''
::*'''yaz/yez-/yoz'''....''convex/flush/concave''
::*'''yiz/yuz'''....''beyond/around''
::*'''zi/zu'''....''right/left''
::*'''zyu-/zyi-'''....''round/flat''
==== Pronominal Root Morphemes ====
::*'''at/et/it/ot/ut'''....''I/you/he,she/one/self''
::*'''yat/yet/yit/yot/yut'''....''we,us/you/they,them/themselves''
::*'''is/yis'''....''it/they,them (inan.)''
::*'''aut/eut/iut/out'''....''myself/yourself/herself/oneself''
::*'''ius/yius'''....''itself/themselves (inan.)''
==== Numeric Root Morphemes ====
::* '''a/e/i/o/u/ya/ye/yi/yo/yu'''....The cardinal numbers 1-9
::* '''-w-'''....units infix
::* '''-l-'''....decades infix
::* '''-r-'''....thousands infix
::* '''-ml-'''....millions infix
::* '''-mr-'''....billions infix
==== Alphabetic Spells ====
::*'''a/ba/ca/da/e/fe/ge/he/i/ji/ki/li/mi/ni/o/po/ro/so/to/u/vu/wu/xu/yu/zu'''....letters of the alphabet
==== Adjectival Nuance Modifiers ====
::*'''-c-''' ('''yuga'''....''soft'' -> '''yugca'''....''elastic'')
::*'''-f-''' ('''oza'''....''weak'' -> '''ozfa'''....''weary'')
::*'''-k-''' ('''vyoa'''....''false'' -> '''vyoka'''....''incorrect'')
::*'''-l-/-r-'''....intense/more intense -> ('''yika'''....''hard''/'''yikla'''....''complex''/'''yikra'''....''herculean'')
::*'''-n-''' ('''yeba'''....''inner'' -> '''yebna'''....''interior'')
::*'''-s-''' ('''yiga'''....''hard'' -> '''yigsa'''....''stiff'')
::*'''-z-''' ('''yiga'''....''hard'' -> '''yigza'''....''sour'')
=== Abstract Pattern Rootwords ===
::* '''ea''' in words relating to vision
:::* '''teaper'''....''to visit''
:::* '''beaxer'''....''to guard''
:::* '''teaz'''....''marvel''
::* '''eu''' in words relating to sounds and noises
:::* '''seux'''....''sound''
:::* '''xeus'''....''noise''
:::* '''tiexeuser'''....''to wheeze''
:::* '''gixeuser'''....''to peep''
=== Grammatical or Functional Rootwords ===
{| class="wikitable" style="background:lightyellow;{{Text default color}};"
|+ Grammatical or Functional Rootwords
|-
! Rootwords !! Use(s) !! Example(s)
|-
|'''-a'''||adjective suffix ||'''fi<u>a</u>'''....''good''
|-
|'''-a/-e/-o'''||past/present/future tense endings ||'''p<u>a</u>'''....''went''<br>'''p<u>e</u>'''....''goes''<br> '''at p<u>o</u>'''...''I will go''
|-
|'''-a-/-e-/-o-/-u-'''||perfect/progressive/imminent/hypothetical aspect infixes ||'''p<u>a</u>ye'''....''has gone''<br>'''p<u>e</u>ye'''....''is going''<br>'''p<u>o</u>ya'''....''was about to go''<br>'''Ven at p<u>u</u>'''....''If I were to go'')
|-
|'''du-'''||prefix for interrogative determiners (question words)|| '''<u>du</u>hos?'''....''what?''
|-
|'''-en'''||gerundive suffix ||'''p<u>en</u>'''....''going''
|-
|'''-er'''||infinitive suffix ||'''p<u>er</u>'''....''to go''
|-
|'''-es'''||inanimate diminutive suffix ||'''fab'''....''tree'' -> '''fab<u>es</u>'''....''dendrite''
|-
|'''-et'''||animate diminutive suffix||'''toyb'''....''woman'' -> '''toyb<u>et</u>'''....''girl''<br>'''ektob<u>et</u>'''....''doll''
|-
|'''-eyn'''||single act gerundive ending|| '''sanyevder'''....''to criticize'' -> '''sanyevd<u>eyn</u>'''....''critique''
|-
|'''-gla((s/t)i)'''||infix/suffix for quantity/degree determiners|| '''duho<u>gla</u>ti?'''....''how many people?''<br>'''hi<u>gla</u>s'''....''this much''<br>'''hi<u>gla</u>si'''....''this many things''
|-
|'''gaw-'''|| prefix meaning ''re-''|| '''tajbwa'''....''born'' -> '''gawtajbwa'''....''reborn''
|-
|'''ho-/hoo-/ha-/he-/hi-/hii-/hu-/huu/hyo-/hya-/hye-/hyi-/hyu-'''||determiner prefixes||'''<u>hi</u>s'''....''this''<br>'''<u>hyo</u>t'''....''nobody''<br> '''<u>hya</u>ewa'''....''both''
|-
|'''-i'''||plural noun marker||'''tam<u>i</u>'''....''houses''
|-
|'''-i-/-u-'''||subject-oriented/patient-oriented verb marker||'''b<u>i</u>er'''....''to take''<br>'''b<u>u</u>er'''....''to give''
|-
|'''-j'''||stub suffix for ''when'' determiners|| '''duho<u>j</u>?'''....''when?''<br>'''he<u>j</u>'''....''sometime''
|-
|'''-l-/-r-'''||semantic intensifiers
|'''aga'''....''big'' -> '''ag<u>l</u>a'''....''huge'' -> '''ag<u>r</u>a'''....''immense''<br> '''via'''....''beautiful'' -> '''vila'''....''gorgeous'' -> '''vira'''....''splendid''<br> '''yuxer'''....''to help'' -> '''yux<u>l</u>er'''....''to serve'' -> '''yux<u>r</u>er'''....''to slave''
|-
|'''lo-/lyo'''||verb prefixes that reverse the meaning, ''de-''|| '''xer'''....''do'' -> '''<u>lo</u>xer'''....''undo''<br>'''dota'''....''social'' -> '''<u>lyo</u>dota'''....''barbarian''
|-
|'''-m'''||stub suffix for ''where'' determiners and place nouns|| '''duho<u>m</u>?'''....''where?''<br>'''hyo<u>m</u>'''....''nowhere''
|-
|'''-n'''||general nominalizer ending|| '''yaga'''....''long'' -> '''yaga<u>n</u>'''....''length''
|-
|'''-(o)n'''|| buffer for numeric prefixes||'''a<u>n</u>totin'''....''monotheism''<br>'''yo<u>on</u>gun'''....''pentagon''
|-
|'''o-/yo-/ol-'''||negative prefix meaning ''un-, non-''||'''twa'''....''known'' -> '''<u>o</u>twa'''....''unknown''<br>'''dat'''....''friend'' -> '''yodat'''....''enemy''
|-
|'''-on'''||abstract noun ending||'''ega'''....''normal'' -> '''eg<u>on</u>'''....''norm, standard''
|-
|'''-s'''||thing stub suffix, infix/suffix for "what" determiners|| '''duhos?'''....''what''<br>'''hyes'''....''anything''<br>'''fua'''....''bad'' -> '''fus'''....''bad thing''
|-
|'''-s-/-x-'''||''intransitive/transitive verb formant''|| '''malza'''....''white'' > '''malza<u>s</u>er'''....''to become white''<br>'''malza<u>x</u>er'''....''to whiten (tr.)''
|-
|'''-t'''||person stub suffix, infix/suffix for ''who'' determiners|| '''Parisa'''....''Parisian'' -> '''Parisa<u>t</u>'''....''a Parisian''<br>'''duho<u>t</u>?'''....''who?''<br>'''hya<u>t</u>'''....''everyone''
|-
|'''-un'''||suffix for the result of an action|| '''deuz<u>un</u>'''....''song''
|-
|'''-us'''||''inanimate agent suffix''|| '''sanxer'''....''to form'' -> '''sanx<u>us</u>'''....''formant''
|-
|'''-ut'''||animate agent suffix, ''-er, -ist, one who...''|| '''doper'''....''to fight'' -> '''dop<u>ut</u>'''....''fighter''
|-
|'''-ux-'''||''causative verb infix''|| '''tayegobler'''....''to cut hair'' -> '''tayegobl<u>ux</u>er'''....''to get a haircut''
|-
|'''-w-'''||pre-stem-vowel masculine marker|| '''tob'''....''human'' -> '''t<u>w</u>ob'''....''man''
|-
|'''-w-'''||''alternative to -'''y'''-'' in '''j''' words|| '''j<u>w</u>ob''' rather than '''jyob'''
|-
|'''-w-'''||''superlative marker'' in the words '''gwa/gwe/gwo'''|| '''g<u>w</u>a'''....''most''
|-
|'''-y-'''||post-stem-vowel feminine marker|| '''tob'''....''human'' -> '''to<u>y</u>b'''....''woman''
|-
|'''-yea'''||''adjective ending denoting a tendency''|| '''daler'''....''to talk'' -> '''dal<u>yea</u>'''....''talkative''
|-
|'''-y-/-w-'''||active/passive voice infixes<br>|| '''teata<u>y</u>e'''....''has seen'' -> '''teata<u>w</u>e'''....''has been seen''
|-
|'''-y-'''||post-stem-vowel de-intensifier|| '''oma'''....''cold'' -> '''o<u>y</u>ma'''....''cool''
|-
|'''y-'''||pre-stem-vowel intensifier|| '''om'''....''cold'' -> '''<u>y</u>om'''....''ice''<br>'''im'''...''wet'' -> '''<u>y</u>im'''....''flood''
|-
|'''-y'''||adverb suffix||'''ika'''....''full'' -> '''ika<u>y</u>'''....''fully''
|-
|'''-yen(-)'''||''stub infix/suffix for ''how/kind'' determiners''|| '''duho<u>yen</u>?'''....''how?''<br> '''hye<u>yen</u>a'''....''any kind of''
|}
=== Morphemic Analysis of Some Words ===
'''azbyasean'''
::* '''az-'''....adj. root meaning ''strong''
::* '''bya-'''....verb semantic root meaning ''stand''
::* '''-s-'''....verb intransitive formant
:::* '''azbyas-'''....''stand strong''
::* '''-e-'''....verb present tense marker
::* '''-a'''....adj. suffix
::* '''-n'''....abstraction noun suffix
:::* '''azbyasean'''....''staunchness''
'''yevadyofway'''
::* '''yev-'''....adj. root meaning ''fair, just''
::* '''-a'''....adj. ending
:::* '''yeva'''....''fair, just''
::* '''d-'''....verbal root meaning ''to say, to tell''
:::* '''yevad-'''....verb base meaning ''justify, to say something is just''
::* '''yof-'''....modal verb root meaning ''to be able''
:::* '''yevadyof'''....''ability to justify''
::* '''-w-'''....passive voice verb infix
::* '''-a'''....adj. suffix
:::* '''yofwa'''....''possible, able to be Ved''
:::* '''yevadyofwa'''....adj. meaning ''justifiable''
::* '''-y'''....adverb suffix
:::* '''yevadyofway'''....''unjustifiably''
'''yeloyjagat'''
::* '''ye'''....number ''seven''
::* '''-l-'''....decades infix
::* '''o'''....number ''zero''
:::* '''yelo'''....number ''seventy''
::* '''-y'''....post-stem de-intensifier ''approximately''
:::* '''yeloy'''....''about seventy''
::* '''jag'''....noun meaning ''age''
::* '''-a'''....adj. suffix
:::* '''yeloyjaga'''....''about seventy''
::* '''-t'''....stub suffix for '''tob'''....''person''
:::* '''yeloyjagat'''....''septuagenarian''
'''novgorfwa'''
::* '''nov'''....top element of semantic templatic noun ''linen''
::* '''go'''....''less''
::* '''-r-'''....semantic intensifier
:::* '''gor-'''....base of verb meaning ''to divide forcibly''
::* '''f'''....stub for '''nof'''....''cloth''
::* '''gorf'''....base of verb meaning ''to tear, rip''
:::* '''novgorf'''....verb base meaning ''to tatter''
::* '''-w-'''....verb passive infix
::* '''-a'''....adj. ending
:::* '''novgorfwa'''....''tattered''
::* '''-t'''....stub of '''tob'''....''person''
:::* '''novgorfwat'''....''tatterdemalion, tattered person''
'''engonyanxar'''
::* '''e'''....the number ''two''
::* '''-n'''....buffer letter for numeric prefixes
:::* '''en-'''....''bi-, di-, two-''
::* '''gon'''....noun root ''part'' < '''go'''....''less'' + '''-n''' (nominalizer)
::* '''yan'''....''together''
::* '''-x-'''....active/factive verb formant
:::* '''yanx-'''....base of verb ''to join''
::* '''-ir'''....stub suffix from '''sir'''....''machine''
:::* '''yanxir'''....''joining machine''
:::* '''engonyanxir'''....''splicing machine, lit. machine for joining two parts''
'''bixmugazona'''
::* '''bi'''....prep. ''from''
::* '''-x-'''....factive/active verb formant ''to do''
:::* '''bix'''....''pull, traction''
::* '''mug'''....''metal''
:::* '''bixmug'''....''magnet''
::* '''az-'''....adj. root ''strong''
::* '''-on'''....abstract noun ending
:::* '''azon'''....''force''
:::* '''bixmugazon'''....''magnetism''
::* '''-a'''....''adj. ending''
:::* '''bixmugazona'''....''magnetic''
== Mnemonics and Analogy ==
: This is a language where phonetics is used to present mnemonic relationships and analogy among words as in the following example, based on the word '''teub'''....''mouth'':
:
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Mnemonic Family
| '''teub'''<br>''mouth'' || '''teud'''<br>''shout''||'''teuf'''<br>''muzzle''||'''teuv'''<br>''mask''||'''seux'''<br>''sound''|| '''xeus'''<br>''noise'' || '''xeuz'''<br>''tune'' || '''teuz'''<br>''voice''||'''deuz'''<br>''song'' || '''seuz'''<br>''tone'' || '''deus'''<br>''accent'' ||'''deud'''<br>''shout''||'''deup'''<br>''beat''||'''seus'''<br>''ring''
|}
{{small/end}}
: Here are some other examples where analogy and mnemonics are used to the maximum:
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Analogy and Mnemonics
|-
! colspan=1| '''-eb'''
| '''teb'''<br>''head'' || '''deb'''<br>''leader'' || '''xeb'''<br>''boss'' || '''feb'''<br>''fruit'' || '''veb'''<br>''tuft, cob''||'''piteb'''<br>''fishhead''||'''yanglalteb'''<br>''gang leader'' ||'''tameb'''<br>''master''
|-
! colspan=1| '''-ub'''
| '''tub'''<br>''limb'' || '''dub'''<br>''minister'' || '''xub'''<br>''subsidiary'' || '''fub'''<br>''branch'' || '''vub'''<br>''twig'' || '''patub'''<br>''wing'' ||'''petub'''<br>''paw'' || '''pitub'''<br>''fin''
|-
! colspan=1| '''-eub'''
| '''teub'''<br>''mouth'' || '''pateub'''<br>''beak, bill'' || '''peteub'''<br>''muzzle'' || '''poteub'''<br>''mug''||'''ivteub'''<br>''smile'' ||'''uvteub'''<br>''frown''||'''ufteub'''<br>''grimace'' ||'''fuivteub'''<br>''smirk''
|-
! colspan=1| '''-ayeb'''
| '''tayeb'''<br>''hair'' || '''patayeb'''<br>''feather'' || '''pitayeb'''<br>''scale'' || '''fayeb'''<br>''leaf'' || '''vosayeb'''<br>''petal'' || '''potayeb'''<br>''mane''|| '''sayeb'''<br>''foil''||'''vafayeb'''<br>''blade of grass''
|-
! colspan=1| '''-ayef'''
| '''tayef'''<br>''bristle'' || '''drayef'''<br>''sheet'' || '''yomayef'''<br>''sheet of ice'' || '''fayef'''<br>''foil'' || '''mugayef'''<br>''sheet of metal'' || '''sazulayef'''<br>''lamina''|| '''zyefayef'''<br>''sheet of glass''||'''aulkayef'''<br>''gold leaf''
|-
! colspan=1| '''-ayob'''
| '''tayob'''<br>''skin'' || '''tayof'''<br>''leather'' || '''petayob'''<br>''hide'' || '''fayob'''<br>''bark'' || '''vayob'''<br>''peel, husk''||'''piitayob'''<br>''shell'' ||'''patijayob'''<br>''eggshell'' ||'''vosayob'''<br>''sepal''
|-
! colspan=1| '''-yob'''
| '''tyob'''<br>''leg'' || '''fyob'''<br>''root'' || '''vyob'''<br>''plant root, tuber'' || '''syob'''<br>''base''||'''xyob'''<br>''headquarters'' ||'''tesyob'''<br>''reason''||'''vosyob'''<br>''peduncle'' ||'''teyob'''<br>''neck''
|-
! colspan=1| '''-ib'''
| '''tib'''<br>''trunk'' || '''fib'''<br>''tree trunk'' || '''vib'''<br>''stem'' || '''uvib'''<br>''stalk''||'''sib'''<br>''shaft'' ||'''xib'''<br>''department'' ||'''pib'''<br>''prong'' || '''tebosib'''<br>''brainstem''
|-
! colspan=1| '''-ulob'''
| '''tulob'''<br>''nail'' || '''potulob'''<br>''claw'' || '''fulob'''<br>''thorn'' || '''pifulob'''<br>''needle'' || '''mulob'''<br>''pin, prick''|| '''yomulob'''<br>''icicle''||'''megulob'''<br>''obelisk'' ||'''sepetulob'''<br>''spine''
|-
! colspan=1| '''-uf'''
| '''tiibufyeg'''<br>''artery'' || '''nufyeg'''<br>''pipe'' || '''muf'''<br>''stick, rod'' || '''movuf'''<br>''cheminy'' || '''fauf'''<br>''log'' || '''manuf'''<br>''candle''||'''zyemuf'''<br>''axis, axle'' ||'''tuf'''<br>''sleeve''
|-
! colspan=1| '''-il'''
| '''til'''<br>''drink'' || '''teabil'''<br>''tear'' || '''teubil'''<br>''saliva'' || '''dril'''<br>''ink'' || '''mil'''<br>''water'' || '''mamil'''<br>''rain'' || '''tayobil'''<br>''sweat'' || '''bil'''<br>''milk''
|}
{{small/end}}
== Base Words and their Principal Derivatives ==
: The following is a list of basewords or rootwords with their principal derivatives
=== '''XER''' ''to do'' ===
: The verb '''xer''' means ''to do''. Many words are built from this base word using the postional/directional vowel coding rule. Words ending in '''xer''' contrast with those ending in '''ser''', in that the former are transitive (taking an object), as opposed to intransitive (taking no object).
==== Principal Derivatives ====
: This chart shows the principal derivatives in the '''xer'''....''do'' family:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Xer Principal Derivatives
|-
! !! A !! E !! O !! I !! U
|-
| '''xer'''....''do''|| '''axer'''....''render'' || '''exer'''....''function'' || '''oxer'''....''fail to do'' || '''ixer'''....''effect'' || '''uxer'''....''cause''
|-
| || '''axler'''....''act, behave'' || '''exler'''....''process'' || || '''ixler'''....''react'' || '''uxler'''....''influence''
|-
| '''xrer'''....''execute'' || '''axrer'''....''carry out'' || || || || '''uxrer'''....''provoke''
|-
| || || || || '''xier'''....''result'' || '''xuer'''....''bring about''
|-
| || '''xaler'''....''accomplish'' || '''xeler'''....''practice'' || '''xoler'''....''undergo'' || '''xiler'''....''undertake'' || '''xuler'''....''foment''
|-
| || '''yaxer'''....''be busy'' || '''yexer'''....''work''|| '''yoxer'''....''be idle'' || '''yixer'''....''use'' || '''yuxer'''....''help''
|-
| ||| || '''yexler'''....''labor'' || '''yoxler'''....''resign'' || '''yixler'''....''hire, employ''<br>'''loyixler'''....''fire'' || '''yuxler'''....''serve''
|-
| ||| || '''yexrer'''....''toil'' || || '''yixrer'''....''exploit'' || '''yuxrer'''....''slave''
|}
{{small/end}}
==== Creating '''xer''' Derivations with Prefixes ====
: Using prefixation, many other words can be built from '''xer''':
: Keep in mind that '''xer''' can mean ''do'', ''make'', or ''cause'' in the following derived terms:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Prefixing Xer Words
|-
! PREFIX !! BASE !! DERIVATION
|-
| '''ana'''....''single'' || '''xer'''....''make'' || '''anaxer'''....''unify''
|-
| '''an-'''....''one-'' || '''xer'''....''make'' || '''anxer'''....''unite''
|-
| '''ayn-'''....''whole'' || '''xer'''....''make'' || '''aynxer'''....''integrate''
|-
| '''yan'''....''together'' || '''exer'''....''operate'' || '''yanexer'''....''cooperate''
|-
| '''yan'''....''together'' || '''yexer'''....''work'' || '''yanyexer'''....''collaborate''
|-
| '''yon'''....''apart'' || '''xer'''....''make'' || '''yonxer'''....''separate''
|-
| '''ge'''....''equal'' || '''xer'''....''make'' || '''gexer'''....''equal''
|-
| '''ja'''....''before'' || '''xer'''....''make'' || '''jaxer'''....''prepare''
|-
| '''je'''....''while'' || '''xer'''....''do'' || '''jexer'''....''continue''
|-
| '''ig-'''....''fast'' || '''xer'''....''do'' || '''igxer'''....''rush''
|-
| '''ug-'''....''slow'' || '''xer'''....''do'' || '''ugxer'''....''delay''
|-
| '''oj'''....''future'' || '''xer'''....''do'' || '''ojxer'''....''plan''
|-
| '''zoy-'''....''re-, back-'' || '''xer'''....''do'' || '''zoyxer'''....''redo''
|-
| '''sa(n)'''....''shape'' || '''xer'''....''make'' || '''saxer'''....''create''
|-
| '''se(n)'''....''being'' || '''xer'''....''make'' || '''sexer'''....''build''
|-
| '''lo-'''....''un-'' || '''sexer'''....''build'' || '''losexer'''....''destroy''
|-
| '''tea(b)'''....''eye'' || '''xer'''....''do'' || '''teaxer'''....''look''
|-
| '''lo-'''....''un-'' || '''yixler'''....''hire'' || '''loyixler'''....''fire''
|-
| '''mag'''....''fire'' || '''xer'''....''cause'' || '''magxer'''....''burn''
|-
| '''yuf'''....''fear'' || '''xer'''....''cause'' || '''yufxer'''....''frighten''
|-
| '''dofun'''....''crime'' || '''xer'''....''do'' || '''dofunxer'''....''commit a crime''
|-
| '''gra'''....''too much'' || '''xer'''....''do'' || '''graxer'''....''overdo''
|-
| '''zoy-'''....''re-'' || '''axler'''....''act'' || '''zoyaxler'''....''react''
|-
| '''fu-'''....''bad'' || '''exer'''....''operate'' || '''fuexer'''....''malfunction''
|}
{{small/end}}
==== Using '''xer''' to Build Verbs from Adjectives ====
: Unlimited transitive verbs can be created with adjectives and '''xer''' as a suffix like ''-ify'', ''-ate'', ''-ize'' in English.
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Building Verbs from Adjectives
|-
! ADJECTIVE !! VERB
|-
| '''aga'''....''big'' || '''agaxer'''....''magnify''<br>'''agxer'''....''grow''
|-
| '''vyoka'''....''false'' || '''vyokaxer'''....''falsify''<br>'''vyokxer'''....''err''
|-
| '''fia'''....''good'' || '''fiaxer'''....''fix''<br>'''fixer'''....''to do good''
|-
| '''yiva'''....''free'' || '''yivaxer'''....''free up''<br>'''yivxer'''....''liberate''
|-
| '''yaga'''....''long'' || '''yagaxer'''....''lengthen''<br>'''yagxer'''....''stretch''
|-
| '''zyia'''....''flat'' || '''zyiaxer'''....''flatten''<br>'''zyixer'''....''lay out''
|-
| '''nyana'''....''collective'' || '''nyanaxer'''....''collectivize''<br>'''nyanxer'''....''collect''
|}
{{small/end}}
: '''''Note''''': Sometimes, the adjectival ending '''-a''' is dropped. This often produces a different nuance. For example, '''agaxer''' means ''to magnify, make bigger'', but '''agxer''' is more idiomatic and means ''to grow''.
: The passive of '''xer''', '''xwer'''....''to be done'' can be used to mean ''to happen'' or ''to become''. For example:
::* '''Duhoj hus xwa?'''....''When did that happen?''
::* '''At uvxwa hoj at teata ha tud.'''....''I became sad (=was saddened) when I saw the child.''
==== Using '''xer''' to Build Verbs from Nouns ====
: The use of '''-xer''' to form factive verbs from nouns is extremely common. They are like verbs in English that end in ''-ify'', ''-ate'', ''-ize'' and mean ''to make x'' or ''to render x'', etc. These types of verbs are transitive and commonly take an object. Here are some examples:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Building Verbs from Nouns
|-
! NOUN !! VERB
|-
| '''dyun'''....''name'' || '''dyunxer'''....''to name, denominate''
|-
| '''tex'''....''thought'' || '''texer<sup>*</sup>'''....''to think''
|-
| '''aonab'''....''column'' || '''aonabxer'''....''to columnarize''
|-
| '''tot'''....''god'' || '''totxer'''....''to deify''
|-
| '''calilk'''....''chlorine'' || '''calilkxer'''....''to chlorinate''
|-
| '''gimuf'''....''skewer'' || '''gimufxer'''....''to skewer''
|}
{{small/end}}
<sup>*</sup>If the base noun ends in '''x''', there is not need to repeat the '''x'''.
==== Using '''xer''' for All-Purpose Idioms ====
: The verb '''xer''' can be used as an all-purpose verb for actions which in English are expressed with a variety of idiomatic verbs, for example:
::* '''<u>xer</u> deuz'''....''to <u>perform</u> a song''
::* '''<u>xer</u> ifpop'''....''to <u>take</u> a cruise''
::* '''<u>xer</u> ebdid'''....''to <u>conduct</u> an interview''
::* '''<u>xer</u> yagigpek'''....''to <u>run</u> a marathon''
::* '''<u>xer</u> dazun'''....''to <u>do</u> a dance number''
::* '''<u>xer</u> dezekgon'''....''to <u>play</u> a role''
::* '''<u>xer</u> dovyabdras'''....''to <u>enact</u> a piece of legislation''
==== Using '''axer''' with Adjectives ====
: The verb '''axer''' can be used as a standalone word to form expressions with adjectives, such as '''to make/render someone happy''', eg.:
:* '''Hua deuz <u>axa</u> at uva.'''....''That song <u>made</u> me sad.''
:* '''Et <u>axeye</u> yat gla oyukoma.'''....''You <u>are making</u> us very uncomfortable.''
:* '''Hia apyex <u>axa</u> at teptuja.'''....''This attack <u>rendered</u> me unconcious.''
==== Using '''uxer''' for Causative Constructions====
: The verb '''uxer''' is used in the meaning '''cause/make/get/force''' someone do something, eg.:
::* '''Ha teyd <u>uxa</u> ha tud doler.'''....''The mother <u>got</u> the child to be silent.''
::* '''At <u>uxwa</u> simper boy der hyes.'''....''I <u>was made</u> to sit without saying anything.''
::* '''Iyt <u>uxa</u> iyta tayeb goblwer.'''....''She <u>got</u> her hair cut.'' (Same as: '''Iyt gobluxa iyta tayeb.''')
==== Using '''oxer''' for Failing to Do Something====
: The verb '''oxer''' is used in the meaning ''fail (to do something)'', eg.:
::* '''Ven et <u>oxo</u> puer gwe, et loyixlo.'''....''If you <u>fail</u> to arrive on time, you will be fired.''
::* '''At <u>oxa</u> tester hos at yakweya xer.'''....''I <u>failed</u> to understand what I was supposed to do.''
=== '''SER''' ''to be'' ===
: The rootword '''ser''' means ''to be'' and is the base for many verbs having to do with being and becoming. Verbs ending in '''ser''' are intransitive (taking no object) and contrast with those ending in '''xer''', which are transitive (taking an object). Verbs in '''ser''' often are stative, i.e. linking verbs. Unlike Spanish, where both '''ser''' and '''estar''' mean ''to be'' with a semantic distinction of permanence and non-permanence, there is only one word for ''to be'' in Mirad covering both meanings.
==== Principal Derivatives ====
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Principal Ser Derivatives
|-
! A !! E !! O !! I !! U
|-
| '''aser'''....''become'' || '''eser'''....''exist, there to be'' || '''oser'''....''cease to be''|| '''iser'''....''start out'' || '''user'''....''end up''
|}
{{small/end}}
==== Expressing "there is" and "there are" ====
: The expressions ''there is'' and ''there are'' are constructed with the verb '''eser'''....''to exist'', eg:
:* '''<u>Ese</u> bun av et oyb ha sem.'''....''<u>There is</u> a gift for you under the table.''
:* '''<u>Ese</u> hegla vyoki yeb eta dyes.'''....''<u>There are</u> some mistakes in your book.''
:* '''Voy <u>ese</u> tot.'''....''<u>There is</u> no god.''
:* '''Voy <u>eso</u> yaniv himoj.'''....''<u>There will not be</u> a party this evening.''
==== Creating Stative Verbs from Adjectives ====
: The core verb '''ser''' can be postfixed to adjectives to form a class of verbs called stative, which have the meaning '''become X''', and which contrast with parallel transitive verbs in '''xer'''. If the adjectival ending '''a''' is dropped, then the resulting stative verb has a more idiomatic sense.
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Stative Verbs
|-
! ADJECTIVE !! STATIVE VERB
|-
| '''aga'''....''big'' || '''agaser'''....''get big, magnify''<br>'''agser'''....''grow''
|-
| '''uza'''....''curved'' || '''uzaser'''....''become bowed''<br>'''uzser'''....''curve''
|-
| '''kyaa'''....''mobile'' || '''kyaaser'''....''become mobile, mobilize''<br>'''kyaser'''...''change''
|-
| '''mayna'''....''clear'' || '''maynaser'''....''clear up''
|-
| '''iga'''....''fast'' || '''igaser'''....''become fast, accelerate''<br>'''igser'''....''rush, hurry''
|-
| '''fia'''....''good'' || '''fiaser'''....''to be good''<br>'''fiser'''....''to improve''
|}
{{small/end}}
==== Intransitive '''ser''' vs. Transitive '''xer'''====
: Stative verbs in '''-ser''' are most often intransitive and contrast with dynamic, transitive verbs in '''-xer'''. Here are some comparative examples:
:* '''It <u>agxe</u> vifeybi.'''....''He <u>grows</u> grapes.'' (TRANSITIVE/DYNAMIC)
:* '''Vifeybi voy <u>agse</u> fiay him.'''....''Grapes do not <u>grow</u> well here.'' (INTRANSITIVE/STATIVE)
-----
:* '''His <u>kyaxa</u> yata teji.'''....''This <u>changed</u> our lives.''
:* '''Yata teji <u>kyasa</u> hujub.'''....''Our lives <u>changed</u> on that day.''
-----
:* '''Ha mapi <u>uzaxa</u> ha fabi.'''....''The winds <u>bent</u> the trees.''
:* '''Ha fabi <u>uzasa</u> je ha mapilag.'''....''The trees <u>bowed</u> during the storm.''
-----
:* '''Von <u>igxu</u> at.'''....''Don't <u>rush</u> me.'' (TRANSITIVE/DYNAMIC)
:* '''<u>Igsu</u>!'''....''<u>Hurry up</u>!'' (INTRANSITIVE/STATIVE)
==== Creating Stative Verbs from Nouns ====
: The above stative verbs were created from adjectives, but such verbs can also be formed from nouns and have the meaning '''to become (something)''':
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Creating Stative Verbs from Adjectives
|-
! NOUN !! STATIVE VERB
|-
| '''meg'''....''stone'' || '''megser'''....''petrify, become rock''
|-
| '''abnod'''....''peak'' || '''abnodser'''....''peak, climax''
|-
| '''fub'''....''branch'' || '''fubser'''....''branch out, ramify''
|-
| '''yom'''....''ice'' || '''yomser'''....''freeze''
|-
| '''maf'''....''cloud'' || '''mafser'''....''cloud over''
|-
| '''il'''....''liquid'' || '''ilser'''....''liquefy, melt''
|}
{{small/end}}
: Note: The ending is usually '''-aser''' if the adjective the verb is formed from ends in '''-z, r, l''', or '''s'''. For example, '''tepuzra'''....''crazy'' yields '''tepuzraser'''....''to go crazy''. Also, the ending -'''aser''' is used for verbs that are more literal than their counterpart in -'''ser''', for example: '''agser'''....''grow up'' vs. '''agaser'''....''enlarge, get bigger''.
==== Using '''aser''' as a Standalone Verb Meaning ''become'' ====
: The verb '''aser''' can mean "to become (something or some way), eg.:
::* '''Ha graotyan <u>aseye</u> paaxwa.'''....''The crowd <u>is becoming</u> agitated.''
::* '''At fe <u>aser</u> dovakdibut hoj at agso.'''....''I want <u>to become</u> a policeman when I grow up.''
==== Words for ''to have'' ====
: Mirad has two interchangeable ways to express the verb ''to have, own, possess'':
::* '''bayser''' lit. ''to own'': ('''At <u>ayse</u> aga tod.'''....''I <u>have</u> a big family.'')
::* '''bexer''' lit. ''to hold'': ('''Yit <u>bexe</u> oga melyexem yub bi him.'''....''They <u>own</u> a small farm near here.'')
: These verbs play a part in the formation of other related words:
::* '''bayswer'''....''to belong (to)''
::* '''bexwer'''....''to belong (to)''
::* '''baysyafwa'''....''available''
::* '''baysyofwa'''....''unavailable''
::* '''bexyafwa'''....''available''
::* '''bexyofwa'''....''unavailable''
::* '''bayswa'''....''own, proper, proprietary'' (adj.)
::* '''bexwa'''....''own, proper, proprietary, held'' (adj.)
::* '''Hua tam <u>bayswe</u> at.'''....''That house <u>belongs to</u> me.''
: The opposite of '''bayser''' is '''boyser''' (or '''boyser''')....''to lack''.
: Similarly, the opposite of '''bexer''' is '''obexer'''....''to lack''.
::* '''Hia sizun <u>boyse</u> fyaz.'''....''This painting <u>lacks</u> charm.''
::* '''Wita dez <u>obexa</u> hihiduyean.'''....''His performance <u>lacked</u> humor.''
::* '''At <u>boyse</u> ha azan bi xaler hua pasyen.'''....''I lack the strength to accomplish that maneuver.''
::* '''Iyta dobyeni se <u>boysea</u>.'''....''Her manners are <u>lacking</u>.''
::* '''Vyia mil sa <u>baysyofwa</u>.'''....''Clean water was <u>unavailable</u>.''
=== '''BER''' ''to put'', '''PER''' ''to go'' ===
[[File:Shot Put Pictogram.svg|thumb|]][[File:Animal Locomotion. An Electro-Photographic Investigation of Consecutive Phases of Animal Movements. Commenced 1872 - Completed 1885. Volume I, Men (Nude) MET DT6805.jpg|thumb|]]
: The rootwords '''ber'''....''to put'' and '''per'''....''to go'', combined with positional/directional prefixes and various other word prefixes, form many words having to do with positions, bodily gestures, and directional motions. Those ending in '''ber''' are transitive verbs, while those ending in '''per''' are intransitive.
==== Common '''ber/per''' Verbs Built from Prefixes ====
: (Bear in mind that a '''b''' at the end of a prepositional or adverbial prefix is dropped before '''per''' or '''ber'''), so that '''ab''' + '''per''' becomes '''aper''' and '''ab''' + '''ber''' becomes '''aber'''. This fusion occasionally does not occur when the result is ambiguous.
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Building Verbs with Positional/Directional Prefixes and Vowels
! Prefix !! Transitive Gesture !! Intransitive Motion
|-
| '''ab'''....''on'' || '''aber'''....''put on'' || '''aper'''....''get on''
|-
| '''eb'''....''between'' || '''eber'''....''block'' || '''eper'''....''intervene''
|-
| '''ob'''....''off'' || '''ober'''....''remove'' || '''oper'''....''dismount''
|-
| '''ib'''....''away'' || '''iber'''....''receive'' || '''iper'''....''go away''
|-
| '''ub'''....''toward'' || '''uber'''....''send'' || '''uper'''....''come''
|-
| '''uib'''....''toward and away'' || '''uiber'''....''transmit'' || '''uiper'''....''come and go''
|-
| '''bi'''....''from'' || '''bier'''....''take'' || '''pier'''....''leave''
|-
| '''bu'''....''to'' || '''buer'''....''give'' || '''puer'''....''arrive''
|-
| '''ayb'''....''over'' || '''ayber'''...''put over'' || '''ayper'''....''go over''
|-
| '''oyb'''....''under'' || '''oyber'''...''put under'' || '''oyper'''....''go under''
|-
| '''bay'''....''with'' || '''bayber'''....''put together'' || '''bayper'''....''accompany''
|-
| '''boy'''....''without'' || '''boyxer'''....''deprive'' || '''boyser'''....''lack''
|-
| '''byi'''....''since'' || '''byixer'''....''derive'' || '''byiser'''....''originate''
|-
| '''byu'''....''up to'' || '''byuxer'''....''touch'' || '''byuser'''....''encounter''
|-
| '''yab'''....''up'' || '''yaber'''....''raise'' || '''yaper'''....''rise''
|-
| '''yaob'''....''up and down'' || '''yaober'''....''to raise and lower'' || '''yaoper'''....''to rise and fall''
|-
| '''yan'''....''together'' || '''yanber'''....''compose, combine'' || '''yanper'''....''to meet, to join''
|-
| '''yon'''....''apart'' || '''yonber'''....''to separate'' || ''yonper'''....''to go separate''
|-
| '''yeb'''....''in'' || '''yeber'''....''insert''|| '''yeper'''....''enter''
|-
| '''yob'''....''down'' || '''yober'''....''lower'' || '''yoper'''....''descend''
|-
| '''yib'''....''far'' || '''yiber'''....''take away'' || '''yiper'''....''move far away''
|-
| '''yub'''....''near'' || '''yuber'''....''bring'' || '''yuper'''....''approach''
|-
| '''oyeb'''....''out'' || '''oyeber'''....''expose'' || '''oyeper'''....''exit''
|-
| '''za'''....''front'' || '''zaber'''....''advance'' || '''zaper'''....''advance''
|-
| '''ze'''....''middle'' || '''zeber'''....''balance'' || '''zeper'''....''mediate''
|-
| '''zo'''....''behind'' || '''zober'''....''put behind'' || '''zoper'''....''follow''
|-
| '''zi'''....''right'' || '''ziber'''....''put to the right'' || '''ziper'''....''go right''
|-
| '''zu'''....''left'' || '''zuber'''....''put to the left'' || '''zuper'''....''go left''
|-
| '''iz'''....''straight'' || '''izber'''....''guide'' || '''izper'''....''head''
|-
| '''uz'''....''curve'' || '''uzber'''....''turn'' || '''uzper'''....''turn''
|-
| '''zay'''....''forward'' || '''zayber'''....''promote'' || '''zayper'''....''proceed''
|-
| '''zey'''....''across'' || '''zeyber'''....''transfer'' || '''zeyper'''....''cross''
|-
| '''zoy'''....''back'' || '''zoyber'''....''put back'' || '''zayper'''....''return''
|-
| '''zya'''....''all over'' || '''zyaber'''....''spread'' || '''zyaper'''....''disperse''
|-
| '''zye'''....''through'' || '''zyeber'''....''pass through'' || '''zyeper'''....''penetrate''
|-
| '''zyi'''....''flat'' || '''zyiber'''....''lay'' || '''zyiper'''....''lie''
|-
| '''zyu'''....''round'' || '''zyuber'''....''rotate'' || '''zyuper'''....''roll''
|-
| '''yiz'''....''beyond'' || '''yizber'''....''take beyond'' || '''yizper'''....''surpass''
|-
| '''yuz'''....''around'' || '''yuzber'''....''turn'' || '''yuzper'''....''circulate''
|-
| '''zyag'''....''stretched out'' || '''zyagber'''....''stretch'' || '''zyagper'''....''stretch out''
|-
| '''ja'''....''before'' || '''jaber'''....''prepare'' || '''japer'''....''precede''
|-
| '''je'''....''during'' || '''jeber'''....''continue'' || '''jeper'''....''go on''
|-
| '''jo'''....''after'' || '''jober'''....''delay'' || '''joper'''....''follow''
|-
| '''aj'''....''past'' || '''ajber'''....''pass'' || '''ajper'''....''go past''
|-
| '''ej'''....''present'' || '''ejber'''....''present'' || '''ejper'''....''present oneself''
|-
| '''jwo'''....''late'' || '''jwober'''....''delay'' || '''jwoper'''....''go late''
|-
| '''yan'''....''together'' || '''yanber'''....''assemble'' || '''yanper'''....''join''
|-
| '''yon'''....''apart'' || '''yonber'''....''take apart'' || '''yonper'''....''separate oneself''
|-
| '''ko-'''....''hidden'' || '''kober'''....''hide'' || '''koper'''....''hide (oneself)''
|-
| '''ki-'''....''oblique'' || '''kiber'''....''bend'' || '''kiper'''....''slant, slide, incline''
|-
| '''ku-'''....''lateral'' || '''kuber'''....''set aside'' || '''kuper'''....''avoid, sidestep''
|-
| '''ik-'''....''full'' || '''ikber'''....''fill'' || '''ikper'''....''become full''
|-
| '''uk-'''....''empty''||'''ukber'''....''empty'' || '''ukper'''....''become empty''
|}
{{small/end}}
: Note also, the following special derivatives:
:* '''poper'''....''to travel''
:* '''paper'''....''to fly, go by plane''
:* '''peper'''....''to ride, go by car''
:* '''piper'''....''to sail, navigate''
:* '''milper'''....''to swim''
:* '''mumper'''....''to tunnel''
==== Common Verb Derivatives ====
: The following chart shows a number of verb derivatives of '''ber''' and '''per''' formed by:
::* augmenting the '''b''' or '''p''' with a vowel having a general sense of direction relative to the speaker (vectorial vowel);
:::* '''bier'''....''take'' vs. '''buer'''....''give''
::* adding a verb formant at the end of the stem:
:::* '''-l-''' (strong transitive) or '''-r''' (stronger transitive);
:::* '''-s''' (intransitive) or '''-x''' (transitive), );
:::* '''-sl-''' (stronger intransitive) or '''-xl-''' (stronger transitive);
:::* '''-sr-''' (even stronger intransitive) or '''-xr-''' (even stronger transitive);
::* intensifying or changing the meaning of the word by prefixing the stem ordinal vowel with '''-y-''';
:::* '''bexer'''....''hold'' <big>-></big> '''byexer'''....''hit''
::* sometimes prefixing the stem with one or more prepositions or other semantic morphemes;
:::* '''bier'''....''take'' <big>-></big> '''ojbier'''....''borrow''
: In these words, stems beginning with '''p-''' are more intense than those in '''b-''';
: The general formula for these verbs is "(PREFIX +)?'''[bp][y]?[aeoiu][sx]?[lr]?er'''".
: The following is a small list of '''b(y)[aeoiu]-''' and '''p(y)[aeoiu]-''' derivatives which are formed by prefixing a preposition or some other element.
{{small/top}}
{| class="wikitable" style="background: lightyellow"
|+ B(y)[aeo]- and P(y)[aeo]- derivatives
|- valign=top
|-
! Pattern !! A-stem (up) !! E-stem (middle) !! O-stem (down)
|- valign=top
|-
! '''b_er'''
|valign=top|'''baer'''....''lean''
*'''abbaer'''....''lean on, to cover''
*'''aybbaer'''....''lean over''
*'''ibbaer'''....''lean away''
*'''oyebbaer'''....''lean out''
*'''ubbaer'''....''lean toward''
*'''yebbaer'''....''lean in''
*'''yuzbaer'''....''hug''
|valign=top| --
|valign=top| --
|- valign=top
! '''b_l/rer'''
| '''baler'''....''press''
*'''abbaler'''....''stamp, impress''
*'''abbarer'''....''squash''
*'''aybbarer'''....''run over''
*'''barer'''....''crush''
*'''gibarer'''....''stab''
*'''ilbaler'''....''squirt''
*'''kyibaler'''....''stress''
*'''lokyibaler'''....''relax''
*'''loyanbaler'''....''decompress''
*'''oyebaler'''....''express''
*'''tyoyibbaler'''....''trample''
*'''tyoyibarer'''....''stomp''
*'''yanbaler'''....''compress''
*'''yanbarer'''....''crunch''
*'''yebbaler'''....''imprint''
*'''yobaler'''....''suppress''
*'''yuzbaler'''....''squeeze''
*'''yuzbarer'''....''choke, strangle''
*'''zoybaler'''....''squelch, repress''
*'''zyobaler'''....''constrict''
*'''zyobarer'''....''cramp''
| '''beler'''....''carry''
*'''oyebbeler'''....''export''
*'''yebbeler'''....''import''
*'''zaobeler'''....''ferry''
*'''zeybeler'''....''transport''
*'''zoybeler'''....''report''
*'''zyabeler'''....''propagate, broadcast''
| '''boler'''....''support''
*'''avboler'''....''endorse''
*'''kuboler'''....''abut''
*'''nasboler'''....''underwrite''
*'''oybboler'''....''underpin''
*'''utboler'''....''support oneself''
*'''yabboler'''....''prop up''
*'''yanboler'''....''co-support''
|- valign=top
! '''b_s/xer<br>b_s/xler<br>b_s/xrer'''
| '''bas/xer'''....''stir/gesticulate''
*'''bas/xler'''....''budge''
*'''bas/xrer'''....''shake, agitate''
*'''abbaxer'''....''pat, pet''
*'''abbaxler'''....''stroke''
*'''abbaxrer'''....''rub, massage''
*'''baosler'''....''shivver''
*'''baosrer'''....''quiver, shudder''
*'''baoxer'''....''vibrate''
*'''bas/xler'''....''shake/shake''
*'''ibabas/xrer'''....''corrode/abrade''
*'''ifabaxer'''....''fondle''
*'''izbaxer'''....''point''
*'''kubas/xer'''....''slide''
*'''kyabas/xer'''....''shift/shift''
*'''kyaobaser'''....''fluctuate, waver''
*'''obabas/xrer'''....''rub off/rub off''
*'''oyebabaxrer'''....''rub out''
*'''tayibabaxrer'''....''irritate''
*'''teabaxer'''....''wink''
*'''tebaxer'''....''nod''
*'''teibaxer'''....''nuzzle''
*'''teubabaxer'''....''lick''
*'''tuyabaxer'''....''wave''
*'''tuyubaxer'''....''finger, fiddle''
*'''uizbas/xer'''....''swag''
*'''yobbas/xer'''....''turn over''
*'''yokbaxer'''....''startle''
*'''yuzbaxer'''....''stir''
*'''yuzbaxler'''....''whip''
*'''zaobas/xer'''....''rock/rock''
*'''zaobas/xler'''....''shake back and forth''
| '''bes/xer'''....''stay/hold''
*'''bexler'''....''keep''
*'''bexrer'''....''preserve''
*'''izbexer'''....''control''
*'''kyobes/xer'''....''stay put/hold steady''
*'''lobexer'''....''let go, release''
*'''obbes/xer'''....''stay off''
*'''oyebbes/xer'''....''stay out/exclude''
*'''vakbes/xer'''....''stay safe/keep safe''
*'''yagbes/xer'''....''stay long/conserve''
*'''yanbes/xer'''....''adhere/hold together''
*'''yebbes/xer'''....''stay in/include''
*'''yibbes/xer'''....''shun/hold off''
*'''yubbes/xer'''....''stay near/hold near''
*'''yuzbes/xer'''....''cuddle/hug''
*'''zebes/xer'''....''balance/balance''
*'''zobexer'''....''lag/delay''
*'''zoybes/xer'''....''stay back/retain''
*'''bes/xler'''....''remain/keep''
*'''fyabexler'''....''enshrine''
*'''kobes/xler'''....''keep hidden/keep secret''
*'''kyobes/xler'''....''keep still''
*'''obbes/xler'''....''keep off''
*'''teabexler'''....''monitor''
*'''vakbexler'''....''safeguard''
*'''yagbexler'''....''maintain''
*'''yanbes/xler'''....''stick together/keep together''
*'''yonbexler'''....''keep apart, seclude''
*'''yibbes/xler'''....''avoid/keep at bay''
*'''yubbes/xler'''....''keep close/keep close''
*'''zoybes/xler'''....''keep back/retain''
| '''bos/xer'''....''be quiet/quieten''
*'''jexoboxer'''....''nag''
*'''loboxer'''....''disquiet, annoy''
*'''obos/xer'''....''worry/bother''
*'''tepobos/xer'''....''worry, concern''
*'''boxler'''....''squelch''
*'''oboxler'''....''vex, bedevil''
|- valign=top
! '''by_s/xer<br>by_s/xler<br>by_s/xrer'''
| '''byas/xer'''....''stand up/erect''
*'''kyobyaser'''....''stand still''
*'''zoybyas/xer'''....''stand back up/stand back up''
| '''byes/xer'''....''strike/hit''
*'''byes/xler'''....''knock''
*'''byes/xrer'''....''thrash''
*'''abbyexer'''....''attack, offend''
*'''azbyexer'''....''slam''
*'''ebbyexer'''....''clash, fight''
*'''ebbyexler'''....''squabble, skirmish''
*'''igbyexer'''....''swat''
*'''ifekbyexer'''....''bop''
*'''igyonbyexer'''....''snap''
*'''ilbyexer'''....''splash''
*'''kyibyexer'''....''thump''
*'''ilzyabyexer'''....''bespatter''
*'''kyuigbyexer'''....''click''
*'''obyexer'''....''protect''
*'''ovbyexer'''....''resist''
*'''obyonbyexer'''....''break off''
*'''seuxbyexer'''....''bang''
*'''teptujbyexer'''....''knock out cold''
*'''tojbyexer'''....''strike dead''
*'''tuyabyexer'''....''applaud, clap, slap''
*'''tuyubyexer'''....''rap, tap, strum''
*'''tyobyexer'''....''kick''
*'''yobbyexer'''....''knock down''
*'''yanbyes/xer'''....''clash/clash''
*'''yonbyes/xer'''....''break/break''
*'''yonbyes/xler'''....''smash/smash''
*'''yonbyes/xrer'''....''shatter/shatter''
*'''zaobyexer'''....''swat, bat''
*'''zotiubyexer'''....''spank''
*'''zyibyexer'''....''smack, slap''
*'''ikbyexrer'''....''obliterate''
| '''byos/xer'''....''hang/hang''
*'''abbyos/xer'''....''depend on/hang on''
*'''obbyos/xer'''....''hang off/hang off''
*'''teyopyoxer'''....''hang by the neck''
*'''tojpyoxer'''....''execute by hanging''
*'''yivpyoser'''....''dangle, hang loose''
*'''yobbyos/xer'''....''hang down/hang down''
|- valign=top
! '''p-''' !! More intense !! !!
|- valign=top
! '''p_er'''
| '''paer'''....''hover''
*'''aypaer'''....''hover above''
|valign=top| --
| '''poer'''....''rest''
*'''zepoer'''....''take a break''
|- valign=top
! '''p_l/rer'''
| --
| --
| --
|- valign=top
! '''p_s/xer'''<br>'''p_s/xler<br>p_s/xrer'''
| '''pas/xer'''....''move/move''
*'''apaxer'''....''wipe''
*'''apaxler'''....''sweep''
*'''apaxrer'''....''scrub, rub''
*'''buipas/xer'''....''move to and fro''
*'''ibapaxer'''....''wipe away, erase''
*'''ibapaxler'''....''sweep away''
*'''igpaser'''....''hurry, hasten''
*'''kopaser'''....''sneak''
*'''kipaser'''....''skate''
*'''kyepaser'''....''wander, roam''
*'''obapaxer'''....''wipe off''
*'''oyebapaxer'''....''wipe out''
*'''oyebapaxler'''....''sweep out''
*'''oyepas/xer'''....''move out/move out''
*'''paoser'''....''stop and go, lurch''
*'''pas/xler'''....''shake/shake''
*'''pasrer'''....''tremble/quake''
*'''tapas/xer'''....''exercise/exercise''
*'''teppaxer'''....''motivate''
*'''tyoipaser'''....''crawl on one's knees''
*'''ugpaser'''....''dawdle''
*'''uizpaser'''....''stagger, swerve, yaw''
*'''yabapasler'''....''get swept up''
*'''yaopaser'''....''fluctuate''
*'''yepas/xer'''....''move in/move in''
*'''yezapaxler'''....''sweep along''
*'''yipas/xer'''....''move away/remove''
*'''yupas/xer'''....''move near/approach''
*'''yuzpaser'''....''circulate, move around''
*'''yuzyupaser'''....''spiral around''
*'''zaopaser'''....''swing''
*'''zaypas/xer'''....''progress, move on/promote''
*'''zoypas/xer'''....''regress/move back''
*'''zuipas/xer'''....''move left and right''
*'''zyupaser'''....''rotate, spin''
| '''pes/xer'''....''wait/trap''
*'''potpexer'''....''go trapping''
*'''pexler'''....''capture''
| '''pos/xer'''....''stop/stop''
*'''dovakpoxer'''....''arrest''
*'''japoxer'''....''forestall''
*'''kyopos/xer'''....''stop still/stop''
*'''pos/xler'''....''sink/plunge''
*'''pos/xrer'''....''drown/drown''
*'''poys/xer'''....''pause, rest/pause, stall''
*'''yopos/xer'''....anquish/cause anxiety
*'''zepoxer'''....''interrupt''
|- valign=top
! '''py_s/xer'''<br>'''p_s/xler'''<br>'''p_s/xrer'''
| '''pyas/xer'''....''jump, surge/launch, shoot''
*'''apyaser'''....''pounce on''
*'''aypyas/xer'''....''leap over/shoot over''
*'''opyas/xer'''....''leap off/throw off''
*'''oyepyas/xer'''....''leap out/shoot out''
*'''pyaoser'''....''undulate, vaccilate''
*'''uzpyaser'''....''vault''
*'''yaopyas/xer'''....''bounce/bounce''
| '''pyexer'''....''strike, hit''
*'''apyexer'''....''attack, assail''
*'''dalexpyexer'''....''argue, debate''
*'''epyexer'''....''fight, combat, battle''
*'''epyexler'''....''struggle''
*'''ilzyapyexer'''....''splatter''
*'''ilzyopyexer'''....''squirt''
*'''izapyexer'''....''attack head on''
*'''koapyexer'''....''mug''
*'''ovapyexer'''....''counterattack''
*'''ovepyexer'''....''fight against''
*'''ovpyexer'''....''defend''
*'''pyexler'''....''beat, batter, beat up''
*'''pyexrer'''....''pound, whack''
*'''tojpyexler'''....''beat to death''
*'''voyepyexer'''....''fight back''
*'''voypyexer'''....''strike back, retaliate''
*'''yanpyes/xrer'''....''implode''
*'''yokapyexer''''....''surprise attack''
*'''yonpyes/xer'''....''shatter/shatter''
*'''yonpyes/xler'''....''burst/burst''
*'''yonpyes/xrer'''....''explode/explode''
*'''yopyexer'''....''knock down, defeat''
| '''pyos/xer'''....''fall/drop, fell''
*'''apyoser'''....''fall on top of''
*'''aypyoser'''....''fall over''
*'''dobpyoxer'''....''topple a regime''
*'''igpyoser'''....''plummet''
*'''ilpyoxer'''....''pour''
*'''kipyoser'''....''slip''
*'''kupyoser'''....''fall aside''
*'''kyipyoser'''....''plop''
*'''mampyoser'''....''skydive''
*'''milpyoser'''....''rain''
*'''opyoser'''....''fall off''
*'''oyepyoser'''....''fall out''
*'''oypyoser'''....''fall under''
*'''pyosler'''....''dive''
*'''pyoys/xer'''....''trip/trip''
*'''teipyoser'''....''do a nose dive''
*'''tojpyos/xer'''....''fall dead/knock dead''
*'''yanpyoser'''....''collapse''
*'''yepyos/xer'''....''fall in/plunge''
*'''yivpyoser'''....''free-fall''
*'''yonpyoser'''....''fall apart, decay, crumble''
*'''yopyos/xer'''....''fall down, dive/topple, dunk''
*'''zaypyoser'''....''fall forward''
*'''zopyoser'''....''fall behind''
*'''zoypyoser'''....''fall backward''
*'''zyupyoser'''....''tumble''
|}
{{small/end}}
{{small/top}}
{| class="wikitable" style="background: lightyellow"
|+ B(y)[iu]- and P(y)[iu]- derivatives
|- valign=top
|-
! Pattern !! I-stem (away)!! U-stem (toward)
|- valign=top
|-
! '''b_er'''
|valign=top|'''bier'''....''take''
*'''ibbier'''....''take away''
*'''gonbier'''....''partake''
*'''kexbier'''....''choose''
*'''kobier'''....''steal''
*'''obbier'''....''take off''
*'''ofbier'''....''steal''
*'''nuxbier'''....''buy''
*'''obier'''....''leave, give up''
*'''ojbier'''....''borrow''
*'''oyebbier'''....''exclude''
*'''vabier'''....''accept''
*'''vobier'''....''refuse''
*'''yebier'''....''include''
*'''yembier'''....''replace''
*'''yobbier'''....''take down''
*'''zoybier'''....''take back''
| '''buer'''....''give''
*'''gonbuer'''....''share''
*'''fyabuer'''....''dedicate''
*'''grobuer'''....''shortchange''
*'''ibbuer'''....''give away''
*'''ifbuer'''....''offer''
*'''jabuer'''....''ante up''
*'''kobuer'''....''bribe''
*'''lobuer'''....''deprive''
*'''nixbuer'''....''sell''
*'''obuer'''....''withhold''
*'''okbuer'''....''sacrifice''
*'''ojbuer'''....''lend''
*'''tuyabuer'''....''hand over''
*'''yembuer'''....''assign''
*'''zaybuer'''....''present''
*'''zeybuer'''....''transfer''
*'''zoybuer'''....''give back, return''
*'''zyabuer'''....''distribute''
|- valign=top
! '''b_l/rer'''
| '''biler'''....''fetch, obtain''
*'''birer'''....''seize, grab''
*'''azbirer'''....''commandeer''
*'''igbirer'''....''snag''
*'''kobirer'''....''loot''
*'''obirer'''....''lose grip of''
*'''teyobirer'''....''collar''
*'''tuyafyembirer'''....''pickpocket''
*'''vyobirer'''....''bribe''
*'''vyotexbirer'''....''inveigle''
*'''yafbirer'''....''seize power''
*'''yivbirer'''....''loot''
*'''yokbirer'''....''overwhelm, ransack''
*'''yufbirer'''....''extort''
| '''buler'''....''grant''
*'''ifbuler'''....''dedicate''
*'''tojbuler'''....''bequeath''
*'''burer'''....''yield''
*'''ifburer'''....''volunteer''
*'''nigbuer'''....''accommodate''
|- valign=top
! '''b_s/xer'''<br>'''b_s/xler'''<br>'''b_s/xrer'''
| '''bis/xer'''....''withdraw/pull''
*'''abbixer'''....''pull on''
*'''aoyebixer'''....''pump''
*'''aybbixer'''....''pull over''
*'''ibis/xer'''....''avoid/detract''
*'''obbixer'''....''pull off, subtract''
*'''oybbixer'''....''pull under''
*'''oyebbixer'''....''extract''
*'''ubbixer'''....''attract, lure''
*'''yabbixer'''....''pull up, hoise''
*'''yagbis/xer'''....''stretch/stretch''
*'''yanbis/xer'''....''contract/contract''
*'''yebbis/xer'''....''get sucked in/pull in''
*'''yibbixer'''....''detract''
*'''yobbis/xer'''....''sink/pull down''
*'''yogbis/xer'''....''shrink/shrink''
*'''yonbis/xer'''....''draw apart/distract''
*'''yovbixer'''....''seduce''
*'''yubis/xer'''....''draw near/attract''
*'''zaybis/xer'''....''protract/protract''
*'''zobixer'''....''drag''
*'''zoybis/xer'''....''retract/retract''
*'''zyabis/xer'''....''extend/extend''
*'''bixler'''....''yank, drag''
*'''oyebbixler'''....''extirpate, rip out, drag out''
*'''yabixler'''....''dredge up''
*'''yebixler'''....''drag in''
*'''yibixler'''....''yank away''
*'''yobixler'''....''drag down''
| '''bus/xer'''....''head for/push''
*'''buxler'''....''shove, drive''
*'''buxrer'''....''kick, force''
*'''abbuxer'''....''foist''
*'''abbuxrer'''....''stomp on''
*'''aybbuxer'''....''push over''
*'''ibbuxer''''....''repel/push away''
*'''obbuxrer'''....''kick off''
*'''ovbuxer'''....''oppose''
*'''oybbuxer'''....''push under''
*'''oyebbuxer'''....''expel''
*'''yabbuxer'''....''push up''
*'''yanbuxer'''....''push together''
*'''yebbuxer'''....''impel''
*'''yobbuxer'''....''push down''
*'''yonbuxer'''....''dispel''
*'''yovbuxer'''....''sanction''
*'''zaobuxer'''....''jostle''
*'''zaybus/xer'''....''head forward/propel''
*'''zoybus/xer'''....''head back/push back''
*'''zyobuxer'''....''strain''
*'''obbuxler'''....''shove off, drive off''
*'''oyebbuxler'''....''shove out, expel, drive out''
*'''oyebbuxrer'''....''pump out, force out''
*'''yebus/xler'''....''intrude/shove in/drive in''
*'''yobbuxler'''....''shove down, drive down''
*'''zyebus/xler'''....''shove oneself though/shove through, drive through''
*'''yabbuxrer'''....''kick up''
*'''yebbus/xrer'''....''penetrate/pump in, force in''
*'''yibbuxrer'''....''kick away''
*'''yobbuxrer'''....''force down''
*'''yubbuxrer'''....''force near''
|- valign=top
! '''by_s/xer'''<br>'''by_s/xler'''<br>'''by_s/xrer'''
| '''byis/xer'''....''originate/derive''
| '''byus/xer'''....''reach toward/touch''
*'''yanbyus/xer'''....''contact/contact''
*'''byuxrer'''....''kick, force''
|- valign=top
! '''p-''' !! More intense verbs !!
|- valign=top
! '''p_er'''
|valign=top| '''pier'''....''leave''
*'''boypier'''....''forego''
*'''kopier'''....''elude, elope''
*'''mempier'''....''take off''
*'''tampier'''....''leave home''
*'''dompier'''....''leave town''
*'''melpier'''....''take off''
*'''mempier'''....''emigrate''
*'''pipier'''....''set sail''
*'''papier'''....''take off''
*'''pepier'''....''drive off''
*'''popier'''....''set out on a trip''
*'''yexpier'''....''retire''
*'''sempier'''....''get up from the table''
*'''sumpier'''....''get up out of bed''
*'''simpier'''....''get up from the chair''
*'''yanavpier'''....''defect''
*'''yempier'''....''resign''
*'''mimpier'''....''disembark''
*'''yanavpier'''....''defect''
*'''yovpier'''....''abscond''
*'''kopier'''....''elope''
*'''igpier'''....''bolt''
*'''yokpier'''....''suddenly leave''
*'''zopier'''....''abandon''
|valign=top| '''puer'''....''arrive''
*'''japuer'''....''arrive ahead of''
*'''jwapuer'''....''arrive early''
*'''jwepuer'''....''arrive on time''
*'''jwopuer'''....''arrive late''
*'''melpuer'''....''land''
*'''mempuer'''....''immigrate''
*'''tampuer'''....''arrive home''
*'''yempuer'''....''accede, access''
*'''yokpuer'''....''suddenly show up''
|- valign=top
! '''p_l/rer'''
| '''piler'''....''flee, evade''
*'''mempiler'''....''flee the country, emigrate as a refugee''
*'''yufpiler'''....''flee in fear''
*'''jwapiler'''....''drop out''
*'''kopiler'''....''sneak away''
*'''zyompiler'''....''evade a tight spot''
*'''pirer'''....''escape''
| --
|- valign=top
! '''p_s/xer'''<br'''>p_s/xler'''<br>'''p_s/xrer'''
| '''pis/xer'''....''withdraw/catch''
*'''pis/xler'''..../abduct
*'''pitpixer'''....''fish''
*'''pixrer'''....''/rape''
*'''purpixler'''....''carjack, hijack''
*'''tobpixler'''....''kidnap''
| '''pus/xer'''....''jump/throw''
*'''pus/xler'''....''lunge/thrust''
*'''apus/xer'''....''hop on/hop off''
*'''apuxrer'''....''fire at''
*'''aypus/xer'''....''jump over/throw over''
*'''fupuxrer'''....''misfire''
*'''igpus/xer'''....''fling onself/fling''
*'''ililpus/xer'''....''spurt/spurt''
*'''ilpus/xer'''....''spew/spew''
*'''ilzyapus/xer'''....''spray''
*'''ilzyopus/xer'''....''squirt''
*'''ipus/xer'''....''jump away/discard, jettison''
*'''kupus/xer'''....''jump aside/cast aside''
*'''opus/xer'''....''jump off/throw off''
*'''oyepus/xer'''....''jump out/throw out''
*'''oypus/xer'''....''jump under/throw under''
*'''puxrer'''....''/shoot, fire''
*'''puys/xer'''....''skip/toss''
*'''teipuxler'''....''sneeze''
*'''teubilpuxer'''....''spit''
*'''tojpuxrer'''....''shoot dead''
*'''yepus/xer'''....''jump in, throw in, inject''
*'''yepus/xler'''....''intrude/jab, stick in, stab''
*'''yopuxrer'''....''shoot down''
*'''zaypus/xer'''....''jump ahead/project''
*'''zoypus/xer'''....''jump back/reject''
|- valign=top
! '''py_s/xer'''<br>'''p_s/xler'''<br>'''p_s/xrer'''
| '''pyis/xer'''....''originate/derive''
| '''pyuer'''....''reach''
*'''pyus/xer'''....''encounter, run into/bump, hit''
*'''izpyuxer'''....''hit head on''
*'''kupyuxer'''....''sideswipe''
*'''pyuxler'''....''crash into''
*'''pyuxrer'''....''shock''
*'''yanpyuxer'''....''collide with''
|}
{{small/end}}
==== Using '''Ber''' and '''Per''' to Form Dynamic Verbs ====
: Some verbs with stems ending in '''-j''' are inherently stative. Their dynamic counterparts end in '''-ber''' for transitive verbs and in '''-per''' for intransitive verbs. There is a table showing this:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Using Ber and Per with J Verbs
|-
! STATIVE-INTRANSITIVE !! DYNAMIC-TRANSITIVE !! DYNAMIC-INTRANSITIVE
|-
| '''tojer'''....''die'' || '''tojber'''....''kill'' || '''tojper'''....''drop dead''
|-
| '''tajer'''....''be born'' || '''tajber'''....''give birth (to), bear'' || '''tajper'''....''spring up''
|-
| '''tejer'''....''live'' || '''tejber'''....''bring to life'' || '''tejper'''....''come to life''
|-
| '''tijer'''....''be awake'' || '''tijber'''....''awaken'' || '''tijper'''....''wake up''
|-
| '''tujer'''....''sleep'' || '''tujber'''....''put to sleep'' || '''tujper'''....''fall asleep''
|-
| '''ijer'''....''begin'' || '''ijber'''....''begin (something)'' || '''ijper'''....''start up''
|-
| '''ujer'''....''end'' || '''ujber'''....''finish, put an end to'' || '''ujper'''....''come to an end''
|-
| '''yijer'''....''open up'' || '''yijber'''....''open up (something)'' || '''yijper'''....''come open''
|-
| '''yujer'''....''close'' || '''yujber'''....''close, bring to a close'' || '''yujper'''....''come to a close''
|-
| '''ejer'''....''be present'' || '''ejber'''....''present'' || '''ejper'''....''show up''
|-
| '''ajer'''....''be past'' || '''ajber'''....''pass on (something)'' ||'''ajper'''...''pass up''
|}
{{small/end}}
=== '''DER''' ''to say'' ===
[[File:Icon Talking Points.svg|thumb|]]
: The rootword '''der''', meaning ''say, tell'' is used in many verbs of communication.
==== Principal Derivatives ====
: Words using the root '''d-''' have to do with communicating, thus '''''saying, talking, writing, reading, singing, performing, etc.'''''.
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Der Principal Derivatives
|- valign=top
|-
! A !! E !! O !! I !! U
|- valign=top
| '''daler'''....''to speak''<br>'''dalzeyn'''....''language''<br>'''dalzeynes'''....''dialect''<br>'''dalyen'''....''idiom'' || '''der'''....''to say''<br>'''deler'''....''to state''<br>'''dodeler'''....''to announce'' || '''doler'''....''to be silent'' || '''dier'''....''to ask''<br>'''dider'''....''to question''<br>'''diler'''....''to request''<br>'''direr'''....''to demand'' || '''duer'''....''to suggest''<br>'''duder'''....''to answer''<br>'''duler'''....''to urge''<br>'''durer'''....''to order''
|- valign=top
| || '''drer'''....''to write''<br>'''drar'''....''pencil''<br>---'''drarer'''....''to draw''<br>'''drir'''....''typewriter''<br>'''---drirer'''....''to type''<br>'''drur'''....''printer''<br>---'''drurer'''....''to print''<br>'''dodrur'''....''press''<br>---'''dodr(ur)er'''....''to publish''<br>'''dreder'''....''to spell'' || '''droer'''....''to erase'' || ||
|- valign=top
| || '''dyeer'''....''to read''<br>'''dyes'''....''book''<br>'''dyeder'''....''to dictate''<br>'''dodyeder'''....''to recite'' || || ||
|- valign=top
| || '''seuxder'''....''to pronounce''<br>'''sagder'''....''to count'' || || '''din'''....''story''<br>---'''dinder'''....''to recount'' || '''dun'''....''word''<br>'''dyun'''....''name''<br>---'''dyuer'''....''to call''<br>'''dyan'''....''sentence''<br>'''dyen'''....''phrase''
|- valign=top
| '''draf'''....''card''<br>'''drav'''....''notebook''<br>'''drayef'''....''sheet'' || '''dref'''....''paper''<br>'''drev'''....''page''<br>'''dreniv'''....''text'' || '''drof'''....''board''<br>'''drov'''....''cardboard'' || ||
|- valign=top
| '''daz'''....''dance''<br>---'''dazer'''....''to dance''<br>'''dyaz'''....''ballet'' || '''dez'''....''theater''<br>---'''dezer'''....''to perform''<br>'''dyez'''....''cinema''<br>'''drez'''....''poetry'' || ||'''diz'''....''comedy'' || '''duz'''....''music''<br>'''dyuz'''....''opera''<br>'''deuz'''....''song''<br>---'''deuzer'''....''to sing''
|}
{{small/end}}
==== Forming Derivatives with Prefixes ====
[[File:Communication.gif|thumb|]]
: Many verbs of communication are created by prefixing elements to '''der''' (''to say, tell'') as in the following chart:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Building Verbs of Communication with Der
|-
! Prefixed Word !! New Verb
|-
| '''va'''....''yes'' || '''vader'''....''affirm''
|-
| '''vo'''....''no'' || '''voder'''....''deny''
|-
| '''ve'''....''maybe'' || '''veder'''....''guess''
|-
| '''vyaa'''....''true'' || '''vyader'''....''swear''
|-
| '''vyoa'''....''false'' || '''vyoder'''....''lie''
|-
| '''fyaa'''....''holy'' || '''fyader'''....''bless''
|-
| '''fyoa'''....''profane'' || '''fyoder'''....''curse''
|-
| '''oza'''....''weak'' || '''ozder'''....''hint''
|-
| '''zoy-'''....''back'' || '''zoyder'''....''repeat, echo''
|-
| '''ve'''....''maybe'' + '''yova'''....''guilty'' || '''veyovder'''....''indict''
|-
| '''va'''....''yes'' + '''yova'''....''guility'' || '''vayovder'''....''convict''
|-
| '''ja'''....''before'' || '''jader'''....''predict''
|-
| '''vao'''....''yes/no'' || '''vaoder'''....''decide''
|-
| '''yev'''....''justice'' || '''yevder'''....''judge''
|-
| '''fia'''....''good'' || '''fider'''....''praise''
|-
| '''fua'''....''bad'' || '''fuder'''....''disparage''
|-
| '''af'''....''permission'' || '''afder'''....''authorize''
|-
| '''of'''....''prohibition'' || '''ofder'''....''ban''
|-
| '''naz'''....''value'' || '''nazder'''....''evaluate''
|-
| '''yov'''....''guilt'' || '''yovder'''....''blame''
|-
| '''zyaa'''....''wide'' || '''zyader'''....''broadcast''
|-
| '''yaga'''....''long'' || '''yagder'''....''elaborate''
|-
| '''vyoa'''....''wrong'' + '''via'''....''beautiful'' || '''vyovider'''....''flatter''
|-
| '''vyea'''....''relative'' || '''vyeder'''....''relate''
|-
| '''va'''....''yes'' + '''oj'''....''future'' || '''vaojder'''....''promise''
|-
| '''ut'''....''self'' + '''fia'''....''good'' || '''utfider'''....''boast''
|-
| '''uv'''....''sorrow'' + '''tax'''....''memory'' || '''uvtaxder'''....''regret''
|-
| '''tes'''....''meaning'' || '''tesder'''....''mean''
|-
| '''ov'''....''against'' || '''ovder'''....''object''
|-
| '''kyia'''....''heavy'' || '''kyider'''....''emphasize''
|-
| '''jwa'''....''early'' || '''jwader'''....''warn''
|-
| '''ja'''....''before'' + '''vo'''....''no'' || '''javoder'''....''preclude''
|-
| '''yuj'''....''close'' || '''yujder'''....''conclude''
|-
| '''ja'''....''before'' + '''nap'''....''order'' || '''janapder'''....''preordain''
|-
| '''hyay'''....''hurrah'' || '''hyayder'''....''congratulate''
|-
| '''hyey'''....''thanks'' || '''hyeyder'''....''thank''
|-
| '''gra'''....''too much'' || '''grader'''....''exaggerate''
|-
| '''gaw-'''....''re-'' || '''gawder'''....''to repeat''
|-
| '''diz'''....''comedy'' || '''dizder'''....''joke''
|-
| '''dre-'''....''write'' || '''dreder'''....''spell''
|-
| '''eb'''....''between'' || '''ebder'''....''communicate''
|-
| '''eb'''....''between'' + '''did-'''....''question'' || '''ebdider'''....''interview''
|-
| '''eb'''....''between'' + '''tes'''....''meaning'' || '''ebtesder'''....''interpret''
|-
| '''eb'''....''between'' + '''tex'''....''thought'' || '''ebtexder'''....''decide''
|-
| '''ek-'''....''play'' || '''ekder'''....''pretend''
|}
{{small/end}}
: There are over 700 '''der''' verbs in Mirad, too many to list here.
==== Animal Sounds ====
[[File:Barking Dog - The Noun Project.svg|thumb|]]
: Animal noise verbs are created by replacing the final '''-t''' of an animal name with '''der''':
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Building Animal Sound Verbs
|-
! Animal !! Sound Verb
|-
| '''kapet'''....''dog'' || '''kapeder'''....''bark''
|-
| '''fepet'''....''cat'' || '''fepeder'''....''mew''
|-
| '''bopeyt'''....''cow'' || '''bopeyder'''....''moo''
|-
| '''anpiat'''....''duck'' || '''anpiader'''....''quack''
|-
| '''mefapat'''....''turkey'' || '''mefapader'''....''gobble''
|}
{{small/end}}
==== Speaking in Languages ====
[[File:Wiktionary-logo.svg|thumb|]]
: Names of languages can be verbalized by replaced the '''d''' at the end of the language name with '''-der''' or '''-daler''', or '''-dxer''':
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Language Speaking Verbs
|-
| '''Enid'''....''English''|| '''Enider'''....''say in English'' || '''Enidaler'''....''speak in English''|| '''Enidxer'''....''Anglicize''
|-
| '''Ferod'''....''French'' || '''Feroder'''....''say in French'' || '''Ferodaler'''....''speak French'' || '''Ferodxer'''....''Gallicize''
|}
{{small/end}}
: The name of the language discussed in this book is '''Mirad''', which comes from '''mira''', meaning ''global, world''. Thus, ''say in Mirad'' is '''Mirader''' and ''speak Mirad'' is '''Miradaler'''. A speaker of Mirad is a '''Miradut''' or '''Miradalut'''. '''Duven et Miradale?'''....''Do you speak Mirad?''. '''Hey Mirad(al)uti, ansu!'''....''Hey, speakers of Mirad, unite!''
: Examples:
::* '''Duven et Miradale?'''....''Do you speak Mirad?''
::* '''Diwe Enidu is.'''....''Please say it in English.''
::* '''Voy ese gaj gla Liadaluti.'''....''There are no longer many Latin-speakers.''
: Note: '''Liadalut''' can be shortened to '''Liadut'''.
: Similarly, ''to write in Mirad'' and ''to read in Mirad'' would be '''Miradrer''' and '''Miradyeer''', respectively. So, a person who can read Mirad is called a '''Miradyeut'''.
==== Communication Arts ====
: The base template '''d...z''' is used fort various communication art forms, eg.:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Communications Art Words with D-Z
|- valign=top
! Type of Art !! Piece !! Performer !! Venue
|-
| '''daz'''....''dance''|| '''dazun'''....''a dance'' || '''dazut'''....''dancer''<br>'''dazutyan'''....''dance troupe'' || '''dazim'''....''ballroom''
|-
| '''dyaz'''....''ballet'' || '''dyazun'''....''ballet dance'' || '''dyazut'''....''danseur''<br>'''dyazuyt'''....''ballerina'' || '''dyazin'''....''ballet studio''
|-
| '''dez'''....''theater, drama'' || '''dezun'''....''a play'' || '''dezut'''....''stage actor''<br>'''dezutyan'''....''cast''|| '''dezam'''....''theater''<br>'''dezyem'''....''stage''<br>'''dezmisof'''....''curtain''
|-
| '''dyez'''....''cinema'' || '''dyezun'''....''movie'' || '''dyezut'''....''screen actor''<br>'''dyezutyan'''....''movie cast''<br>'''dyezizbut'''....''movie director''||'''dyezam'''....''movie theater''<br>'''dyez mays'''....''silver screen''<br>'''dyezim'''....''movie salon''
|-
| '''diz'''....''comedy'' || '''dizun'''....''a sketch'' || '''dizut'''....''comedian''<br>'''dizutyan'''....''comedy cast'' || '''dizam'''....''comedy club''<br>'''dizyem'''....''stage''
|-
| '''podiz'''....''circus'' || '''podizun'''....''circus act'' || '''podizut'''....''clown'' || '''podizam'''....''circus arena''<br>'''podiz tomof'''....''circus tent''
|-
| '''drez'''....''poetry''<br>'''dreznad'''....''verse''<br>'''dreznadyan'''....''stanza'' || '''drezun'''....''a poem'' || '''drezut'''....''poet'' || '''drezim'''....''poetry salon''
|-
| '''duz'''....''music'' || '''duzun'''....''a musical piece'' || '''duzut'''....''musician''<br>'''duzutyan'''....''orchestra'' || '''duzam'''....''music arena''<br>'''duzar'''....''musical instrument''
|-
| '''dyuz'''....''opera'' || '''dyuzun'''....''opera''<br>'''dyuzunog'''....''operetta, musical'' || '''dyuzut'''....''opera performer'' || '''dyuzam'''....''opera house''
|-
| '''deuz'''....''song'' || '''deuzun'''....''a song'' || '''deuzut'''....''vocalist'' || '''deuzam'''....''auditorium''
|}
{{small/end}}
: Some of the above performance arts can be combined using hybrid words:
:* '''duez'''....''musical (on stage)'' (music + theater)
:* '''dauz'''....''dance music'' ( dance + music)
:* '''druz'''....''musical poetry'' (poetry + music)
:* '''dyeuz'''....''musical (on film)'' (film + music)
=== '''TER''' ''to know'' ===
[[File:Noun mind 366997.svg|thumb|]]
: The stems of the words in this family begin with '''t''', meaning human and mental states and activities like ''knowing'', ''thinking'', ''understanding'', etc.:
==== T- TY- TR- Words ====
: Mirad distinguishes three words of knowing:
::* '''ter'''....''to know (a fact)''
::* '''tyer'''....''to know how''
::* '''trer'''....''to be familiar with, recognize, to know (a person)''
: Here are some common derivatives of these roots:
{{small/top}}
:{| class="wikitable" style="background: lightyellow; vertical-align: top"
|+ T-, TY-, TR- Words
|- align=top
! '''t-''' !! '''ty-''' !! '''tr-'''
|- valign=top
| '''ter'''....''to know''<br>'''tea'''....''aware''<br>'''tun'''....''science, -ology''<br>'''twas'''....''fact, datum''<br>'''tez'''....''culture''<br>'''teyen'''....''idea'' ||'''tyer'''....''to know how''<br>'''tyea'''....''competent''<br>'''tyen'''....''skill''<br>'''tyez'''....''magic''<br>'''tyaf'''....''cognizance'' <br>'''tyun'''....''concept''||'''trer'''....''to recognize''<br>'''tyea'''....''familiar''<br>'''trwa'''....''known''<br>'''trwat'''....''acquaintance''<br>'''fitrwa'''....''famous''
|- valign=top
! '''ti-''' !! '''tyi-'''!! '''tri-'''
|- valign=top
| '''tier'''....''to find out''<br>'''tiser'''....''to learn''<br>'''tixer'''....''to study''<br>'''tin'''....''doctrine, -ism'' || '''tyier'''....''to learn how''<br>'''tyiut'''....''intern'' ||'''trier'''....''to get acquainted''<br>'''trien'''....''familiarization''
|- valign=top
! '''tu-''' !! '''tyu-''' || '''tru-'''
|- valign=top
| '''tuer'''....''to inform''<br>'''tuut'''....''informant''<br>'''tuwa'''....''informed''<br>'''tuxer'''....''to teach''<br>'''tuuxer'''....''to educate''<br>'''tuunyan'''....''information''|| '''tyuer'''....''to train''<br>'''tyuut'''....''trainer''<br>'''tyut'''....''expert, master''|| '''truer'''....''to acquaint''<br>'''truen'''....''introduction''<br>'''truwa'''....''acquainted''
|}
{{small/end}}
==== TAX- TEX- TOX- Words ====
::* '''taxer'''....''to remember''
:::* '''taxier'''....''to memorize''
:::* '''taxuer'''....''to remind''
::* '''texer'''....''to think''
:::* '''texier'''....''to take note of''
:::* '''texuer'''....''to persuade, suggest''
::* '''toxer'''....''to forget''
==== TES- TOS- TOOS- Words ====
:* '''tes'''....''meaning''
::* '''teser'''....''to mean''
:::* '''tester'''....''to understand''
:::* '''testier'''....''to realize''
:::* '''testuer'''....''to explain''
:*'''tos'''....''feeling''
::* '''toser'''....''to feel (emotionally)''
:::* '''oktoser'''....''to miss''
:::* '''yanuvtoser'''....''to pity''
:* '''toos'''....''instinct''
::* '''tooser'''....''to have a gut feeling''
::* '''toosa'''....''instinctual''
==== TUN (-ology) Words ====
: Suffixing '''-tun'''....''science'' to words forms many ''-ology'' terms. An ''-ologist'' is rendered with '''-tut''', eg:
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Ologies
|-
| '''tep'''....''mind'' || '''teptun'''....''psychology'' || '''teptut'''....''psychologist''
|-
| '''tieb'''....''lung'' || '''tiebtun'''....''pneumology'' || '''tiebtut'''....''pneumologist''
|-
| '''toj'''....''death'' || '''tejtun'''....''thanatology'' || '''tejtut'''....''thanatologist''
|-
| '''pat'''....''bird'' || '''pattun'''....''ornithology'' || '''pattut'''....''ornithologist''
|-
| '''pit'''....''fish'' || '''pittun'''....''ichthyology'' || '''pittut'''....''ichthyologist''
|-
| '''pot'''....''animal'' || '''pottun'''....''zoology'' || '''pottut'''....''zoologist''
|-
| '''mul'''....''matter'' || '''multun'''....''chemistry'' ("materiology?") || '''multut'''....''chemist''
|-
| '''ko-'''....''hidden'', '''dren'''....''writing'' || '''kodrentun'''....''cryptology'' || '''kodrentut'''....''cryptologist''
|}
{{small/end}}
: Some ''-ology'' words in English refer to pseudo-science and are translated into Mirad with the ending '''-tuyn''':
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ -Tuin Suffix Words
|-
| '''mar'''....''star'' || '''martuyn'''....''astrology'' (cf. '''martun'''....''astronomy'')|| '''martuyt'''....''astrologist''
|-
| '''sag'''....''number'' || '''sagtuyn'''....''numerology'' (cf. '''sagtun'''....''mathematics'')|| '''sagtuyt'''....''numerologist''
|}
{{small/end}}
==== TIN (-ism) Words ====
: Words in English referring to doctrines, dogmas, or ''-isms'' are translated into Mirad with the ending '''-tin''' or its stub, '''-in''', eg:
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Ism Words
|-
| '''dot'''....''society'' || '''dotin'''....''socialism''
|-
| '''Buda'''....''Buddha'' || '''Budatin'''....''Bhuddism''
|-
| '''gwa'''....''most'', '''fis'''....''good thing'' || '''gwafistin'''....''optimism''
|-
| '''vyaa'''....''true'' || '''vyatin'''....''orthodoxy, truism''
|-
| '''an-'''....''one'', '''tot'''....''god'' || '''antotin'''....''monotheism''
|}
{{small/end}}
==== TUIN (theory) and TUYN (Pseudo-science) Words ====
: There are some words that refer to pseudoscience use the '''-tuyn''' suffix. Those that are legitimate theories use the suffix '''-tuin'''.
::* '''martuyn'''....''astrology''
::* '''sagtuyn'''....''numerology''
::* '''niftuin'''....''string theory''
::* '''vyeantuin'''....''theory of relativity''
==== Schools ====
[[File:Larkmead School, Abingdon, Oxfordshire.png|thumb|]]
: The general word for ''school'' is '''tixam''' (''study house''). The various levels of schools are translated with this word prefixed with an ordinal vowel or '''ja'''....''pre-'' or '''jo'''....''post''.
:* '''tixam'''....''school''
::* '''jatixam'''....''pre-school, kindergarten''
::* '''atixam'''....''primary school''
::* '''etixam'''....''high-school, lycee''
:::* '''etixam ajab'''....''high school first year''
:::* '''etixam ejab'''....''high school second year''
::* '''itixam'''....''college''
::* '''utixam'''....''university''
:::* '''utixam ajabat'''....''freshman''
:::* '''utixam ejabat'''....''sophomore''
:::* '''utixam ijabat'''....''junior''
:::* '''utixam ujabat'''....''senior''
::* '''joutixam'''....''post-graduate school''
:::* '''joutixamut'''....''post-graduate''
: Some activities at school:
:* '''tixer tuxun'''....''to study a lesson''
:* '''tuxer tixnead'''....''to teach a course''
:* '''tiser tuunyan'''....''to learn information''
:* '''finsiyndrer dref'''....''to grade a paper''
:* '''teaxer ota finsiyndraf'''....''to look at one's report card''
:* '''iber yaba finsiyni'''....''to get high grades''
:* '''finnogdrafier bi itixam'''....''to graduate from college''
:* '''bier vyaoyek'''....''to take a test''
:* '''buer vyaoyekes'''....''to give a quiz''
:* '''ujaker'''....''to pass''
:* '''ujoker'''....''to fail''
:* '''oteeper tuxun joeb'''....''to miss a class''
:* '''hayder ha tixutyan'''....''to greet the class''
:* '''jwopuer ha tixam'''....''to arrive late to school''
:* '''ubwer bu ha tixameb'''....''to be sent to the principal''
:* '''ber did bu ha tuxut'''....''to ask the teacher a question''
:* '''daldyeer dreniv'''....''to read a text aloud''
:* '''yaber ota tuyab'''....''to raise one's hand''
:* '''dier afon per eftim'''....''to ask permission to go to the bathroom''
:* '''drer dyan be ha molza drof'''....''to write something on the blackboard''
:* '''ujber ota tamtix'''....''to finish one's homework''
: Note:
:* '''tuxam'''....''academy''
::* '''tuxam bi vituzi'''....''academy of fine arts''
::* '''dopa tuxam'''....''military academy''
=== '''BOK''' ''illness'' ===
: '''Bok''' is at the top of a whole set of words dealing with health, illness, and medicine:
[[File:Star of life2.svg|thumb|]]
==== Principal Derivatives ====
: The core words are:
:
:* '''bak'''....''health''
::* '''baak'''....''sanitation''
::* '''byak'''....''hygiene''
:* '''bek'''....''treatment''
::* '''byek'''....''cure''
:* '''bik'''....''care''
:* '''buk'''....''injury''
::* '''bruk'''....''mutilation''
:* '''bok'''....''illness''
::* '''book'''....''fatigue''
::* '''byok'''....''pain''
::* '''blok'''....''suffering''
::* '''brok'''....''agony''
==== BOK, BOOK, BYOK, BLOK, BROK ====
{{small/top}}
::* '''bok'''....''illness''
:::* '''boka'''....''sick, ill''
::::* '''bokat'''....''patient''
::::* '''bokam'''....''hospital''
::::* '''bokser'''....''to get sick''
::::* '''bokxer'''....''to make sick''
::::* '''bokul'''....''poison''
:::::* '''bokulier'''....''to take poison''
:::::* '''bokuluer'''....''to poison''
::* '''book'''....''fatigue''
:::* '''booka'''....''tired''
::::* '''bookser'''....''go grow weary''
::::* '''bookxer'''....''to tire out''
::* '''byok'''....''pain, ache, hurt''
:::* '''byoka'''....''painful''
:::* '''byokser'''....''to hurt, ache''
:::* '''byokxer'''....''to hurt''
::* '''blok'''....''suffering''
:::* '''blokser'''....''to suffer''
:::* '''blokuer'''....''to afflict''
::::* '''blokuwat'''....''victim''
::* '''brok'''....''agony, torture''
:::* '''brokser'''....''to agonize''
:::* '''brokxer'''....''to torture''
:::* '''brokxim'''....''torture chamber''
{{small/end}}
==== Diseases ====
: Words for diseases and illnesses end in '''-bok''':
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''abteubbok'''....''alveolitis''
* '''aglateatbok'''....''macropsia''
* '''alzambok'''....''scarlatina, scarlet fever''
* '''alznodbok'''....''measles''
* '''ambok'''....''fever, inflammation''
* '''aombok'''....''ague''
* '''-bok'''....''-itis, -pathy''
* '''cagronbok'''....''scorbute, scurvy''
* '''dingabok'''....''dengue''
* '''Downboksiunyan'''....''mongolism, Down syndrome''
* '''endeuzbok'''....''diplophonia''
* '''epeltbok'''....''mange''
* '''epeytayobbok'''....''cowpox''
* '''filbok'''....''hangover''
* '''gralevelbok'''....''hyperglycemia''
* '''gratelbok'''....''crapulence, surfeit''
* '''grobokogrunvokan'''....''immunodeficiency''
* '''grolevelbok'''....''hypoglycemia''
* '''gyateebbok'''....''mumps''
* '''hansenbok'''....''leprosy''
* '''hyamerbok'''....''pandemic''
* '''ifonbok'''....''love sickness''
* '''igtiibbok'''....''tachycardia''
* '''ilzbok'''....''jaundice''
* '''ilzilbok'''....''cholera''
* '''jagteabbok'''....''presbyopia''
* '''mampurbok'''....''airsickness''
* '''memyazbok'''....''mountain sickness''
* '''meylztikibbok'''....''cirrhosis''
* '''meztalabbok'''....''gout''
* '''mialbok'''....''typhoid fever''
* '''milyufbok'''....''rabies''
* '''mimbok'''....''nausea, seasickness''
* '''mirbok'''....''pandemic''
* '''nipatbok'''....''pica''
* '''nopeltbok'''....''mange''
* '''obostayosbok'''....''pruritis''
* '''ogesinbok'''....''aniseikonic''
* '''ombok'''....''flu''
* '''panbok'''....''carsickness, motion sickness''
* '''pattiebbok'''....''pip''
* '''peltayosbok'''....''pruritis''
* '''petbok'''....''distemper''
* '''sifilusbok'''....''syphilis''
* '''taebdazbok'''....''chorea''
* '''taebzyobixbok'''....''epilepsy, lockjaw''
* '''taibok'''....''resorption''
* '''talabbok'''....''arthritis''
* '''taobyazbok'''....''cancer, carcinoma, sarcoma''
* '''tayebok'''....''alopecia, hair loss''
* '''tayibbok'''....''neurosis''
* '''tayobbok'''....''dermatitis''
* '''tayobok'''....''molt, skin malady''
* '''tayobyigxenbok'''....''scleroderma''
* '''tayobyozbok'''....''small pox''
* '''teababambok'''....''sty, stye''
* '''teabbok'''....''ophthalmia''
* '''teabkunadbok'''....''conjunctivitis''
* '''teabnyedbok'''....''retinopathy''
* '''teabaolzbok'''....''pinkeye''
* '''teatayibbok'''....''glaucoma''
* '''tyebfyusbok'''....''Alzheimer's disease''
* '''tyeba pasyofbok'''....''cerebral palsy''
* '''tebosambok'''....''encephalitis''
* '''tyebmilboka'''....''hydrocephalic''
* '''teibbok'''....''rhinitis, cold''
* '''teibuzukbok'''....''sinusitis''
* '''telefbok'''....''bulimia''
* '''tepbok'''....''mental illness, psychopathy, psychosis''
* '''tepengonxwanbok'''....''schizophrenia''
* '''teubebbok'''....''gingivitis, gum disease''
* '''tiebbok'''....''influenza, pneumonia''
* '''tiebbokier'''....''catch pneumonia''
* '''tiebkugonbok'''....''pleurisy''
* '''tiebnyosbok'''....''phthisical''
* '''tiebufbok'''....''bronchitis''
* '''tiibbok'''....''heart disease''
* '''tiibilbok'''....''hemophilia''
* '''tiibillevelbok'''....''diabetes''
* '''tiibiltumbok'''....''leukemia'' * '''tiibilyujunbok'''....''thrombosis''
* '''tikebbok'''....''gastritis''
* '''tikibbok'''....''hepatitis, liver disease''
* '''tikubbok'''....''pancreatitis''
* '''tikyabbok'''....''colic''
* '''tikyebzoytalobbok'''....''hemorrhoids, piles''
* '''tikyobbok'''....''dysentery, enteritis''
* '''tiyebbok'''....''prostatitis''
* '''tiyiyba yazbok'''....''ovarian cancer''
* '''tiyiybbok'''....''ovaritis''
* '''tiyobbok'''....''kidney disease, renitis''
* '''toyuzubok'''....''hemorrhoids''
* '''tudeta bok'''....''infant disease''
* '''tujbok'''....''sleep disorder, sleep sickness''
* '''tujefbok'''....''lethargy''
* '''tuloxefbok'''....''pruritis, psoriasis''
* '''tuyoba mup boksiunyan'''....''carpal tunnel syndrome''
* '''tuyobbok'''....''psora''
* '''twiyiba yazbok'''....''testicular cancer''
* '''umvab ambok'''....''hay fever''
* '''unjubambok'''....''quartan''
* '''upetbok'''....''braxy''
* '''uzratyoyabbok'''....''clubfoot''
* '''vuzuvubok'''....''chicken pox, chickenpox''
* '''vyutiibilbok'''....''septicaemia, septicemia''
* '''yabteyobufbok'''....''diphtheria''
* '''yanbyuxbok'''....''contagion''
* '''yayzbok'''....''tuberculosis''
* '''yigxenbok'''....''sclerosis''
* '''yopelatbok'''....''malaria''
* '''yozbok'''....''dropsy''
* '''zateyobbok'''....''croup, laryngopathy, throat disease''
* '''zetifbok'''....''zoster''
* '''zyobixtaebbok'''....''tetanus''
</div>
{{small/end}}
==== BAK, BAAK, and BYAK Words ====
{{small/top}}
:* '''bak'''....''health''
::* '''baka'''....''healthy, sound''
::* '''baktun'''....''health science, medecine''
:::* '''baktut'''....''health specialist, doctor''
::* '''bakser'''....''to get healthy, to heal''
::* '''bakxer'''....''to heal''
::* '''bakam'''....''wellness center''
::* '''tepbak'''....''mental health''
:::* '''tepbaka'''....''sane''
::* '''baak'''....''sanitation''
:::* '''baaka'''....''sanitary''
::::* '''baakxer'''....''to sanitize''
:::::* '''baakxil'''....''sanitizer (liquid)''
:::* '''baaknov'''....''sanitary napkin''
::* '''byak'''....''hygiene''
:::* '''byaktyen'''....''hygienics''
:::* '''byaktyut'''....''hygienist''
::::* '''teuba byaktyut'''....''oral hygienist''
:::* '''byak dref'''....''toilet paper''
{{small/end}}
==== BEK and BYEK Words ====
: The root word '''bek''', which means ''treatment, therapy'' and the related root '''byek''' (''cure'') enter into the formation of the words presented here:
{{small/top}}
:* '''bek'''....''treatment, therapy''
::* '''beka'''....''therapeutic''
::* '''bekier'''....''to get treatment''
::* '''bekuer'''....''to treat''
:::* '''bekuut'''....''therapist, nurse''
::* '''fubekuer'''....''to mistreat''
:::* '''fubekuen'''....''maltreatment''
::* '''abek'''....''operation''
:::* '''abekier'''....''to undergo an operation''
:::* '''abekuer'''....''to operate on''
::* '''abektun'''....''surgery''
:::* '''abektun bi tayib'''....''neurosurgery''
:::* '''abektun bi teab'''....''eye surgery''
:::* '''abektun bi teib'''....''rhinoplasty''
:::* '''abektun bi tyoyab'''....''foot surgery''
:::* '''abektuna goblar'''....''scalpel''
:::* '''abektut'''....''surgeon''
::* '''bekuam'''....''treatment center, clinic''
::* '''bekul'''....''medicine, drug''
:::* '''bekulier'''....''to take medecine''
:::* '''bekuluer'''....''to medicate''
:::* '''bekulnam'''....''pharmacy, drugstore''
::::* '''bekulnamut'''....''pharmacist''
:::* '''bekul duldras'''....''drug prescription''
:::* '''bekul nid'''....''drug dose, drug volume''
:::* '''bekul syebog'''....''capsule, medicine capsule''
:::* '''bekul zyeb'''....''medicine bottle, vial of medicine''
:::* '''bekul zyunog'''....''capsule, tablet, pill''
:::* '''bekultun'''....''pharmacology''
:::* '''ifbekul'''....''recreational drug''
:::* '''ovbekul'''....''antidote''
:* '''byek'''....''cure, remedy''
::* '''byeka'''....''curative, remedial''
::* '''byekxer'''....''to remedy, to cure''
:::* '''byekxut'''....''healer''
::::* '''fyabekxut'''....''shaman''
:::* '''byekxyafwa'''....''curable''
:::* '''byekxyofwa'''....''incurable''
::* '''byekser'''....''to convalesce, to cure, to heal, to recover, to recuperate''
:::* '''byeksam'''....''convalescence home''
:::* '''byeksim'''....''convalescence ward, recovery room''
::* '''byekul'''....''medecine, remedy''
:::* '''hyasbyekul'''....''elixir, nostrum, cure-all''
{{small/end}}
==== BIK Words ====
: The root word '''bik''' means ''care''.
: Note:
::* '''bikier'''....''to take care, to be careful''
:::* '''tebikier'''....''to be worried about, to care about''
::* '''bikuer'''....''to provide care, to look after''
:::* '''tebikuer'''....''to give concern to, to worry''
{{small/top}}
:* '''bik'''....''care, custody, cuation, heed, vigilence''
::* '''azla bik'''....''intensive care''
:::* '''azla bikim'''....''intensive care unit, ICU''
::* '''bay bik'''....''with care''
::* '''be bik bi'''....''in the care of, C/O''
::* '''bika'''....''careful, cautious''
::* '''bikam'''....''clinic''
::* '''igef bikim'''....''emergency room''
:::* '''bikames'''....''dispensary''
:::* '''bikamut'''....''clinician''
:::* '''bikder'''....''to caution''
::::* '''bikdun'''....''caveat''
::* '''bikier'''....''to take care''
:::* '''bikiyea'''....''careful, vigilent''
:::* '''obikiyea'''....''heedless, careless''
:::* '''tebikier'''....''to worry''
::* '''bikuer'''....''to care for''
:::* '''bikuut'''....''caregiver, nurse''
:::* '''bikuam'''....''nursing home, care facility''
:::* '''grabikuer'''....''to mollycoddle''
::::* '''tudbikuam'''....''child care center, nursery''
::* '''bikof'''....''bandage''
:::* '''bikofaber'''....''to apply a bandage''
::* '''jabik'''....''precaution''
::* '''tudetbikuer'''....''to babysit''
:::* '''tudetbikuut'''....''babysitter''
{{small/end}}
==== BUK and BRUK Words ====
: The root word '''buk''' means ''injury, trauma, wound''. The related root '''bruk''' means ''mutilation''. The following are some principal derivatives:
:* '''buk'''....''injury, trauma, wound''
::* '''bukier'''...''to sustain injury, to get wounded''
::* '''bukuer'''...''to injure, to wound''
:::* '''bukuwat'''....''injured person''
:::* '''bukuyafwa'''....''vulnerable''
:::* '''amalbuk'''....''scald''
::::* '''amalbukier'''....''to get scalded''
::::* '''amalbukuer'''....''to scald''
:::* '''bukzem'''....''trauma center''
::* '''bukes'''....''abrasion, minor wound''
::* '''jobuk'''....''scar''
:::* '''dopek jobuk'''....''battle scar''
::* '''kyebuk'''....''threat, danger, risk''
:::* '''kyebukier'''....''to take a risk''
:::* '''kyebukuer'''....''to endanger, to threaten''
::* '''yazbuk'''....''blister, boil''
::* '''yoymbuk'''....''frostbite''
::* '''hyutbukin'''....''sadism''
::* '''hyitbukin'''....''masochism''
:::* '''hyuitbukin'''....''sadomasochism''
:* '''bruk'''....''mutilation''
::* '''brukxer'''....''to mutilate, maim, mangle''
=== '''DOB''' ''state, regime, reich'' ===
: By prefixing ordinal vowels to the stem '''dob''', we get various regimes. By changing '''dob''' to '''deb''' (''ruler''), '''dweb''' (''male ruler''), or '''deyb''' (''female ruler''), we get the counterpart rulers of these regimes.
[[File:Hawaiian Royalty, sec8 no152 0001, from Brother Bertram Photograph Collection.jpg|thumb|]]
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Regimes and Rulers
|-
! REGIME=dob !! GENDER-NEUTRAL RULER=deb !! MALE RULER=dweb !! FEMALE RULER=deyb
|-
| '''adob'''....''empire'' || '''adeb'''....''emperor'' || '''adweb'''....''emperor'' || '''adeyb'''....''empress''
|-
| '''edob'''....''kingdom'' || '''edeb'''....''monarch'' || '''edweb'''....''king'' || '''edeyb'''....''queen''
|-
| '''idob'''....''principality'' || '''ideb'''....''prince'' || '''idweb'''....''prince'' || '''ideyb'''....''princess''
|-
| '''udob'''....''duchy'' || '''udeb'''....''duke'' || '''udweb'''....''duke'' || '''udeyb'''....''duchess''
|-
| '''yodob'''....''marquisate'' || '''yodeb'''....''marquis'' || '''yodweb'''....''marquis'' || '''yodeyb'''....''marquise''
|-
| '''yadob'''....''county'' || '''yadeb'''....''count, earl'' || '''yadweb'''....''count'' || '''yadeyb'''....''countess''
|-
| '''yedob'''....''domain'' || '''yedeb'''....''lord'' || '''yedweb'''....''lord'' || '''yedeyb'''....''lady, dominatrix''
|-
| '''yidob'''....''viscounty'' || '''yideb'''....''viscount'' || '''yidweb'''....''viscountesss'' || '''yideyb'''....''baroness''
|-
| '''yudob'''....''barony'' || '''yudeb'''....''baron, thane'' || '''yudeyb'''....''baroness''
|-
| '''alodob'''....''tribe, chiefdom, clan'' || '''alodeb'''....''chief, tribal chief, chieftain'' || '''alodweb'''....''male chief'' || '''alodeyb'''....''chieftaine''
|}
{{small/end}}
: Some other leaders:
::* '''abdeb'''....''overlord, master''
::* '''adoyevdeb'''....''chief justice''
::* '''agnudeb'''....''archduke''
::* '''aotglaldeb'''....''demogogue''
::* '''aotyandeb'''....''ringleader''
::* '''aybdeb'''....''eparch''
::* '''aynyafondeb'''....''tyrant''
::* '''azdeb'''....''potentate''
::* '''ditdeb'''....''president''
::* '''dovakdeb'''....''police chief''
::* '''dropekdeb'''....''warlord''
::* '''durdeb'''....''dictator''
::* '''dyuna deb'''....''figurehead''
::* '''fyadeb'''....''high priest''
::* '''glotdeb'''....''oligarch''
::* '''indeb'''....''triumvir''
::* '''yabra deb'''....''supreme leader''
::* '''yafondeb'''....''dynast''
: From '''deb''', we get the stub suffix '''-eb''', which means the ruler, leader, or top official, as in:
::* '''dom'''....''city'' ---> '''domeb'''....''mayor''
::* '''vixel'''....''ceremony'' ---> '''vixeleb'''....''master of ceremonies''
::* '''utixam'''....''university'' ---> '''utixameb'''....''rector''
: Summary:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ DOB AND XOB Core Words
|-
| '''dob'''....''state, regime''|| '''xob'''....''organization''
|-
| '''dab'''....''government''|| '''xab'''....''staff''
|-
| '''deb'''....''leader, regent'' || '''xeb'''....''boss''
|-
| '''dib'''....''administration''<br>----'''dibut'''....''administrator'' || '''xib'''....''office, department''<br>----'''xibut'''....''official''
|-
| '''dub'''....''minister''<br>----'''duban'''....''ministry'' || '''xub'''....''branch, affiliate''
|}
{{small/end}}
==== DOB Words ====
: The stems of the words in this family start with '''d''' for ''society'' and end with '''b''' for ''organization''. The top-level base word '''dob''' means ''state''. This base word has some sub-elements:
:* '''dob'''....''state, regime''
::* '''doba'''....''of the state''
::* '''doob'''....''nation''
:::* '''dooba'''....''national''
::* '''doab'''....''fatherland''
::* '''doeb'''....''state, province''
:::* '''doeba'''....''state, provincial''
:::* '''doebyan'''....''federation''
::::* '''doebyana'''....''federal''
:::::* '''doebyaneb'''....''governor''
::::* '''doebyayn'''....''confederation''
:::::* '''doebyayna(t)'''....''confederate''
::* '''doib'''....''county, shire, department''
:::* '''doibeb'''....''prefect, provost, sheriff''
::* '''doub'''....''precinct, arrondissement, district''
::* '''doyob'''....''ward''
: Note the following non-royal states and leaders:
:* '''tyodob'''....''republic''
::* '''tyodeb'''....''president of the republic''
::* '''tyodeyb'''....''madame president of the republic''
::* '''abtyodeb'''....''premier''
::* '''abtyodeyb'''....''madame premier''
:::* '''obtyodeb'''....''vice-president of the republic''
:::* '''obtyodeyb'''....''madame vice-president of the republic''
:* '''tyodab'''....''democracy''
::* '''tyodeb'''....''president''
::* '''tyodeyb'''....''madame president''
:::* '''obtyodeb'''....''vice-president''
:::* '''obtyodeyb'''....''madame vice-president''
: Some other important derivatives:
:* '''dobdras'''....''treaty''
:* '''dobier'''....''to conquer, to take control of''
:* '''doabifa'''....''patriotic''
:* '''dobkyax'''....''regime change, coup d'état, revolution''
:* '''dobmem'''....''territory''
::* '''dobmemyan'''....''commonwealth''
:* '''dobnad'''....''frontier, border''
::* '''dobnad izbex'''....''customs, border control''
:::* '''dobnadib'''....''customs bureau''
:::* '''dobnadibam'''....''customs house''
:::* '''dobnadibut'''....''customs official''
:* '''dobnix'''....''tax, revenue''
::* '''dobnixdib'''....''internal revenue service''
::* '''dobnixiut'''....''tax collector''
::* '''dobnixuer'''....''to levy a tax''
:::* '''dobnixuyafwa'''....''taxable''
:* '''dobnux'''....''pension''
::* '''dobnuxwat'''....''pensioner''
::* '''dobaybuzben'''....''revolution''
::* '''dobpyox'''....''coup d'etat''
::* '''dobtut'''....''statesman''
::* '''dobubwat'''....''envoy''
::* '''dobyena'''....''official''
::* '''dobyux'''....''benefit''
==== Regional Administrations ====
:* '''domem'''....''province''
::* '''domema'''....''provincial''
::* '''domeam'''....''department, county, prefecture, shire''
::* '''domeem'''....''sub-prefecture''
::* '''domeim'''....''canton''
::* '''domeum'''....''commune, district''
:::* '''domeuma'''....''communal''
::* '''domgon'''....''district, quarter, quadrant''
::* '''yuzdomgon'''....''arrondissement''
==== DAB Words ====
: The root word '''dab''' means ''government''.
: Types of governments:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Governments and Leaders
|-
! '''dab'''=''government,rule'' !! '''deb'''=''ruler/leader/governor''
|-
| '''tyodab'''<sup>1</sup>....''democracy'' || '''tyodeb'''....''president''
|-
| '''tyoydab'''....''mob rule, ochlocracy'' || '''tyoydeb'''....''mob ruler. demagogue''
|-
| '''andab'''....''autocracy, monarchy'' || '''andeb'''....''autocrat, monarch''
|-
| '''durdab'''....''dictatorship'' || '''durdeb'''....''dictator''
|-
| '''nyazdab'''....''plutocracy'' || '''nyazdeb'''....''plutocrat''
|-
| '''jagatdab'''....''gerontocracy'' || '''jagatdeb'''....''gerontocrat''
|-
| '''glotdab'''....''oligarchy'' ||'''glotdeb'''....''oligarch''
|-
| '''abdoutdab'''....''aristocracy'' || '''abdoutdeb'''....''aristocrat''
|-
| '''totdab'''....''theocracy'' || '''totdeb'''....''theocrat''
|-
| '''abdab'''....''dominion'' || '''abdeb'''....''overlord, master''
|-
| '''odab'''....''anarchy'' || '''odabinat'''....''anarchist''
|-
| '''obdab'''....''protectorate, subject state'' || '''obdeb'''....''protector, subjugator''
|-
| '''yibdabem'''....''colony'' || '''yibdabemeb'''....''colonial governor''
|-
| '''memyuvdab'''....''fiefdom'' || '''memyuvdeb'''....''feudal lord''
|-
| '''ofbiendab'''....''cleptocracy'' || '''ofbiendeb'''....''cleptocrat''
|-
| '''yufdab'''....''despotism, reign of terror'' || '''yufdeb'''....''despot''
|-
| '''tyenardab'''....''technocracy'' || '''tyenardeb'''....''technocrat''
|-
| '''toybdab'''....''gynarchy'' || '''toybdeb'''....''gynarch''
|-
| '''teydab'''....''matriarchy'' || '''teydeb'''....''matriarch''
|-
| '''dopdab'''....''martial law, stratocracy'' || '''dopdeb'''....''statocrat''
|-
| '''fyatdab'''....''hagiocracy'' || '''fyatdeb'''....''hagiocrat''
|-
| '''nazdab'''....''meritocracy'' || '''nazdeb'''....''meritocrat''
|}
{{small/end}}
:*1. '''tyodob''' means ''republic''.
: Other derivatives:
:* '''daber'''....''to govern, to rule''
::* '''dabut'''....''governor, ruler''
:::* '''obdabut'''....''viceroy''
::* '''dabwa'''....''governed''
:::* '''odabwa'''....''ungoverned''
::* '''dabyyofwa'''....''ungovernable''
::* '''yibdabem'''....''colony''
:::* '''yibdabema'''....''colonial''
::::* '''yibdabemeb'''....''colonial governor''
:::* '''yibdabemxer'''....''to colonize''
==== DEB Words ====
: The root word '''deb''' means ''leader, master, ruler, chief, head''. The stub '''-eb''' suffix is often used to form different types of chiefs.
:* '''yuxleb'''....''server, waiter'' < '''yuxler'''....''to serve''
:* '''yovbyokameb'''....''prison warden'' < '''yovbyokam'''....''prison''
:* '''yexeb'''....''boss'' < '''yex'''....''work''
:* '''yafondeb'''....''tyrant, despot'' < '''yafon'''....''power''
:* '''tixameb'''....''headmaster, principal'' < '''tixam'''....''school''
:* '''tamweb'''....''master of the house'' < '''tam'''....''house''
:* '''pontameb'''....''hotelier'' < '''pontam'''....''hotel''
: The verb '''deber''' means ''to lead''
==== DIB Words ====
: The root word '''dib''' means ''administration''. The diminutive variant '''diyb''' means ''department''.
: Here are words derived from this root:
:* '''dib'''....''administration, bureau''
::* '''diba'''....''administrative''
::* '''diber'''....''to administer, to manage, to officiate''
::* '''dibut'''....''administrator, officer, manager''
:::* '''dibutyan'''....''staff, management''
::* '''dibam'''....''agency''
::* '''dovakdib'''....''police''
:::* '''doma dovakdib'''....''municipal police''
:::* '''domeama dovakdib'''....''gendarmerie''
:::* '''agdomep dovakdib'''....''highway patrol''
:::* '''purilp dovakdib'''....''traffic police''
:::* '''dovakdibut'''....''police officer''
:::* '''dovakdibam'''....''police station''
::* '''dobnaddib'''....''customs bureau''
::* '''dobnaddibut'''....''customs official''
::* '''dosyagddib'''....''census bureau''
::* '''dobnixddib'''....''internal revenue service''
::* '''nuixdib'''....''bursar''
::* '''diyb'''....''department''
:::* '''diyba'''....''departmental''
==== DUB Words ====
: The root word '''dub''' means ''minister''.
:* '''dub'''....''minister, secretary''
::* '''duba'''....''ministerial, cabinet-level''
:::* '''duban'''....''ministry, secretariat''
:::* '''dubyan'''....''council of ministers, cabinet''
::* '''aa dub'''....''prime minister''
::* '''obdub'''....''vice minister, assistant secretary''
::* '''yibdub'''....''ambassador''
:::* '''yibdubam'''....''embassy''
:::* '''yibdubet'''....''consul''
::::* '''yibdubetam'''....''consulate''
: The prime minister '''aa dub''' is at the top of a cabinet or council of ministers, '''dubyan'''. Each cabinet minister/secretary heads a ministry or department, '''duban'''. Here is a list of common cabinet ministers/cabinet secretaries:
:* '''Dub bi Opyex'''....''Minister/Secretary of Defense''
:* '''Dub bi Dropek'''....''Minister/Secretary of War''
:* '''Dub bi Bak'''....''Minister/Secretary of Health''
:* '''Dub bi Nastun'''....''Minister/Secretary of Finance''
:* '''Dub bi Tuuxen'''....''Minister/Secretary of Education''
:* '''Dub bi Yebmema Soni'''....''Minister/Secretary of Internal Affairs = the Interior''
:* '''Dub bi Oyebmema Soni'''....''Minister/Secretary of External Affairs = State Department = Foreign Office''
:* '''Dub bi Doyevan'''....''Minister/Secretary of Justice''
:* '''Dub bi Yebmema Vakan'''....''Minister/Secretary of Homeland Security''
:* '''Dub bi Donasbex'''....''Minister/Secretary of Treasury''
:* '''Dub bi Nunuien'''....''Minister/Secretary of Commerce''
=== '''DOM''' ''city'' ===
: The base word '''dom''' means city. It is the top-level member of a geo-specific series:
:* '''dom'''....''city''
:* '''dam'''....''airport'' (synonymous with '''mampuiem''')
:* '''dem'''....''park''
::* '''deym'''....''garden''
:* '''dim'''....''fountain''
: The word '''dom''' is also the top-level member of a size-ordered series:
::* '''doom'''....''district''
::* '''doym'''....''town''
::* '''doam'''....''borough, township''
::* '''doem'''....''village''
::* '''doim'''....''hamlet''
::* '''doum'''....''estate, manor''
: Here some common words derived from '''dom''':
:* '''azdom'''....''citadel''
:* '''debdom'''....''capital''
:* '''domab'''....''municipality''
:* '''domeb'''....''burgomaster, mayor''
::* '''domebam'''....''city hall, mayor's office''
:* '''domgon'''....''district, neighborhood, precinct, quadrant, quarter''
::* '''domgona'''....''district-related''
::* '''domgones'''....''block, city block''
:* '''dommas'''....''city wall''
:* '''dommir'''....''civilization, urbane world''
::* '''dommirxer'''....''to civilize''
::* '''odommirxwa'''....''uncivilized''
:* '''domned'''....''place, public square''
:* '''domnyed'''....''urban grid''
:* '''domog'''....''village''
:* '''dompur'''....''autobus, bus, omnibus, city bus''
:* '''domsin'''....''cityscape, townscape, urban scene''
:* '''domtam'''....''brownstone, town house, townhouse''
:* '''domtej'''....''city life''
::* '''domtejen'''....''urban living''
:* '''domtun'''....''urban planning, urbanology''
:* '''domtyalier'''....''dine in public, dine out''
:* '''domtyod'''....''city folk''
:* '''domut'''....''city-dweller, urbanite''
:* '''domxer'''....''urbanize''
:* '''domyen'''....''city ways, civility, urbanity''
::* '''domyena'''....''urbane''
:* '''domyijem'''....''piazza, plaza, square, urban open space''
:* '''domzem'''....''downtown, city center, midtown''
:* '''doymtyod'''....''townsfolk, townspeople''
:* '''doymut'''....''burgher, townsman''
:* '''doymuyt'''....''townswoman''
:* '''ebdoma'''....''intercity, interurban''
:* '''ebdomep'''....''alley, alleyway''
:* '''ebdompur'''....''coach, intercity bus''
:* '''esomdoym'''....''pueblo''
:* '''fyedom'''....''podunk''
:* '''melyexdoum'''....''farmstead, hacienda, manor, plantation, ranch''
::* '''melyexdoumeb'''....''majordomo''
::* '''melyexdoumxer'''....''ranch''
::* '''melyexdoumxut'''....''rancher''
:* '''midom'''....''harbor''
:* '''midoym'''....''marina''
:* '''mimdom'''....''port city, sea town, seaport''
:* '''yodom'''....''country, countryside, non-urban area, wild, wilderness''
:* '''oyebdom'''....''countryside, outskirts of town''
:* '''tajdom'''....''birthplace town, home town, hometown''
:* '''tamyogdom'''....''favela, shantytown''
:* '''teydom'''....''metropolis''
:* '''vidoom'''....''posh district''
:* '''vudoom'''....''shabby district, slum, ghetto''
:* '''yabdom'''....''uptown''
:* '''yebdom'''....''inner city''
:* '''yuzdom'''....''suburb''
::* '''yuzdomat'''....''suburbanite''
::* '''yuzdomgon'''....''arrondissement''
::* '''yuzdomyan'''....''suburbia''
::* '''yuba yuzdom'''....''close-in suburb''
::* '''yiba yuzdom'''....''outer suburb''
:* '''yobdom'''....''downtown''
:* '''zedom'''....''city center, downtown, mid-town, midtown''
:* '''zeydoma'''....''crosstown''
:* '''zyadom'''....''metropolis''
:* '''zyadoma'''....''citywide, metropolitan''
=== '''DOP''' ''military'' ===
: The baseword '''dop''' means ''military'' and is the top level element of a series of geo-specific divisions of the military:
:* '''dop'''....''military''
:* '''dap'''....''air force''
:* '''dep'''....''army''
:* '''dip'''....''navy''
::* '''diep'''....''marine force'' (hybrid of '''dip''' and '''dep''')
Note: '''momdop''' is used for ''space force''.
[[File:Dirk Backen, Armed Forces Day 2017.jpg|thumb|]]
==== DOP Words ====
: The base word '''dop''' means ''military''. Here are some derived words:
:* '''dop'''....''military'' (n.)
::* '''dopa'''....''military'' (adj.)
:::* '''dopaun'''....''military unit''
:::* '''dopa syob'''....''military base''
::* '''dopxer'''....''to militarize''
:::* '''lodopxer'''....''to demilitarize''
::* '''dopar'''....''arm, weapon''
:::* '''doparuer'''....''to arm''
::::* '''doparuwa'''....''armed''
::::* '''doparkuben'''....''armistice''
:::* '''doparier'''....''to take up arms''
:::* '''doparober'''....''to disarm''
::::* '''doparoben'''....''disarmament''
:::* '''doparam'''....''armory''
:::* '''doparyan'''....''arsenal''
:::* '''doparayob'''....''armor''
::::* '''doparayobuer'''....''to armor''
:::::* '''doparayobuwa'''....''armored''
::* '''doput'''....''soldier''
::* '''dopek'''....''battle, combat''
:::* '''dopeker'''....''to battle, to fight, to combat''
::::* '''dopekut'''....''combattant''
::::* '''dopekteud'''....''battle cry''
:::* '''dopnabyan'''....''phalanx''
:::* '''dopjagat'''....''veteran''
::* '''dropek'''....''war''
:::* '''dropeker'''....''to wage war''
::::* '''dropekut'''....''warrier''
::* '''dopbier'''....''to conquer''
:::* '''dopbiut'''....''conqueror''
:::* '''dopbien'''....''conquest''
::* '''dopembier'''....''to deploy''
:::* '''dopembien'''....''deployment''
::* '''doptyoper'''....''to march''
::* '''dopnaper'''....''to parade''
::* '''doppiler'''....''to desert''
:::* '''doppilut'''....''deserter''
::* '''doprekifut'''....''hawk''
::* '''doptaf'''....''armor''
::* '''doptam'''....''barrack''
::* '''dopteliem'''....''mess hall''
::* '''dopyeg'''....''foxhole''
::* '''dopyevamber'''....''to court-martial''
::* '''dopyixler'''....''to recruit''
::* '''dopek zanad'''....''battlefront''
:* '''doop'''....''troop, force''
:* '''doyp'''....''militia''
==== DAP Words ====
:* '''dap'''....''air force''
::* '''dapa syob'''....''airbase''
::* '''dapur'''....''jet fighter''
::* '''daput'''....''airman''
==== DEP Words ====
:* '''dep'''....''ground force, army''
::* '''deput'''....''infantryman''
:::* '''deputyan'''....''infantry''
::* '''depur'''....''tank''
:::* '''depur yanputyan'''....''tank convoy''
::* '''dep xob'''....''army corps''
==== DIP Words ====
:* '''dip'''....''navy''
::* '''dipa'''....''naval''
:::* '''dipa syob'''....''naval base''
::* '''diput'''....''sailor, seaman''
:::* '''diputnyev'''....''ditty bag''
::* '''dipur'''....''battleship, combat ship, naval vessel''
:::* '''dipuryan'''....''flotilla, fleet''
::::* '''dipuryaneb'''....''fleet commander''
:* '''diep'''....''marines''
::* '''dieput'''....''marine soldier''
::* '''diepur'''....''amphibious warship''
: Here are different types of naval combat vessels:
:* '''dipur'''....''naval vessel''
::* '''adipur'''....''aircraft carrier''
::* '''edipur'''....''cruiser''
::* '''idipur'''....''frigate''
::* '''udipur'''....''destroyer''
::* '''yodipur'''....''corvette''
::* '''oybdipur'''....''submarine''
:::* '''apyex oybdipur'''....''attack submarine''
::* '''diepur'''....''amphibious warfare ship''
::* '''mimkum dopek dipur'''....''littoral combat ship''
::* '''oybmimdopir mimpar'''....''torpedo boat''
==== Weapons of War ====
:* '''dopar'''....''weapon, arm''
::* '''adopar'''....''gun, pistol''
::* '''edopar'''....''rifle''
::* '''idopar'''....''shotgun''
::* '''udopar'''....''musket''
:* '''dopir'''....''artillery''
::* '''adopir'''....''cannon''
::* '''edopir'''....''bazooka''
::* '''idopir'''....''howitzer''
::* '''udopir'''....''rocket launcher''
::* '''yodopir'''....''mortar''
::* '''yadopir'''....''torpedo''
:* '''dopur'''....''machine gun''
:* '''doapar'''....''sabre''
::* '''doepar'''....''sword''
::* '''dopyonar'''....''bayonet''
:::* '''mimdopyonar'''....''cutlass''
:::* '''zyadopyonar'''....''battle-ax''
::* '''dapur'''....''fighter jet''
::* '''depur'''....''tank''
::* '''dipur'''....''battleship''
:* '''dopuz-izmuf'''....''bow and arrow''
:* '''megpuxrar'''....''slingshot''
::* '''megpuxrir'''....''catapult''
: Note:
:* '''puxrun'''....''missile, projectile, shell''
::* '''puxruntyen'''....''ballistics''
:::* '''puxrunog''' (or) '''zyunes'''....''bullet''
::::* '''puxrunogvaka''' or '''zyunesvaka'''....''bullet-proof''
::* '''puxrunyan'''....''ammo, ammunition''
::* '''puxryaf'''....''firepower''
::* '''puxrer'''....''to shoot''
::* '''Puxru!'''....''Fire!''
:* '''zyun'''....''ball''
::* '''adopir zyun'''....''cannonball''
::* '''adopar zyunes'''....''pistol round''
::* '''tuyab dopzyun'''....''hand grenade''
::* '''pyaxar-zaybuxwa dopzyun'''... ''RPG, rocket-propelled grenade''
:* '''pyaxer'''....''to launch''
::* '''pyaxun'''....''missile, projectile''
::* '''pyaxmufyeg''' (or) '''pyaxun'''....''rocket''
:* '''yonpyexrer'''....''to explode, to blast''
::* '''yonpyexrar'''....''bomb''
:::* '''yonpyexrarer'''....''to bomb''
::* '''yonpyexrul'''....''explosive material''
::* '''yonpyexrea myek:'''....''blasting powder''
==== Military Ranks ====
[[File:Military ranks of Ukraine 2 2015.jpg|thumb|]]
{{small/top}}
::{| class="wikitable" style="background:lightyellow; font-size:smaller;"
|+ Military Ranks
|-
! ARMY<br>'''dep''' !! NAVY<br>'''dip''' !! AIR FORCE<br>'''dap''' !! MARINE FORCE<br>'''diep'''
|-
| '''depat'''....''soldier'' || '''dipat'''....''ensign'' || '''dapat'''....''airman'' || '''diepat'''....''private''
|-
| '''adepat'''....''private'' || '''adipat'''....''seaman recruit'' || '''adapat'''....''airman basic'' || '''adiepat'''....''private''
|-
| '''edepat'''....''private 2'' || '''edipat'''....''seaman apprentice'' || '''edapat'''....''airman'' || '''ediepat'''....''private 1st class''
|-
| '''idepat'''....''private first class'' || '''idipat'''....''seaman'' || '''idapat'''....''airman first class'' || '''idiepat'''....''lance corporal''
|-
| '''udepat'''....''army specialist'' || '''udipat'''....''petty officer 3rd class'' || '''udapat'''....''senior airman'' || '''udiepat'''....''corporal''
|-
| '''....''' '' '' || '''yodipat'''....''petty officer 2nd class'' || '''yodapat'''....''staff sergeant'' || '''yodiepat'''....''sergeant''
|-
| '''....''' '' '' || '''yadipat'''....''petty officer 3rd class'' || '''yadapat'''....''technical sergeant'' || '''yadiepat'''....''staff sergeant''
|-
| '''....''' '' '' || '''yedipat'''....''chief petty officer'' || '''obyedapat'''....''master sergeant'' || '''yediepat'''....''gunnery sergeant''
|-
| '''....''' '' '' || '''....''' '' '' || '''abyedapat'''....''master sergeant with diamond'' || '''....''' '' ''
|-
| '''....''' '' '' || '''yidipat'''....''senior chief petty officer'' || '''obyidapat'''....''senior master sergeant'' || '''yidiepat'''....''master sergeant''
|-
| '''....''' '' '' || '''....''' '' '' || '''abyidapat'''....''senior master sergeant with diamond'' || '''....''' '' ''
|-
| '''....''' '' '' || '''obyudipat'''....''master chief petty officer'' || '''obyudapat'''....''chief master sergeant'' || '''yudiepat'''....''first sergeant''
|-
| '''....''' '' '' || '''ebyudipat'''....''fleet master chief petty officer'' || '''....''' '' '' || '''alodiepat'''....''master gunnery sergeant''
|-
| '''....''' '' '' || '''abyudipat'''....''master chief petty officer of the navy'' || '''abyudapat'''....''chief master sergeant with diamond'' || '''aladiepat'''....''sergeant major''
|-
| '''adeplat'''....''warrant officer'' || '''adiplat'''....''ensign'' || '''adaplat'''....''2nd lieutenant'' || '''adieplat'''....''warrant officer''
|-
| '''edeplat'''....''chief warrant officer 2'' || '''ediplat'''....''lieutenant junior grade'' || '''edaplat'''....''1st lieutenant'' || '''edieplat'''....''chief warrant officer 2''
|-
| '''ideplat'''....''chief warrant officer 3'' || '''idiplat'''....''lieutenant'' || '''idaplat'''....''captain'' || '''idieplat'''....''chief warrant officer 3''
|-
| '''udeplat'''....''chief warrant officer 4'' || '''udiplat'''....''lieutenant commander'' || '''udaplat'''....''major'' || '''udieplat'''....''chief warrant officer 4''
|-
| '''yodeplat'''....''chief warrant officer 5'' || '''yodiplat'''....''commander'' || '''yodaplat'''....''lieutenant colonel'' || '''yodieplat'''....''chief warrant officer 5''
|-
| '''yadeplat'''....''second lieutenant'' || '''yadiplat'''....''captain'' || '''yadaplat'''....''colonel'' || '''yadieplat'''....''second lieutenant''
|-
| '''yedeplat'''....''first lieutenant'' || '''....''' '' '' || '''....''' '' '' || '''yedieplat'''....''first lieutenant''
|-
| '''yideplat'''....''captain'' || '''yidiplat'''....''ensign'' || '''....''' '' '' || '''yidieplat'''....''captain''
|-
| '''yudeplat'''....''major'' || '''....''' '' '' || '''....''' '' '' || '''yudieplat'''....''major''
|-
| '''adeprat'''....''brigadier general'' || '''adiprat'''....''rear admiral lower half'' || '''adaprat'''....''brigadier general'' || '''adieprat'''....''lieutenant general''
|-
| '''edeprat'''....''major general'' || '''ediprat'''....''rear admiral upper half'' || '''edaprat'''....''major general'' || '''edieprat'''....''colonel''
|-
| '''ideprat'''....''lieutenant general'' || '''idiprat'''....''vice admiral'' || '''idaprat'''....''lieutenant general'' || '''idieprat'''....''brigadier general''
|-
| '''udeprat'''....''4 star general'' || '''udiprat'''....''commandant'' || '''udaprat'''....''general air force chief of staff'' || '''udieprat'''....''major general''
|-
| '''yodeprat'''....''5-star general'' || '''yodiprat'''....''fleet admiral'' || '''yodaprat'''....''general of the AF'' || '''yodieprat'''....''lieutenant general''
|-
| '''....''' '' '' || '''....''' '' '' || '''....''' '' '' || '''yadieprat'''....''general''
|}
{{small/end}}
=== '''DOT''' ''society'' ===
: The stems of the words in this family begin with '''d''' for ''society'' and end in '''t''' for ''human''.
==== Principal Derivatives ====
::* '''dot'''....''society''
:::* '''doyt'''....''club''
:::* '''doot'''....''public''
:::* '''lyodot'''....''wilderness''
::* '''dat'''.....''friend''
:::* '''dayt'''....''female friend''
:::* '''dwat'''....''male friend''
:::* '''daat'''....''buddy, chum''
:::* '''yodat'''....''enemy''
::* '''det'''....''mate, associate, companion''
:::* '''dwet'''....''boyfriend''
:::* '''deyt'''....''girlfriend''
::* '''dit'''....''citizen''
:::* '''odit'''....''non-citizen, alien''
::* '''dut'''....''(not used)''
:::* '''duyt'''....''lady, madam''
:::* '''dwut'''....''gentleman, sir''
::::* '''dwuyti'''....''ladies and gentlemen''
[[File:Vitruvian Man Noun project 6674.svg|thumb|]]
==== DOT and DO- Words ====
: The root word '''dot''' means ''society'' and is at the top of a scalar series of words. The diminutive, '''doyt''' means ''club''. Sometimes '''dot''' is reduced to the stub '''do-''' meaning ''public''. Here are the principal derivatives
:* '''dot'''....''society''
::* '''doot'''....''public''
::* '''doyt'''....''club''
::* '''dout'''....''bourgeois''
: Here are some derivatives of '''dot''' and '''do-''':
:*'''dot'''....''society''
::*'''dota'''....''societal, social''
::*'''dotin'''....''socialism''
:::* '''dotina'''....''socilialist, socialistic''
:::* '''dotinut'''....''socialist''
:::*'''dooba-dotin'''....''national socialism, nazism''
::::*'''dooba-dotinut'''....''national socialist, nazi''
::*'''dota abteaxuyt'''....''chaperone''
::*'''dotaxlyen'''....''demeanor''
::*'''dotbokat'''....''sociopath''
::*'''doteader'''....''to notarize''
:::*'''doteadut'''....''notary''
::*'''doteuz'''....''vote''
:::*'''doteuzaf'''....''franchise, permission to vote''
::::*'''doteuzafxer'''....''to enfanchise''
::::*'''doteuzofxer'''....''disenfranchise''
:::*'''doteuzyiv'''....''right to vote''
:::*'''doteuzdref'''....''ballot''
::::*'''doteuzdref nyem'''....''ballot box''
:::*'''doteuzier'''....''poll''
:::*'''doteuziut'''....''poll-taker, pollster''
:::*'''doteuzkyaxut'''....''swing voter''
:::*'''doteuzsager'''....''canvass''
:::*'''doteuzsagut'''....''canvasser''
:::*'''doteuzir'''....''voting machine''
:::*'''doteuzem'''....''polling place''
:::*'''doteuzum'''....''voting booth''
:::*'''doteuzuer'''....''to vote''
::::*'''doteuzuun'''....''vote''
::::*'''doteuzuut'''....''voter''
::*'''dotmuys'''....''social ladder''
::*'''dotnab'''....''social rank, social standing, social stratum''
::*'''dotnaz'''....''caliber''
::*'''dotnextuna'''....''socioeconomic''
::*'''dotnix'''....''assessment, duty''
:::*'''dotnixuer'''....''asses a duty''
:::*'''dotnixut'''....''beneficiary, welfare recipient''
:::*'''dotnixuyafwa'''....''dutiable''
::*'''dofip'''....''welfare''
:::*'''dofipnux'''....''welfare allowance''
:::*'''dofipdob'''....''welfare state''
::*'''dovak'''....''social security''
:::*'''dovakdib'''....''social security administration, welfare administration''
:::*'''dotvaknux'''....''social security allotment''
::::*'''dotvaknuxibut'''....''social security recipient''
::*'''dotoega'''....''weird''
::*'''dotof'''....''taboo''
::*'''dotoj'''....''capital punishment''
:::*'''dotoj pesnad'''....''death row''
:::*'''dotojber'''....''to execute, to put to death''
::*'''dotom'''....''public building''
:::*'''dotomvyixut'''....''janitor''
:::*'''dotomdrwasi'''....''graffiti''
::*'''dotop'''....''ethos''
:::*'''dotopa'''....''ethical''
:::*'''dotoptun'''....''ethics''
::*'''dotpifa'''....''gregarious''
:::*'''dotpifut'''....''gregarious person''
::*'''dotrwa'''....''known publically''
::*'''dotser'''....''to socialize''
::*'''dotsiunxer'''....''to salute''
::*'''dotsyen'''....''civilization''
:::*'''dotsyenxer'''....''civilize''
:::*'''dotsyenxwa'''....''civilized''
::*'''dottun'''....''sociology''
:::*'''dottut'''....''sociologist''
::*'''dotuer'''....''divulge, proclaim, promulgate, report, whistleblow''
::*'''dotufa'''....''recalcitrant''
::*'''dout'''....''bourgeois''
:::*'''dotutyan'''....''bourgeoisie''
::*'''dotuun'''....''bulletin, report''
:::*'''dotuunyan'''....''reportage''
:::*'''dotuut'''....''herald, reporter''
::*'''dotvyab'''....''ruling, statute''
:::*'''dotvyabdras'''....''statute''
::*'''dotxer'''....''socialize''
:::*'''dotxyika'''....''dorky''
::*'''dotyen'''....''etiquette, social skill''
:::*'''dotyenukat'''....''dweeb''
::*'''dotyexut'''....''caseworker, social worker''
::*'''fidotyen'''....''decency''
:::*'''fidotyena'''....''decent''
:*'''fudotyen'''....''indecency''
::*'''fudotyena'''....''indecent''
::*'''kodot'''....''secret society''
::*'''lyodot'''....''wilderness''
:::*'''lyodota'''....''wild''
::*'''mirdotsuyt'''....''socialite''
::*'''odota'''....''asocial''
::*'''odotsyea'''....''unsociable''
::*'''odotsyenxwa'''....''uncivilized''
::*'''ovdota'''....''anti-social''
::*'''dotoyeber'''....''ostracize''
:*'''tepdota'''....''psychosocial''
:*'''vadoteuz'''....''yes vote''
:*'''vidota'''....''high-brow''
:*'''vodoteuz'''....''no vote''
:*'''vudota'''....''low-brow''
:*'''yabdota'''....''elite, high-society''
:*'''yeber doteuzdref'''....''cast a ballot, cast a vote''
:*'''yobdota'''....''low-brow''
::* '''doyt'''....''association, club, order''
:::* '''doytam'''....''clubhouse''
:::* '''doyteb'''....''club leader, doyen''
:::* '''doyteyb'''....''doyenne''
:::* '''doytim'''....''clubroom''
:::* '''doytser'''....''associate''
:::* '''doytut'''....''associate, club member''
:::* '''doytxer'''....''associate''
:::* '''doytxwa'''....''associated''
::* '''fyadoyt'''....''religious community, religious order''
::* '''mojdoyt'''....''nightclub''
::* '''oybdoyt'''....''affiliate''
::* '''doot'''....''public''
:::* '''doota'''....''public''
:::* '''dootxer'''....''publicize''
::* '''dout'''....''bourgeois''
:::* '''doutyan'''....''bourgeoisie''
: The prefix '''do-''' can be used to form words that are public or official in nature, eg:
:{| class="wikitable" style="background:lightyellow"
|+ The Do- prefix
! COMBINED FORM !! SUFFIX
|-
| '''dovyab'''....''law'' || '''vyab'''....''rule''
|-
| '''doyevan'''....''justice'' || '''yevan'''....''fairness''
|-
| '''doneg'''....''class'' || '''neg'''....''level''
|-
| '''dodel'''....''announcement'' || '''del'''....''statement''
|-
| '''doyov'''....''crime'' || '''yov'''....''shame''
|-
| '''doyiv'''....''right'' || '''yivan'''....''freedom''
|-
| '''dobien'''....''coup d'etat'' || '''bien'''....''taking''
|-
| '''dodres'''....''bulletin'' || '''dres'''....''document''
|-
| '''dokex'''....''inquiry'' || '''kex'''....''search''
|-
| '''dovak'''....''public safety'' || '''vak'''....''safety''
|-
| '''dovakdib'''....''police'' || '''dib'''....''administration''
|-
| '''dotojben'''....''execution'' || '''tojben'''....''killing''
|-
| '''dosyag'''....''census'' || '''syag'''....''count''
|-
| '''dodrur'''....''press'' || '''drur'''....''printer''
|-
| '''dodras''''....''bulletin'' || '''dras'''....''piece of writing''
|-
| '''doyen'''....''protocol'' || '''-yen'''....''manner''
|-
| '''dodid'''....''inquiry'' || '''did'''....''question''
|-
| '''dodil'''....''petition, démarche'' || '''dil'''....''request''
|-
| '''dodin'''....''history'' || '''din'''....''story''
|-
| '''dodyun'''....''appointment'' || '''dyun'''....''name''
|-
| '''dodyeen'''....''recital'' || '''dyeen'''....''reading''
|}
==== DAT Words ====
:* '''dat'''....''friend''
::* '''datan'''....''friendship''
::* '''datser'''....''to make friends with''
::* '''datxer'''....''to befriend''
::* '''datyan'''....''network of friends''
::* '''datyena'''....''friendly''
::* '''datavunuer'''....''to show favoratism toward''
:::* '''datavunuen'''....''cronyism''
::* '''datiber'''....''to host''
:::* '''datibam'''....''hotel''
:::* '''datibut'''....''host''
:::* '''datibwat'''....''guest''
:::* '''datibyen'''....''hospitality''
::* '''datif'''....''chum, pal, buddy, mate''
::* '''datim'''....''parlor, salon''
::* '''datuper'''....''to visit''
::* '''datzyus'''....''coterie, circle of friends''
::* '''odata'''....''unfriendly''
::* '''yodat'''....''enemy''
:::* '''agalyodat'''....''nemesis''
::* '''ovdat'''....''adversary''
:::* '''ovdata'''....''adversarial, hostile''
:::* '''ovdatxer'''....''to alienate''
::* '''daat'''....''ally''
:::* '''daatan'''....''alliance''
::* '''ifdwat'''....''boyfriend''
::* '''ifdayt'''....''girlfriend''
==== DET Words ====
:* '''det'''....''partner, associate, collegue''
::* '''deta'''....''fellow, collegiate''
::* '''detan'''....''partnership, association, fellowship''
::* '''detser'''....''to associate''
:::* '''lodetser'''....''to disassociate''
::* '''detxer'''....''to accompany''
:::* '''odetxwa'''....''unaccompanied''
::* '''nunyaxdet'''....''business partner''
::* '''detyan'''....''company, consortium, association''
:::* '''nundetyan'''....''commercial firm''
:::* '''detyankexyea'''....''gregarious''
:::* '''detyanog'''....''club''
::* '''yexdet'''....''office mate, fellow worker, colleague, coworker''
::* '''dazdet'''....''dance partner''
::* '''purdet'''....''fellow passenger''
::* '''popdet'''....''travel mate''
::* '''dofuxdet'''....''partner in crime''
::* '''tejdet'''....''life partner''
==== DIT Words ====
:* '''dit'''....''citizen''
::* '''dita'''....''civil, civic''
::* '''ditan'''....''citizenship''
::* '''dityan'''....''citizenry''
::* '''ditser'''....''to become a citizen''
::* '''ditdab'''....''democracy''
:::* '''ditdaba'''....''democratic''
::* '''ditdeb'''....''president''
:::* '''ditdeban'''....''presidency''
:::* '''ditdeber'''....''to preside''
::* '''ditdab'''....''republic''
:::* '''ditdaba'''....''republican''
::* '''ditdop'''....''militia''
::* '''ditser'''....''to become a citizen''
::* '''ditxer'''....''to naturalize''
::* '''dityen'''....''civility''
==== DUT Words ====
:* '''dwut'''....''sir, gentleman''
:* '''duyt'''....''madam, lady''
:* '''dwuyti'''....''ladies and gentlemen''
=== '''FOB''' ''plant'' ===
: The stems of the words in this family begin with '''f''' for ''vegetation'' and end in '''b''' for ''organism''. The core meronyms of this family are listed here:
::* '''fob'''....''plant, vegetation''
::* '''fab'''....''tree''
::* '''feb'''....''fruit''
::* '''fib'''....''trunk''
::* '''fub'''....''branch''
::* '''fyob'''....''root''
[[File:Diversity of plants image version 6.jpg|thumb|]]
==== FOB Words ====
: The base word '''fob''' means ''plant, vegetation''.
: Here are words that are derived from this root:
: '''fob'''....''plant, vegetation''
:* '''foba'''....''botanical, vegetal''
:** '''fobam'''....''greenhouse''
:* '''fobdem'''....''botanical garden, orchard''
:* '''fobika'''....''verdant''
:** '''fobikay'''....''verdantly''
:* '''fobtun'''....''botany''
:** '''fobtuna'''....''botanic, botanical''
:*** '''fobtunay'''....''botanically''
:* '''fobtut'''....''botanist''
:* '''fobyan'''....''flora, vegetation''
:* '''fobyena'''....''vegetative''
:* '''fobyexem'''....''farm''
:* '''fobyexen'''....''agriculture, cultivating, cultivation, farming, tilling''
:** '''fobyexena'''....''agricultural''
:** '''fobyexenut'''....''agriculturalist''
:* '''fobyexer'''....''cultivate, farm, till''
:* '''fobyexin'''....''agrarianism''
:* '''fobyextun'''....''agronomy''
:** '''fobyextuna'''....''agronomical''
:*** '''fobyextunay'''....''agronomically''
:** '''fobyextut'''....''agronomist''
:* '''fobyex'''....''agriculture, farming, tilth''
:** '''fobyexa'''....''agrarian, agricultural''
:*** '''fobyexam'''....''farmhouse, farmstead''
:** '''fobyexut'''....''cultivator, farmer''
:** '''fobyexwa'''....''farmed''
:** '''fobyexyafwa'''....''cultivable, tillable''
:** '''fobyexyofwa'''....''untillable''
:* '''milfob'''....''aquatic plant, hydrophyte''
:** '''milfoba'''....''hydrophytic''
:*** '''milfobyex'''....''hydroponics''
:**** '''milfobyexa'''....''hydroponic''
==== FAB / FEB Words ====
: The word '''fab''' means ''tree''. The diminutive is '''fayb''' meaning ''bush, vine''. The fruit or nut of the tree ends in '''feb''', unless it is a berry from a vine, in which case it is '''feyb'''. The juice from the fruit is '''fel''', while the fruit of the berry is '''feyl'''.
: Trees all end in '''fab'''. Vines, shrubs, and bushes ending in '''fayb'''. The syllables prefixed to those roots come from the international Linnaean taxonomy. Here some common derived words:
:'''fab'''....''tree''
:* '''fabyan'''....''forest''
:** '''fabyayn'''....''woods''
:* '''fayb'''....''bush, vine''
:** '''faybyan'''....''thicket, brush''
:* '''fayeb'''....''leaf''
:** '''fayebyan'''....''foliage''
:* '''faob'''....''wood''
:** '''faof'''....''plank, board''
:** '''fauf'''....''log''
:*** '''faufyan'''....''lumber, timber''
: '''feb'''....''fruit, nut''
:* '''fel'''....''fruit juice''
:* '''feyb'''....''berry''
:** '''feyl'''....''berry juice''
: With the prefixation of Linnaeus taxonomic syllables, we get the following trees:
:'''anbromfab''': ''pineapple'', spec=''Bromeliaceae Ananas comosus''
:'''fafab''': ''bean plant, pea plant'', spec=''Fabaceae''
:*'''glefafab''': ''honey locust, honeylocust'', spec=''Fabaceae Gleditsia triacanthos''
:*'''akfafab''': ''acacia tree'', spec=''Fabaceae Acacia''
:'''plafab''': ''plane tree, plantain'', spec=''Platanaceae Platanus''
:*'''okplafab''': ''sycamore tree, occidental plane tree'', spec=''Platanaceae Platanus occidentalis''
:'''tafab''': ''yew tree'', spec=''Taxaceae Taxus''
:'''ebfab''': ''Ceylon ebony'', spec=''Ebenaceae Diospyros ebenum''
:'''acfab''': ''maple tree'', spec=''Aceraceae Acer''
:'''befab''': ''birch tree'', spec=''Betulaceae Betula''
:*'''korbefab''': ''hazel nut tree, kukui tree'', spec=''Betulaceae Corylus''
:'''katefab''': ''cacao tree'', spec=''Malvaceae Theobroma cacao''
:'''fagfab''': ''beech tree'', spec=''Fagaceae Fagus''
:*'''kafagfab''': ''chestnut tree'', spec=''Fagaceae Castanea''
:*'''kwerfagfab''': ''oak tree'', spec=''Fagaceae Quercus quercus''
:*'''kasfagfab''': ''sweet chestnut tree'', spec=''Fagaceae Castanea sativa''
:'''pulifab''': ''pomegranate tree'', spec=''Lythraceae Punica granatum''
:'''pifab''': ''conifer, evergreen tree, pine tree'', spec=''Pinaceae Pinus''
:*'''lapifab''': ''larch tree'', spec=''Pinaceae Larix'':*
:*'''abpifab''': ''fir tree'', spec=''Pinaceae Abies''
:*'''cepifab''': ''cedar tree'', spec=''Pinaceae Cedrus''
:*'''licepifab''': ''cedar of Lebanon'', spec=''Pinaceae Cedrus libani''
:*'''tsupifab''': ''hemlock tree'', spec=''Pinaceae Tsuga'':*
:'''maswifab''': ''mahogany tree'', spec=''Melaiceae Swietenia mahgoni''
:'''ginkfab''': ''ginkgo tree'', spec=''Ginkgoaceae Ginkgo biloba''
:'''malfab''': ''mallows family'', spec=''Malvaceae''
:*'''himalfab''': ''rosella plant'', spec=''Malvacea Hibiscus sabdariffa''
:*'''okmalfab''': ''balsa tree'', spec=''Malvaceae Ochroma pyramidale''
:*'''komalfab''': ''kola plant'', spec=''Malvaceae Cola nitida old''=nyefab
:*'''dumalfab''': ''durian tree'', spec=''Malvaceae Durio''
:'''salfab''': ''willow tree, willow family'', spec=''Salicaceae Salix''
:*'''posalfab''': ''poplar tree,, aspen tree, populus tree'', spec=''Salicaceae Populus''
:*'''balposalfab''': ''cottonwood'', spec=''Salicaceae Populus balsamifera''
:'''olfab''': ''olive tree'', spec=''Oleaceae Olea europaea''
:*'''fraksolfab''': ''ash tree'', spec=''Oleaceae Fraxinus''
:'''ulfab''': ''elm tree'', spec=''Ulmaceae Ulmus''
:'''anfab''': ''cashew/pistachio family'', spec=''Anacardiaceae''
:*'''okanfab''': ''cashew tree'', spec=''Anacardiaceae Anacardium occidentale''
:*'''mananfab''': ''mango tree'', spec=''Anacardiaceae Mangifera indica''
:*'''pisanfab''': ''pistachio tree'', spec=''Anacardiaceae Pistacia vera''
:*'''topisanfab''': ''poison ivy'', spec=''Anacardiaceae Toxiodendron''
:'''mofab''': ''mulberry tree, mulberry family'', spec=''Moraceae Morus''
:*'''fimofab''': ''fig tree'', spec=''Moraceae Ficus carica''
:*'''urfimofab''': ''banyan'', spec=''Moraceae Ficus Urostigma''
:'''rofab''': ''fruit tree'', spec=''Rosaceae''
:*'''marofab''': ''apple tree'', spec=''Rosaceae Malus domestica''
::*'''domarofab''': ''crabapple tree'', spec=''Rosaceae Malus domestica''
:*'''kirofab''': ''quince tree'', spec=''Rosaceae Cydonia oblonga''
:*'''pirofab''': ''pear tree'', spec=''Rosaceae Pyrus''
:*prurofab: plum tree, aspen, Rosaceae Prunus domestica
:*'''ceprurofab''': ''cherry tree'', spec=''Rosaceae Prunus cerasus''
:*'''amprurofab''': ''almond tree'', spec=''Rosaceae Prunus amygdalus''
:*'''arprurofab''': ''apricot tree'', spec=''Rosaceae Prunus armeniaca''
:*'''perprurofab''': ''peach tree'', spec=''Rosaceae Prunus persica''
:'''maprofab''': ''macadamia tree'', spec=''Proteaceae Macadamia''
:'''arfab''': ''palm tree'', spec=''Arecaceae old''=bofab
:*'''rafarfab''': ''raffia palm'', spec=''Arecaceae Raphia''
:*'''kokarfab''': ''coconut palm, coconut tree'', spec=''Arecaceae Cocos nucifera''
:*'''foynarfab''': ''date tree'', spec=''Arecaceae Phoenix dactylifera''
:'''pakarfab''': ''papaya, yucca'', spec=''Caricaceae Carica papaya''
:'''erfab''': ''heather'', spec=''Ericaceae''
:'''lefab''': ''Brazil nut tree'', spec=''Lecythidaceae Bertholletia excelsa''
:'''mirfab''': ''myrtle'', spec=''Myrtaceae''
:*'''arsimirfab''': ''clove tree'', spec=''Myrtaceae Syzygium aromaticum''
:*'''pimirfab''': ''pimenta'', spec=''Myrtaceae Pimenta''
:*'''simirfab''': ''lillypillies'', spec=''Myrtaceae Syzygium''
:*'''ewmirfab''': ''eucalyptus tree, juniper tree, gum tree'', spec=''Myrtaceae Eucalyptus''
:*'''melewmirfab''': ''yellow box'', spec=''Myrtaceae Eucalyptus melliodora''
:*'''tenewmirfab''': ''stringybark'', spec=''Myrtaceae Eucalyptus tenella''
:*'''korewmirfab''': ''yate'', spec=''Myrtaceae Eucalyptus cornuta''
:'''korfab''': ''dogwood tree'', spec=''Cornaceae Cornus sanguinea''
:'''burfab''': ''torchwood, Burseraceae family'', spec=''Burseraceae''
:*'''ovkaburfab''': ''pili tree'', spec=''Burseraceae Canarium ovatum''
:*'''komburfab''': ''myrrh'', spec=''Burseraceae Commiphora abyssinca''
:*'''bosburfab''': ''frankincense'', spec=''Burseraceae Boswellia''
:'''mirisfab''': ''nutmeg tree'', spec=''Myristicaceae Myristica fragrans''
:'''jufab''': ''walnut tree family, walnut tree'', spec=''Juglandaceae Yuglans''
:*'''cijufab''': ''butternut tree'', spec=''Yuglandaceae Yuglans cinerea''
:*'''ilkarjufab''': ''pecan tree'', spec=''Juglandaceae Carya illioinensis''
:*'''tokarjufab''': ''hickory'', spec=''Juglandaceae Carya tomentosa''
:'''kufab''': ''cypress tree'', spec=''Cupressaceae''
:*'''sekufab''': ''sequoia, giant sequoia, redwood tree'', spec=''Cupressaceae Sequoia sempervirens''
:*'''jukufab''': ''juniper tree'', spec=''Cupressaceae Juniperus communis''
:'''mufab''': ''banana tree'', spec=''Musaceae Musa''
:*'''enmufab''': ''ensete, false banana'', spec=''Musaceae Ensete''
:'''rufab''': ''citrus family'', spec=''Rutaceae''
:*'''pterufab''': ''hop tree'', spec=''Rutaceae Ptelea trifoliata''
:*'''jacirufab''': ''kumquat'', spec=''Rutaceae Citrus japonica''
:*'''mecirufab''': ''lime tree, linden tree'', spec=''Rutaceae Citrus medica''
:*'''recirufab''': ''grapefruit'', spec=''Rutaceae Citrus reticulata''
:*'''recirufab''': ''mandarin orange tree, mandarin tree'', spec=''Rutaceae Citrus reticulata''
:*'''licirufab''': ''lemon tree'', spec=''Rutaceae Citrus limon''
:*'''sicirufab''': ''orange tree'', spec=''Rutaceae Citrus sinensis''
:*'''grancirufab''': ''shaddock'', spec=''Rutaceae Citrus grandis''
:*'''tancirufab''': ''mandarin orange, tangerine'', spec=''Rutaceae Citrus tangerina''
:*'''awcirufab''': ''sour orange tree, marmalade orange tree, bigarade orange tree, bitter orange tree'', spec=''Rutaceae Citrus aurantium''
:*'''tinkrufab''': ''madder, rose madder'', spec=''Rubiaceae tinctorum''
:*'''cinrufab''': ''quinine tree, cinchona'', spec=''Rubiaceae Cinchona''
:'''lawfab''': ''laurel tree'', spec=''Lauraceae''
:*'''cinlawfab''': ''cinnamon tree, laurel tree'', spec=''Lauraceae Cinnamomum''
:*'''saslawfab''': ''sassafras tree'', spec=''Lauraceae Sassafras albidum''
:'''fayb''': ''vine, bush, shrub''
:*'''tefayb''': ''tea plant'', spec=''Theaceae Camellia sinensis''
:*'''koffayb''': ''coffee plant'', spec=''Rubiaceae Coffea arabica'', old=kafayb
:*'''pifayb''': ''evergreen shrub'', spec=''Pinospida''
:*'''vifayb''': ''grapevine, vine'', spec=''Vitaceae Vitis vinifera''
:*'''kakfayb''': ''cactus'', spec=''Cactaceae''
:*'''akwilfayb''': ''ilex, holly bush'', spec=''Aquifoliaceae Ilex aquifolium''
:*rofayb: fruit vine
::*'''frarofayb''': ''strawberry bush'', spec=''Rosaceae Fragaria ananassa''
::*'''grofayb''': ''gooseberry family'', spec=''Grossulariaceae''
:::*'''nirigrofayb''': ''blackcurrant, black currant bush, cassis bush'', spec=''Grossulariaceae Ribes nigrum''
:::*'''rurigrofayb''': ''red currant bush, redcurrant bush'', spec=''Grossulariaceae Ribes rubrum''
::*'''rurofayb''': ''raspberry bush'', spec=''Rosaceae Rubus fructicosus''
:::*'''alrurofayb''': ''blackberry vine'', spec=''Rosaceae Rubus allegheniensis''
::*'''prurofayb''': ''blackthorn, sloe'', spec=''Rosaceae Prunus spinosa''
::*'''nuprurofayb''': ''nectarine, peach tree'', spec=''Rosaceae Prunus nucipersica''
:*'''kapsofayb''': ''pepper plant, pepper vine'', spec=''Solanaceae Capsicum''
:*'''kafayb''': ''honeysuckle bush'', spec=''Caprifoliaceae''
::*'''vikafayb''': ''viburnum'', spec=''Caprifoliaceae Viburnum''
::*'''samkafayb''': ''elderberry bush'', spec=''Caprifoliaceae Sambucus canadensis''
:*'''kapfayb''': ''caper bush'', spec=''Capparidaceae Capparis''
:*'''pipfayb''': ''black pepper vine'', spec=''Piperaceae Piper nigrum''
:*'''vakserfayb''': ''cranberry bush'', spec=''Ericaceae Vaccinium''
::*'''civakserfayb''': ''blueberry bush'', spec=''Ericaceae Vaccinium sect''. Cyanococcus
:*'''verfayb''': ''verbena family'', spec=''Verbenaceae''
:*'''mifayb''': ''bayberry bush'', spec=''Myricaceae''
:*'''mirfayb''': ''myrtle, myrtus family'', spec=''Myrtaceae''
::*'''psimirfayb''': ''guava'', spec=''Myrtaceae Psidium''
: The fruits and nuts of these trees are derived by changing '''fab''' to '''feb'''. The berries from vines/shrubs/bushes end in '''feyb'''. The following tables shows some examples. The juice of the fruit can be derived by changing '''feb''' to '''fel.''' The juice of a berry can be derived by changing '''feyb''' to '''feyl'''. A jam ends in '''fyel''', while a jelly ends in '''fyeyl'''. An alcoholic drink ends in '''fil'''.
[[File:Wild tree 001.jpg|thumb|]]
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Trees/Bushes/Vines and Their Fruits/Nuts/Berries
|-
! TREE !! FRUIT/NUT !! EDIBLE PRODUCT
|-
| '''fab'''....''tree'' || '''feb'''...''fruit/nut'' || '''fel'''....''fruit juice''
|-
| '''rofab'''....''fruit tree'' || '''rofeb'''....''fruit''....''fruit juice''
|-
| '''malrofab'''....''apple tree'' || '''malrofeb'''....''apple''|| '''malrofel'''....''apple juice''
|-
| '''pirofab'''....''pear tree'' || '''pirofeb'''....''pear''|| '''pirofel'''....''pear juice''
|-
| '''ceprurofab'''....''cherry tree'' || '''ceprurofeb'''....''cherry''|| '''ceprurofel'''....''cherry juice''
|-
| '''prurofab'''....''plum tree'' || '''prufofeb'''....''plum''|| '''prufofel'''....''plum juice''
|-
| '''arprurofab'''....''apricot tree'' || '''arprurofeb'''....''apricot''|| '''arprufofel'''....''apricot juice''
|-
| '''perprurofab'''....''peach tree'' || '''perprufofeb'''....''peach''|| '''perprurofel'''....''peach juice''
|-
| '''kirofab'''....''quince tree'' || '''kirofeb'''....''quince''||
|-
| '''mofab'''....''mulberry tree'' || '''mofeb'''....''mulberry'' ||
|-
| '''pifab'''....''evergreen tree'' || '''pifeb'''....''pine cone''||
|-
| '''abpifab'''....''fir tree'' || '''abpifeb'''....''fir cone''||
|-
| '''cepifab'''....''cedar tree'' || '''cepifeb'''....''pollen cone''||
|-
| '''tafab'''....''yew'' || '''tafeb'''....''aril''||
|-
| '''katefab'''....''cacao tree'' ||'''katfeb'''....''cacao, cocoa bean''||'''katefel'''....''chocolate''
|-
| '''dyafab'''....''cedar tree'' || '''dyafeb'''....''pollen cone''||
|-
| '''arfab'''....''palm tree'' || '''arfeb'''....''drupe''||
|-
| '''foynarfab'''....''date tree'' || '''foynarfeb'''....''date''||
|-
| '''mufab'''....''banana tree'' || '''mufeb'''....''banana''|| '''mufel'''....''banana juice''
|-
| '''kokarfab'''....''coconut tree'' || '''kokarfeb'''....''coconut''|| '''kokarfel'''....''coconut juice''
|-
| '''fyofab'''....''pomegranate tree'' || '''fyofeb'''....''pomegranate''|| '''fyofel'''....''pomegranate juice''
|-
| '''fimofab'''....''fig tree'' || '''fimofeb'''....''fig''|| '''fimofel'''....''fig juice''
|-
| '''olfab'''....''olive tree'' || '''olfeb'''....''olive''|| '''olfyel'''....''olive oil''
|-
| '''rufab'''....''citrus tree'' || '''rufeb'''....''citrus fruit'' || '''rufel'''....''citrus juice''
|-
| '''sicirufab'''....''orange tree'' || '''sicirufeb'''....''orange''|| '''sicirufel'''....''orange juice''
|-
| '''tancirufab'''....''mandarine tree'' || '''tancirufeb'''....''mandarin''|| '''tancirufel'''....''mandarine juice''
|-
| '''licirufab'''....''lemon tree'' || '''licirufeb'''....''lemon''|| '''licirufel'''....''lemon juice''
|-
| '''recirufab'''....''grapefruit tree'' || '''recirufeb'''....''grapefruit''|| '''recirufel'''....''grapefruit juice''
|-
| '''mecirufab'''....''linden tree'' || '''mecirufeb'''....''lime''|| '''mecirufel'''....''lime juice''
|-
| '''jacirufab'''....''kumquat tree'' || '''jacirufeb'''....''kumquat'' ||
|-
| '''jufab'''....''walnut tree'' || '''jufeb'''....''walnut''||
|-
| '''korbefab'''....''hazel tree'' || '''korbefeb'''....''hazel nut'' ||
|-
| '''fagfab'''....''beech tree'' || '''fagfeb'''....''beechnut''||
|-
| '''kafagfab'''....''chestnut tree'' || '''kafagfeb'''....''chestnut''||
|-
| '''kwerfagfab'''....''oak tree'' || '''kwerfagfeb'''....''acorn''||
|-
| '''kasfagfab'''....''sweet chestnut tree'' || '''kasfagfeb'''....''sweet chestnut''||
|-
| '''posalfab'''....''poplar tree'' ||'''posalfeb'''....''catlin'' ||
|-
| '''befab'''....''birch tree'' || '''befeb'''....''samara'' ||
|-
| '''ulfab'''....''elm tree'' || '''ulfeb'''....''samara'' ||
|-
| '''acfab'''....''maple tree'' || || '''acfyel'''....''maple syrup''
|-
| '''ralufab'''....''almond tree'' || '''amprurofeb'''....''almond'' ||
|-
| '''okanfab'''....''cashew tree'' || '''okanfeb'''....''cashew'' ||
|-
| '''mananfab'''....''mango tree'' || '''mananfeb'''....''mango'' || '''mananfel'''....''mango juice''
|-
! BUSH/VINE !! BERRY/BEAN !! EDIBLE PRODUCT
|-
| '''tefayb'''....''tea'' || '''tefayeb'''....''tea leaf''|| '''tefayl'''....''tea''
|-
| '''koffayb'''....''coffee plant'' || '''koffeyb'''....''coffee bean''|| '''koffeyl'''....''coffee''
|-
| '''nirigrofayb'''....''blackcurrant bush'' || '''nirigrofeyb'''....''blackcurrant'' || '''nirigrofeyl'''....''cassis''
|-
| '''frarofayb'''....''strawberry bush'' || '''frarofeyb'''....''strawberry'' || '''frarofeyl'''....''strawberry juice''
|-
| '''rurigrofayb'''....''redcurrant bush'' || '''rurigrofeyb'''....''redcurrant'' ||
|-
| '''pipfayb'''....''pepper vine'' || '''pipfeyb'''....''peppercorn''||'''pipfol'''....''pepper''
|- style="vertical-align: top"
| '''vifayb'''....''grapevine'' || style="vertical-align: top"|'''vifeyb'''....''grape''|| style="vertical-align: top"|'''vifel'''....''grape juice''<br>'''vifil'''....''wine''<br>'''vifyeyl'''....''grape jelly''<br>'''vifyel'''....''grape jam''
|-
| || style="vertical-align: top"|'''vifayeb'''....''ivy (leaf)'' ||
|-
| '''alrurofayb'''....''blackberry vine'' || '''alrurofeyb'''....''blackberry'' || '''alrurofyel'''....''blackberry jam''
|}
{{small/end}}
==== FIB Words ====
: The word '''fib''' means ''tree trunk'' and has parallels with '''tib''' (''human body trunk'') and '''vib'''....''stem''.
==== FUB Words ====
:* '''fub'''....''branch''
::* '''fubog'''....''switch''
::* '''fubes'''....''twig''
::* '''fubuj'''....''snag''
::* '''fubyan'''....''brushwood''
::* '''fubnyan'''....''fascile, bundle''
::* '''fubxer'''....''to branch out, to ramify''
:::* '''fubxen'''....''ramification''
==== FYOB Words ====
:* '''fyob'''....''root''
::* '''fyoba'''....''radical''
::* '''fyobober'''....''to eradicate, to uproot, to deracinate''
::* '''fyobes'''....''radicule''
::* '''fyobser'''....''to take root''
: Note: The word '''fyoyab''' means ''tree stump'' ("foot of the tree").
=== '''JOB''' ''time'' ===
: Here are the most important derivatives of the baseword '''job'''....''time''. Bear in mind that, in English, there are two meanings for ''time''. One refers to time as it passes, which is translated by '''job''' in Mirad, and the other refers to a ''point in time'', an ''instance'' or ''occasion'', i.e. a countable noun concerning frequency, translated by '''jod''' in Mirad.
==== Calendar Time Units ====
[[File:Calendar (specific day).jpg|thumb|]]
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Calendar Time Units
|-
! TIME !! GEOLOGIC<br>PERIODS !! SEASONS !! MONTHS !! DAYS OF THE WEEK
|-
| '''job'''....''time'' || '''joab'''....''eon'' || '''jeab'''....''spring'' || '''jiab'''....''January'' || '''juab'''....''Monday''
|-
| '''jab'''....''year'' || '''joeb'''....''era'' || '''jeeb'''....''summer'' || '''jieb'''....''February'' || '''jueb'''....''Tuesday''
|-
| '''jeb'''....''season'' || '''joib'''....''period'' || '''jeib'''....''autumn'' || '''jiib'''....''March'' || '''juib'''....''Wednesday''
|-
| '''jib'''....''month'' || '''joub'''....''epoch'' || '''jeub'''....''winter'' || '''jiub'''....''April'' || '''juub'''....''Thursday''
|-
| '''jub'''....''day'' || '''joyob'''....''age'' || || '''jiyob'''....''May'' || '''juyob'''....''Friday''
|-
| '''jwob'''* ''hour'' ||'''joyab'''....''chron'' || || '''jiyab'''....''June'' || '''yuyab'''....''Saturday''
|-
| '''jwab'''* ''minute''<br>'''jwap'''....''moment'' ||'''joyeb'''....''term'' || || '''jiyeb'''....''July'' || '''juyeb'''....''Sunday''
|-
| '''jweb'''* ''second''<br>'''jwep'''....''instant'' || || || '''jiyib'''....''August'' ||
|-
| || || || '''jiyub'''....''September'' ||
|-
| || || || '''jilob'''....''October'' ||
|-
| || || || '''jilab'''....''November'' ||
|-
| || || || '''jileb'''....''December'' ||
|}
{{small/end}}
: Other calendar units:
:* '''yejub'''....''week'' (< '''ye'''....''seven'' + '''jub'''....''day'')
:* '''yajib'''....''semester'' (< '''ya'''....''six'' + '''jib'''....''month''
:* '''lojab'''....''decade'' (< '''alo'''....''ten'' + '''jab'''....''year'')
:* '''sojab'''....''century'' (< '''aso'''....''hundred'' + '''jab'''....''year'')
:* '''rojab'''....''millennium'' (< '''aro'''....''thousand'' + '''jab'''....''year'')
:* '''hyajob'''....''eternity'' (< '''hya'''....''all'' + '''job'''....''time'')
:* '''hyouj'''....''infinity'' (< '''hyo'''....''no'' + '''uj'''....''end'')
: *These would normally be '''jyob''', '''jyab''', and '''jyeb''', but there are hard to pronounce and difficult to hear, so the '''y''' is replaced by a '''w'''.
==== Clock Time ====
: The units of clock times are:
:* '''jwob'''....''hour'' (thus: '''jwobar'''....''clock''
:* '''jwab'''....''minute''
:* '''jweb'''....''second''
::[[File:Church clock, Evercreech - geograph.org.uk - 2280831.jpg|thumb]]
: The following examples show how to express clock time:
::* '''<u>Duhojwob se</u>?'''....''<u>What time is it</u>?''
::* '''Se <u>alo jwobi</u> JaZ (=jazemaj).'''....''It is <u>ten o'clock</u> A.M.''
::* '''Se uwa jwobi <u>JoZ</u> (=jozemaj).'''....''It is four o'clock <u>P.M.</u>''
::* '''Se yawa <u>jwobi gab ilo</u>.'''....''It is <u>six thirty</u>. (= plus thirty)''
::* '''Se alo (jwebi) ju yiwa.'''....''It is ten (minutes) til eight.'' (or:)
::* '''Se yiwa (jwobi) gab alo.'''.... " " "
::* '''Se <u>uyn ji</u> awa.'''....''It is <u>a quarter past</u> ( = since) one.''
::* '''Se <u>uyn ju</u> ewa.'''....''It is <u>a quarter til</u> ( = until) two.''
::* '''Se go <u>jo</u> ewa.'''....''It is a little <u>past</u> ( = after) two.''
::* '''Se <u>jubay</u> uwa jwabi.'''....''It is <u>almost</u> 4 o'clock.''
::* '''Se <u>gwe</u> zemaj.'''....''It is <u>exactly</u> (= just) noon.''
::* '''Se <u>go yiz</u> zemoj.'''....''It was <u>slightly past</u> (= beyond) midnight.''
::* '''At so hum <u>ojo</u> ale jwobi.'''....''I'll be there <u>in</u> (= not-after) twelve minutes.''
::* '''Su him <u>jwa</u> / jwe!'''....''Be here <u>early</u> / on time!''
::* '''Von su <u>jwo</u>!'''....''Don't be <u>late</u>!''
::* '''Su him <u>ojo</u> zemoj.'''....''Be here <u>by (= not-after)</u> midnight.''
==== General Time Words ====
{{small/top}}
{| class="wikitable" style="background:lightyellow"
|+ General Time Words
|-
! GENERAL TIME WORDS !! EXAMPLES
|-
| '''job'''....''time'' || '''job bi uvan'''....''a time of sadness''<br>'''Job pape.'''....''Time flies.''
|-
| '''jod'''....''time, instance, occasion'' || '''awa jod'''....''once'' (or) '''ajod'''<br>'''ewa jodi''' (or) '''ejodi'''....''two times''<br>'''gawa jod''' (or) '''gajod'''....''again, another time''
|-
| '''xag'''....''frequency'' || '''Duhoxag?'''....''How often?''<br>'''glaxag'''....''very often''<br>'''hyoxag'''....''never''
|-
| '''jud'''....''date'' || '''Be duhoa jud?'''....''On what date?''<br>'''be ga jwoa jud'''....''at a later date''
|-
| '''jag'''....''age'' || '''Et se duhojaga?'''....''How old are you?''<br>'''At se ulo jaga.'''....''I am forty years old. (Lit: forty of age)''
|}
{{small/end}}
==== Some Parallel Time Terms ====
{{small/top}}
{| class="wikitable" style="background:lightyellow"
|+ Parallel Time Words
|-
| '''taj'''<br>''birth'' || '''aj'''<br>''past'' || '''ajna'''<br>''former, old''|| '''ajoba'''<br>''ancient'' || '''ja'''<br>''before'' || '''jay'''<br>''already'' ||'''jana'''<br>''previous'' || '''jaga'''<br>''old'' || '''jwa'''<br>''early'' || '''jwafa'''<br>''raw''||'''jwaga'''<br>''premature, green''
|-
| '''tej'''<br>''life'' || '''ej'''<br>''present'' || '''ejna'''<br>''new''|| '''ejoba'''<br>''modern'' || '''je'''<br>''during'' || '''jey'''<br>''meanwhile'' || '''jena'''<br>''current'' || ||'''jwe'''<br>''on time'' || '''jwefa'''<br>''fresh''||'''jwega'''<br>''ripe''
|-
| '''toj'''<br>''death'' || '''oj'''<br>''future'' || '''ojna'''<br>''imminent''|| '''ojoba'''<br>''futuristic'' || '''jo'''<br>''after'' || '''joy'''<br>''afterwards'' || '''jona'''<br>''next'' || '''joga'''<br>''young'' || '''jwo'''<br>''late'' || '''jwofa'''<br>''stale''||'''jwoga'''<br>''mature''
|-
| '''tij'''<br>''wakefulness'' || '''ij'''<br>''beginning'' || '''ijna'''<br>''initial''|| '''ijob'''<br>''early times'' || '''ji'''<br>''since'' || || || '''jiga'''<br>''fresh, vibrant'' || || ||
|-
| '''tuj'''<br>''sleep'' || '''uj'''<br>''end'' || '''ujna'''<br>''final''|| '''ujob'''<br>''latter days'' || '''ju'''<br>''until'' || || || '''juga'''<br>''tired, jaded'' || || ||
|}
{{small/end}}
==== JAB (''year'') Words ====
: The root word '''jab''' means ''year''. Here are some words derived from it:
:* '''ajabat'''....''freshman''
:* '''ejabat'''....''sophomore''
:* '''gawyanapa jab'''....''leap year, bissextile year''
:* '''esojab'''....''bicentenary''
::* '''esojaba'''....''bicentennial''
:* '''eynjab'''....''half a year''
::* '''eynjabay'''....''semiannually''
:* '''donasa jab'''....''fiscal year''
:* '''hijab'''....''this year''
:* '''hujab'''....''that year''
:* '''hyajab'''....''every year''
:* '''ijab'''....''triennial''
:* '''Jabij Zomoj'''....''New Year's Eve''
:* '''jabzyus'''....''anniversary''
:* '''lojab'''....''decade''
:* '''manjab'''....''lightyear''
:* '''rojab'''....''millennium''
:* '''sojab'''....''century''
:* '''ujab'''....''quadrennium''
:* '''uynjab'''....''quarter''
::* '''uynjaba'''....''quarterly''
:* '''vijab'''....''vintage year''
:* '''yejab'''....''sabbatical''
:* '''yojab'''....''lustrum''
:* '''yolojab'''....''jubilee''
:* '''zajab'''....''next year''
:* '''zejab'''....''midyear''
:* '''zojab'''....''last year, yesteryear''
==== JEB (''season'') Words ====
: The root word '''jeb''' means season. The four seasons are:
::* '''jeab'''....''spring''
::* '''jeeb'''....''summer''
::* '''jeib'''....''autumn''
::* '''jeub'''....''winter''
: Here are some derivations:
:* '''jeb'''....''season''
::* '''jeba'''....''seasonal''
::* '''jebmalyen'''....''climate''
:::* '''jebalyenxer'''....''to acclimatize''
:::* '''jebmalyentun'''....''climatology''
::* '''jebmamil'''....''monsoon''
::* '''jebtam'''....''lodge''
::* '''jebyuxut'''....''seasoner''
::* '''ivjeb'''....''honeymoon''
::* '''ojeba'''....''nonseasonal, unseasonable''
::* '''taadxen jeb'''....''mating season''
::* '''Tayalofjeb'''....''Lent''
::* '''vyajeba'''....''seasonable''
::* '''vyojeba'''....''unseasonable''
::* '''vobiblen jeb'''....''harvest season''
::* '''zajeb'''....''next season''
::* '''zojeb'''....''last season''
:* '''jeab'''....''spring, springtime''
::* '''jeaba'''....''vernal''
::* '''jeabyim'''....''freshet''
:* '''jeeb'''....''summer, summertime''
::* '''jeeb ifpopem'''....''summer resort''
::* '''jeeb maar yibnod'''....''summer solstice''
::* '''jeeb tistam'''....''summer school''
::* '''jeeba''''....''estival''
:::* '''jeeba teaput'''....''summer visitor''
::* '''jeeber'''....''to estivate, to summer''
::* '''jeebfabyan'''....''greenwood''
::* '''jeebtam'''....''dacha, summerhouse''
::* '''jeebyena'''....''summery''
::* '''zejeeb'''....''midsummer''
:* '''jeib'''....''autumn, fall''
::* '''jeiba'''....''autumnal''
:* '''jeub'''....''winter''
::* '''jeper ha jeub'''....''overwinter''
::* '''jeub amar yibnod'''....''winter solstice''
::* '''jeuba'''....''hibernal, wintry''
:* '''jeuber'''....''to winter''
::* '''jeubjob'''....''wintertime''
::* '''jeubtuj'''....''dormancy, hibernation, torpor, winter sleep''
:::* '''jeubtujer'''....''to hibernate''
::* '''jeubxer'''....''winterize''
::* '''jeubyena'''....''wintry, hibernal''
::* '''zejeub'''....''midwinter''
==== JIB (''month'') Words ====
: The root word '''jib''' means month. The twelve months are derived by inserting an ordinal vowel. Note that month names are not capitalized in Mirad.
::* '''jiab'''....''January''
::* '''jieb'''....''February''
::* '''jiib'''....''March''
::* '''jiub'''....''April''
::* '''jiyob'''....''May''
::* '''jiyab'''....''June''
::* '''jiyeb'''....''July''
::* '''jiyib'''....''August''
::* '''jiyub'''....''September''
::* '''jilob'''....''October''
::* '''jilab'''....''November''
::* '''jileb'''....''December''
: Here are some derivations of '''jib''':
:* '''jib'''....''month''
::* '''jiba'''....''mensual, monthly''
::* '''jibdrurun'''....''monthly review''
::* '''jibiler'''....''menstruate''
::* '''jibjesea''' (or) '''jibyaga'''....''month-long''
::* '''enjiba'''....''bimonthly''
::* '''eynjiba'''....''semimonthly''
::* '''hijib'''....''this month''
::* '''hyajiba'''....''monthly''
::* '''ijib'''....''trimester''
::* '''yajib'''....''semester''
::* '''zajib'''....''next month''
::* '''zojib'''....''last month''
==== JUB (''day'') Words ====
: The root word '''jub''' means ''day''. The days of the week are formed by inserting ordinal vowels. Note that the first day is Monday and that the days of the week in Mirad are not capitalized.
::* '''juab'''....''Monday''
::* '''jueb'''....''Tuesday''
::* '''juib'''....''Wednesday''
::* '''juub'''....''Thursday''
::* '''juyob'''....''Friday''
::* '''juyab'''....''Saturday''
::* '''juyeb'''....''Sunday''
Some words derived from '''jub''' include:
::* '''zajub'''....''yesterday''
::* '''hijub'''....''today''
::* '''zojub'''....''tomorrow''
::* '''hyajub'''....''every day''
::* '''hejub'''....''some day''
::* '''fyajub'''....''feast day''
::* '''yejub'''....''week''
::* '''ponjub'''....''holiday''
::* '''tajjub'''....''birthday''
==== JWOB (''hour'') Words ====
: The root word '''jwob''' meaning ''hour'' should be spelled '''jyob''', but the distinction between '''job''' and '''jyob''' is difficult to hear and so '''y''' is replaced with '''w'''.
: '''Jwob''' is used for ''time'' when referring to ''clock time.''
::* '''Duhojwob se?'''....''What time is it?''
::* '''Se ewa jwobi.'''....''It's two o'clock.''
: '''Jwob''' forms words for time pieces:
::* '''jwobar'''....''watch, time piece''
:::* '''tuyafyem jwobar'''....''pocket watch''
:::* '''tuyob jwobar'''....''wrist watch''
:::* '''nagden jwobar'''....''stopwatch''
::* '''jwobir'''....''clock''
:::* '''mas jwobir'''....''wall clock''
:::* '''kukupat jwobir'''....''cuckoo clock''
:::* '''jwatuar jwobir'''....''alarm clock''
::* '''jwobur'''....''grandfather clock''
:::* '''byoskyin jwobur'''....''pendulum clock''
:::* '''jwobur yabtom'''....''clock tower''
: Here are some notable ''hours'':
::* '''ginod jwob'''....''rush hour''
::* '''iva jwob'''....''happy hour''
::* '''manyujben jwob'''....''curfew''
::* '''pien jwob'''....''departure time''
::* '''puen jwob'''....''arrival time''
::* '''toj jwob'''....''time of death''
::* '''tyal jwob'''....''mealtime''
::* '''yanup jwob'''....''appointment, rendez-vous''
::* '''pon jwob'''....''recess, break''
==== JWAB (''minute'') Words ====
: The root word '''jwab''' means ''minute''. The variant '''jwap''' means ''moment.'' Here are some derivatives:
:* '''jwab'''....''minute''
::* '''jwabdar'''....''minute hand''
::* '''jwabsagder'''...''to clock, to count down the minutes, to time''
::* '''jwap'''....''moment''
:::* '''jwapa'''....''momentary''
:::* '''hijwap'''....''at this moment''
:::* '''hujwap'''....''at that moment''
:::* '''huujwap'''....''at such a moment''
:::* '''duhojwap?'''....''at what moment?''
:::* '''hejwapi'''....''at certain moments''
:::* '''hyejwap'''....''at any moment''
:::* '''igefjwap'''....''critical moment''
==== JWEB (''second'') Words ====
: The root word '''jweb''' means ''second, a second of time''. The variant '''jwep''' means ''instant''. Here are some derivatives:
:* '''jweb'''....''second''
::* '''jwebdar'''....''second hand''
::* '''amloynjweb'''....''microsecond''
::* '''aroynjweb'''....''millisecond''
::* '''goralyujweb'''....''attosecond''
::* '''goryujweb'''....''nanosecond''
::* '''golwa jweb'''....''jiffy, split second''
:* '''jwep'''....''instant, jiff, jiffy''
::* '''jwepa'''....''instantaneous''
::* '''jwepay'''....''instantaneously, instanter, instantly''
::* '''be jwep'''....''in an instant''
::* '''jwepa ikxen'''....''instant gratification''
::* '''jwepa kafeyl'''....''instant coffee''
::* '''jwepa yegekun'''....''instant replay''
==== JOD (''occasion'') Words ====
: The root word '''jod''' means ''occasion, instance, (point in) time''.
: The following words of frequency use '''jod''':
::* '''ajod'''....''once''
::* '''ejodi'''....''twice''
::* '''ijodi'''....''thrice, three time''
::* '''duhogla jodi?'''....''how many times''
::* '''be gla jodi'''....''many times, on many occasions''
::* '''be glo jodi'''....''seldom, at few times''
::* '''glajoda'''....''frequent''
::* '''aajoda'''....''first-time''
:::* '''aajodat'''....''first-timer''
::* '''ajoda kyes'''....''one-time event''
::* '''gajod''' (or) '''gawa jod'''....''again''
::* '''hijod'''....''this time''
::* '''zajod'''....''next time''
::* '''zojod'''....''last time''
::* '''av ha ujna jod'''....''for the last time''
::* '''hyojod'''....''never, not once''
::* '''hejodi'''....''sometimes''
::* '''hyajodi'''....''always''
::* '''huijoda'''....''sporadic''
::* '''vaodjod'''....''critical time''
::* '''fyasana jod'''....''solemn occasion''
==== JUD (''date'') Words ====
: The root word '''jud''' means ''date (on a calendar)''. Here are some derivatives:
:* '''balsiyner ha jud'''....''stamp the date''
:* '''jabjud'''....''anniversary''
:* '''judar'''....''calendar''
::* '''judarer'''....''to put on the calendar, schedule''
::* '''judarober'''....''call off, cancel''
::* '''ojudarwa'''....''unscheduled''
:* '''judnabyan'''....''date range''
:* '''judnad'''....''dateline''
:* '''judraf'''....''calendar, date chart''
:* '''judrer'''....''to date''
::* '''judrawa'''....''dated''
:::* '''ojudrawa'''....''undated''
::* '''gawjudrer'''....''to reschedule''
::* '''jajudrer'''....''to antedate, to predate''
::* '''jojudrer'''....''to postdate, to prorogue''
::* '''zoyjudrer'''....''to backdate''
::* '''lojudrer'''....''to cancel, to nix''
:* '''judroer'''....''erase from the calendar, cancel''
:* '''nyuxen jud'''....''delivery date, delivery date''
:* '''tajjud'''....''date of birth''
:* '''ujjud'''....''deadline, end date''
==== B.C. and A.D. ====
: Mirad uses a less Christian-centric notation comparable to ''CE (Common Era)'' and ''BCE (Before the Common Era)'':
: These are represented in Mirad by '''EJ (bi ha Eja Joeb)''' (''of the Current Era'') and '''JaEJ (ja ha Eja Joeb)''' (''Before the Current Era''), respectively. For example:
::* '''His kyesa be 52 EJ.'''....''This happened in 52 BC (=BCE)''
::* '''Ha mir ujo be 3000 jaEJ.'''....''The world will end in 3000 AD. (=CE)''
=== '''JAG''' ''age'', '''SAG''' ''number'', '''XAG''' ''frequency'' ===
: The words in this family have to do with age, number,and frequency.
==== JAG and JOG- Words ====
[[File:Nowruz 2017 in Bisaran, Kurdistan province.jpg|thumb|]]
: The morpheme '''jag''' means ''age''. From this are derived the two main adjectives, '''jaga'''....''old'' and '''joga'''....''young''. These words contain '''aga''' and '''oga''' plus the time element '''j'''. So, old means ''big in terms of time'' and young means ''little in terms of time''. Here are some derived words:
:* '''jag'''....''age''
::* '''jaga'''....''old''
:::* '''jagat'''....''old person, elder''
::::* '''jagwat'''....''old man''
::::* '''jagayt'''....''old woman''
::* '''jagser'''....''get old, grow older''
:::* '''jagsea'''....''getting old''
:::* '''gajaga'''....''elder, older, senior''
::::* '''gajagat'''....''elder''
::* '''gwajaga'''....''eldest''
:::* '''gwajagat'''....''eldest''
::* '''grajaga'''....''too old''
:::* '''grejagat, jwot'''....''adult''
:::* '''grejagseat, jwotseat, agseat, jwet'''....''adolescent''
::* '''grojaga'''....''too young, minor, not old enough''
:::* '''grojagat, jwat'''....''minor, underaged person''
::* '''aloynjagat'''....''teenager''
::* '''elojagat'''....''twenty-year-old''
:::* '''eloynjagat'''....''a twenty-something-year-old''
:* '''joga'''....''young''
::* '''jogxer'''....''to rejuvenate'' (tr.)
::* '''jogser'''....''to rejuvenate'' (intr.)
::* '''jogat'''....''youth, youngster, juvenile''
:::* '''jogwat'''....''male youth, boy, lad''
:::* '''jogayt'''....''female youth, girl''
::* '''gwajoga'''....''youngest''
:::* '''gwajogat'''....''cadet, youngest one''
::* '''grajoga'''....''too young''
::* '''zejaga'''....''middle-aged''
:::* '''zejagat'''....''middle-aged person''
==== Age Classes ====
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Age Classes
! GENDER-NONSPECIFIC (MALE) !! FEMALE
|-
| '''ajag(w)at'''....''one-year-old (boy)''||'''ajagayt'''....''one-year-old girl''
|-
| '''alojag(w)at'''....''ten-year-old (boy)''||'''alojagayt'''....''ten-year-old girl''
|-
| '''jog(w)at'''....''youngster, youth, (boy)'' || '''jogayt'''....''girl, damsel''
|-
| '''gwajog(w)at'''....''youngest person/(boy)'' || '''gwajogayt'''....''youngest girl''
|-
| '''gojag(w)at'''....''younger person/(boy), cadet'' || '''gojagayt'''....''younger girl''
|-
| '''aloyjag(w)at'''....''teenager, (teenaged boy)'' || '''aloyjagayt'''....''teenaged girl''
|-
| '''grajog(w)at'''....''minor, (under-aged boy)'' || '''grajogayt'''....''minor female, girl too young''
|-
| '''grojag(w)at''' / '''jwot'''....''minor, immature person/(boy)''||'''grojagayt''' / '''jwoyt'''....''minor girl''
|-
| '''grejagseat''' / '''jwet'''....''adolescent (boy)'' || '''grejagseayt''' / '''jweyt'''....''adolescent (girl)''
|-
| '''grejag(w)at''' / '''jwat'''....''adult male, (boy of age)'' || '''grejagayt''' / '''jwayt'''....''adult female, girl of age''
|-
| '''zejag(w)at'''....''middle-aged person/(man)'' || '''zejagayt'''....''middle-aged female/woman''
|-
| '''gajag(w)at'''....''older person/(man), elder, superior''||'''gajagayt'''....''older female/woman, elder, superior''
|-
| '''grajag(w)at'''....''over-aged person/(man), person/(man too old)'' || '''grajagayt'''....''over-aged female/woman, woman too old''
|-
| '''jayg(w)at'''....''youngish individual, youngish (man)'' || '''jaygayt'''....''youngish female, youngish woman''
|-
| '''yilojag(w)at'''....''octogenarian'' || '''yilojagayt'''....''octogenarian woman, woman in her eighties''
|-
| '''yulojag(w)at'''....''nonagenarian'' || '''yulojagayt'''....''nonagenarian woman, woman in her nineties''
|-
| '''asojag(w)at'''....''centenarian'' || '''asojagayt'''....''centenarian woman, 100-year-old woman''
|-
| '''jag(w)at'''....''oldster, veteran, old person, (old man), elder'' || '''jagayt'''....''old woman, old lady''
|-
| '''jayg(w)at'''....''oldish person''|||'''jaygayt'''....''oldish woman''
|-
| '''gwajag(w)at'''....''oldest/senior-most/eldest person/(man)'' ||'''gwajagayt'''....''oldest/senior-most/eldest woman''
|-
| '''gwojag(w)at'''....''the least old person/(man)'' || '''gwojagayt'''....''the least old woman''
|}
{{small/end}}
==== Age Questions and Answers ====
: The usual question about age is '''Duhojaga et se?'''....''How old are you?''
: Some usual responses are:
:* '''At se elo jaga.'''....''I am twenty years old.'' (Lit: I am twenty of age.)
:* '''At se ili (jabi jaga).'''....''I am thirty-three (years old).''
:* '''Hia tamaz se asoni bi jabi jaga.'''....''This castle is hundreds of years old.''
:* '''Hua tajyat se anay ewa jubi jaga.'''....''That baby is only two days old.''
:* '''Iyt voy se ga jaga vyel at.'''....''She is not older than I.''
:* '''At se gwajagat bi ata tod.'''....''I am the eldest of my family.''
:* '''Hya aloynjagati aso grejagseati.'''....''All teenagers will become adolescents.''
:* '''Duhogla jubi jaga se hia tud?'''....''How many days old is this child?''
==== SAG, SYAG Words ====
: The word '''sag''' means ''number'' and '''syag''' means ''calculation''. Here are some derivative words:
::* '''sag'''....''number, count''
:::* '''saga'''....''numeric''
:::* '''sagder'''....''to count, to enumerate''
:::* '''zesag'''....''average''
:::* '''sagdyun'''....''numeral''
:::* '''sagun'''....''digit''
:::* '''aynsag'''....''integer''
:::* '''vyesag'''....''ratio, quota''
:::* '''kosag'''....''cipher''
:::* '''golsag'''....''fraction''
:::* '''sagtun'''....''arithmetic''
::::*'''asagtun'''....''mathematics''
::::*'''esagtun'''....''algebra''
::::*'''isagtun'''....''trigonometry''
::::*'''usagtun'''....''calculus''
::::*'''eksag'''....''score''
:::::*'''geeksag'''....''tie''
:::*'''sagtuin'''....''numerology''
:::*'''sagtuun'''....''statistic''
::* '''syag'''....''calculation, computation''
:::* '''syagyofwa'''....''incalculable''
:::* '''syager'''....''to calculate, to compute''
:::* '''syagar'''....''calculator''
:::* '''syagir'''....''computer''
==== XAG Words ====
: The morpheme '''xag''' means ''frequency'' and is used in the following ways:
* As a frequency enumerator adverb:
:* '''oxag'''....''never''
:* '''axag'''....''once''
:* '''exag'''....''twice''
:* '''ixag'''....''thrice''
* As an adverb with the '''ga-/ge-/go-''' multiplicator prefixes:
::* '''glaxag'''....''often, multiple times''
::* '''gloxag'''....''seldom''
::* '''gaxag vyel...'''....''more often than...''
::* '''graxag'''....''too often''
::* '''gwaxag'''....''as often as possible''
::* '''gexag vyel...'''....''as often as...''
* As an adverb with the '''ho-''' deictic prefixes:
::* '''duhoxag?'''....''how often?''
::* '''hixag'''....''this often''
::* '''huxag'''....''that often''
::* '''huuxag van...'''....''so often that...''
::* '''hyixag vyel...'''....''as often as...''
::* '''hyoxag'''....''never''
* As an adjective:
::* '''glaxaga'''....''frequent''
::* '''xaga'''....''frequentative''
* As a verb:
::* '''xagper'''....''to frequent''
* As a noun:
::* '''ha xag'''....''the frequency''
=== '''MAF''' ''cloud'', '''MAV''' ''flame'', '''MOV''' ''smoke'' ===
: The root word '''maf''' means ''cloud''. The diminutive '''mayf''' means ''puff''.
==== Types of Clouds ====
[[File:Clouds in Russia. img 517.jpg|thumb|]]
: The words for different types of clouds are produced by internal vowel ordination:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Types of Clouds
|-
! '''maf'''....''cloud''
|-
| '''maaf'''....''stratus''
|-
| '''maef'''....''nimbostratus''
|-
| '''maif'''....''cumulus''
|-
| '''mauf'''....''cumulonimbus''
|-
| '''mayof'''....''stratocumulus''
|-
| '''mayaf'''....''allocumulus''
|-
| '''mayef'''....''allostratus''
|-
| '''mayif'''....''cirrocumulus''
|-
| '''mayuf'''....''cirrostratus''
|-
| '''malof'''....''cirrus''
|}
{{small/end}}
==== MAF Words ====
The word '''maf''' means ''cloud''. Here some derived words:
:* '''maf'''....''cloud''
::* '''marmaf'''....''galaxy''
:::* '''ebmarmafa'''....''intergalactic''
::** '''Amarmaf'''....''Milky Way''
::* '''mafika'''....''cloudy, turbid''
::* '''mafuka'''....''cloudless''
::* '''mafseux'''....''poof''
::* '''mafuka'''....''cloudless''
::* '''mafxer'''....''becloud, cloud, obfuscate''
:::* '''mafser'''....''cloud over''
:::* '''mafxwan'''....''obscurity''
::* '''mameux maf'''....''thunder cloud, thundercloud''
::* '''mamilmaf'''....''rain cloud''
::* '''mapilmaf'''....''storm cloud''
::* '''mayf'''....''puff, nebula''
:::* '''mayfxer'''....''to puff''
:::* '''movmayf'''....''puff of smoke''
:::* '''momaf'''....''nebula''
::::* '''mayla momayf'''....''gaseous nebula''
:::* '''uvmaf'''....''pall''
::* '''yagnyan bi mafi'''....''bank of clouds''
::* '''yoba maf'''....''low cloud''
::* '''zomaf'''....''contrail''
==== MAV Words ====
: The root word '''mav''' means ''flame''. Here are some derived words:
:* '''mav'''....''flame''
::* '''dopmavyel'''....''napalm''
::* '''igmav'''....''flare''
:::* '''igmavser'''....''flare up'' (intr.)
:::* '''igmavxer'''....''cause to flare up, inflame'' (tr.)
:* '''magalmavxar'''....''carburator''
::* '''mavar'''....''torch''
:::* '''mavarbelut'''....''torchbearer''
:* '''mavig'''....''spark, flash''
::* '''mavigar adopar'''....''flintlock, fusee''
::* '''mavigar'''....''flint''
::* '''mavigeser'''....''sparkle''
:::* '''mavigesar'''....''sparkler''
::* '''mavigser'''....''spark'' (intr.)
::* '''mavigxer'''....''spark'' (tr.)
::* '''mavjwatuar'''....''fusee''
:* '''mavpuxar'''....''blowtorch, flame-thrower, flamethrower''
:* '''mavser'''....''become inflamed, flame, flare up, go up in flames''
::* '''mavsea'''....''aflame, flamboyant, flaming''
::* '''mavsyafa'''....''flammable''
::* '''mavsyofwa'''....''nonflammable''
::* '''mavsyukwa'''....''fiery''
:* '''mavugxul'''....''flame-retardant''
:* '''mavvaka'''....''flameproof''
:* '''mavxer'''....''inflame''
::* '''mavxwa'''....''inflamed''
::* '''mavxyea'''....''inflammatory''
:* '''ovmavxenul'''....''cortisone''
:* '''tayibmavxen'''....''neuritis''
:* '''zoymav'''....''flashback''
==== MOV Words ====
: The root word '''mov''' means ''smoke''. Here are some derived words:
:* '''mov'''....''smoke, fume''
::* '''movier'''....''to smoke'' (a cigar, etc.)
:::* '''movien'''....''smoking''
::::* '''movienobtif'''....''tuxedo''
::::* '''movientaf'''....''dinner jacket''
::* '''movuer'''....''to fumigate, to smoke''
::* '''movim'''....''smoking den''
::* '''movmaeg'''....''cannel''
::* '''movmays'''....''smokescreen''
::* '''movukxar'''....''tail pipe, exhaust pipe''
::* '''movmufyeg'''....''smokestack, chimney''
:::* '''movmufyeg vyixut'''....''chimney sweep''
::* '''movyebnexam'''....''columbarium''
::* '''mov jwadar'''....''smoke alarm''
::* '''mov teakaxar'''....''smoke detector''
::* '''mov zomof'''....''smoke plume''
=== '''MEF''' ''brick'' '''MEV''' ''porcelain'' ===
: The root word '''mef''' means ''brick'', while '''mev''' means ''porcelain''. These base words have some sub-elements:
:* '''mef'''....''brick, block, bar''
::* '''meyf'''....''stick''
::* '''meef'''....''slab''
:* '''mev'''....''porcelain''
::* '''meav'''....''ceramic''
::* '''meev'''....''earthen ware, pottery''
::* '''meiv'''....''faience''
: Here are some words that are derived from these roots:
::* '''mef'''....''brick, block, cube, bar''
:::* '''mefyan'''....''brickwork''
:::* '''mefber'''....''to lay brick''
::::* '''mefben'''....''bricklaying''
::::* '''mefbut'''....''bricklayer''
:::* '''aulk mef'''....''gold bar''
:::* '''faomef'''....''nog''
:::* '''feelkmef'''....''anvil, stithy''
:::* '''dresizmef'''....''stele''
:::* '''magmef'''....''firebrick''
::::* '''magmef-alza'''....''firebrick-red''
:::* '''mugmef'''....''bar, ingot''
:::* '''vabmef'''....''sod''
::::* '''vabmefber'''....''sod''
:::* '''mepmef'''....''paver, paving block''
:::* '''zunilkmef'''....''spelter''
:::* '''zyimef'''....''flagstone''
::* '''mefmas'''....''brick wall''
::* '''mefsan'''....''slab, brick shape''
::* '''mefsaxam'''....''brick factory''
:::* '''mefag'''....''block''
::::* '''yommefag'''....''ice block''
:::* '''moges mefag'''....''cinder block''
::* '''mefyig'''....''clinker''
::* '''abmef'''....''tile''
:::* '''abmefber'''....''to lay tile''
::::* '''abmefbut'''....''tile-layer''
:::* '''abmefsin'''....''mosaic''
:::* '''abmefyan'''....''tile work, tile-work''
:::* '''abmefyena'''....''tegular''
::* '''ebmefxer'''....''to imbricate''
::* '''meyf'''....''bar, stick, briquet''
:::* '''meyf bi vyixyel'''....''bar of soap''
:::* '''katefyelmeyf'''....''brownie''
:::* '''maegmeyf'''....''briquet, briquette''
:::* '''meyf bi bilyug'''....''stick of butter''
:::* '''meyf bi meyagdrar'''....''stick of chalk''
:::* '''meyf bi vyixyel mef'''....''bar of soap''
::* '''mefog'''....''cube''
::::* '''yommefog'''....''ice cube''
:::* '''mefogar'''....''dicer''
::::* '''mefogxer'''....''cube, dice''
::::* '''mefogxwa'''....''cubed, diced''
::::* '''mefogxen'''....''dicing''
::* '''meef'''....''slab''
:::* '''meef bi taol'''....''slab of meat''
::* '''mev'''....''chinaware, porcelain''
:::* '''meva'''....''made of porcelain, of porcelain''
:::* '''Delft meevyan'''....''delftware''
:::* '''meav'''....''ceramic''
::::* '''meava'''....''ceramic, made of ceramic''
::::* '''meavgon'''....''potsherd''
::::* '''meavsaxut'''....''ceramicist, ceramist''
::::* '''meavun'''....''ceramic item''
::::* '''meavut'''....''ceramicist, ceramist''
::::* '''meavzyeb'''....''crocker''
:::::* '''meavzyebyan'''....''crockery''
:::* '''meev'''....''earthenware, pottery''
::::* '''meevun'''....''piece of pottery''
::::* '''meevut'''....''potter''
::::* '''meevyan'''....''pottery''
:::* '''meiv'''....''faience''
::::* '''zyefmeav'''....''glass ceramic''
=== '''MAG''' ''fire'', '''MAK''' ''electricity'', '''MOG''' ''ash'' ===
:* '''mag'''....''fire''
:* '''mak'''....''electricity''
:* '''mog'''....''ash''
==== MAG Words ====
:* '''mag'''....''fire''
::* '''magxer'''....''to burn''
:::* '''gyomagxer'''....''to braze''
:* '''magyel'''....''oil''
::* '''magyeler'''....''to fry''
:::* '''igmagyeler'''....''to sautee''
:* '''magler'''....''to roast''
::* '''abmagler'''....''to grill''
::* '''balmagler'''....''to pressure cook''
:* '''mageler'''....''to cook''
::* '''ummageler'''....''to bake''
::* '''yijmageler'''....''to broil''
::* '''izmageler'''....''to sear''
:* '''magiler'''....''to boil''
::* '''eynmagiler'''....''to parboil''
:* '''maeg'''....''coal''
::* '''maegeler'''....''to charcoal, to barbecue''
::* '''maegil'''....''gasoline''
::* '''amaeg'''....''anthracite''
::* '''emaeg'''....''peat''
::* '''eymaeg'''....''coke''
::* '''fumaeg'''....''culm''
::* '''fyoalmaeg'''....''brimstone''
::* '''imaeg'''....''lignite''
::* '''movmaeg'''....''cannel''
:* '''mayg'''....''blaze''
:* '''magsul'''....''fuel''
==== MAK Words ====
: The word '''mak''' means ''electricity''. The word '''maak''' is used for words having to do with ''electronic''.
: Here are some words derived from '''mak''' (''electricity''):
:* '''mak'''....''electricity''
::* '''maka'''....''electric''
:::* '''maka azon'''....''electric power, electrical power''
:::* '''maka yexazon'''....''electric energy, electrical energy''
:::* '''maka ibzyeg'''....''electric outlet, electric socket, outlet''
:::* '''maka kaduzar'''....''electronic drum''
:::* '''maka muf'''....''electric pole''
:::* '''maak num'''....''electric cell''
:::* '''maka yuijbar'''....''electric switch''
:::* '''maka leduar'''....''electric guitar''
:::* '''maka manar'''....''electric lamp''
:::* '''maka manig'''....''electric spark''
:::* '''maka manzyuyn'''....''electric light bulb''
:::* '''maka mas ibzyeg'''....''electric wall socket''
:::* '''maka nyed'''....''electric grid, electrical grid''
:::* '''maka nyexar'''....''electric battery''
:::* '''maka nyif'''....''electric cable, electric cord, electric wire''
::::* '''maka nyifuj'''....''electric plug''
:::::* '''maka nyifujibar'''....''electric outlet, electric socket''
:::* '''maka sim'''....''electric chair''
:::* '''maka siundrof'''....''electronic signboard''
:::* '''maka sur'''....''electric engine''
:::* '''maaka syagir'''....''electronic computer''
:::* '''maaka tuunexlur'''....''electronic data processor''
:::* '''maka yafon'''....''electric power''
::::* '''maka yafonuam'''....''electric power plant''
:::* '''maka yextun'''....''electrical engineering''
::::* '''maka yextut'''....''electrical engineer''
:::* '''maka yijlar'''....''electronic key, fob''
:::* '''maka zyup'''....''electric circuit, electrical circuit''
::* '''makabraxena'''....''electrostatic''
::* '''makama'''....''electrothermal''
::* '''makxea'''....''electrifying''
::* '''makazon'''....''electric energy, electric power, electrical power''
::* '''makbixfeelk'''....''electromagnet''
:::* '''makbixfeelka'''....''electro-magnetic, electromagnetic''
::::* '''makbixfeelka pyaon'''....''electro-magnetic wave''
::* '''makebdras'''....''email, e-mail, electronic message''
:::* '''makebdrasgran'''....''spam''
::* '''makebdrer'''....''to email''
::* '''makgron'''....''brownout''
::* '''makifekam'''....''arcade''
::* '''makig'''....''spark''
:::* '''makigar'''....''spark plug, sparkplug''
:::* '''makiges'''....''sparklet''
:::* '''makigpyex'''....''jolt of electricity''
::* '''makijbar'''....''ignition switch''
::* '''makijber'''....''switch on''
::* '''makilp'''....''current, electrical current, flow of electricity''
:::* '''makilpsag'''....''amperage, ampere''
:::* '''makilpnagar'''....''ammeter''
:::* '''makilpok'''....''dropout''
::* '''makizbul'''....''electrolyte, electrolytic''
::* '''makmanar'''....''electric lamp, electric light''
:::* '''makmanarbexar'''....''electrolier''
:::* '''makmanaren'''....''electrical lighting''
::* '''makmis'''....''electrode''
:::* '''makmiseon'''....''diode''
::* '''makmufzyeg'''....''klystron''
::* '''makmugmoysber'''....''to galvanize''
::* '''makmus'''....''escalator''
::* '''maknagar'''....''electrometer''
::* '''maknaud'''....''electric beam, electric ray''
::* '''makned'''....''electrotype''
:::* '''maknedxer'''....''electroplate''
::* '''maknod'''....''blip''
::* '''maknyaxyaf'''....''capacitance''
::* '''maknyexar'''....''battery''
:::* '''maknyexar-exwa'''....''battery-operated''
:::* '''maknyexar-yafonuwa'''....''battery-powered''
:::* '''maknyif'''....''electrical cord''
::::* '''maknyifbut'''....''lineman''
::::* '''maknyifibar'''....''electrical socket''
::* '''makok'''....''blackout''
:::* '''makoker'''....''to dim, to fade''
::* '''makpana'''....''electromotive''
::* '''makpyuxrer'''....''to electrocute, shock, zap''
::* '''maksaxar'''....''electric generator''
::* '''makseux'''....''zap''
::* '''maksira'''....''electromechanical''
::* '''maksom'''....''appliance, electrical appliance''
::* '''maksur'''....''electric motor''
::* '''makteaxar'''....''electroscope''
::* '''maktyebdrar'''....''electroencephalograph''
:::* '''maktyebdras'''....''electroencephalogram''
::* '''maktiibdrar'''....''electrocardiograph''
:::* '''maktiibdras'''....''electrocardiogram''
::* '''maktojber'''....''electrocute''
::* '''makujber'''....''switch off''
::* '''makut'''....''electrician''
::* '''makuzyun'''....''solenoid''
::* '''makvaka'''....''shockproof, grounded''
:::* '''makvakxer'''....''ground''
::* '''makxer'''....''to electrify''
:::* '''makxwa'''....''electrified''
::* '''makyafon'''....''electric power''
:::* '''makyafonuam'''....''electric power plant''
:::* '''makyafonuer'''....''power with electricity''
:::* '''makyafonuwa'''....''electric-powered''
::* '''makyel'''....''amber''
::* '''makyija'''....''on''
:::* '''makyijber'''....''turn on, turn on the electricity''
:::* '''makyijbwa'''....''switched on''
::* '''makyijlar'''....''electronic key, fob''
::* '''makyuijar'''....''electric plug, electric switch, on switch, plug, switch''
:::* '''makyuijar yafonnuus'''....''switcher''
::::* '''makyuijarmes'''....''switchboard''
::::* '''makyuijaryafwa'''....''pluggable''
::* '''makyuja'''....''off''
:::* '''makyujar'''....''off switch''
:::* '''makyujber'''....''turn off, turn off the electricity''
:::* '''makyujbwa'''....''switched off''
::* '''makyuzpur'''....''streetcar''
::* '''mamak'''....''lightning''
:::* '''mamak igpyex'''....''lightning bolt''
:::* '''mamak manig'''....''lightning flash''
:::* '''mamak muf'''....''lightning rod''
:::* '''mamak yokpyex'''....''lightning bolt''
::::* '''mamaka'''....''fulgurant''
::::* '''mamakdopar'''....''blitzkrieg''
::::* '''mamaker'''....''fulgurate, strike lightning''
::::* '''mamakovar'''....''grounding, lightning rod''
::* '''manmaka'''....''photoelectric''
:::* '''manmakum'''....''photocell, photoelectric cell''
::* '''milmak'''....''hydro-electricity, hydroelectricity''
:::* '''milmaka'''....''hydro-electric, hydroelectric''
::::* '''milmaka mipovmas'''....''hydroelectric dam''
::::* '''milmaka saxam'''....''hydroelectric plant''
::::* '''milmaka yafon'''....''hydroelectric power''
::* '''oogmaaka'''....''microelectronic''
::* '''omaka'''....''nonelectric, nonelectrical''
:::* '''omakxwa'''....''off the grid, unelectrified''
:* '''pyexwer bey mamak'''....''be stricken by lightning''
:* '''ujber ha mak'''....''turn off the electricity''
::* '''balmak'''....''piezoelectricity''
:::* '''balmaka'''....''piezoelectric''
::* '''enmaka'''....''dielectric''
::* '''exea maknyif'''....''live wire, livewire''
::* '''inmakmis'''....''triode''
::* '''makilp'''....''electric current''
:::* '''iza makilp'''....''d.c., direct current''
:::* '''zaokyasea makilp'''....''a.c., a.c., alternating current''
::* '''maaka'''....''electronic''
:::* '''maaktyen'''....''electronics''
::* '''maalmak'''....''static''
:::* '''ovmaalmak'''....''antistatic''
::* '''vamakmis'''....''anode''
::* '''vomakmis'''....''cathode''
::* '''yijber ha mak'''....''turn on the electricity''
::* '''yokpyex bi mak'''....''burst of electricity''
==== MOG Words ====
: Here are some words derived from '''mog''' (''ash''):
:* '''mog'''....''ash''
::* '''faomog'''....''potash''
::* '''magmemyaza mog'''....''volcanic ash''
::* '''mog belar'''....''ash tray''
::* '''moga'''....''cinerary''
::* '''mogaya'''....''ashy, full of ash''
::* '''moges'''....''cinder''
:::* '''moges mef'''....''cinder block''
::* '''mogika'''....''ashy, full of ash''
::* '''mogil'''....''lye''
::* '''mog-maolza'''....''ash gray''
::* '''mogteizber'''....''cense''
::* '''moguar'''....''thurible''
::* '''mog-volza'''....''ash-colored, ashen''
::* '''mogxer'''....''cremate, incinerate, reduce to ashes''
:::* '''mogxam'''....''crematorium''
:::* '''mogxar'''....''cremator, crematory, incinerator''
:::* '''mogxen'''....''cremating, cremation, incineration''
:::* '''mogxim'''....''cremation chamber''
:::* '''mogxwa'''....''cremated, incinerated, reduced to ashes''
::* '''mogyeb'''....''ashcan''
::* '''mogzyebag'''....''urn of ashes''
=== '''MAJ''' ''daytime'', '''MOJ''' ''nighttime'' ===
: The root word '''maj''' means ''daytime'', while '''moj''' is the opposite, ''nighttime''.
==== Times of Day ====
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Times of Day
|-
! DAY / NIGHT !! PERIODS
|-
| rowspan=7 | '''maj'''....''daytime, sunup hours'' || '''majij'''....''dawn''
|-
| '''jwamaj'''....''morning''
|-
| '''zemaj'''....''noon''
|-
| '''jazemaj (JaZ.)'''....''ante-meridian, AM''
|-
| '''jozemaj (JoZ.)'''....''afternoon, postmeridian, PM''
|-
| '''jwomaj'''....''late day''
|-
| '''majuj'''....''dusk, twilight''
|-
| rowspan=4 | '''moj'''....''night, sundown hours'' || '''jwamoj'''....''evening''
|-
| '''jwomoj'''....''late night, wee hours''
|-
| '''zemoj'''....''midnight''
|-
| '''jozemoj'''....''after midnight''
|}
{{small/end}}
: Note: '''jub''' ''day'' is a general word referring to the whole 24-hour cycle without reference to morning or night. '''Maj''' refers to the daylight hours and '''moj''' to the sundown hours.
: Examples of usage with '''maj''' and '''moj'''
::* '''At teato et <u>zajub jwamaj</u>.'''....''I will see you <u>tomorrow morning</u>.''
::* '''Yat teapa iyt <u>zojub jozemaj</u>.'''....''We visited her <u>yesterday afternoon</u>.''
::* '''Ha maar yope <u>be majuj</u>.'''....''The sun sets <u>at dusk</u>.''
::* '''Mamila <u>zojub jwamoj</u>.'''....''It rained <u>yesterday evening</u>.''
::* '''At tijpe <u>be majij</u>.'''....''I wake up <u>at dawn</u>.''
: Examples of usage with '''jub''':
::* '''hijub'''....''today''
::* '''zojub'''....''yesterday''
:::* '''jazojub'''....''the day before yesterday''
::* '''zajub'''....''tomorrow''
:::* '''jozajub'''....''the day after tomorrow''
::* '''bi jub bu jub'''....''from day to day''
::* '''hyajub'''....''everyday''
::* '''ha ayna jub'''....''the whole day, all day''
::* '''zya ha jub'''....''throughout the day''
::* '''bi hijub zay'''....''from this day on''
::* '''ji hujub'''....''since that day''
::* '''ojo zajub'''....''by tomorrow''
::* '''hijubi'''....''these days''
::* '''hujub'''....''that day''
::* '''hujubi'''....''those days''
::* '''hejub'''....''some day''
::* '''hyejub'''....''any day, whatever day''
::* '''duhojub?'''....''which day?''
::* '''je jubi'''....''for days''
::* '''ewa jubi jay'''....''two days ago''
::* '''iwa jubi joy'''....''two days hence''
::* '''ji gle jubi'''....''a few days since''
::* '''ju zajub'''....''until tomorrow''
::* '''lojo zajub'''....''by tomorrow''
::* '''loja zajub'''....''no earlier than tomorrow''
::* '''ja jubuj'''....''before day's end''
::* '''jubyaga pop'''....''a day-long trip''
::* '''bi awa jub byu ha zanapas'''....''from one day to the next''
::* '''jub-bu-jub'''....''day-to-day''
::* '''be ha aja jubi'''....''in the olden days''
::* '''be hea oja jub'''....''on some future day''
::* '''bi majij bu majuj'''....''from dawn to dusk''
==== MAJ Words ====
:* '''maj'''....''day''
::* '''Fimaj!'''....''good day!''
:::* '''fimajder'''....''say good day''
::* '''zajub maj'''....''tomorrow during the day''
::* '''zojub maj'''....''yesterday during the day''
::* '''majbik'''....''daycare''
::* '''majdez'''....''matinee, matinée''
::* '''majij'''....''cockcrow, dawn, daybreak''
:::* '''majija'''....''auroral''
:::* '''majijdeuz'''....''evensong''
:::* '''majijen'''....''dawning''
::* '''majman'''....''daylight''
::* '''majob'''....''daytime''
:::* '''majoba'''....''daylong, daytime, diurnal''
::::* '''majobay'''....''diurnally''
::* '''majsum'''....''daybed''
::* '''majuj'''....''nightfall, twilight''
:::* '''majuja'''....''crepuscular, of twilight''
:::* '''majujyena'''....''twilightish''
:::* '''fimajujder'''....''say good evening''
::* '''jwamaj'''....''morning''
:::* '''jwamaj mar'''....''morningstar''
:::* '''jwamaj taf'''....''housecoat''
:::* '''Fijwamaj!'''....''Good morning!''
:::* '''zajub jwamaj'''....''tomorrow morning''
:::* '''juab jwamaj'''....''Monday morning''
:::* '''zojub jwamaj'''....''yesterday morning''
:::* '''jwamaja'''....''matinal, matutinal, morning''
::* '''jwomaj'''....''afternoon, late day''
:::* '''Fijwomaj!'''....''Good afternoon!, Good evening!''
:::* '''jwomaja'''....''afternoon, late day''
:::* '''jwojozemaja'''....''late afternoon''
::* '''zemaj'''....''midnoon, noon, noonday, noontide, noontime''
:::* '''zemaja'''....''noontime''
:::* '''jazemaj'''....''a.m., ante-meridian, forenoon, matinee''
:::* '''jozemaj'''....''afternoon, p.m., post-meridian''
::::* '''jozemaja'''....''postmeridian''
::::* '''juab jozemaj'''....''Monday afternoon''
::::* '''Fijozemaj!'''....''Good afternoon!''
==== MOJ Words ====
: Here are words derived from '''moj''':
:* '''moj'''....''night''
::* '''moja'''....''nocturnal''
::* '''mojfyadili'''....''vespers''
::* '''mojdeuz'''....''evensong''
::* '''mojob'''....''soiree''
::* '''mojij'''....''dusk, nightfall, twilight''
::* '''jwamoj'''....''evening, early night''
::* '''jwomoj'''....''late night''
::* '''je ha moj'''....''during the night''
::* '''Fimoj!'''....''Good night!''
::* '''gemoj'''....''equinox''
::* '''himoj'''....''tonight''
::* '''mojbeser'''....''to stay the night''
::* '''mojtayf'''....''nightgown''
::* '''mojtilam'''....''nightclub''
::* '''zajub moj'''....''tomorrow night''
::* '''zemoj'''....''midnight''
:::* '''jozemoj'''....''wee hours of the morning''
::* '''zojub moj'''....''last night''
:::* '''zojub jwamoj'''....''early last night''
::* '''zojub jwomoj'''....''late last night''
::* '''zomoj'''....''eve''
:::* '''Kristajub Zomoj'''....''Christmas Eve''
=== '''MAN''' ''light'', '''MON''' ''dark'' ===
: The root '''man''' means ''light'', while '''mon''' is its opposite, ''dark''.
==== MAN Words ====
: The rootword '''man''' means ''light'' (as opposed to ''dark''). By suffixing '''ar''' (''instrument''), we get '''manar''', meaning ''lamp''.
: Types of lamps and lights:
:* '''manar'''....''lamp''
::* '''alzamxea manar'''....''incandescent lamp''
::* '''aman manar'''....''heat lamp''
::* '''ansanpiateyob manar'''....''gooseneck lamp''
::* '''byasea manar'''....''floor lamp''
::* '''domep manar'''....''street light''
::* '''dopek manar'''....''battle lantern''
::* '''drilar manar'''....''penlight''
::* '''igmanuijar'''....''blinker''
::* '''izmanar'''....''laser''
::* '''jwadea manar'''....''warning light''
::* '''maegil manar'''....''gas lamp''
::* '''maegil manar'''....''kerosene lamp''
::* '''magyel manar'''....''oil lamp''
::* '''makmanar'''....''electric light''
::* '''makuz manar'''....''arc lamp''
::* '''mammanar'''....''skylight''
::* '''manigar'''....''strobe light''
::* '''mansiunar'''....''traffic light''
::* '''manuf'''....''candle''
::* '''manzexar'''....''spotlight''
::* '''mapmanar'''....''blowlamp''
::* '''masmanar'''....''sconce''
::* '''mimanur'''....''lighthouse''
::* '''mimgrun manar'''....''anchor light''
::* '''mojmanar'''....''night light''
::* '''nielk manar'''....''neon light''
::* '''polkxea manar'''....''phosphorescent light''
::* '''sumkuma manar'''....''bedside lamp''
::* '''tuyab manar'''....''flashlight''
::* '''uznad manar'''....''klieglight''
::* '''vokmanar'''....''hazard light''
::* '''zamanar'''....''headlight''
::* '''zyamanar'''....''floodlight''
:* '''man'''....''light''
::* '''amarman'''....''sunlight''
::* '''amurman'''....''moonlight''
::* '''fyamanzyus'''....''halo''
::* '''magman'''....''firelight''
::* '''majman'''....''daylight''
::* '''marman'''.....''starlight''
::* '''yuzman'''....''aureola''
::* '''zoyman'''....''reflection''
: Verbs having to do with light:
:* '''ammanuer'''....''to glow''
:* '''azmaniger'''....''to flare''
:* '''izmanuer'''....''to glare''
:* '''kyamanser'''....''to shimmer''
:* '''manaudxer'''....''to radiate''
:* '''manazaxer'''....''to turn up the light''
:* '''maniger'''....''to flash''
:* '''manigeser'''....''to glitter''
:* '''manijber'''....''to turn on the light''
:* '''manoker'''....''to fade''
:* '''manozaxer'''....''to turn down the light''
:* '''manteazuer'''....''to bedazzle''
:* '''manuer'''....''to illuminate''
:* '''manuijer'''....''to flicker''
:* '''manujber'''....''to turn off the light''
:* '''manzexer'''....''to spotlight''
:* '''mazaxer'''....''to brighten''
:* '''mazuer'''....''to shine''
:* '''zoymanxer'''....''to reflect''
==== MON Words ====
: The root '''mon''' means ''dark'', while the diminutive '''moyn''' means ''shade''. Here are some derived words:
:* '''mon'''....''darkness, dark, obscurity''
::* '''eynmon'''....''half-light, penumbra, shade''
:::* '''eynmona'''....''opaque, partially obscure shadowy''
:::* '''eynmona milvolz'''....''gouache''
:::* '''eynmonxer'''....''adumbrate''
::::* '''eynmonxwa'''....''adumbrated, partially obscured''
::* '''mona'''....''dark, obscure''
:::* '''mona mul'''....''dark matter''
:::* '''monan'''....''obscurity''
::* '''monmaf'''....''dark cloud''
::* '''monmeg'''....''onyx''
::* '''monmepkexer'''....''grope, find one's way in the dark''
::* '''monsan'''....''shadow''
:::* '''monsan ektobet'''....''shadow-puppet''
:::* '''monsanika'''....''shadowy''
:::* '''monsanxer'''....''to shadow''
:::* '''monsanyena'''....''shadow-like''
::* '''montim'''....''darkroom''
::* '''moynuyeas'''....''pergola''
::* '''monxer'''....''darken, obscure''
:::* '''monser'''....''darken, get darker''
:::* '''monxul'''....''darkener''
::* '''monyuf'''....''fear of the dark''
:* '''moyn'''....''shade''
::* '''fabmoynarwa'''....''sheltered by trees''
::* '''fayebmoyn'''....''umbrage''
::* '''ikmoyn'''....''umbra''
::* '''moynar'''....''shade (instrument)''
:::* '''amar moynar'''....''sun shade''
:::* '''mis moynar'''....''window shade''
::* '''moyna'''....''dim, dismal, dusky, somber, swarthy''
::* '''moynaybtom'''....''bowery''
::* '''moynarer'''....''to shade''
::* '''moynika'''....''shady, sombre''
::* '''moynser'''....''to grow dim''
::* '''moynxer'''....''to dim''
=== '''MAZ''' ''bright'' and '''MOZ''' ''dark'' ===
:* '''maz'''....''shine, glow, glare, gleam, lustre''
::* '''maza'''....''glossy, bright, shiny, brilliant''
:::* '''mazan'''....''glossiness, brightness, shinyness, brilliance''
::::* '''mazaser'''....''to brighten, to shine, to glow, to glisten''
::::* '''mazaxer'''....''to brighten, to shine''
::* '''mazaulkvib'''....''tinsel''
::* '''mayz'''....''glister''
::* '''mazig'''....''glitter, sparkle, glint''
:::* '''mazigaya'''....''glittery, sparkly, glinty''
::::* '''mazigayan'''....''glitteriness, sparkliness, glintiness''
::* '''mazigser'''....''to glitter, to sparkle''
:::* '''mazigsea'''....''glittering, sparkling''
:* '''moz'''....''dark''
::* '''moza'''....''dark''
:::* '''moza aybpovil'''....''stout ale''
:::* '''moza mul'''....''dark matter''
:::* '''moza taol'''....''dark meat''
:::* '''moza tim'''....''dark room''
:::* '''moztipa'''...''dismal, gloomy''
:::* '''mozaser'''....''to darken'' (intr.)
:::* '''mozaxer'''....''to darken'' (tr.)
:::* '''mozima'''....''dank''
::* '''moyza'''....''dim''
:::* '''moyzaser'''....''to dim''
:::* '''moyzaxer'''....''to dim''
:::* '''moyztepa'''....''dimwitted''
=== '''MEG''' ''stone'', '''MEZ''' ''gem'', '''MEK''' ''dust'', etc. ===
:* '''meg'''....''stone''
:* '''mez'''....''gem''
:* '''mek'''....''dust''
::* '''meyk'''....''grit''
::* '''myek'''....''powder''
::* '''miek'''....''sand''
::* '''myeik'''....''dough, paste, pulp''
::* '''maek'''....''soot''
:* '''mug'''....''metal''
:* '''muk'''....''mineral''
::* '''mulk'''....''chemical element''
:* '''muz'''....''ore''
==== MEG Words ====
: The root word '''meg''' means ''stone, rock''. Types of common rocks are formed by prefixing an ordinal to the stem, eg.:
::* '''ameg'''....''marble''
::* '''emeg'''....''slate''
::* '''imeg'''....''granite''
::* '''umeg'''....''clay, dough, daub''
::* '''yomeg'''....''china''
::* '''yameg'''....''chalk''
::* '''yemeg'''....''limestone''
::* '''yimeg'''....''alabaster''
::* '''yumeg'''....''gypsum''
::* '''alomeg'''....''sandstone, stoneware''
: There is also:
::* '''megag'''....''boulder, rock''
::* '''megog'''....''cobblestone''
::* '''meges'''....''granule, grit''
::* '''yanmeg'''....''cement''
::* '''meggos'''....''gravel''
::* '''meggyos'''....''ragstone''
::* '''mimeg'''....''pebble''
:::* '''mimegyos'''....''silt''
::* '''mieg'''....''coral''
::* '''maeg'''....''coal''
:::* '''amaeg'''....''anthracite''
:::* '''eynmaeg'''....''coke''
:::* '''emaeg'''....''peat''
:::* '''imaeg'''....''lignite''
: Related are:
::* '''mek'''....''dust''
::* '''miek'''....''sand''
::* '''myek'''....''powder''
::* '''myeik'''....''dough, pulp''
::* '''muk'''....''mineral''
::* '''mug'''....''metal''
::* '''muz'''....''ore''
: The suffix '''-meg''' is used for words in English words ending in ''-lith''
:* '''agrameg'''....''megalith''
:* '''aletayubmeg'''....''cholelith, gallstone''
:* '''anmeg'''....''monolith''
:* '''aynmeg'''....''hololith''
:* '''hyumeg'''....''xenolith''
:* '''jwameg'''....''eolith''
:* '''patikebmeg'''....''gastrolith''
:* '''tiyabilmeg'''....''urolith''
:* '''aajmegjouba'''....''paleolithic''
==== MEZ Words ====
: The root word '''mez''' means ''crystal, gem''.
: The common gemstones are:
::* '''mez'''....''crystal''
:::* '''mamiluzmez'''....''prism''
::* '''amez'''....''diamond''
:::* '''vyoamez'''....''rhinestone, strass''
::* '''emez'''....''topaz''
::* '''imez'''....''ruby''
::* '''umez'''....''emerald''
::* '''yomez'''....''sapphire''
::* '''yamez'''....''lapis lazuli''
::* '''yemez'''....''amethyst''
::* '''yimez'''....''amber''
::* '''yumez'''....''obsidian''
::* '''alomez'''....''opal''
::* '''alamez'''....''tourmaline''
::* '''alemez'''....''garnet, carbuncle''
::* '''alimez'''....''zirconia''
::* '''alumez'''....''jasper''
::* '''alyomez'''....''jade''
::* '''alyamez'''....''morganite''
::* '''alyemez'''....''quartz''
:::* '''movalyemez'''....''smoky quartz, cairngormstone''
::* '''alyimez'''....''malachite''
::* '''elomez'''....''calcite''
::* '''elamez'''....''mica''
::* '''elemez'''....''apatite''
::* '''elimez'''....''gypsum''
::* '''elumez'''....''halite, rock salt''
::* '''elyomez'''....''magnetite''
::* '''elyamez'''....''hematite''
::* '''elyemez'''....''pyrite, fool's gold''
::* '''elyimez'''....''beryl''
::* '''elyumez'''....''talc''
::* '''ilomez'''....''kaolin''
::* '''ilamez'''....''garnet''
::* '''ilemez'''....''corundum''
::* '''ilimez'''....''pearl''
::* '''ilumez'''....''onyx, chalcedony''
::* '''ilyomez'''....''sardonyx''
::* '''ilyamez'''....''citrine''
::* '''ilyemez'''....''rose quartz''
::* '''ilyimez'''....''agate''
::* '''ilyumez'''....''peridot''
::* '''ulomez'''....''aquamarine''
::* '''ulamez'''....''turquoise''
::* '''ulemez'''....''moonstone''
::* '''ulimez'''....''sunstone''
::* '''ulumez'''....''spinel''
::* '''ulyomez'''....''iolite''
::* '''ulyamez'''....''morganite''
::* '''ulyemez'''....''tanzanite''
: Alternates:
::* '''piyez''' for ''pearl''
::* '''makyel''' for ''amber or electrum''
==== MEK, MYEK, MIEK Words ====
:* '''mek'''....''dust''
::* '''myek'''....''powder, grounds, flour''
:::* '''myeik'''....''dough, paste, pasta, pulp'' (a hybrid of water and powder)
::* '''miek'''....''sand'' (a hybrid of sea and dust)
: Here are some derivatives of '''mek''':
:* '''mek'''...''dust''
::* '''filmek'''....''leaven, yeast, zyme''
:::* '''filmektun'''....''zymology''
:::* '''filmektyen'''....''zymurgy''
:::* '''filmekxer'''....''to leaven''
:::* '''ofilmekxwa'''....''unleavened''
::* '''mekil'''....''meal, gruel, mash''
:::* '''mekilxer'''....''to mash''
:::* '''zepovob mekil'''....''cornmeal''
:::* '''avpovob mekil'''....''oatmeal''
:::* '''mekilyena'''....''mealy''
::* '''ilmekuer'''....''to spray''
:::* '''ilmekuar'''....''spray gun''
:::* '''volzilmekuar'''....''spray paint gun''
::* '''ilpmek'''....''alluvium''
::* '''mekbaxlar'''....''whisk''
::* '''mekika'''....''dusty''
::* '''marmek'''....''stardust''
::* '''mekes'''....''grit''
::* '''masmekyel'''....''stucco''
::* '''mekmapag'''....''dust bowl''
::* '''mekmapuzlun'''....''dust storm''
::* '''mekmem'''....''heath''
::* '''meknov'''....''dustcloth''
::* '''meknyem'''....''dustbin''
::* '''mekobar'''....''dust mop''
:::* '''mekobarer'''....''to dust''
::* '''mekovof'''....''dust ruffler''
::* '''mekxer'''....''to pulverize''
::* '''mekzyun'''....''dust ball, dust kitty''
::* '''tolmek'''....''spice''
:::* '''tolmekber'''....''to season, to spice''
:::* '''tolmekaza'''....''spicy, hot''
:::* '''tolmekeza'''....''medium spicy''
:::* '''tolmekoza'''....''mild spicy''
:::* '''tolmekyom'''....''sherbet''
:::* '''otolmekbwa'''....''unspiced''
:::* '''amtolmekuer'''....''to mull''
::* '''yaozgoblar mek'''....''sawdust''
: Some derivatives of '''myek''':
:* '''dopmyek'''....''gunpowder''
:* '''dopmyeksaxam'''....''gunpowder factory''
:* '''drilmyek'''....''ink toner''
:* '''faomyek'''....''pulp, wood pulp''
::* '''faomyekxer'''....''to pulp''
::* '''faomyekika'''....''pulpy''
::* '''ikmyekxer'''....''to crush, to smash, to obliterate''
:::* '''ikmyekxun'''....''debris, detritus, crush''
:* '''myek'''....''powder, grounds, flour''
::* '''koffeyl myek'''....''coffee grounds''
::* '''malzaxea myek'''....''bleaching powder, bleach''
::* '''manar myek'''....''lampblack''
::* '''megmyek'''....''rock flour, stonemeal''
:::* '''megmyekxer'''....''to quern''
::* '''myek bil'''....''powdered milk''
::* '''myek faosyeb'''....''powder keg''
::* '''myek koffeyl'''....''instant coffee''
::* '''myek nyem'''....''powder compact''
::* '''myek yugzyun'''....''powder puff''
::* '''myekxer'''....''to crush, to mill, to granulate, to grind''
::* '''myekar'''....''mill, grater, grinder''
:::* '''bilyig myekar'''....''cheese grater''
:::* '''gosmalvob myekar'''....''cotton gin''
:::* '''koffeyl myekar'''....''coffee grinder, coffee mill''
:::* '''taol myekar'''....''meat grinder''
::* '''myekir'''....''mill''
:::* '''mapmyekir'''....''windmill''
:::* '''milmyekir'''....''watermill''
:::* '''mimuip myekir'''....''tidal mill''
:::* '''myekirer'''....''to mill''
:::* '''myekirtam'''....''millhouse''
:::* '''myekirtom'''....''mill''
:::* '''myekirut'''....''miller''
::::* '''gosmalvob myekirtom'''....''cotton mill''
::* '''myekuer'''...''to powder''
:::* '''milmyekuer'''....''to sprinkle, to spray''
::::* '''milmyekuar'''....''sprinkler, spray gun''
:::* '''ilmyekuer'''....''to sprinkle, to spray''
::* '''myekxer'''....''to grind, to crush, to grate, to gnash''
:::* '''myekxea meg'''....''millstone, quern''
:::* '''myekxea zyuk'''....''grindstone''
:::* '''myekxer ota teupibi'''....''to grind one's teeth, to gnash one's teeth''
:::* '''myekxwa'''....''ground, mashed, crushed, grated''
::::* '''myekxwa arvob'''....''peanut butter''
::::* '''myekxwa bilyig'''....''grated cheese''
::::* '''myekxwa bopel'''....''ground beef''
::::* '''myekxwa veyeb'''....''crushed malt''
::::* '''myekxwa yeveb'''....''hummus''
::::* '''myekxwa zyef'''....''ground glass''
::* '''satalmyek'''....''garlic powder''
::* '''taibmyek'''....''bonemeal''
::* '''tebzan myek'''....''face powder''
::* '''teilyeb ay myekar'''....''mortar and pestle''
::* '''teupib myek'''....''tooth powder''
::* '''tyoyabmyekar'''....''treadmill''
::* '''veeybmyek'''....''grist''
::* '''vosmyek'''....''pollen''
::* '''vyilxen myek'''....''washing powder''
::* '''yaben myek'''....''baking soda''
::* '''yoma myek'''....''glacial flour''
::* '''zepovoyb myek'''....''hominy grits''
: Some derivatives of '''myeik''':
:* '''myeik'''....''dough, pulp, paste, pasta, putty''
::* '''abaxler myeik'''....''to knead dough''
::* '''amlofayeba myeik'''....''phyllo pastry''
::* '''faomyek'''....''pulp, wood pulp''
:::* '''dref faomyeik'''....''paper pulp''
::* '''mimol myeik'''....''salt dough''
::* '''moabujlea myeik'''....''caulking putty''
:::* '''myeikar'''....''putty knife''
::* '''myeikser'''....''to ferment''
::* '''myeikxer'''....''to knead, to pulp''
:::* '''myeikxut'''....''pastry-maker''
:::* '''myeikzyun'''....''dumpling''
::::* '''myeikzyuni'''....''gnocchi, dumplings''
::* '''povelmyeik'''....''bread dough, pasta''
::* '''yigzamyeik'''....''sourdough''
: Some derivatives of '''miek''':
: '''miek'''....''sand, grit''
::* '''aummiek'''....''simoom''
::* '''eynamurmiekyaz'''....''lunette''
::* '''goyn bi miek'''....''grain of sand''
::* '''igmiek'''....''quicksand''
::* '''komieknyan'''....''sandbank''
::* '''kyapea miek'''....''shifting sand''
::* '''miek sazun'''....''sand sculpture''
::* '''miek tamaz'''....''sand scupture''
::* '''miekanyan'''....''psammosere''
::* '''miek yanbuxrun'''....''sand drift''
::* '''miekar'''....''sander''
:::* '''miekarer'''....''to sand''
::* '''miekika'''....''sandy, gritty, sabulous, arenous''
::* '''miekdrev'''....''sandpaper''
:::* '''miekdrevaber'''....''to sandpaper''
::* '''miekem'''....''beach, sandy area, heath, moor''
::* '''miekiblem'''....''sand quarry''
::* '''miekjwobar'''....''hourglass''
::* '''miekmapuzlun'''....''sandstorm''
::* '''miekmeges'''....''aggregate, sand and gravel''
::* '''miekmem'''....''heath''
::* '''mieknyan'''....''sandbar''
::* '''mieknyem'''....''sandbox''
::* '''miekpar'''....''beach buggy, dune buggy, sand rail''
::* '''miekpyexrar'''....''sandblaster''
::* '''miektwob'''....''sandman''
::* '''miekyagnyan'''....''shoal''
::* '''miekyaz'''....''dune, sand dune''
:::* '''miekyaznad'''....''barchan, sandbank, sandbar, sandbridge''
::* '''miekyeb'''....''sandbox''
::* '''miekyeg'''....''sandpit''
::* '''miekyoznad'''....''shoal''
::* '''oybixmiek'''....''quicksand''
::* '''ulzmiek'''....''greensand''
=== '''MOL''' ''nature'' ===
: The base word '''mol''', which means ''nature'' is the topmost element of a geo-specific series of words, eg:
:* '''mol'''....''nature''
::* '''mal'''....''air''
::* '''mel'''....''soil''
::* '''mil'''....''water''
::* '''mul'''....''substance, stuff, matter''
==== MOL Words ====
: Here are some derivatives of '''mol''':
:* '''mol'''....''nature''
::* '''mola'''....''natural''
:::* '''mola doyiv'''....''natural right''
:::* '''mola izbux'''....''natural impulse''
:::* '''molan'''....''naturalness''
:::* '''molay'''....''naturally, of course''
:* '''amola'''....''primitive''
:* '''bey mol'''....''by nature''
:* '''byimol'''....''origin''
::* '''byimola'''....''original''
:::* '''byimola fyox'''....''original sin''
:* '''gelmola'''....''connate, connatural''
:* '''ijmol'''....''origin, source''
::* '''ijmola'''....''original, primal''
:::* '''ijmola teud'''....''primal scream''
:* '''jwamola'''....''preternatural''
:* '''molazon'''....''force of nature''
:* '''molifron'''....''physiolatry''
:* '''molin'''....''naturalism''
::* '''molina'''....''naturalistic''
::* '''molinut'''....''naturalist''
:* '''molizbux'''....''instinct''
::* '''molizbuxa'''....''instinctive, instinctual''
:* '''moltun'''....''natural science, physics''
::* '''moltun surtyen'''....''physical engineering''
::* '''moltun surtyut'''....''physics engineer''
::* '''moltuna'''....''physics-related''
::* '''moltut'''....''natural scientist, physicist''
:* '''molxer'''....''naturalize''
::* '''molxen'''....''naturalization''
::* '''molxwa'''....''naturalized''
:* '''molyena'''....''natural, naturalistic''
::* '''molyenan'''....''naturalness''
::* '''molyenay'''....''naturally''
:* '''molyuba'''....''earthy, close to nature''
::* '''molyuban'''....''earthiness''
:* '''mommoltun'''....''astrophysics''
::* '''mommoltuna'''....''astrophysical''
::* '''mommoltut'''....''astrophysicist''
:* '''omola'''....''artificial, ersatz, unnatural''
::* '''omola sakol'''....''artificial sugar''
:::* '''omolan'''....''artificiality, unnaturalness''
:::* '''omolat'''....''fay, ghost, unnatural creature''
::* '''omolay'''....''artificially, unnaturally''
:::* '''omoltayebun'''....''hairpiece, wig''
::::* '''omoltayebunog'''....''wiglet''
:* '''oyeybmola'''....''extrinsinc''
:* '''vyamol'''....''essence, true nature''
::* '''vyamola'''....''essential, real''
:* '''yebmola'''....''instrinsic''
::* '''yebmolay'''....''intrinsically''
:* '''yizmola'''....''supernatural''
::* '''yizmolat'''....''supernatural being''
::* '''yizmolay'''....''supernaturally''
::* '''yizmolem'''....''supernatural realm''
==== MAL -AL Words ====
: The root word '''mal''' means ''air''. Some derived words use the stub word '''-al-'''.
: The diminuative derivative '''mayl''' means ''gas''.
: There is a set of 2nd tier ordinal derivations, which represent the layers of the atmosphere:
:* '''maal'''....''atmosphere, aura''
:* '''mael'''....''troposphere, ether''
:* '''mail'''....''stratosphere''
:* '''maul'''....''ionosphere''
:* '''mayol'''....''exosphere''
: The word '''mial''' (''steam, vapor'') is a hybrid of '''mil''' (''water'') and '''mal''' (''air'').
: The word '''ail''' (''fluid'') is a hybrid of '''il''' and '''al'''.
: Here are the main derivatives of '''mal''' and '''-al-''':
:*'''mal'''
:*'''buxrer mal'''....''pump air''
:*'''fumaluwa'''....''poorly-ventilated, stuffy''
::*'''fumaluwan'''....''stuffiness''
::*'''fumaluway'''....''stuffily''
:*'''fyemalbesut'''....''sylph''
:*'''fyemaltop'''....''sprite''
:*'''gyamalxer'''....''blow up, inflate, swell''
::*'''gyamalxea'''....''inflationary''
::*'''gyamalxen ay yugxen'''....''stagflation''
::*'''gyamalxen'''....''blowing up, inflation, swelling''
::*'''gyamalxun'''....''clot, swelling''
::*'''gyamalxwa'''....''blown up, inflated, swollen''
::*'''gyamalxyofwa'''....''noninflationary''
:::*'''logyamalxer'''....''deflate, let the air out of''
:::*'''logyamalxen'''....''deflating, letting the air out of''
:::*'''logyamalxwa zyug'''....''flat tire''
:::*'''logyamalxwa'''....''deflated, flat''
:*'''igmalpuxer'''....''whang''
:*'''izbyafwa malzyun'''....''dirigible''
:*'''jebmaalyen'''....''climate''
::*'''jebmaalyena'''....''climatic''
:::*'''jebmaalyenay'''....''climatically''
:::*'''jebmaalyentun'''....''climatology''
::::*'''jebmaalyentuna'''....''climatological''
:::*'''jebmaalyentut'''....''climatologist''
:*'''jomagmal'''....''afterdamp''
:*'''jomayl mapxar'''....''exhaust fan''
::*'''jomayl'''....''exhaust, fume''
::*'''lomaluer'''....''deflate''
:::*'''lomaluen'''....''deflation''
:::*'''lomaluwa'''....''deflated''
::::*'''lomaluyafwa'''....''deflatable''
:::::*'''lomaluyafwa mipar'''....''collapsible boat, deflatable craft''
::*'''malmuyfyeg'''....''air tube''
:::* '''malmuyfyeguer'''...''to intubate, to put on a ventilator''
::*'''mala'''....''aerial''
::*'''malaypar'''....''air flotation device''
::*'''malpanazona'''....''aerodynamic''
:::*'''malpanazontun'''....''aerodynamics''
::*'''malbal'''....''air pressure''
:::*'''malbala'''....''pneumatic''
:::*'''malbalum'''....''air pressure chamber, airlock''
::*'''malbelwa'''....''airborne''
::*'''malbuxrar'''....''air pump''
::*'''maldezut'''....''aerialist''
::*'''maledopar'''....''air rifle''
::*'''malfyet'''....''sylph''
:::*'''malfyety'''....''sylphid''
:::*'''malfyeyta'''....''sylphic''
::*'''malgwamagijbar'''....''carburetor''
::*'''malgaxer'''....''blow up, inflate''
::*'''malgoxer'''....''deflate''
::*'''malika'''....''airy''
::*'''malikxer'''....''bloat, inflate, pump up with air''
:::*'''malikxyafwa'''....''inflatable''
::*'''malkyian'''....''languor''
::*'''malkyuper'''....''float in the air''
:::* '''malkyupea'''....''floating''
::::* '''malkyupar'''....''float''
::*'''malmeg'''....''peat''
:::*'''malmegmel'''....''peatbog''
::*'''malmep'''....''airway''
:::*'''malmufyeg'''....''air vent, windpipe, throttle, throat''
::*'''malnig'''....''aerospace, airspace''
::*'''malnyaxbok'''....''emphysema''
::*'''malnyef'''....''air sack, airbag''
::*'''malof'''....''cirrocumulus''
::*'''malomxar'''....''air-conditioner''
::*'''maloya'''....''airless''
:::*'''maloyxer'''....''to damp''
::*'''malp'''....''airflow, draft, airstream, airwave''
:::* '''malp xag'''....''radio frequency''
:::* '''malp yibdalen'''....''radiotelephony''
:::* '''malp yibdalir'''....''radiophone, radiotelephone''
:::* '''malp yibdren'''....''radiotelegraphy''
:::* '''malp yibdrer'''....''radioteletype''
:::* '''malp yibdrir'''....''radiotelegraph, radioteletype''
:::* '''malpa'''....''wireless''
::::* '''malparifut'''....''ham operator''
:::* '''malpibar'''....''radio receiver''
::::* '''malpibarut'''....''radioman''
:::* '''malpiben'''....''radio reception''
:::* '''malpkaxar'''....''airwave detector, radar''
::::* '''malpkaxar jwadsiun'''....''radar beacon''
::::* '''malpkaxar pex'''....''radar trap''
::::* '''malpkaxar sinuar'''....''radarscope''
:::::* '''malpkaxarut'''....''radarman''
:::* '''malpkaxen'''....''radar detection''
::::* '''malpkaxen martun'''....''radar astronomy''
::::* '''malpkaxen teaxar'''....''radar scope''
::::* '''malpkaxen yibteaxir'''....''radar telescope''
::* '''malpsiunar'''....''radio signal''
::* '''malpuber'''....''broadcast by radio, wire, transmit, radio''
:::* '''malpubar'''....''radio transmitter''
:::* '''malpuben'''....''wiring, transmission, broadcasting''
::::* '''malpubun job'''....''airtime''
:::* '''malpubun'''....''airplay, radio broadcast, radio transmission''
:::* '''malpubwa'''....''wired, transmitted, radioed''
:::* '''malpuiber'''....''radio''
::::* '''malpuibar'''....''radio set, radio transmitter/receiver, radio''
:::::* '''malpuibar ebtuien'''....''radio communications''
::::* '''malpuiben'''....''radioing''
::::* '''malpuibut'''....''radio operator''
::*'''malpur'''....''airship''
::*'''malpux'''....''air jet''
::*'''malpyaon'''....''airwave''
:::*'''seuxa malpyaon'''....''acoustic airwave''
::*'''malseuxa'''....''aeroacoustic''
::*'''malsuem'''....''air mattress''
::*'''malsum'''....''airbed''
::*'''maltapa'''....''aerobic''
::*'''maltayefar'''....''airbrush''
::*'''maluer'''....''aerate, blow up, inflate, vent, ventilate''
:::*'''maluar'''....''aerator, air pump, inflater, ventilating fan, ventilator''
:::*'''maluen'''....''aeration, ventilation''
:::*'''maluwa'''....''aerated, ventilated''
::::*'''gawmaluer'''....''re-inflate''
:::::*'''gawmaluen'''....''re-inflation''
:::::*'''gawmaluwa'''....''re-inflated''
::*'''malujbof'''....''weatherstrip''
::*'''maluk'''....''air vacuum''
:::*'''maluk muyfyeg'''....''vacuum tube''
::*'''maluka'''....''airless''
::*'''malukxer'''....''to deflate, drain of air, let out the air, suck all the air out of, vacuum''
::*'''maluyafwa mipar'''....''dinghy, inflatable craft''
::*'''maluzun'''....''air funnel''
::*'''malvaka'''....''air-tight, airproof''
::*'''malvyuxen'''....''air pollution''
::*'''malyebiar'''....''air intake, air suction device''
::*'''malyom'''....''snow''
:::*'''malyomer'''....''snow''
:::*'''malyomfaof'''....''snowboard''
::::*'''malyomfaofer'''....''snowboard''
:::*'''malyomgos'''....''snow flake, snowflake''
:::*'''malyomkipar'''....''ski, snow-ski, toboggan''
:::*'''malyomkunad'''....''snowbank''
:::*'''malyom-malza'''....''snow-white as snow''
:::*'''malyommapil'''....''snowstorm''
:::*'''malyommapxar'''....''snowblower''
:::*'''malyomnyan'''....''snowdrift''
:::*'''malyompexwa'''....''snowbound''
:::*'''malyompur'''....''snowmobile''
:::*'''malyompyos'''....''snowfall''
:::*'''malyomtaf'''....''snowsuit''
:::*'''malyomtam'''....''igloo''
:::*'''malyomtef'''....''toboggan''
:::*'''malyomtob'''....''snowman''
:::*'''malyomtyoyaf'''....''snowshoe''
:::*'''malyomur'''....''snowplow''
:::*'''malyomzyun'''....''snowball''
:::*'''kyumalyom'''....''flurry''
::*'''malyujber'''....''throttle''
::*'''malzyeg'''....''air pocket, blowhole, spiracle, vent''
::*'''malzyun'''....''balloon''
:::*'''malzyunper'''....''balloon, go ballooning''
:::*'''ama malzyun'''....''hot air ballon''
:::*'''heelk malzyun'''....''helium balloon''
::*'''malzyuyn'''....''air bubble''
:::*'''malzyuynamxer'''....''to boil''
:::*'''malzyuynar'''....''boiler''
:::*'''malzyuynxer'''....''boil, bubble''
:::*'''malzyuynika'''....''bubbly, effervescent''
:::*'''malzyuynog'''....''fizz, little air bubble, tiny bubble''
::::*'''malzyuynogser'''....''fizz, fizzle, sparkle''
::::*'''malzyuynogmil'''....''seltzer''
::::*'''malzyuynogtil'''....''soda pop, soft drink''
::::*'''malzyuynogyea'''....''fizzy''
::::*'''malzyuynogsyea'''....''ebullient, effervescent''
:::*'''malzyuynuka'''....''non-carbonated, still''
::*'''mumal'''....''firedamp''
::*'''pobalk malzyun'''....''lead ballon''
::*'''puxramal'''....''aerosol''
::*'''tayib mayl'''....''nerve gas''
::*'''ukmal'''....''ether''
:::*'''ukmala'''....''ethereal''
::*'''vyumalok'''....''effluvium''
::*'''yabmalzyun'''....''rainmaker''
::*'''yebmalpuxer'''....''volley''
::*'''yiga malpur'''....''zeppelin''
::*'''yokmalp'''....''flurry''
::*'''zyoyijmaluar'''....''louver''
:::*'''zyoyijmaluarwa'''....''louvered''
:* '''alier'''....''to take in air''
::* '''aliar'''....''air intake''
:* '''aluer'''....''aerate, blow''
::* '''aluar'''....''aerator, blower''
::* '''aluea'''....''aerating''
::* '''aluen'''....''aeration, blowing''
:* '''tiebal'''....''breath''
::* '''tiebala'''....''respiratory''
::* '''tiebaliar'''....''inhaler''
::* '''tiebalien'''....''breathing in, inhalation, taking a breath''
::* '''tiebalier'''....''breathe in, inhale, take a breath''
::* '''tiebaliwa'''....''inhaled''
::* '''tiebaliwas'''....''inhalant''
::* '''tiebalok'''....''belch, burp, eructation''
:::* '''tiebaloken'''....''belching, burping, eructation''
:::* '''tiebaloker'''....''belch, burp, eruct, eructate''
::* '''tiebaloya'''....''breathless, pursy''
:::* '''tiebaloyan'''....''breathlessness, pursiness''
:::* '''tiebaloyser'''....''suffocate''
:::* '''tiebaloyxer'''....''suffocate''
::* '''tiebaluer'''....''breathe out, exhale, expire, respirate, suspire''
:::* '''tiebaluar'''....''respirator''
:::* '''tiebaluea'''....''breathing out, exhaling, expiring''
:::* '''tiebaluen'''....''breathing out, exhalation, expiration, respiration''
::* '''tiebaluf'''....''trachea, windpipe''
:::* '''tiebalufoben'''....''tracheotomy''
::* '''tiebaluier'''....''respire, breathe, breathe in and out''
:::* '''tiebaluiar'''....''breathing device, respirator''
:::* '''tiebaluien'''....''breathing, respiring, respiration''
:::* '''tiebaluir'''....''breathing machine''
::* '''tiebaluka'''....''breathless, pursy''
:::* '''tiebalukan'''....''breathlessness, pursiness''
:::* '''tiebalukay'''....''breathlessly''
::* '''tiebalyujber'''....''cut off one's air supply, suffocate''
:::* '''tiebalyujben'''....''suffocation''
:::* '''tiebalyujbwa'''....''suffocated''
: Words derived from '''mayl''':
::*'''mayl'''....''gas''
:::*'''mayla'''....''gaseous''
:::*'''maylfil'''....''gasohol''
:::*'''maylmanar'''....''gaslight''
:::*'''maylnyev'''....''gasbag''
:::*'''mayltun'''....''pneumatics''
:::*'''maylubea mufzyeg'''....''flue''
:::*'''mayluer'''....''to gas''
::::*'''mayluen tim'''....''gas chamber''
:::*'''maylxer'''....''to gasify''
: Words derived from '''maal''':
:*'''maal'''....''atmosphere, aura''
::*'''maala'''....''atmospheric, atmospherical''
:::*'''maalay'''....''atmospherically''
::*'''ammaal'''....''thermosphere''
::*'''bukxea maal'''....''miasma''
::*'''maalbal'''....''atomospheric pressure''
:::*'''maalbalnagar'''....''barometer''
::*'''maalmak'''....''static, static electricity''
:::*'''ovmaalmaka'''....''anti-static''
::*'''maalman'''....''aurora''
:::*'''maalmana'''....''auroral''
:::*'''zamera maalman'''....''aurora borealis''
:::*'''zomera maalman'''....''aurora australis''
::*'''maalmil'''....''hydrometeor''
:::*'''maalmiltun'''....''hydrometeorology''
:::*'''maalmiltuna'''....''hydrometeorological''
:::*'''maalmiltut'''....''hydrometeorologist''
:*'''maalyen'''....''weather''
::*'''maalyen jatuun'''....''weather forecast, weather tip''
::*'''maalyen jatuut'''....''weather forecaster, weather tipster''
::*'''maalyen jwad'''....''weather warning''
::*'''maalyena'''....''weather-related''
::*'''maalyendar'''....''weathervane''
::*'''maalyentof'''....''weatherwear''
::*'''maalyentun'''....''meteorology''
:::*'''maalyentuna'''....''meteorologic, meteorological''
::::*'''maalyentunay'''....''meteorological''
::::*'''maalyentut'''....''meteorologist, weatherman, weatherperson''
::*'''maalyenvaka'''....''weatherproof''
:::*'''maalyenvakxen'''....''weatherizing''
:::*'''maalyenvakxer'''....''weatherize''
:::*'''maalyenvakxwa'''....''weatherized''
::*'''zemaal'''....''mesosphere''
: Words derived from '''mial''' (''steam, vapor'')
:* '''mial'''....''steam, vapor''
::* '''mialika'''....''steamy''
::* '''mialier'''....''to steam up''
::* '''mialuer'''....''to steam''
:::* '''mialuwa'''....''steamed''
:::* '''oyebmialuer'''....''to evaporate''
::::* '''oyebmialuen'''....''evaporation''
::::* '''oyebmialuwa'''....''evaporated''
:::* '''mialuyukwa: volatile''
::* '''mialvyixar'''....''steam-cleaner''
::* '''mialxer'''....''to vaporize''
:::* '''mialxen'''....''vaporization''
:::* '''mialxwa'''....''vaporized''
::* '''mialmimpur'''....''steamship''
::* '''mialsur'''....''steam engine''
::* '''mialyeg'''....''blowhole''
::* '''mialyena'''....''vapid''
::* '''mialyep'''....''steam bath''
:::* '''mialyeper'''....''to steam bathe''
::* '''mialvyixar'''....''steamroller''
::* '''mialzyubar'''....''steam turbine''
::* '''tayebmiluar'''....''hairspray''
::* '''zomial'''....''contrail, vapor trail''
: Words derived from '''ail''' (''fluid'')
:* '''ail'''....''fluid''
::* '''aila'''....''fluid''
:::* '''ailan'''....''fluidity''
::* '''ailbal(azon)'''....''fluid pressure''
::* '''ailpanazon'''....''hydrodynamics''
::* '''ailxer'''....''to fluidize''
:::* '''ailxen'''....''fluidization''
:::* '''ailxwa'''....''fluidized''
==== MEL Words ====
: The morpheme '''mel''' means ''soil, ground''.
: This root has two primary derivations:
::* '''meel'''....''terrain, grounds''
::* '''miel'''....''mud'', a hybrid of '''mil''' (''water'') and '''mel''' (''land'').
: Among the important derivatives of the '''mel''' root are these:
::* '''yanmel'''....''continent''
:::* '''oybyanmel'''....''subcontinent''
::* '''yonmel'''....''island''
:::* '''eynyonmel'''....''peninsula''
: The continents are represented by geo-specific ordinal prefixes:
:*'''Ayanmel'''....''North America''
:*'''Oyanmel'''....''South America''
:*'''Iyanmel'''....''Asia''
:*'''Eyanmel'''....''Africa''
:*'''Uyanmel'''....''Europe''
:*'''Yoyanmel'''....''Oceania''
: Two hybrid continent names are:
:*'''Aoyanmel'''....''Americas'' (i.e. North America and South America combined)
:*'''Ebaoyanmel'''....''Central America'' (between N. and S. America)
: The color term '''melza''' (''brown'') comes from '''mel'''.
: Here are words derived from '''mel''' (''soil, dirt, earth''):
:* '''almuka-melza'''....''mocha brown''
:* '''alzmelza'''....''sepia''
:* '''ammelsum'''....''hotbed''
:* '''Anxwa Doebi bi Ayanmel'''....''United States of America''
:* '''aybmela'''....''above-ground, aboveground''
:* '''dopa melmas'''....''earthwork''
:* '''dyafab-melza'''....''cedar brown''
:* '''ebyanmela'''....''intercontinental''
:* '''eynmelza'''....''semi-brown''
:* '''eynyonmel'''....''peninsula''
::* '''eynyonmela'''....''peninsular''
:* '''faob-melza'''....''wood brown''
:* '''fyameluk'''....''sepulcher, sepulchre''
::* '''fyameluka'''....''sepulchral''
::* '''fyamelukben'''....''sepulchure''
::* '''fyamelukber'''....''sepulcher''
::* '''gawmelukber'''....''re-inter''
::* '''gamelzyegxer'''....''dig up again''
::* '''gayebmelber'''....''re-bury''
:* '''goun bi mel'''....''patch of land''
:* '''gyomel'''....''silt''
:* '''gyomelukar'''....''spade''
:* '''immel'''....''loam''
:* '''izmelkyobwa'''....''quickset''
:* '''koffeyb-melza'''....''coffee brown''
:* '''komeluk'''....''crypt''
:* '''lomelber'''....''unearth''
:* '''lomelukxer'''....''disinter''
:* '''mel mep'''....''dirt road''
:* '''mel'''....''dirt, ground, land, soil''
:* '''melaper'''....''skim across the surface of the land''
:* '''melber'''....''compost, fill in with earth, put down soil''
:* '''melbexut'''....''landholder''
:* '''melbul'''....''compost''
:* '''melbuxar'''....''bulldozer''
:* '''melfyixul'''....''fertilizer''
::* '''melfyixuluer'''....''fertilize''
::* '''melfyixuluyofwa'''....''infecund''
::* '''melfyixuluwa'''....''fertilized''
:::* '''omelfyixuluwa'''....''unfertilized''
:* '''melglal'''....''clod''
:* '''melikun'''....''land-fill, landfill''
:* '''melilp'''....''soil creep''
:* '''melkip'''....''landslide, landslip''
:* '''melmas'''....''balk, baulk, berm, parapet, rampart''
:* '''melmuf'''....''picket, stake''
::* '''melmufyan'''....''palisade, stockade''
:* '''melmufyeg'''....''soil pipe''
:* '''melnak'''....''acre''
::* '''melnakyan'''....''acreage''
:* '''melned'''....''flat, meadow, plain''
:* '''melnig'''....''plot''
:* '''melpaslun'''....''seism, temblor''
::* '''melpaslundraf'''....''seismograph''
::* '''melpasluntun'''....''seismology''
::* '''melpasluntut'''....''seismologist''
:* '''meltun'''....''agronomy, soil mechanics, soil science''
:* '''meluk'''....''ditch, dugout, hole in the ground, pit''
:* '''melukar'''....''hoe, spade''
:* '''melukarer'''....''to hoe, spade''
:* '''melukben'''....''burial''
::* '''melukben dem'''....''burial ground''
::* '''melukben fyaxel'''....''burial rite''
::* '''melukben memgon'''....''burial plot''
::* '''melukben melyaz'''....''burial mound''
:* '''melukber'''....''bury, inhume''
:* '''melukmeg'''....''headstone, tombstone''
:* '''meluknad'''....''ditch, furrow, groove, trench''
:* '''melukober'''....''dig up, exhume''
:* '''melukxar'''....''slade''
:* '''meluz'''....''natural arch''
:* '''melvyun'''....''soilure''
:* '''melyax'''....''agribusiness''
:* '''melyaz'''....''dirt pile, mound of dirt, soil mound, tomb''
::* '''melyaznad'''....''ridge''
:* '''melyex'''....''agriculture, farming, husbandry, land work, tilling the land''
::* '''melyexem'''....''farm''
:::* '''melyexem yuxut'''....''farmhand''
::* '''melyexut'''....''farmer, pawn, peasant''
::* '''melyexam'''....''farmhouse''
::* '''melyexem'''....''farm, farmstead''
::* '''melyexer'''....''to farm''
:::* '''melyexut'''....''farmer''
::* '''melyexar'''....''hand plow''
::* '''melyexdoum'''....''hacienda, manor, plantation, ranch''
:::* '''melyexdoumeb'''....''majordomo''
:::* '''melyexdoumxer'''....''to ranch''
:::* '''melyexdoumxut'''....''rancher''
:* '''melyexir'''....''plough, ploughshare, plow, plowshare, tiller''
::* '''melyexirer'''....''plow, till''
::* '''melyexirwan'''....''tilth''
::* '''melyexiryafwa'''....''tillable''
:* '''melyextun'''....''agricultural science''
:* '''melyextut'''....''agricultural scientist''
:* '''melyig'''....''silica''
:* '''melyij'''....''dugout, hole in the ground, pit''
::* '''melyijbar'''....''shovel''
::* '''melyijbarer'''....''to shovel''
:* '''melyonbyex'''....''cleft, crevasse, ground fissure''
:* '''melyonxarer'''....''to harrow''
:* '''melyoz'''....''dugout, hole, pit, trench, hollow''
::* '''melyoznad'''....''trench, furrow, ditch, ravine''
:* '''melyup'''....''landing approach''
:* '''melyuxrin'''....''feudalism''
::* '''melyuxrina'''....''feudalist, feudalistic''
::* '''melyuxrueb'''....''feudal lord''
::* '''melyuxruen'''....''enserfage''
::* '''melyuxruer'''....''enserf''
::* '''melyuxrut'''....''helot, peasant, serf, villein''
::* '''melyuxrutan'''....''helotage, peasantry, serfage, serfdom, villeinage''
:* '''melza'''....''brown, earthen brown, khaki, olive drab, brown, khaki''
::* '''amarmelzaxer'''....''suntan''
::* '''melza-eymolza'''....''taupe''
::* '''melzaxer'''....''to brown, to toast''
:::* '''melzaxar'''....''browner, toaster''
:::* '''melzaxwa'''....''toasted''
::::* '''melzaxwa povel'''....''toast''
::* '''melzaxun'''....''blight''
::* '''melzayna'''....''bright brown''
::* '''melzayt'''....''brunette''
::* '''melzsakyel'''....''caramel''
:::* '''melzsakyelxer'''....''to caramelize''
::* '''melzoyna'''....''dark brown''
::* '''melzyena'''....''browish, brownish''
::* '''mifeb-melza'''....''brown, maroon''
:::* '''mifeb-melzyena'''....''maroonish''
::* '''tayomelza'''....''brown-skinned''
::* '''teamelza'''....''brown-eyed''
::* '''yoyeb-melza'''....''peanut brown''
::* '''yufeb-melza'''....''hazel''
::* '''melyaz'''....''mound''
:::* '''puix melyaz'''....''baseball mound''
:::* '''malyaznad'''....''ridge''
:::* '''mimmelyaz'''....''cape''
::* '''melyez'''....''plain, flat''
:* '''melzyeg'''....''crater, ditch, hole in the ground, hollow, pit''
::* '''melzyegar'''....''hoe, mattock, pick, shovel, spade''
::* '''melzyegaren'''....''hoeing, shoveling, spading''
::* '''melzyegarer'''....''hoe, shovel, spade''
::* '''melzyegarik'''....''shovelful''
::* '''melzyegarut'''....''pikeman''
::* '''melzyegarwa'''....''hoed, shoveled, spaded''
::* '''melzyegen'''....''ditch-digging, excavation''
::* '''melzyeger'''....''excavate, shovel''
::* '''melzyegesar'''....''dibble''
::* '''melzyegur'''....''earthmover, excavator''
::* '''melzyeguren'''....''earthmoving, excavation''
::* '''melzyegurer'''....''excavate''
::* '''melzyegxut'''....''ditch-digger, excavator''
::* '''melzyegxwa'''....''excavated''
::* '''melzyegxen'''....''digging''
::* '''melzyegxer'''....''dig''
::* '''melzyegxut'''....''digger''
:* '''melzyun'''....''clod of earth, clump, mud ball''
:* '''mepyonmel'''....''island in the road''
:* '''milbelea mel'''....''aquifer''
:* '''mimol melzyeg'''....''salt mine, salt pit''
:* '''mimzamelyaz'''....''bluff, headland, promontory''
:* '''nyufeb-melza'''....''walnut brown''
:* '''oaxlea magyazmel'''....''inactive volcano''
:* '''odovyaba melzyeg'''....''chuckhole''
:* '''ofobyexwa mel'''....''fallow''
:* '''omelbexut'''....''lackland''
:* '''omelfyixuluwa'''....''unfertilized''
:* '''omelyexwa vob'''....''wilding''
:* '''omelyexwa vos'''....''wildflower''
:* '''omelyexwa'''....''uncultivated, wild, wilding''
:* '''omelzat'''....''non-brown person''
:* '''Omera Uyanmel'''....''Southern Europe''
:* '''opyexyea melmufyan'''....''defensive palisade, defensive stockade''
:* '''Oyanmel'''....''South America''
::* '''Oyanmela Esod'''....''Latin American Spanish''
::* '''Oyanmela melyexut'''....''campesino''
::* '''Oyanmela'''....''South American''
::* '''Oyanmelat'''....''South American''
:* '''oyb ha mel'''....''below the ground''
:* '''oybmel'''....''subsoil, underground''
::* '''oybmela'''....''subterranean, underground''
::* '''oybmelben'''....''putting underground''
::* '''oybmelber'''....''to put underground''
::* '''oybmelbwa'''....''placed underground''
:* '''oybmima magyazmel'''....''undersea volcano''
:* '''oybyanmel'''....''subcontinent''
::* '''oybyanmela'''....''subcontinental''
::* '''oybyommela magyazmel'''....''subglacial volcano''
:* '''puxrunyan bi mel'''....''flak''
:* '''pyuxmeluk'''....''crater''
:* '''semmel'''....''mesa''
:* '''sexmel'''....''cob''
:* '''tabmeluk'''....''tomb''
::* '''tabmeluk meg'''....''gravestone, headstone, tomb stone, tombstone''
::* '''tabmelukem'''....''graveyard, saree''
:* '''tabmelzyeg'''....''tomb''
::* '''tabmelzyeg meg'''....''gravestone, headstone, tomb stone, tombstone''
::* '''tabmelzyegem'''....''graveyard''
:* '''toodmeltun'''....''ethnogeography''
::* '''toodmeltuna'''....''ethnogeographic''
::* '''toodmeltut'''....''ethnogeographer''
:* '''tujea magyazmel'''....''dormant volcano''
:* '''ukmel'''....''desert''
::* '''ukmeldim'''....''oasis''
::* '''ukmelyena'''....''desert-like''
:* '''uktabmelzyeg'''....''cenotaph''
:* '''Umera Uyanmel'''....''Western Europe''
::* '''Umera Uyanmela'''....''Western European''
:* '''ummel'''....''dry land''
:* '''Uyanmel-'''....''Euro-''
::* '''Uyanmel'''....''Europe''
::* '''Uyanmela Anx'''....''European Union, EU''
::* '''Uyanmela Esod'''....''Castillian Spanish, European Spanish''
::* '''Uyanmela'''....''European''
::* '''Uyanmelat'''....''European''
::* '''Uyanmela-Usoma'''....''Euro-American''
::* '''Uyanmelaxen'''....''Europeanization''
::* '''Uyanmelaxer'''....''Europeanize''
::* '''Uyanmelaxwa'''....''Europeanized''
::* '''UIyanmel'''....''Eurasia''
::* '''UIyanmela'''....''Eurasian''
::* '''UIyanmelat'''....''Eurasian''
::* '''Uyanmelnem'''....''Eurozone''
::* '''Uyanmelxen'''....''Europeanization''
::* '''Uyanmelxer'''....''Europeanize''
::* '''Uyanmelxwa'''....''Europeanized''
:* '''Uyanmelzena'''....''Eurocentric''
:* '''vabmel'''....''sward''
:* '''vobmel'''....''cultivatable soil, glebe''
:* '''vosmelyex'''....''floriculture''
:* '''vusanmel'''....''gulch''
:* '''xahmat melyexut'''....''chess pawn''
:* '''yabmel'''....''highland''
:* '''yaga zyomelnad'''....''hogback''
:* '''yagmeluk'''....''ditch, furrow, trench''
::* '''yagmeluk dopeken'''....''trench warfare''
::* '''yagmelukxen'''....''ditch-digging''
::* '''yagmelukxut'''....''ditch-digger''
:* '''yanmel'''....''continent''
::* '''yanmela'''....''continental''
::* '''yanmelay'''....''continentally''
:* '''yebu mel'''....''aground''
:* '''yebmelben'''....''entombment''
::* '''yebmelber'''....''entomb''
::* '''yebmelbwa'''....''entombed''
:* '''yommel'''....''glacier''
::* '''yommela'''....''glacial''
::* '''yommelaber'''....''glaciate''
::* '''yommelzyeg'''....''dust well''
:* '''yonmel'''....''island''
::* '''yonmela'''....''insular, island''
::* '''yonmelan'''....''insularity''
::* '''yonmelat'''....''islander''
::* '''yonmelog'''....''cay, holm, holme, islet''
::* '''yonmelyan'''....''archipelago''
:* '''yopyosa magmemyazyeg'''....''caldera''
:* '''Yoyanmel'''....''Oceania''
::* '''Yoyanmela'''....''Oceanian''
::* '''Yoyanmelat'''....''inhabitant of Oceania, Oceanian''
:* '''yuvrat melyexem'''....''slave plantation''
:* '''zaomelzyeg'''....''soil stack''
:* '''zeyyanmela'''....''transcontinental''
:* '''zobixwa melzyegar'''....''backhoe''
:* '''zyoyobmel'''....''valley, dale''
:* '''zyupgrin melyexur'''....''rototiller''
: Here are some words derived from '''meel''' (''terrain'')
:* '''tammeel'''....''grounds, property''
: Here are some words derived from '''meil''' (''mud''):
:* '''meilmef'''....''adobe, mudbrick''
:* '''syobmeil'''....''sediment''
::* '''syobmeila'''....''sedimentary''
::* '''syobmeilser'''....''to sediment, to settle''
==== MIL -IL- Words ====
: The morpheme '''mil''' means ''water''. Three subordinal words are:
::* '''mial'''....''steam, vapor, hygro-''
::* '''miel'''....''mud''
::* '''miil'''....''dew''
:From this is derived the stub suffix '''-il''', which forms words that are liquids, such as:
::* '''bil'''....''milk''
::* '''biil'''....''juice''
::* '''zil'''....''acid''
::* '''fil'''....''alcohol''
::* '''ail'''....''fluid, liquid''
::* '''til'''....''drink''
: Here is a list of words that contain the words '''mil''', '''miel''', or '''miil''':
:*'''abmilier'''....''take a shower''
:*'''abmilpuxer'''....''to douse''
:*'''ammilbuker'''....''to scald''
:*'''ammilyeb'''....''hot-water bottle''
:*'''calkxwa mil'''....''carbonated water''
:*'''milnyif'''....''garden hose''
:*'''eynmilper'''....''to wade''
:*'''fyamil'''....''holy water''
:*'''ilbiov'''....''sponge''
:*'''ilpea mil'''....''running water''
:*'''ilyebxwa mil'''....''bottled water''
:*'''imil'''....''liquid, wet stuff''
:*'''imilxer'''....''to liquefy, liquidize''
:*'''jebmamil'''....''monsoon''
:*'''jomilyaoz'''....''wake''
:*'''jwefa mil'''....''freshwater''
:*'''kyumamiler'''....''to drizzle''
:*'''lomiluer'''....''to dehydrate''
:*'''lomilxer'''....''to exsiccate''
:*'''milbuxrar'''....''hydrant''
:*'''milzyabar'''....''fire hose''
:*'''malzyuynogea mil'''....''sparkling water''
:*'''mamil'''....''rain, precipitation''
:*'''mamilaz'''....''hard rain''
:*'''mamilazig'''....''gullywasher''
:*'''mamiler'''....''to rain''
:*'''mamilika jeb'''....''rainy season''
:*'''mamiljeb'''....''monsoon''
:*'''mamilmaf'''....''rain cloud''
:*'''mamilmif'''....''mizzle''
:*'''mamilmufyeg'''....''gutter''
:*'''mamilnagar'''....''pluviometer, rain gauge''
:*'''mamilovar'''....''umbrella''
:*'''mamiloz'''....''light shower, soft rain, sprinkle''
:*'''mamilozer'''....''to sprinkle''
:*'''mamilpyos'''....''precipitation, rainfall''
:*'''mamiltaf'''....''raincoat''
:*'''mamiltav'''....''poncho''
:*'''mamiltef'''....''rain hat''
:*'''mamiltif'''....''rain jacket, raincoat''
:*'''mamiltof'''....''rain gear, rain wear''
:*'''mamiluka'''....''rain-free''
:*'''mamiluz'''....''rainbow''
:*'''mamiluzlun'''....''rainstorm''
:*'''mamilvaka'''....''rainproof, raintight''
:*'''mamilzyun'''....''raindrop''
:*'''memilber'''....''to irrigate''
:*'''mil bi ilyujar'''....''tap water''
:*'''mil buxrar'''....''water pump''
:*'''mil faosyeb'''....''water barrel''
:*'''mil syeb'''....''water bucket, water pail''
:*'''mil mugyebag'''....''water cistern, water tank''
:*'''mil yabtom'''....''water tower''
:*'''mila suzyanam'''....''aquatic museum''
:*'''milama'''....''hydrothermal''
:*'''milamsom'''....''water-heater''
:*'''milamxus'''....''potboiler''
:*'''milapyox'''....''shower''
:*'''milapyoxam'''....''shower house''
:*'''milapyoxar'''....''shower head''
:*'''milapyoxer'''....''to shower''
:*'''milatub'''....''hydrofoil''
:*'''milaypar'''....''flotation device''
:*'''milayper'''....''to float''
:*'''milbal'''....''water pressure''
:*'''milbaluar'''....''snorkel''
:*'''milbektun'''....''hydropathy''
:*'''milbelwa'''....''waterborne''
:*'''milber'''....''to ater''
:*'''milbyek'''....''hydrotherapy''
:*'''milbyekam'''....''wellness spa''
:*'''milbyem'''....''washtub''
:*'''mildrurun'''....''aquatone''
:*'''milfob'''....''aquatic plant, hydrophyte''
:*'''milfobyex'''....''hydroponics''
:*'''milibiar'''....''hopper''
:*'''milibium'''....''sump''
:*'''milifa'''....''hydrophilic''
:*'''milij'''....''well-spring, wellspring''
:*'''milika'''....''aqueous, hydrous, watery''
:*'''milikber'''....''to swamp''
:*'''milikxer'''....''to waterlog''
:*'''milim'''....''water closet''
:*'''miluiar'''....''waterspout''
:*'''milizbar'''....''aqueduct''
:*'''milkexmuf'''....''dowsing rod''
:*'''milkipar'''....''water ski''
:*'''milkiparer'''....''to water ski''
:*'''milkyinxer'''....''to waterlog''
:*'''milkyupar'''....''float, water flotation device''
:*'''milkyuper'''....''to float on water''
:*'''milmak'''....''hydroelectricity''
:*'''milmaka mipovmas'''....''hydroelectric dam''
:*'''milmaka saxam'''....''hydroelectric plant''
:*'''milmaka yafon'''....''hydroelectric power''
:*'''milmas'''....''levee''
:*'''milmays'''....''weir''
:*'''milmemtun'''....''hydrogeology''
:*'''milmep'''....''waterway''
:*'''milmyekiram'''....''watermill''
:*'''milmir'''....''hydrosphere''
:*'''milpyos'''....''cascade, falls, waterfall''
:*'''milmoyeb'''....''water well''
:*'''milmufyeg'''....''hooka, hookah, narghile, water pipe''
:*'''milmufyega yaobar'''....''hydraulic lift''
:*'''milmufyegut'''....''plumber''
:*'''milmugyeb'''....''canteen''
:*'''milmugyebag'''....''water cistern, water tank''
:*'''milmus'''....''sluice''
:*'''milmyekber'''....''to sprinkle''
:*'''milnad'''....''waterline''
:*'''milnagar'''....''hydrometer, hydrostat''
:*'''milnagdref'''....''hydrograph''
:*'''milnedper'''....''to hydroplane''
:*'''milneg'''....''body of water''
:*'''milneyeb'''....''reservoir''
:*'''milnov grun'''....''towel hook''
:*'''milnov sammoys'''....''towel rack''
:*'''milnov'''....''towel''
:*'''milnoves'''....''towelette''
:*'''milnoyv'''....''hand towel''
:*'''milnyeb'''....''bucket, pail, water pail''
:*'''milnyem'''....''aquarium, fish tank''
:*'''milnyif'''....''hose''
:*'''milnyifuwa'''....''hosed''
:*'''milov'''....''tea towel''
:*'''milovmas'''....''causeway, dam, dyke, levee''
:*'''milovmasber'''....''to dam''
:*'''milovog'''....''hand cloth''
:*'''miloybar'''....''sinker''
:*'''miloyber'''....''to dunk, sink, submerge, submerse''
:*'''miloybixwer'''....''to drown, get dragged underwater''
:*'''miloymxer'''....''to slake''
:*'''miloyper'''....''to go underwater, sink''
:*'''milpastun'''....''hydrokinetics''
:*'''milpat'''....''waterfowl''
:*'''milpmem'''....''watershed''
:*'''milpuslen faof'''....''diving board''
:*'''milpusler'''....''to dive''
:*'''milpuslut'''....''diver, frogman''
:*'''milpux'''....''water jet''
:*'''milpyaon'''....''water wave''
:*'''milpyosag'''....''cataract''
:*'''milpyoxler'''....''plunge''
:*'''milseux'''....''swash''
:*'''milsirtyen'''....''hydromechanics''
:*'''milsiyn'''....''watermark''
:*'''milsom'''....''sink''
:*'''milsum'''....''waterbed''
:*'''milsyeb'''....''bucket, cistern, pail''
:*'''milsyebag'''....''reservoir, tank''
:*'''miltim'''....''restroom, washroom''
:*'''miltoyp'''....''nymph''
:*'''miltum'''....''w.c.''
:*'''miltun'''....''hydrology''
:*'''miltyez'''....''hydromancy''
:*'''miluar'''....''irrigator''
:*'''miluen syeb'''....''watering can''
:*'''miluer'''....''to hydrate, irrigate, water''
:*'''milyuf'''....''hydrophobia''
:*'''miltumdref'''....''toilet paper''
:*'''miluka'''....''anhydrous''
:*'''milukxar'''....''drain''
:*'''milukxer'''....''to drain''
:*'''milukxus'''....''culvert''
:*'''milvaka kyuabtaf'''....''cagoule''
:*'''milvaka'''....''waterproof''
:*'''milvolz siz'''....''aquarelle''
:*'''milvolz tayefar'''....''watercolor brush''
:*'''milvolz'''....''watercolor''
:*'''milvyuxen'''....''water pollution''
:*'''milyafon'''....''water power''
:*'''milyafon'''....''waterpower''
:*'''milyaoper'''....''to popple, bob''
:*'''milyaz'''....''surf, surge, swell''
:*'''milyazog'''....''ripple''
:*'''milyazogen'''....''rippling''
:*'''milyazoger'''....''ripple''
:*'''milyeber'''....''to bathe''
:*'''milyebler'''....''to soak''
:*'''milyebuxer'''....''to dunk''
:*'''milyebuxwa'''....''dunked''
:*'''milyem'''....''basin''
:*'''milyep oybmasoyf'''....''bath mat, bathmat''
:*'''milyep taf'''....''bath robe''
:*'''milyep tef'''....''bathing cap''
:*'''milyep tiuf'''....''bathing suit''
:*'''milyep'''....''bath, dip''
:*'''milyepam'''....''bathhouse''
:*'''milyeper'''....''to bathe, take a bath''
:*'''milyepim milsom'''....''bathroom sink''
:*'''milyepim'''....''bathroom''
:*'''milyepsom'''....''bath tub, bathtub, tub''
:*'''milyepuxer'''....''plunge''
:*'''milyepyem'''....''bath tub''
:*'''milyex'''....''aquiculture''
:*'''milsirtyen'''....''water engineering''
:*'''milyobyogem'''....''shoal''
:*'''milyom'''....''slush''
:*'''milyongonsen'''....''hydrolysis''
:*'''milyufbok'''....''rabies, hydrophobia''
:*'''milyufut'''....''hydrophobe''
:*'''milyuijar'''....''faucet, spigot''
:*'''milyuzper'''....''to wallow''
:*'''milzam'''....''waterfront''
:*'''milzyagosber'''....''to sprinkle''
:*'''milzyeg'''....''waterhole, watering hole''
:*'''milzyegem'''....''oasis''
:*'''milzyep teabar'''....''swimming goggles''
:*'''milzyep tiuf'''....''swim trunks, swimsuit''
:*'''milzyep tof'''....''swimwear''
:*'''milzyepam'''....''natatorium''
:*'''milzyeper'''....''swim''
:*'''milzyepyem'''....''swimming pool''
:*'''milzyuk'''....''waterwheel''
:*'''milzyun'''....''drop of water''
:*'''milzyunes'''....''water bead''
:*'''milzyunser'''....''to drip''
:*'''milzyunuer'''....''to instill''
:*'''mimila'''....''muriatic''
:*'''mimkumil'''....''swash''
:*'''mimmil'''....''seawater''
:*'''mimolmil'''....''saltwater''
:*'''mimuipmil'''....''tidewater''
:*'''mipa mil'''....''river water''
:*'''mipij mil'''....''spring water''
:*'''mukmil'''....''mineral water''
:*'''mumil'''....''groundwater''
:*'''mumilzyeg'''....''well''
:*'''niamil'''....''soda water''
:*'''ovyoymil'''....''antifreeze''
:*'''oybmila'''....''underwater''
:*'''oybmilar'''....''scuba''
:*'''oybmilarer'''....''to scuba dive''
:*'''oybmiltieb'''....''aqualung''
:*'''oybzobilmil'''....''undertow''
:*'''pit milsyeb'''....''aquarium, fish tank, fishbowl''
:*'''tyebmilboka'''....''hydrocephalic''
:*'''tiliyafwa mil'''....''drinking water, potable water''
:*'''tolar milnov'''....''dishtowel''
:*'''tuyab milnov'''....''hand towel, napkin''
:*'''tuyamilov'''....''hand cloth''
:*'''tuyub milyeb'''....''finger bowl''
:*'''ukxer ha milsom'''....''flush the toilet''
:*'''vak milkyupar'''....''life buoy, life raft''
:*'''yimmil'''....''floodwater, flood water''
:*'''miil'''....''dew''
:*'''miilnod'''....''dew point''
:* '''mial meup'''....''contrail''
:* '''mial-'''....''hygro-''
:* '''mial'''....''steam, vapor''
:* '''mialama'''....''hygrothermal''
:* '''mialbar'''....''atomizer, vaporizer''
:* '''mialber'''....''to steam''
:* '''mialbim'''....''sauna, steam room''
:* '''mialbok'''....''typhoid fever''
:* '''mialbur'''....''steamer''
:* '''mialdref'''....''hygrograph''
:* '''mialifa'''....''hygrophilous''
:* '''mialika'''....''steamy, vaporous''
:* '''mialmimpar'''....''steamboat''
:* '''mialmimpur'''....''steamer, steamship''
:* '''mialmufyegut'''....''steamfitter''
:* '''mialnagara'''....''hygrometric''
:* '''mialoker'''....''transpire''
:* '''mialser'''....''evaporate''
:* '''mialteaxar'''....''hygroscope''
:* '''mialuar'''....''sprayer''
:* '''mialuer'''....''to spray''
:* '''mialxer'''....''to evaporate, vaporize''
:* '''mialyena'''....''vapid''
:* '''mialyepen'''....''steam bath''
:* '''mialzyixar'''....''steamroller''
:* '''tayeb mialuar'''....''hair spray''
:* '''miil'''....''dew''
:* '''miilber'''....''to bedew''
:* '''miilika'''....''dewy''
:* '''miilzyunog'''....''dew drop''
:* '''yoymiil'''....''hoarfrost''
: Some verbs formed with the stub '''il''':
:* '''abiluer'''....''to affuse, to pour onto''
:* '''aybilper'''....''to overflow''
:* '''aybiluer'''....''to suffuse, to drench, to pour over''
:* '''biiluer'''....''to drip with juice''
:* '''biluer'''....''to milk, to nurse''
:* '''filuer'''....''to ply with alcohol''
:* '''grailuer'''....''to lavish, to gush''
:* '''ikiluer'''....''to steep, to pour to the brim''
:* '''iluer'''....''to pour''
:* '''kuiluer'''....''to slop''
:* '''kyuiluer'''....''to drizzle''
:* '''lobiluer'''....''to wean''
:* '''maegiluer'''....''to fuel''
:* '''mamiluer'''....''to rain on''
:* '''oyebiluer'''....''to exude, to excrete''
:* '''talobiluer'''....''to extravasate''
:* '''tayodriluer'''....''to tattoo''
:* '''teabiliuer'''....''to bring to tears''
:* '''teubiluer'''....''to drool''
:* '''tiibiluer'''....''to bleed''
:* '''tilaybiluer'''....''to suckle, breast-feed''
:* '''tiluer'''....''to ply with drink''
:* '''tiyebiluer'''....''to inseminate''
:* '''ugiluer'''....''to drizzle, to pour slowly''
:* '''uigiluer'''....''to trickle, to dribble''
:* '''yebiluer'''....''to instill, to infuse''
:* '''yiviluer'''....''to effuse''
:* '''yoniluer'''....''to distill''
:* '''zyailuer'''....''to splash, to splurge''
:* '''zyeiluer'''....''to perfuse, to soak''
:* '''ailxer'''....''to fluidize''
:* '''ilxer'''....''to liquify, to melt''
:* '''amilxer'''....''to melt, to fuse''
:* '''bilxer'''....''to juice''
:* '''febilxer'''....''to make musty''
:* '''filxer'''....''to ferment''
:* '''fyavyilxer'''....''to ablute''
:* '''ibilxer'''....''to melt away, to deliquese''
:* '''ilvyilxer'''....''to elute, to rinse''
:* '''maegilxer'''....''to gasify''
:* '''makamilxer'''....''to electrofuse''
:* '''mekilxer'''....''to mash''
:* '''mugilxer'''....''to cast, to smelt''
:* '''mugyanilxer'''....''to solder''
:* '''novyilxer'''....''to launder''
:* '''obvyilxer'''....''to wash off, to rinse''
:* '''oyebvyilxer'''....''to wash out, to elutriate''
:* '''povilxer'''....''to brew''
:* '''tiibilxer'''....''to bloody''
:* '''tyebvilxer'''....''to brainwash''
:* '''umfilsilxer'''....''to esterify''
:* '''umvyilxer'''....''to dry-clean''
:* '''vyilxer'''....''to wash''
:* '''ilper'''....''to flow''
:* '''abilper'''....''to influence''
:* '''abilpuxer'''....''to douse''
:* '''aybilper'''....''to overflow''
:* '''azilzyeper'''....''to swash''
:* '''azilper'''....''to billow''
:* '''ebilxer'''....''to interfuse''
:* '''grailper'''....''to flood''
:* '''gyoilper'''....''to trickle''
:* '''kyeilper'''....''to ramble''
:* '''igilper'''....''to gush''
:* '''igilpseuxer'''....''to sough''
:* '''ikilper'''....''to brim, to profuse''
:* '''ilposer'''....''to stagnate''
:* '''ilpuxer'''....''to spew, to spout''
:* '''ilpuxeger'''....''to sputter, to splutter''
:* '''ilpxer'''....''to shed''
:* '''ilpyaser'''....''to gush, to jet''
:* '''ilpyexer'''....''to spatter, to splotch''
:* '''ilpyoser'''....''to cascade, to drip''
:* '''ilpyoxer'''....''to spill''
:* '''ilpyoyxer'''....''to dip''
:* '''ilpyuxer'''....''to spurt, to squirt''
:* '''obilper'''....''to run off''
:* '''oybilper'''....''to underflow''
:* '''oyebilper'''....''to drain, to exude''
:* '''oyebteubilpuxer'''....''to spit out''
:* '''oyvilper'''....''to contraflow''
:* '''teubilpuxer'''....''to spit, to expectorate''
:* '''tiibilper'''....''to bleed''
:* '''tiibilpxer'''....''to bloodlet''
:* '''ugilper'''....''to trickle''
:* '''uzrilper'''....''to flow torrentially''
:* '''yabilper'''....''to flow up, to stream upward''
:* '''yanilper'''....''to slur, to run together''
:* '''yebilper'''....''to stream in''
:* '''yobgyoilper'''....''to trickle down''
:* '''yobilper'''....''to cascade, to trickle down''
:* '''yogilpuxer'''....''to spurt''
:* '''yuzilper'''....''to circulate''
:* '''zaoilper'''....''to fluctuate''
:* '''zoy-ilper'''....''to ebb, to flow back, to reflux''
:* '''zyeilper'''....''to seep, to soak, to flow through''
:* '''zyoilper'''....''to squirt, to spurt''
:* '''zyuilper'''....''to eddy, to swirl''
==== MUL, -UL, -LK Words ====
: The base word '''mul''' means ''matter, stuff, material, substance''. The stub suffix '''-ul''' is used to form words which are substances.
: The stub suffix '''-lk''' is used to form chemical names. The names of chemical elements are form from the Mirad spellings of the lower-cased letters in the chemical element chart. The chemical element ''bromine'' is represented on chemical element charts as ''Br''. When the lower-case equivalent of this is pronounced '''ba-ro''' in Mirad. The ending '''-lk''' is suffixed to any element, thus producing in this case: '''barolk'''.
: Note the following Mirad equivalents for derivative chemical endings in English:
:* '''-lkiyd'''....''-ide'' (ex. '''baro<u>lkiyd</u>'''....''brom<u>ide</u>''
:* '''-lkiyt'''....''-ite''
:* '''-lkayd'''....''-ade''
:* '''-lkayt'''....''-ate''
:* '''-lkayn'''....''-ane''
: Here is a list of words containing these roots and endings:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
:* '''mul'''....''material, matter, stuff, substance''
:* '''mules'''....''subatomic particle''
:* '''mulesyan'''....''compound''
:* '''mulgaber'''....''spike''
:* '''muliblar'''....''hopper''
:* '''mulikan'''....''mass''
:* '''mulikxer'''....''stuff''
:* '''mulin'''....''materialism''
:* '''mulkyaxen'''....''transubstantiation''
:* '''mulog'''....''particle''
:* '''mulogxer'''....''crumble, crush, pulverize''
:* '''mulon'''....''ion''
:* '''mulonxer'''....''ionize''
:* '''mulsana'''....''hylomorphic''
:* '''mulsaninut'''....''hylomorphist''
:* '''mulser'''....''materialize''
:* '''multejin'''....''hylozoism''
:* '''multotin'''....''hylotheism''
:* '''muluka'''....''jejune''
:* '''mulun'''....''particle, speck''
:* '''muluna'''....''molar, particulate''
:* '''mulunigxur'''....''cyclotron, particle accelerator''
:* '''mulunkunid'''....''block of matter''
:* '''mulvyixam'''....''refinery''
:* '''mulvyixer'''....''refine''
:* '''mulvyixwa'''....''refined''
:* '''mulvyuxer'''....''pollute''
:* '''mulyan'''....''clod, clot, clump, cluster''
:* '''mulyana'''....''molar''
:* '''mulyanxer'''....''clump together, cluster''
:* '''mulyonxar'''....''colander, filter, filterer, riddle, sieve, sift, strainer''
:* '''mulyonxarer'''....''riddle, filter, sift, strain''
:* '''mulyonxer'''....''filter, filtrate, leach, lixiviate, perk, sift, strain''
:* '''mulyujber'''....''tamp''
:* '''mulzyobar'''....''filter, sieve, sifter, strainer''
:* '''mulzyober'''....''filter, sift, strain''
:* '''mulzyun'''....''lump, mass, wad''
:* '''mulzyunika'''....''lumpy''
:* '''mulzyunxer'''....''wad up''
<hr>
:* '''abqomul'''....''top quark''
:* '''abteupimul'''....''enamel''
:* '''aglamakmul'''....''macroion''
:* '''aglazemul'''....''macronucleus''
:* '''alztiibiltummul'''....''hemoglobin''
:* '''ammakmul'''....''thermion''
:* '''amul'''....''element''
:* '''anvamakmul'''....''monocation''
:* '''anvomakmul'''....''monoanion''
:* '''bokmul'''....''bacterium, contaminant, germ, infection, pus''
:* '''bookxea mul'''....''pabulum''
:* '''calkvamakmul'''....''carbocation''
:* '''envamakmul'''....''bication, dication''
:* '''envomakmul'''....''dianion''
:* '''evmul'''....''neutrino''
:* '''eybmul'''....''mix, mixture''
:* '''eynmul'''....''amalgam, blend, melange''
:* '''faomul'''....''xylem''
:* '''febzemul'''....''pap''
:* '''fyeagemul'''....''mithril''
:* '''fyumul'''....''garbage, refuse, rot, rubbish, spoilage, spoils, trash, waste material''
:* '''gabyanmul'''....''admixture''
:* '''glamakmul'''....''polyion, multiion''
:* '''glavamakmul'''....''polycation''
:* '''gwomul'''....''atom''
:* '''invamakmul'''....''trication''
:* '''kaffeymul'''....''caffeine''
:* '''ketonmul'''....''acetone''
:* '''kumul'''....''siding''
:* '''kyeyanmul'''....''farrago''
:* '''lavol volyanmul'''....''potato salad''
:* '''maegilyanmul'''....''petrochemical''
:* '''makmul'''....''ion''
:* '''manmakmul'''....''photoion''
:* '''molza mul'''....''black matter''
:* '''mona mul'''....''dark matter''
:* '''nedmul'''....''surfacing''
:* '''nialkmakmul'''....''sulphion''
:* '''numul'''....''cellulose''
:* '''oglamakmul'''....''microion''
:* '''olkmakmul'''....''oxoion''
:* '''omul'''....''nihil, nil, non-entity, non-matter, nothingness''
:* '''ovmakmul'''....''counterion''
:* '''ovmul'''....''anti-matter, antimatter''
:* '''ovyasmul'''....''abstraction''
:* '''ovyimul'''....''impurity''
:* '''oyvvomul'''....''positron''
:* '''patij zemul'''....''egg yolk''
:* '''peamul'''....''ion''
:* '''pyosmul'''....''fallout''
:* '''qomul'''....''quark''
:* '''sexmul'''....''building material''
:* '''tabummul'''....''cytoplasm''
:* '''tejefmul'''....''protein''
:* '''teupib yigabmul'''....''tooth enamel''
:* '''teupimul'''....''dentin, dentine''
:* '''unvamakmul'''....''tetracation''
:* '''unvomakmul'''....''tetraanion''
:* '''utmakmul'''....''autoion''
:* '''vamakmul'''....''cation''
:* '''vamul'''....''proton''
:* '''vavol yanmul'''....''greens, mixed salad greens''
:* '''vemul'''....''neutron''
:* '''volzyanmul'''....''color blend, color mix''
:* '''vomakmul'''....''anion''
:* '''vomul'''....''electron''
:* '''vyazmul'''....''hornblende''
:* '''vyumul'''....''impurity, contaminant''
:* '''yanbixmul'''....''tannin''
:* '''yanmakmul'''....''coion''
:* '''yanmul'''....''chemical, mix, mixture''
:* '''yigfamul'''....''roughage''
:* '''yigmul'''....''hard substance''
:* '''yobgwomul'''....''nuclide''
:* '''yonmul'''....''solution''
:* '''yonpyexrea mul'''....''explosive material''
:* '''yugmul'''....''mush, pulp, puree, soft matter, soft substance, spongy substance''
:* '''zemul'''....''body matter, core, kernel, nucleus, pit, pith''
:* '''zomul'''....''end matter''
<hr>
:* '''abaul'''....''coat, coating''
:* '''abaxrul'''....''swarf''
:* '''abaxul'''....''liniment''
:* '''abmelgorful'''....''mulch''
:* '''abtiyotayubul'''....''adrenalin, epinephrine''
:* '''abyexegwul'''....''batter''
:* '''alza uopetsiynxul'''....''ruddle''
:* '''ambokovul'''....''febrifuge''
:* '''apayetavyul'''....''guano''
:* '''ekpetavyul'''....''road apple''
:* '''atobijtojbul'''....''germicidal, germicide''
:* '''axlul'''....''agent''
:* '''aynmuxul'''....''alembic''
:* '''azul'''....''energy''
:* '''balwul'''....''pesto''
:* '''bekul'''....''drug, medicament, medicine, pharmaceutical, potion''
:* '''bilgyaul'''....''butterfat''
:* '''bilul'''....''casein''
:* '''bokogruntojbul'''....''bactericide, germicide''
:* '''bokul'''....''poison, potion, toxin, venin, venom''
:* '''booxul'''....''tranquilizer''
:* '''byexovxul'''....''antiknock''
:* '''byokobul'''....''paregoric''
:* '''byoktojbul'''....''narcotic, painkiller''
:* '''ebtabifuul'''....''aphrodisiac''
:* '''faobyagbexul'''....''creosote''
:* '''favoful'''....''fluff, foam''
:* '''fayebobul'''....''defoliant''
:* '''fitapxul'''....''conditioner''
:* '''fiteuxul'''....''flavoring''
:* '''ful'''....''chaff''
:* '''futeiskoxul'''....''elixir''
:* '''futeisobul'''....''deodorant, deodorizer''
:* '''fuvabtojbul'''....''weedkiller''
:* '''fyul'''....''slop''
:* '''fyupelttojbul'''....''pesticide''
:* '''fyusul'''....''waste matter''
:* '''fyuul'''....''recrement''
:* '''gapoteupibul'''....''ivory''
:* '''zepovob nofyigxul'''....''cornstarch''
:* '''glatejbekul'''....''multivitamin''
:* '''gratayoxul'''....''allergen''
:* '''gyanoxwul'''....''slurry, spatterdash''
:* '''gyoa tavyul'''....''scutter''
:* '''hyasbyekul'''....''elixir, nostrum''
:* '''ibtelovxul'''....''anticorrosive''
:* '''ifbekul'''....''drug, recreational drug''
:* '''igraxul'''....''accelerant''
:* '''ijbekul'''....''first notion, germ of a notion''
:* '''ilxwul'''....''fondant''
:* '''asompavul'''....''heroin''
:* '''iymxul'''....''moistener''
:* '''jaovbekul'''....''vaccine''
:* '''jwasazul'''....''protoplasm''
:* '''jwoxul'''....''retardant''
:* '''kapot bokul'''....''rat poison''
:* '''kyobexul'''....''adhesive''
:* '''lopaaxul'''....''depressant''
:* '''loyanbalul'''....''decongestant''
:* '''makizbul'''....''electrolyte, electrolytic''
:* '''malzaxul'''....''bleach''
:* '''masazul'''....''daub, gypsum, plaster of Paris, poultice''
:* '''masul'''....''walling''
:* '''mavugxul'''....''flame-retardant''
:* '''megul'''....''scoria''
:* '''melbul'''....''compost''
:* '''melfyixul'''....''fertilizer''
:* '''mimvokojbul'''....''algicide''
:* '''moabikxul'''....''oakum''
:* '''monxul'''....''darkener''
:* '''moyvuul'''....''fumigant''
:* '''mugul'''....''scoria''
:* '''nazmukfyul'''....''gangue''
:* '''nofyigxul'''....''carb''
:* '''okyiabxul'''....''laxative''
:* '''ovbekul'''....''antidote''
:* '''ovbokogrunul'''....''anti-bacterial, antibacterial''
:* '''ovbokul'''....''anti-toxin, antitoxin, galena''
:* '''ovilzaxul'''....''blueing''
:* '''ovmavxenul'''....''cortisone''
:* '''ovolkxul'''....''antioxidant''
:* '''ovolyabul'''....''leaven''
:* '''ovpobokul'''....''antivenin''
:* '''ovtabessaxul'''....''antigen''
:* '''ovuvtipul'''....''antidepressant''
:* '''ovyanglalxul'''....''anticoagulant''
:* '''oybabaul'''....''undercoating''
:* '''oyebalwul'''....''espresso''
:* '''pasyofbokul'''....''paralytic''
:* '''patavyul'''....''birdlime''
:* '''patijmazul'''....''albumen, albumin''
:* '''pelt ovbuxul'''....''insect repellent''
:* '''peltbokul'''....''insecticide''
:* '''piyezul'''....''nacre''
:* '''pobokul'''....''toxin, venom''
:* '''pooxul'''....''sedative''
:* '''puxrawul'''....''shrapnel''
:* '''puysegyul'''....''elastic''
:* '''sazul'''....''plastic''
:* '''sexyanul'''....''construction mortar''
:* '''sul'''....''base, chemical base''
:* '''taibul'''....''marrow''
:* '''tavyul'''....''dung, excrement, excreta, excretion, feces, manure, poop, shit, slop, waste''
:* '''tayebobul'''....''depilatory''
:* '''tayefmanxul'''....''brilliantine''
:* '''tayib bosaxul'''....''sedative''
:* '''tayibbokul'''....''neurotoxin''
:* '''tayobiluul'''....''sudorific''
:* '''teabvixul'''....''eye shadow''
:* '''teabyebgyaxul'''....''mascara''
:* '''tejbekul'''....''vitamin''
:* '''tejogruntojbul'''....''microbicide''
:* '''telefxul'''....''appetizer''
:* '''tepul'''....''fodder''
:* '''teubukxwul'''....''sputum''
:* '''teubvyixul'''....''mouthwash''
:* '''tiebukxen bekul'''....''cough medicine, cough syrup, cough syrup''
:* '''tijbul'''....''sperm''
:* '''tijbultojbus'''....''spermicide''
:* '''tikibul'''....''heparin''
:* '''tikul'''....''sweetbread''
:* '''tikyebul'''....''dung, feces, shit, slop''
:* '''tipuvxul'''....''depressant''
:* '''tofyolzaxul'''....''bluing''
:* '''tojbul'''....''bequest''
:* '''toopaxul'''....''androgen''
:* '''tospanuul'''....''stimulant''
:* '''tosyofxul'''....''anaesthetic, anesthetic, anesthetizing agent, numbing agent''
:* '''tuj bekul'''....''sleep medicine''
:* '''tujbul'''....''anesthetic''
:* '''tujdul'''....''hypnosis''
:* '''tulobul'''....''keratin''
:* '''twiyibul'''....''testosterone''
:* '''ugxul'''....''retardant''
:* '''ukxwul'''....''drainage''
:* '''-ul'''....''stub prefix for substance''
:* '''umvyixul'''....''freebase''
:* '''umxul'''....''desiccant''
:* '''uxul'''....''endocrine, hormone''
:* '''vakyujul'''....''sealant''
:* '''vaybtojbul'''....''herbicide''
:* '''veebuul'''....''fertilizer''
:* '''vixalzul'''....''rouge''
:* '''vixul'''....''cosmetic, make-up, makeup''
:* '''vobvazul'''....''chlorophyll''
:* '''volzyanxuul'''....''tempera''
:* '''voylzul'''....''dyestuff''
:* '''vuteisobul'''....''deodorant''
:* '''vyixul'''....''cleanser, detergent''
:* '''vyizaxul'''....''purger''
:* '''vyobekul'''....''placebo''
:* '''vyosul'''....''crap, tripe''
:* '''vyotepsinxul'''....''hallucinogen''
:* '''vyul'''....''crud, dirt, dreg, dregs, grime, muck, mud, slime, sludge, soil, waste''
:* '''vyunobul'''....''disinfectant, stain-removal''
:* '''xul'''....''stimulus''
:* '''yafonul'''....''fuel''
:* '''yagxul'''....''extender''
:* '''yanul'''....''adhesive, glue, goo, mortar, paste''
:* '''yebtiexul'''....''inhalant''
:* '''yebyafwa bekul'''....''suppository''
:* '''yigfa nedvixul'''....''roughcast''
:* '''yigsaxul'''....''starch''
:* '''yigxul'''....''hardener''
:* '''yigzilovul'''....''antacid''
:* '''yivul'''....''chaff''
:* '''yizkyasul'''....''metabolite''
:* '''yonpyexrul'''....''explosive material''
:* '''yoymovul'''....''antifreeze''
:* '''yuglaxul'''....''tenderizer''
:* '''yugraxul'''....''balm, balsam, demulcent''
:* '''yugtaxul'''....''laxative, relaxant''
:* '''zapuxul'''....''propellant''
:* '''zeysansul'''....''metabolite''
:* '''zoybuxul'''....''repellent''
<hr>
:* '''acalk'''....''actinium, Ac''
:* '''agelk'''....''silver, Ag''
:* '''ahelkayn'''....''methane''
:* '''ahelkeyn'''....''acetylene''
:* '''ailkyostix'''....''hydrostatics''
:* '''alahelkayn'''....''undecane''
:* '''alehelkayn'''....''dodecane''
:* '''alilk calkayt'''....''aluminum carbonate''
:* '''alilk'''....''aluminum, Al''
:* '''alilkayeb'''....''aluminum foil''
:* '''aliolkiyd'''....''corundum''
:* '''alkiyn zil'''....''amino acid''
:* '''alkiyn'''....''amino''
:* '''alohelkayn'''....''decane''
:* '''alyuhelkayn'''....''hexadecane''
:* '''amilk'''....''americium, Am''
:* '''anolkiyd'''....''monoxide''
:* '''arolk'''....''argon, Ar''
:* '''asolk'''....''arsenic, As''
:* '''atulk'''....''astatine, At''
:* '''aulk'''....''gold, Au''
:* '''baalk'''....''barium, Ba''
:* '''bael solkayt'''....''beryllium sulfate''
:* '''baelk'''....''beryllium, Be''
:* '''bahelk'''....''bohrium, Bh''
:* '''bailk'''....''bismuth, Bi''
:* '''bainhelkayn'''....''borane''
:* '''bakilk'''....''berkelium, Bk''
:* '''balk infelkiyd'''....''boron trifluoride''
:* '''balk'''....''boron, B''
:* '''barolk'''....''bromine, Br''
:* '''bixfeelk'''....''magnet''
:* '''caalk calkayt'''....''sodium carbonate''
:* '''caalk heolkiyd'''....''calcium hydroxide''
:* '''caalk solkayt'''....''calcium sulfate''
:* '''caalk'''....''calcium, Ca''
:* '''caalkzil'''....''calcimine''
:* '''caanfelipolkis'''....''apatite''
:* '''caanolkiyd'''....''carbon monoxide''
:* '''cacalilkiyd'''....''phosgene''
:* '''cadalk solkiyd'''....''cadmium sulfide''
:* '''cadalk'''....''cadmium, Cd''
:* '''caelk'''....''cerium, Ce''
:* '''caenheolkiyd'''....''formaldehyde''
:* '''caenolkiyd'''....''C2O, carbon dioxide''
:* '''cafelk'''....''californium, Cf''
:* '''caheenolk'''....''carb''
:* '''cahelkayt'''....''carbohydrate, starch''
:* '''cahelkiyd'''....''cyanide''
:* '''cainhelk'''....''methyl''
:* '''cainhelkxwa'''....''methylated''
:* '''cainheohelk'''....''methanol''
:* '''califelicalk'''....''chlorofluorocarbon''
:* '''calilk'''....''chlorine, Cl''
:* '''calilkayt'''....''chlorate''
:* '''calilkis'''....''chlorite''
:* '''calilkiyd'''....''chloride''
:* '''calilksan'''....''chloroform''
:* '''calipolkis'''....''chlorophosphite''
:* '''calk'''....''carbon, C''
:* '''calka zil'''....''carbonic acid''
:* '''calkayt'''....''carbonate''
:* '''calkiyd'''....''carbide''
:* '''calkxwa mil'''....''carbonated water''
:* '''camilk'''....''curium, Cm''
:* '''canilk'''....''copernicium, Cn''
:* '''caolk'''....''cobalt, Co''
:* '''carolk'''....''chrome, chromium, Cr''
:* '''carolkayt'''....''chromate''
:* '''casolk'''....''caesium, cesium, Cs''
:* '''caulk'''....''copper, Cu''
:* '''caulka barolkiyd'''....''cupric bromide''
:* '''caulkis'''....''malachite''
:* '''caunhelk'''....''methane''
:* '''cauzunilk'''....''brass''
:* '''cayinheyunnioelk'''....''acetaminophen''
:* '''cayunheanlinilk'''....''amphetamine''
:* '''dabalk'''....''dubnium, Db''
:* '''dasolk'''....''darmstadtium, Ds''
:* '''dayulk'''....''dysprosium, Dy''
:* '''drarcalk'''....''graphite''
:* '''ehelkayn'''....''ethane''
:* '''ehelkeyn'''....''benzene''
:* '''encarolkayt'''....''dichromate''
:* '''enhelk polkayt'''....''dihydrogan phosphate''
:* '''enheolkayn'''....''oxidane''
:* '''enolkin'''....''dioxin''
:* '''enolkiyd'''....''dioxide, peroxide''
:* '''enpolkis'''....''diphosphite''
:* '''enrotoelkiyd'''....''telluride''
:* '''erolk'''....''erbium, Er''
:* '''esolk'''....''einsteinium, Es''
:* '''eulk'''....''europium, Eu''
:* '''feeensolkis'''....''pyrite''
:* '''feelk'''....''iron, Fe''
:* '''feelkit'''....''ferrite''
:* '''feelkug'''....''wrought iron''
:* '''feelkuyk'''....''hematite''
:* '''feelkyig'''....''steel''
:* '''felilk'''....''flerovium, Fl''
:* '''felilkis'''....''fluorite''
:* '''felilkiyd'''....''fluoride''
:* '''felk'''....''fluorine, F''
:* '''femilk'''....''fermium, Fm''
:* '''ferolk'''....''francium, Fr''
:* '''gacalilka zil'''....''perchloric acid''
:* '''gaolkiyd'''....''dioxide''
:* '''gealk'''....''gallium, Ga''
:* '''gedalk'''....''gadolinium, Gd''
:* '''geelk'''....''germanium, Ge''
:* '''gocalilkiyd'''....''hypochlorite''
:* '''hecalilka zil'''....''hydrochoric acid''
:* '''hecalilka'''....''hydrochloric''
:* '''heelk'''....''helium, He''
:* '''hefelk'''....''hafnium, Hf''
:* '''hegelk'''....''mercury, Hg, quicksilver''
:* '''helk calkayt'''....''hydrogan carbonate''
:* '''helk polkayt'''....''hydrogen phosphate''
:* '''helk solkayt'''....''hydrogen sulfate, bisulfate''
:* '''helk'''....''hydrogen, H''
:* '''helka zil'''....''acetic acid''
:* '''heolk'''....''holmium, Ho''
:* '''heolkiyd'''....''hydroxide''
:* '''hesolk'''....''hassium, Hs''
:* '''hesolka zil'''....''hydrosulfuric acid''
:* '''ihelkayn'''....''butane''
:* '''ilk'''....''iodine, I''
:* '''ilkat'''....''iodate''
:* '''ilkiyn'''....''iodine''
:* '''ilkiyd'''....''iodide''
:* '''incaheyaolk'''....''C3H6O, acetone''
:* '''incayanheolk'''....''acetone''
:* '''inheolk'''....''H2O''
:* '''inilk'''....''indium, In''
:* '''inolk'''....''ozone''
:* '''irolk'''....''iridium, Ir''
:* '''kiilkiyd'''....''potassium iodide''
:* '''kilk barolkiyd'''....''potassium bromide''
:* '''kilk ilkiyd'''....''potassium iodide''
:* '''kilk'''....''potash, potassium, K''
:* '''kirolk'''....''krypton, Kr''
:* '''lialk'''....''lanthanum, La''
:* '''liilk'''....''lithium, Li''
:* '''lirolk'''....''lawrencium, Lr''
:* '''liulk'''....''lutetium, Lu''
:* '''livulk'''....''livermorium, Lv''
:* '''micalk'''....''moscovium, Mc''
:* '''midalk'''....''mendelevium, Md''
:* '''migelk polkayt'''....''magnesium phosphate''
:* '''migelk'''....''magnesium, Mg''
:* '''minilk'''....''manganese, Mn''
:* '''minilkayt'''....''manganate''
:* '''miolk'''....''brine, molybdenum, Mo''
:* '''mitolk'''....''meitnerium, Mt''
:* '''nialk enbalkas alomilkayt'''....''borax''
:* '''nialk calkayt'''....''sodium carbonate''
:* '''nialk encalkayt'''....''sodium bicarbonate''
:* '''nialk felkiyd'''....''sodium fluoride''
:* '''nialk olkiyd'''....''sodium oxide''
:* '''nialk solkayt'''....''sodium sulfate''
:* '''nialk'''....''sodium, Na''
:* '''nialkmakmul'''....''sulphion''
:* '''niamulcalilkiyd'''....''sodium chloride''
:* '''nibalk'''....''niobium, Nb''
:* '''nidalk'''....''neodymium, Nd''
:* '''nielk'''....''neon, Ne''
:* '''nienhelkin'''....''amphetamine''
:* '''nihelk'''....''nihonium, Nh''
:* '''niilk'''....''nickel, Ni''
:* '''niinnhelkiyd'''....''ammonia, ammonium''
:* '''niinnhelkiza'''....''ammoniac, ammoniacal''
:* '''niinolkis'''....''nitrite''
:* '''niinolkiyd'''....''nitride''
:* '''niinolkxen'''....''nitration, nitrification''
:* '''nilk incalilkiyd'''....''nitrogen trichloride''
:* '''nilk inhelkayn'''....''azane''
:* '''nilk'''....''azote, nitrogen, N''
:* '''nilka zil'''....''nitric acid''
:* '''nilkaya zil'''....''nitrous acid''
:* '''niolk'''....''nobelium, No''
:* '''nipolk'''....''neptunium, Np''
:* '''ogemolk'''....''oganesson, Og''
:* '''ohelkayn'''....''alkane''
:* '''olk'''....''oxygen, O''
:* '''olkiyd'''....''oxide''
:* '''osolk'''....''osmium, Os''
:* '''poalk'''....''protactinium, Pa''
:* '''pobalk'''....''lead, Pb''
:* '''podalk'''....''palladium, Pd''
:* '''poinhelkayn'''....''phosphane, phosphine''
:* '''polilk'''....''plutonium, Pl''
:* '''polk'''....''phosphorus, P''
:* '''polka zil'''....''phosphoric acide''
:* '''polkayt'''....''phosphate''
:* '''polkis'''....''phosphite''
:* '''pomilk'''....''promethium, Pm''
:* '''poolk'''....''polonium, Po''
:* '''porolk'''....''praseodymium, Pr''
:* '''potulk'''....''platinum, Pt''
:* '''roalk'''....''radium, Ra''
:* '''robalk'''....''rubidium, Rb''
:* '''roelk'''....''rhenium, Re''
:* '''rofelk'''....''rutherfordium, Rf''
:* '''rogelk'''....''roentgenium, Rg''
:* '''ronilk'''....''radon, Rn''
:* '''roulk'''....''ruthenium, Ru''
:* '''sobalk'''....''antimony, Sb''
:* '''socalk'''....''scandium, Sc''
:* '''soelk'''....''selenium, Sl''
:* '''sogelk'''....''seaborgium, Sg''
:* '''sohelk'''....''thiol''
:* '''soilk'''....''silicon, Si''
:* '''solk calilkiyd'''....''sodium chloride, salt''
:* '''solk'''....''sol, sulfur, S''
:* '''solkayt'''....''sulfate''
:* '''solkil'''....''sulfur water, tonic''
:* '''solkis'''....''sulfite''
:* '''solkiyd'''....''sulfide''
:* '''somilk'''....''samarium, Sm''
:* '''sonilk'''....''tin''
:* '''sonilkayeb'''....''tin foil, tin plate, tin-plate, tinfoil, tin-foil, tinplate''
:* '''sonilkvib'''....''tinsel''
:* '''sorolk'''....''strontium, Sr''
:* '''tualk'''....''tantalum, Ta''
:* '''tubalk'''....''terbium, Tb''
:* '''tucalk'''....''technetium, Tc''
:* '''tuelk'''....''tellurium, Tl''
:* '''tuhelk'''....''thorium, Th''
:* '''tuilk'''....''titanium, Ti''
:* '''tulilk'''....''thallium, Tl''
:* '''tulk'''....''thulium, T''
:* '''tusolk'''....''tennessine, Ts''
:* '''uhelkayn'''....''pentane''
:* '''ulk'''....''uranium, U''
:* '''ulohelkayn'''....''tetracosane''
:* '''uncalilkiyd'''....''tetrachloride''
:* '''vulk'''....''vanadium, V''
:* '''wulk'''....''tungsten, W''
:* '''xuelk'''....''xenon, Xe''
:* '''yahelkayn'''....''hexane''
:* '''yehelkayn'''....''heptane''
:* '''yihelkayn'''....''octane''
:* '''yincaalinhenilk'''....''amphetamine''
:* '''yizyincaalinhenilk'''....''methamphetamine''
:* '''yohelkayn'''....''propane''
:* '''yubalk'''....''ytterbium, Yb''
:* '''yuhelkayn'''....''nonane''
:* '''yulk'''....''yttrium, Y''
:* '''zunilk'''....''zinc, Zn''
:* '''zurolk'''....''zirconium, Zr''
</div>
{{small/end}}
=== '''MOM''' ''Cosmos'' ===
: The base word '''mom''' (''cosmos'') is the zeroth member of a geo-specific word series:
:* '''mom'''....''cosmos, outer space''
:* '''mam'''....''sky''
:* '''mem'''....''land, ground, earth''
:* '''mim'''....''sea''
:* '''mum'''....''underground''
: Principal derivatives of '''mom''':
:* '''moma'''....''spatial, cosmic''
:* '''momaf'''....''nebula''
:* '''momeg'''....''meteoroid''
::* '''momegos'''....''meteorite''
:* '''mompar'''....''spaceship, space vehicle''
:* '''momput'''....''astronaut''
:* '''momtaf'''....''space suit''
:* '''momteaxam'''....''observatory''
:* '''momtun'''....''astronomy''
:* '''momtyop'''....''space walk''
: The vehicles adapted to the above geo-specific spheres are:
:* '''mompur'''....''spaceship''
::* '''momput'''....''astronaut''
:* '''mampur'''....''airplane''
::* '''mamput'''....''air traveler''
:* '''mempur'''....''automobile, car''
::* '''memput'''....''motorist''
:* '''mimpur'''....''ship''
::* '''mimput'''....''mariner''
::* '''mimpar'''....''boat'' (smaller)
:::* '''mimparut'''....''boater, sailor''
:* '''mompur'''....''subway, metro''
::* '''momput'''....''subway rider''
:* '''pur''' by itself is the usual way to say ''car''.
==== MAM Words ====
: Principal derivatives of '''mam''' (''sky''):
:* '''mam'''....''sky, heavens''
::* '''mama'''....''celestial''
::* '''mamanig'''....''lightning''
::* '''mamaybuz'''....''firmament, celestial vault''
::* '''mamboka'''....''airsick''
::* '''mamil'''.....''rain''
:::* '''mamiler'''....''to rain''
:::* '''mamilaz'''....''downpour''
:::* '''mamilmaf'''....''raincloud''
:::* '''mamilovar'''....''umbrella''
:::* '''mamiluz'''....''rainbow''
:::* '''mamiluzrun'''....''rainstorm''
:::* '''mamilzyunes'''....''raindrop''
::* '''mamnaduz'''....''azimuth''
::* '''mamper'''....''to go by air''
:::* '''mampuiem'''....''airport''
:::* '''mampur'''....''airplane''
::::* '''mampurexut'''....''aviator, air pilot''
::::* '''mampurilp'''....''air traffic''
::::* '''mampurofbirer'''....''to skyjack''
::::* '''mampurtun'''....''avionics''
::::* '''mampursurtyen'''....''aeronautical engineering''
::* '''mampus'''....''skydive''
::* '''mamteazpasen'''....''aerobatics''
::* '''mamxeus'''....''thunder''
::* '''mamyabeler'''....''to airlift''
::* '''mamyom'''....''hail''
:::* '''mamyomes'''....''sleet''
::::* '''mamyommeg'''....''hailstone''
::* '''mamzyuplur'''....''helicopter''
==== MEM Words ====
: The principal derivatives of '''mem''' (''land, ground, country'') are:
: '''mem'''....''land, ground, country''
:: '''meam'''....''region''
:: '''meem'''....''territory''
:: '''meim'''....''countryside, rural area''
:: '''meum'''....''district''
: Other derivatives are:
: '''agalmem'''....''mainland''
: '''bey mem'''....''by land''
: '''dobamem'''....''province''
::* '''dobemem'''....''prefect''
::* '''dobumem'''....''commune''
::* '''fabmem'''....''woodland''
::* '''fobmem'''....''cropland''
::* '''fyezmem'''....''fairyland''
::* '''hyumem'''....''foreign country''
:::* '''hyumemat'''....''foreignor''
::::* '''hyumematyuf'''....''xenophobia''
::* '''immem'''....''wetland''
::* '''mempur'''....''automobile, car''
:::* '''mempuram'''....''carport, garage''
::* '''mempier'''....''to take off''
::* '''mempuer'''....''to land''
:::* '''mempuiem'''....''runway''
::* '''memyaz'''....''mountain''
:::* '''magmemyaz'''....''volcano''
:::* '''memyayz'''....''hill''
:::* '''memyazes'''....''knob''
::* '''memyoz'''....''valley, dale''
::* '''memyez'''....''plain''
::* '''membier'''....''to occupy, to take over''
::* '''memgon'''....''plot, lot''
::* '''memiber'''....''to import''
::* '''memiper'''....''to emigrate''
::* '''memyebeler'''....''to import''
:::* '''memoyebeler'''....''to export''
::* '''memoyeber'''....''to deport''
::* '''mempiler'''....''to flee the country''
:::* '''mempilut'''....''refugee''
::* '''memsem'''....''plateau''
::* '''memsin'''....''landscape''
:::* '''memsingondrut'''....''topographer''
:::* '''memsinvixut'''....''landscaper''
::* '''memsiyn'''....''landmark''
::* '''memuper'''....''to immigrate''
::* '''memyuva'''....''feudal''
:::* '''memyuvat'''....''serf''
:::* '''memyuvdab'''....''fiefdom''
:::* '''memyuvin'''....''feudalism''
:::* '''memyuvxwat'''....''vassal''
::* '''memzayaz'''....''promontory, cliff, headland''
:::* '''memzayazyan'''....''palisade''
==== MIM Words ====
: The word '''mim''' means ''sea'' and has the following principal derivatives:
:* '''mim'''....''sea''
::* '''miam'''....''lake''
::* '''miem'''....''marsh''
::* '''mium'''....''pond''
::* '''miyom'''....''pool''
::* '''miyam'''....''puddle''
: Other derivatives are:
:* '''mimog'''....''lagoon''
:* '''mimag'''....''ocean, high seas'' (also: '''mirmim''')
::* '''Amimag'''....''Arctic Ocean''
::* '''Emimag'''....''Indian Ocean''
::* '''Omimag'''....''Southern Ocean''
::* '''Umimag'''....''Pacific Ocean''
::* '''Imimag'''....''Atlantic Ocean''
::* '''zeymimaga'''....''transoceanic''
::* '''mimagpur'''....''ocean-liner''
:* '''mimanur'''....''lighthouse''
:* '''mimbelur'''....''cargo ship''
:* '''mimbok'''....''nausea''
:* '''mimdeuz'''....''sea chanty''
:* '''mimdom'''....''sea port''
::* '''mimdoym'''....''marina''
:* '''mimgrun'''....''anchor''
:* '''mimif'''....''mist''
:* '''mimil'''....''seawater''
:* '''mimkum'''....''seashore, coast''
::* '''mimkumnad'''....''coastline''
::* '''mimkumpuer'''....''to dock''
::* '''mimkumuz'''....''bay, gulf''
:::* '''mimkumuzog'''....''cove, bight''
:::* '''mimkumyij'''....''loch, lough''
:::* '''mimkumyoz'''....''inlet''
:* '''mimkunad'''....''seaboard''
:* '''mimmep'''....''sea lane''
:* '''mimmipyij'''....''estuary''
:* '''mimmis'''....''porthole''
:* '''mimnad beaxutyan'''....''coastguard''
:* '''mimneg'''....''sea level''
:* '''mimobem'''....''seabed''
:* '''mimof'''....''sail''
::* '''mimofaof'''....''sailboard''
::* '''mimofkyaxer'''....''to gibe''
::* '''mimofpar'''....''sailboat''
:::* '''mimofper'''....''to sail''
:* '''mimok'''....''shipwreck''
::* '''mimokyat'''....''castaway''
:* '''mimol'''....''salt''
::* '''mimolbexler'''....''to cure''
::* '''mimolmiem'''....''salt marsh''
::* '''mimolober'''....''to desalinate''
::* '''mimolteisa'''....''brackish''
::* '''mimoluer'''....''to salt''
::* '''mimolyez'''....''salt flat''
:* '''mimpar'''....''boat''
::* '''mimparam'''....''boathouse''
::* '''mimpareb'''....''boat captain''
::* '''mimparog'''....''dingy''
::* '''mimparpuem'''....''dock, pier''
::* '''mimparnyades'''....''flotilla''
:* '''mimper'''....''to go by sea, to sail''
::* '''mimpea'''....''sea-faring''
::* '''mimpen'''....''seafaring, navigation''
::* '''mimpiem'''....''quay''
:* '''mimpob'''....''seaweed, alga''
:* '''mimpop'''....''sea voyage''
:* '''mimpot'''....''sea creature, marine animal''
:* '''mimpuer'''....''to dock, to embark''
::* '''mimpuiem'''....''dock, port, haven, harbor''
:* '''mimpur'''....''ship''
::* '''mimpuraopem'''....''embarcadero, wharf''
::* '''mimpurayob'''....''hull''
::* '''mimpurdet'''....''shipmate''
::* '''mimpureb'''....''skipper, sea captain''
::* '''mimpurebim'''....''stateroom''
::* '''mimpurizber'''....''to steer, to navigate''
:::* '''mimpurizbar'''....''helm, steering wheel''
:::* '''mimpurizbim'''....''bridge''
:::* '''mimpurizbut'''....''steersman, pilot''
::* '''mimpurkyiz'''....''shipload, cargo''
::* '''mimpurkyoxwa'''....''berthed''
::* '''mimpurmasyan'''....''bulkhead''
::* '''mimpurnyad'''....''convoy''
::* '''mimpuroper'''....''to disembark''
::* '''mimpursexut'''....''shipbuilder''
::* '''mimpurtwobet'''....''ship's boy''
::* '''mimpurvakem'''....''harbor, haven''
:::* '''mimpurvakemeb'''....''harbormaster''
::* '''mimpurxeb'''....''boatswain''
::* '''mimpuryan'''....''fleet''
::* '''mimpuryuxlut'''....''ship steward''
::* '''mimpurzam'''....''forecastle''
:* '''mimpur'''....''ship''
::* '''mampurbelea mimpur'''....''aircraft carrier''
::* '''abmosobwa mimpur'''....''razee''
::* '''adopiruwa mimpur'''....''gunship''
::* '''beax mimpur'''....''guard boat''
::* '''nunkyis mimpur'''....''cargo vessel''
::* '''bokam mimpur'''....''hospital ship''
::* '''bol mimpur'''....''support ship''
::* '''bixneaf mimpur'''....''trawler''
::* '''cepeitkexea mimpur'''....''whaling vessel''
::* '''doopbelea mimpur'''....''troopship''
::* '''dopek mimpur'''....''battleship''
::* '''felkayob mimpur'''....''windjammer''
::* '''mugyebag mimpur'''....''tanker''
::* '''ifpop mimpur'''....''cruise ship''
::* '''igapyex mimpur'''....''fast attack craft''
::* '''inmimyufa mimpur'''....''galleon''
::* '''maeg mimpur'''....''collier''
::* '''mag mimpur'''....''fire ship''
::* '''manar mimpur'''....''lightvessel''
::* '''mial mipur'''....''steamer''
::* '''mifubwa mimpur'''....''galley''
::* '''nyux mimpur'''....''supply ship''
::* '''mugzyinxwa mimpur'''....''ironclad''
::* '''nyebab mimpur'''....''container ship''
::* '''nyemimpur'''....''ark''
::* '''yagpip dopel mimpur'''....''cruiser''
:* '''mimpyafa'''....''seaworthy''
:* '''mimpyaon'''....''surf, seacrest, breaker''
::* '''mimpyaonper'''...''to surf''
:* '''mimseuxar'''....''foghorn''
:* '''mimsin'''....''seascape''
:* '''mimteas'''....''seaview''
:* '''mimtel'''....''seafood''
:* '''mimtun'''....''oceanography''
:* '''mimtwob'''....''seaman''
:* '''mimuba'''....''seaward''
:* '''mimuip'''....''tide, ebb and flow''
::* '''mimuipa dim'''....''tidal basin''
::* '''mimuipa mip'''....''tidal river, estuary''
::* '''mimuipa pyaon'''....''tidal wave, tsunami''
::* '''mimip'''....''ebb tide, ebb''
::* '''mimup'''....''flood tide, flow''
:* '''mim-ulza'''....''sea-green''
:* '''mimvakdib'''....''coastguard''
:* '''mimvakxeyn'''....''salvage''
:* '''mimyaz'''....''surf''
::* '''mimyaz faof'''....''surf board''
::* '''mimyazper'''....''to surf''
:* '''mimyij'''....''cove, inlet, firth''
:* '''mimyobler'''....''to sink'' (tr.)
:* '''mimyopler'''....''to sink'' (intr.)
:* '''mim-yolza'''....''aquamarine, sea blue''
:* '''mimyom'''....''iceberg''
:* '''mimyufpyot'''....''sea-monster''
:* '''mimyuzpuxwer'''....''to be storm-tossed''
:* '''mimzan'''....''seafront''
:* '''yaba mimi'''....''high seas''
:* '''yebmema mim'''....''inland sea''
:* '''yija mim'''....''open sea''
:* '''yoiba mim'''....''deap sea''
:* '''zyoebmim'''....''strait''
: Some important seas around the world:
:* '''Zeimera Mir'''....''Mediterranean Sea''
:* '''Zamer Mir'''....''North Sea''
:* '''Kaspima Mir'''....''Caspian Sea''
:* '''Karibima Mir'''....''Caribbean Sea''
:* '''Zomera Kinama Mir'''....''South China Sea''
:* '''Beringa Mir'''....''Bering Sea''
:* '''Meksikama Mir'''....''Gulf of Mexico''
:* '''Alza Mir'''....''Red Sea''
==== MUM Words ====
: The word '''mum''' means ''underground''. Here are some derived words:
:* '''mum'''....''underground''
::* '''muma'''....''underground'' (adj.)
:::* '''muma dodrur'''....''underground press''
::* '''mumber'''....''to bury''
:::* '''mumbut'''....''undertaker''
::* '''mumober'''....''to exhume''
::* '''mumbesun'''....''fossil''
:::* '''mumbesunxer'''....''to fossilize''
::* '''mumbesut'''....''troglodyte''
::* '''mumbiler'''....''to mine''
:::* '''mumbilem'''....''mine''
:::* '''mumbilut'''....''miner''
::* '''mumil'''....''groundwater''
:::* '''mumilyeg'''....''well''
::::* '''mumilyegxut'''....''well-digger''
::* '''mumper'''....''to burrow, to tunnel''
::* '''mumtim'''....''hypogeum, cellar''
:::* '''mumtimber'''....''to sepulcher''
::* '''mumtom'''....''underground silo''
::* '''mumtum'''....''crypt, dungeon''
:::* '''mumtumyan'''....''catacomb''
::* '''mumyeg'''....''cave''
:::* '''mumyeg kexrut'''....''spelunker, cave explorer''
:::* '''mumyegag'''....''cavern''
:::* '''mumyeges'''....''grotto''
:::* '''mumyegbesut'''....''troglodyte, cave-dweller''
:::* '''mumyegir'''....''tunneling machine''
:::* '''mumyegper'''....''to spelunk''
:::* '''mumyegtun'''....''speleology''
:::* '''mumyegyena'''....''cavernous''
::* '''mumyoz'''....''cave''
:::* '''mumyoza sizun'''....''cave painting''
:::* '''mumyoztwob'''....''caveman''
:::* '''mumyozyij'''....''cave mouth''
=== '''MOP''' ''orbit'' ===
[[File:E16-Eggemoen-Olum-map.jpg|thumb|]]
The base word '''mop''' is the top-level word of a series of geo-specific words:
:* '''mop'''....''orbit''
:* '''map'''....''wind''
:* '''mep'''....''road''
:* '''mip'''....''river''
:* '''mup'''....''tunnel''
==== MOP Words ====
: The root word '''mop''' means ''orbit''. The following words are derived from it:
:* '''mop'''....''orbit''
::* '''mopa'''....''orbital''
:::* '''oybmopa'''....''suborbital''
::* '''moper'''....''orbit''
:::* '''mopur'''....''orbiter''
==== MAP Words ====
: The root word '''map''' means ''wind''. This words has some sub-elements based on strength:
::* '''maap'''....''puff''
::* '''maep'''....''breeze''
::* '''maip'''....''gust''
::* '''maup'''....''gale''
::* '''mayop'''....''typhoon''
: Here are words derived from '''map''':
:* '''map'''....''wind''
::* '''mapa'''....''ventral, eolian''
:::* '''mapuer'''...''blow, ventilate''
::::* '''mapuar'''....''fan, blower, ventilator''
:::::* '''fimapuwa'''....''well-ventilated''
::::* '''mapuur'''....''wind tunnel''
::* '''kumap'''....''sidewind''
::* '''ammap'''....''sirocco''
::* '''mekmap'''....''dust devil''
::* '''mapil'''....''windstorm, storm''
:::* '''mapilag'''....''tempest''
:::* '''mapilmaf'''....''storm cloud''
:::* '''mapuzun'''....''funnel''
:::* '''mapuzlun'''....''tornado''
::::* '''mekpapuzlun'''....''sandstorm''
:::* '''mapuzrun'''....''cyclone''
:::* '''mapiluzrun'''....''hurricane''
:::* '''mapilvaka'''....''storm-proof''
:::* '''magmapil'''....''firestorm''
:::* '''malyommapil'''....''snowstorm''
:::* '''mamyommapil'''....''hailstorm''
:::* '''mameuxmapil'''....''thunderstorm''
:::* '''malyommapuar'''....''snowblower''
:::* '''mapil'''
::::* '''mekmapil'''....''dust storm''
::::* '''obemernada mapil'''....''tropical storm''
::::* '''yommapil'''....''ice storm''
::* '''mapatub'''....''propeller''
::* '''mapig'''....''gust''
::* '''mapaz'''....''gale''
::* '''mapes'''....''whiff''
::* '''mapog'''....''puff''
::* '''mapoz'''....''waft, breeze''
::* '''mapom'''....''windchill''
::* '''yokmap'''....''blast''
::* '''mapbyex'''....''bluster''
::* '''mapeus'''....''howl''
:::* '''mapeuser'''....''howl''
::* '''mapiar'''....''air intake''
::* '''balmaipar'''....''bellows''
::* '''balmanar'''....''blowlamp''
::* '''balmays'''....''windscreen''
::* '''mapnagar'''....''anemeter''
::* '''mapnyef'''....''windbag''
::* '''mapkiper'''....''windsurf''
::* '''mapovar'''....''windshield''
::* '''maptyoyav'''....''windsock''
::* '''mapyafon'''....''windpower''
::* '''mapzyubar'''....''windmill''
::* '''ib map'''....''leeward''
::* '''ub map'''....''windward''
::* '''ov map'''....''upwind''
::* '''bay map'''....''alee''
::* '''zamermap'''....''norther''
:::* '''zaimermap'''....''northeaster''
:::* '''zaumermap'''....''northwester''
:::* '''iznadmapil'''....''derecho''
:::* '''zuimermap'''....''trade wind''
:::* '''ziomermap'''....''southeaster''
::* '''yabixmap'''....''updraft''
::* '''yobixmap'''....''downdraft''
::* '''izzamap'''....''headwind''
::* '''izzomap'''....''tailwind''
==== MEP Words ====
: The root word '''mep''' means ''road, way''.
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Types of Roads
|-
| '''mep'''....''way, road, route''<br> '''zeymep'''....''bridge, crossing''<br> '''aybmep'''....''overpass, bridge''<br> '''oybmep'''....''underpass''<br> '''zyemep'''....''tunnel, throughway, thoroughfare ''<br> '''kumep'''....''side path''<br> '''zomep'''....''back way''<br> '''ebmep'''....''aisle''<br> '''tyoyamep'''....''sidewalk, walkway''<br> '''omep'''....''impasse''<br> '''gunmep'''....''dogleg''<br> '''dinmep'''....''plot''<br> '''pomep'''....''itinerary''<br> '''eynmep'''....''half-way''<br> '''duhamep?'''....''which way?''<br> '''yilpmep'''....''escape route''<br> '''yexmep'''....''career''<br> '''yuzmep'''....''circuit''<br> '''tyenmep'''....''career''<br> '''puxmep'''....''trajectory''<br> '''vyamep'''....''right way''<br> '''vyomep'''....''wrong way''<br> '''musmep'''....''stairway''<br> '''izmep'''....''direct route, straight path, vector''<br> '''yebmep'''....''entryway, entrance''<br> '''oyebmep'''....''exit, way out''<br> '''mummep'''....''subway''<br> '''mammep'''....''air route''<br> '''elyamep'''....''railroad, railway''<br> '''mimmep'''....''sealane''
|-
|'''domep'''....''street''<br> '''agdomep'''....''highway''<br>
'''aagdomep'''....''main street''<br>
'''zyadomep'''....''broadway''<br>
'''igdomep'''....''expressway''<br>
'''uzmep'''....''byway, detour''<br>
'''yuzdomep'''....''beltway, loop''<br>
'''zyudomep'''....''roundabout, circle, rotary''<br>
'''ebdomep'''....''alley''<br>
'''anizona domep'''....''one-way street''
|-
|'''meap'''....''avenue''
|-
|'''meep'''....''boulevard''
|-
|'''meip'''....''lane''<br> '''zimeip'''....''right lane''<br> '''zumeip'''....''left lane''<br> '''zemeip'''....''median, middle lane''<br> '''anmeip'''....''single lane''<br> '''enmeip'''....''double lane''
|-
|'''meup'''....''trail''<br> '''mebmeup'''....''mountain trail''
|-
|'''meyp'''....''path''<br> '''tyoyameyp'''....''footpath''
|}
{{small/end}}
==== MIP Words ====
: The word '''mip''' means ''river''. This word has sub-elements based on size:
::* '''miap'''....''stream''
::* '''miep'''....''brook''
::* '''miip'''....''creek''
::* '''miup'''....''tributary, channel''
::* '''miyop'''....''trickle''
: Some other important derived words:
::* '''mipar'''....''riverboat''
:::* '''amipar'''....''canoe''
:::* '''emipar'''....''rowboat''
:::* '''imipar'''....''kayak''
:::* '''umipar'''....''jon boat''
:::* '''yomipar'''....''skiff''
:::* '''yamipar'''....''pontoon boat''
:::* '''yemipar'''....''jet boat''
:::* '''yimipar'''....''cabin cruiser''
:::* '''yumipar'''....''bass boat''
:::* '''zyimipar'''....''flatboat, dory''
:::* '''belmipar'''....''ferryboat''
:::* '''yuxmipar'''....''service boat''
:::* '''bixmipar'''....''tugboat''
:::* '''buxmipar'''....''towboat''
:::* '''kyismipar'''....''barge''
:::* '''enfuba mipar'''....''kayak''
:::* '''miparbol'''....''pontoon''
:::* '''tammipar'''....''houseboat''
:::* '''malikxyafwa mipar'''....''raft, inflatable boat''
::* '''mipir'''....''motorboat''
::* '''ebmip'''....''canal''
::* '''byimip'''....''spring''
::* '''fyulebmip'''....''sewer''
::* '''igmip'''....''torrent''
:::* '''igmiper'''....''gush''
::* '''mipgikin'''....''rampart''
::* '''mipij'''....''fountainhead''
:::* '''ub mipij'''....''upstream''
::* '''mipmel'''....''alluvium''
::* '''mipobem'''....''riverbed''
::* '''mipog'''....''rivulet''
::* '''mipovmas'''....''dam''
::* '''mipuj'''....''delta''
:::* '''ub mipuj'''....''downsteam''
::* '''mipukxem'''....''river basin''
::* '''mipkum'''....''riverside''
:::* '''mipkunad'''....''river's edge, riverbank''
::* '''mipuz'''....''meander''
::* '''mipyabwas'''....''levee''
::* '''mipyanup'''....''conflux''
::* '''mipyepem'''....''slew''
::* '''mipyij'''....''firth''
::* '''yebmipyag'''....''fjord''
==== MUP Words ====
: The word '''mup''' means ''tunnel''. The following words are derived from it:
:* '''mup'''....''subway, tunnel''
::* '''bixpur mup'''....''train tunnel''
::* '''mapil mup'''....''storm sewer''
::* '''mukiblem mup'''....''mine tunnel''
::* '''mumpur mup'''....''subway tunnel''
::* '''mupar'''....''mine carriage''
::* '''muper'''....''to tunnel, to burrow''
:::* '''mupen'''....''tunneling''
:* '''mupsaxir'''....''tunneler, tunneling machine''
:* '''mupyubnod'''....''perigee''
:* '''mupzyeg'''....''manhole''
:* '''ovmup'''....''countermine''
:* '''oybmuper'''....''to tunnel underneath''
:* '''tuyoba mup boksiunyan'''....''carpal tunnel syndrome''
: Note that '''mumpur''' is used for ''subway (train)''
=== '''MOR''' ''universe'' ===
: The base word '''mor''', meaning ''universe'' is atop a series of geo-specifically scaled words as shown below:
:* '''mor'''....''universe, cosmos''
::* '''mar'''....''star''
::* '''mer'''....''planet''
::* '''mir'''....''world''
::* '''mur'''....''satellite''
==== MOR words ====
: The base word '''mor''' means ''cosmos, universe'' and underlies the following derivatives:
:*'''mor'''....''universe, cosmos''
::*'''geizona mor'''....''parallel universe''
::*'''mora'''....''cosmic''
::*'''aagmor'''....'' macrocosm''
::*'''oogmor'''....'' microcosm''
::*'''aynmor'''....'' universe''
::*'''morij'''....'' big bang, start of the universe''
:::*'''ji morij'''....'' since the beginning of the universe''
:::*'''morij tuin'''....'' big bang theory''
::*'''morsaxut'''....'' creator of the universe, god''
::*'''morted'''....'' god, progenitor of the universe''
::*'''mortun'''....'' cosmology''
::*'''moruin'''....'' cosmogony''
::*'''moruj'''....'' end of the universe''
:::* '''ju moruj'''....''forever''
::*'''morzyun'''....'' orb''
==== MAR Words ====
: The word '''mar''' means ''star''. The first or closest star is our ''sun'', which is '''amar'''. Here are some derivatives of those two words:
:*'''mar'''....''star''
::*'''mara'''....''stellar''
::*'''alpkaxen martun'''....'' radar astronomy''
::*'''byexesmar'''....'' pulsar''
::*'''ebmara'''....'' interstellar''
::*'''ebmarmafa'''....'' intergalactic''
::*'''feelk marmeyg'''....'' iron meteorite''
::*'''izbea mar'''....'' cynosure, lodestar''
::*'''jwamaj mar'''....'' morningstar''
::*'''mar bi David'''....'' star of David''
::*'''mardraf'''....'' star chart, star map''
::*'''mardyezut'''....'' movie star''
::*'''marmaf'''....'' galaxy, star cloud''
::*'''marman'''....'' starlight''
::*'''marmaz'''....'' star glow, star shine''
::*'''marmeg meup'''....'' comet trail''
::*'''marmeg tibuj'''....'' comet tail''
::*'''marmeg'''....'' aerolite, aerolith, comet''
::*'''marmek'''....'' stardust''
::*'''marnaap'''....'' star system''
::*'''marnagar'''....'' astrolabe''
::*'''marnaud'''....'' star beam, star ray, stellar beam''
::*'''marog'''....'' dwarf star''
::*'''marojden'''....'' horoscope''
::*'''marpaput'''....'' astronaut''
::*'''marpur'''....'' star ship''
::*'''marpureb'''....'' star ship captain''
::*'''marsana'''....'' star-shaped''
::*'''marsiyn'''....'' asterisk''
::*'''marteaxam'''....'' observatory''
::*'''marteaxen'''....'' star-gazing''
::*'''martuyn'''....'' astrology''
::*'''maruka'''....'' star-free, starless''
::*'''marvolzmaal'''....'' chromosphere''
::*'''maryan'''....'' constellation''
::*'''maryena'''....'' star-like''
::*'''mepteaxea mar'''....'' lodestar''
::*'''mernodmar'''....'' polestar''
::*'''oyeybmarmafa'''....'' extragalactic''
::*'''yeybmarmafa'''....'' intragalactic''
::*'''yizdezmar'''....'' superstar''
::*'''yogina mar'''....'' five-pointed star''
::*'''yokmar'''....'' nova''
::*'''yoongunmarsan'''....'' pentagram''
::*'''yuybmar'''....'' quasar''
::*'''yuzmarmafa'''....'' circumgalactic''
:* '''amar'''....''sun''
::* '''amara'''....''solar''
::* '''jaamaryopa'''....''pre-dawn''
::* '''jeeb amaryibnod'''....''summer solstice''
::* '''jeub amaryibnod'''....''winter solstice''
::* '''amar abtamas'''....''sun roof''
::* '''amar fyaifren'''....''sun worship''
::* '''amar fyaifrut'''....''sun worshiper''
::* '''amar magxun'''....''sunburn''
::* '''amar magxwa'''....''sunburned''
::* '''amar pexyem'''....''suntrap''
::* '''amar sagzyiun'''....''sundial''
::* '''amar teabar'''....''sunglasses''
::* '''amara azon'''....''solar power''
::* '''amara num'''....''solar cell''
::* '''amarabtamas'''....''sunroof''
::* '''amaraya'''....''sunny''
::* '''amarebul'''....''sunblock''
::* '''amarfyaifren'''....''heliolatry''
::* '''amarikbwa'''....''sun-filled''
::* '''amarilbier'''....''soak up the sun''
::* '''amarilyepen'''....''sunbathing, sunning''
::* '''amarizona'''....''sunwise''
::* '''amarmaf'''....''Milky Way''
::* '''amarmagxwa'''....''sunburned''
::* '''amarman'''....''sunlight''
::* '''amarmanar'''....''sunlamp''
::* '''amarmanigvibwa'''....''star-spangled''
::* '''amarmanim'''....''solarium''
::* '''amarmaz'''....''sunshine''
::* '''amarmelzaser'''....''suntan''
::* '''amarmonar'''....''parasol''
::* '''amarmoynar'''....''sunshade''
::* '''amarnaap'''....''solar system''
::* '''amarnagar'''....''heliometer''
::* '''amarnaud'''....''sun ray, sunbeam''
::* '''amarovar'''....''parasol, sun shield, sunshade''
::* '''amarpyex'''....''sunstroke''
::* '''amartaxdrar'''....''heliograph''
::* '''amarteabar'''....''sunglasses''
::* '''amarteaxar'''....''helioscope''
::* '''amartef'''....''sunhat, sunbonnet''
::* '''amartot'''....''sun god''
::* '''amartun'''....''heliology''
::* '''amarubuzpus'''....''heliotrope''
::* '''amarumxwa'''....''sun-dried''
::* '''amarvyun'''....''sunspot''
::* '''amaryafon zyevmays'''....''solar power panel''
::* '''amaryap'''....''sunrise, sunup''
::* '''amaryibnod'''....''solstice''
::* '''amaryop'''....''sundown, sunset''
::* '''amaryubnod'''....''perihelion''
::* '''amaryupen'''....''positive heliotaxis''
::* '''amaryipen'''....''negative heliotaxis''
::* '''amaryuzem'''....''heliosphere''
::* '''amarzena'''....''heliocentric''
::* '''ovamara abteabar'''....''sun visor''
::* '''oyebamaryana mer'''....''exoplanet, planet outside our solar system''
::* '''ub ha amar'''....''sunward''
::* '''yebamaryana mer'''....''endoplanet, planet in our own solar system''
::* '''yuzamaryubnod'''....''perihelion''
==== MER words ====
: The morpheme '''mer''' means ''planet''. The planets are named by prefixing an ordinal vowel equating to the planet's position from the sun, eg:
==== Names of the Planets ====
: Here are the names of the planets in our solar system. Notice that Earth is the "third planet" from the sun.
[[File:Hubble takes a grand tour of the Solar System (51688936521).jpg|thumb|]]
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Planets
|-
! mer....planet
|-
| '''Amer'''....''Mercury''
|-
| '''Emer'''....''Venus''
|-
| '''Imer'''....''Earth'' ('''i''' = ''three'')
|-
| '''Umer'''....''Mars''
|-
| '''Yomer'''....''Jupiter''
|-
| '''Yamer'''....''Saturn''
|-
| '''Yemer'''....''Uranus''
|-
| '''Yimer'''....''Pluto''
|}
{{small/end}}
==== Compass Directions ====
: The words for compass directions are built off the stem '''mer''' (''planet'') by prefixing:
::* '''za'''....''front'' (north)
::* '''zo'''....''back'' (south)
::* '''zi'''....''right'' (east)
::* '''zu'''....''left'' (west)
::* '''ze'''....''middle'' (equator words)
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Polar Directions
|-
! MIRAD !! ENGLISH
|-
| '''zamer''' || ''north''
|-
| '''zimer''' || ''east''
|-
| '''zomer''' || ''south''
|-
| '''zumer''' || ''west''
|}
{{small/end}}
: Compass points can be hybrids of the above:
::* '''<u>zaomera</u> izon'''....''<u>north-south</u> direction''
::* '''<u>zuimera</u> domep'''....''<u>east-west</u> street''
::* '''<u>zaumera</u> zyemep'''....''<u>northwest</u> passage''
::* '''<u>zoimera</u> tez'''....''<u>southeast</u> culture''
: Related terms:
::* '''zamernod'''....''north pole'' ('''nod''' = ''point'')
::* '''zomernod'''....''south pole''
::* '''zaomernad'''....''longitude'' ('''zao''' = ''north-south'', '''nad''' = ''line'')
::* '''zuimernad'''....''latitude'' ('''zui''' = ''east-west'')
::* '''zemernad'''....''equator'' ('''ze''' = ''middle'')
::* '''oybzemernada'''....''tropical, Torrid'' ('''oyb''' = ''below'')
::* '''merzyun'''....''globe, sphere'' (''planet-ball'')
::* '''eynmerzyun'''....''hemisphere'' (''half-planet-ball'')
: Vectoral prefixes are used in the following words:
::* '''aonab'''....''column'' (''up-down row'', ''y-axis'')
::* '''uinab'''....''row'' (''left-right row'', ''x-axis'')
::* '''aonada'''....''vertical'' ('''nad''' = ''line'')
::* '''uinada'''....''horizontal''
==== MIR words ====
: The morpheme '''mir''' means '''world'''. It is featured in the word for Mirad, which means ''world speech''. Here are some derivatives:
:*'''mir'''....''world''
::*'''Aa Mira Dropek'''....''WWI, World War I, first world war''
::*'''dommir'''....''civilization, urbane world''
:::* '''dommirxer'''....''to civilize''
::*'''Ea Mira Dropek'''....''second world war''
::*'''ebjomir'''....''limbo''
::*'''eynjomir'''....''purgatory''
::*'''eynmir'''....''demimonde''
::*'''oybmir'''....''hell, inferno, underworld''
::*'''hyumiryena'''....''other-worldly''
::*'''jomir'''....''after-world, here-after, meta-world, metasphere, metaworld''
::*'''komira'''....''esoteric''
::*'''megmir'''....''lithosphere''
::*'''mir'''....''globe, realm, sphere, world''
:::*'''mira'''....''global''
:::*'''mira dalzeyn'''....''world language''
:::*'''Mirad'''....''Mirad, world language''
::*'''miryafon'''....''world power''
::*'''mirbok'''....''pandemic''
::*'''mirbyok'''....''malaise''
::*'''mirdit'''....''cosmopolitan, world citizen, worldling''
::*'''mirdropek'''....''world war''
::*'''mirteasyen'''....''Weltanschau, world view''
::*'''mirtuxwa'''....''sophisticated''
::*'''mirtyun'''....''paradigm''
::*'''miruj'''....''end of the world''
::*'''mirzyun'''....''globe''
::*'''syaagirmir'''....''cyberspace''
::*'''tejmir'''....''biosphere''
::*'''tojmira'''....''macabre''
::*'''totmir'''....''world of the gods, heaven''
::*'''tutmir'''....''academia, scholarly world''
:::*'''tutmirat'''....''academe, academian, academician''
::*'''vyamir'''....''real world''
::*'''vyomir'''....''fantasy world of pretend''
::*'''yeybmegmira'''....''intratelluric''
::*'''yeybmira'''....''intramundane''
::*'''yizmir'''....''meta-world, metasphere, metaworld, world beyond''
::*'''zyamira neaf'''....''WWW, worldwide web''
::*'''zyamirin'''....''globalism''
::*'''zyamirput'''....''globetrotter''
==== MUR words ====
: The morpheme '''mur''' means ''satellite, moon''. The first or nearest is our ''moon'', '''amur'''. Here are some derivatives:
:*'''amur'''....''moon''
::*'''amura'''....''lunar''
::*'''amurtix'''....''selenography''
::*'''amurtixut'''....''selenographer''
::*'''amur noog'''....''moon phase''
::*'''amura pur'''....''lunar vehicle''
::*'''amura purog'''....''lunar buggy''
::*'''amurman'''....''moonlight''
:::*'''amurmanx'''....''moonshine''
:::*'''amurmanxwa'''....''moonlit, moony''
::*'''amurnaud'''....''moonbeam''
::*'''amuroya'''....''moonless''
::*'''amurpuer'''....''land on the moon''
:::*'''amurpuen'''....''moon landing, moonfall''
::*'''amurpyax'''....''moonshot''
::*'''amurteaba'''....''moon-eyed''
::*'''amurteasin'''....''moonscape''
::*'''amurtyop'''....''moonwalk''
:::*'''amurtyoper'''....''to moonwalk''
::*'''amuruka'''....''moonless''
::*'''amuryap'''....''moonrise''
::*'''amuryena'''....''moon-like''
::*'''amuryop'''....''moonset''
::*'''eymamursan'''....''meniscum''
::*'''eynamur'''....''crescent moon, half moon''
::*'''eynamurmeg'''....''lunate''
::*'''eynamurmiekyaz'''....''lunette''
::*'''eynamurpovel'''....''croissant''
::*'''eynamursan'''....''crescent shape''
::*'''eynamuryena'''....''lunate''
::*'''yuzamura'''....''circumlunar''
=== '''MOS''' ''floor'' ===
: The stems in this family begin with '''m''', meaning ''place'' and end in '''s''', meaning ''thing''. The words all have something to do with parts of a building or house, i.e. '''''masonry'''''.
[[File:Morse-Libby House architectural plans.png|thumb|]]
: Summary:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ M-S Core Words
|-
! MASONRY-BASED WORD !! DERIVATIVES
|-
| '''mos'''....''floor''|| '''omos'''....''ground floor''<br>'''amos'''....''first floor''<br>'''abmos'''....''attic''<br>'''ebmos'''....''mezzanine''<br>'''obmos'''....''basement''<br>'''moys'''....''layer, stratum''
|-
| '''mas'''....''wall''|| '''abmas'''....''roof''<br>'''aybmas'''....''ceiling''<br>'''obmas'''....''foundation''<br>'''oybmas'''....''floor''<br>'''masof''' ....''carpet''<br>'''abzamas'''....''balcony''<br>'''obzamas'''....''porch''<br>'''ebmas'''....''partition''<br>'''yuzmays'''....''fence''
|-
| '''mes'''....''door'' || '''zames'''....''front door''<br>'''zomes'''....''back door''<br>'''mesnufag'''....''door knob''<br>'''mesyuznad'''....''door frame''<br>'''mestuyar'''....''door handle''<br>'''meys'''....''gate''
|-
| '''mis'''....''window''|| '''miszyef'''....''window pane''<br>'''eymis'''....''shutter''<br>'''misof'''....''curtain''
|-
| '''mus'''....''stairs''|| '''musnog'''....''step, stair rung''<br>'''musim'''....''starwell''<br>'''magmus'''....''fire escape''<br>'''musabnod''' ....''climax''<br>'''muys'''....''ladder''<br>'''panmus'''....''escalator''<br>'''makmus'''....''escalator''
|}
{{small/end}}
==== MOS Words ====
: The root word '''mos''' means ''floor'', while '''moys''' means ''layer, stratum, echelon''. Here are some derived words:
:* '''mos'''....''floor''
::* '''aa mos'''....''first floor, main floor''
:::* '''aa mos sim'''....''orchestra seat''
::* '''abmos'''....''top floor, upper floor''
:::* '''abmoszom'''....''quarterdeck''
::* '''amos'''....''first floor''
::* '''anmosa'''....''single-story''
:::* '''anmostam'''....''rambler, ranch home''
::* '''dezmos'''....''stage floor''
::* '''ebmos'''....''entresol, mezzanine''
::* '''emos'''....''second floor''
::* '''enmos toames'''....''maisonette''
::* '''eonmosa yuzpur'''....''double-decker bus''
::* '''glamosa'''....''hi-rise, multi-floor, multi-story, multistory''
:::* '''glamostom''' .... ''hi-rise building''
::* '''inmosa'''....''triplex''
:::* '''inmostam'''....''triplex''
::* '''mos bolmuf'''....''girder, joist''
::* '''mosber'''....''lay down flooring''
::* '''mosoybem'''....''spandrel''
::* '''omos'''....''ground floor, rez-de-chaussée''
::* '''oybmos'''....''basement, sub-floor''
::* '''oyebzyimos'''....''deck, outdoor deck''
::* '''umos'''....''orlop''
::* '''yabmostames'''....''penthouse''
::* '''yabwa zyimos'''....''estrade''
::* '''zemos'''....''mezzanine''
::* '''zyimos'''....''deck, platform''
: Here are some derivations of '''moys''':
:* '''moys'''....''layer, echelon, stratum''
::* '''abmoys'''....''upper echelon, upper layer''
::* '''anmoysa'''....''single-layer, single-layered''
::* '''domoys'''....''social stratum''
::* '''dota moys'''....''social layer, social stratum''
::* '''ebmoys'''....''in-between layer''
::* '''glamoysa'''....''multi-layered''
::* '''gyomoys'''....''patina''
:::* '''gyomoysber'''....''to laminate''
::* '''inmoysfaob'''....''plywood''
::* '''makmugmoysber'''....''to galvanize''
::* '''megmoysa'''....''tectonic''
:::* '''megmoysa zyin'''....''tectonic plate''
:::* '''megmoystun'''....''tectonics''
::* '''mes zamoys'''....''door sill''
::* '''moys'''....''layer, stratum''
::* '''moysber'''....''to layer''
::* '''moysika'''....''layered''
::* '''oybmoys'''....''sub-layer, sublayer''
::* '''sammoys'''....''shelf''
:::* '''magsom absammoys'''....''mantel, mantelpiece''
:::* '''milnov sammoys'''....''towel rack''
:::* '''dyes sammoys'''....''bookshelf''
:::* '''nyexen sammoys'''....''stock shelf, storage shelf''
:::* '''mumaozyeg sammoys'''....''stempel''
:::* '''bi ha sammoys'''....''off-the-shelf''
:::* '''sammoys nyen'''....''shelf stock''
:::* '''sammoysaber'''....''put on the shelf, shelve''
:::* '''sammoystej'''....''shelf life''
:::* '''sammoysyan'''....''etagere, rack, shelves, shelving, stack''
:::* '''tolmek sammoys'''....''spice rack''
:::* '''yijber sammoys'''....''clear a shelf''
::* '''obsammoys'''....''bottom shelf''
::* '''tayebmoys'''....''meninx''
:::* '''tayebmoysa'''....''meningeal''
:::* '''tayebmoysi'''....''meninges''
::* '''tyeba oyebmoys'''....''cerebral cortex''
::* '''tummoys'''....''plasm''
::* '''vabmoys'''....''sod, turf''
::* '''vayob oyebmoys'''....''periderm''
::* '''yoba moys'''....''lower layer''
::* '''zyimoys'''....''platform''
::* '''zyomoys'''....''lamina''
:::* '''zyomoysaxer'''....''laminate''
:::* '''zyomoysaxwa'''....''laminated''
==== MAS Words ====
: The root word '''mas''' means ''wall''. The diminutive '''mays''' means ''screen''. Here are some derivations:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''abkumas'''....''cornice, ledge''
* '''abmas'''....''clearstory, clerestory, clerstory''
* '''abtamas zyiyujem'''....''rooftop terrace''
* '''abtamas'''....''roof''
* '''abtamasben'''....''roofing''
* '''abtamasber'''....''roof''
* '''abtamasbut'''....''roofer''
* '''abtamasbwa yija yabtem'''....''loggia''
* '''abtamasbwa'''....''roofed''
* '''abtamasgin'''....''gable''
* '''abtamasginaya'''....''gabled''
* '''abtamasginika'''....''gabled''
* '''abtamasoya'''....''roofless''
* '''abtamasoybun'''....''eave''
* '''abtamasuka'''....''roofless''
* '''abtomasned'''....''rooftop''
* '''abzamas sim'''....''balcony seat''
* '''abzamas'''....''balcony''
* '''abzamasog'''....''parterre''
* '''aybkumas'''....''cornice, ledge''
* '''aybmas bolmyuf'''....''rafter''
* '''aybmas muf'''....''overhead beam''
* '''aybmas'''....''ceiling, overhead''
* '''aybmasmis'''....''hatch''
* '''aypuysmas'''....''hurdle''
* '''dezmas'''....''skene''
* '''dezyem uzmas'''....''apron, proscenium''
* '''dezzomassin'''....''backcloth, backdrop, scenery, theatrical scenery''
* '''dom yuzmas'''....''city wall''
* '''dommas'''....''city wall''
* '''dopa mas'''....''bulwark, rampart''
* '''dopa melmas'''....''earthwork''
* '''dopekmasi'''....''battlements, ramparts''
* '''ebmas'''....''partition''
* '''ebmasben'''....''partitioning''
* '''ebmasber'''....''partition''
* '''ebmasbwa'''....''partitioned''
* '''faoba oybmas'''....''wood floor''
* '''fubyuzmas'''....''raddle''
* '''fyadil oybmasoyf'''....''prayer rug''
* '''fyasim masof'''....''chancel''
* '''golmas'''....''partition, room divider''
* '''golmasben'''....''partitioning''
* '''golmasbwa'''....''partitioned''
* '''grailp mas'''....''flood wall, levee''
* '''graovmasber'''....''overprotect''
* '''graovmasbyea'''....''overprotective''
* '''Ha Agta Ovmas Mimegag'''....''The Great Barrier Reef''
* '''ha Uzaybmas bi Ark'''....''the Arch of Triumph''
* '''ilikmas'''....''flood wall''
* '''kumas'''....''embankment, sidewall''
* '''maar abtamas'''....''sun roof''
* '''maarabtamas'''....''sunroof''
* '''magmas'''....''firewall''
* '''maka mas ibzyeg'''....''electric wall socket''
* '''mapmas'''....''windbreak''
* '''mas bi mag'''....''wall of fire''
* '''mas drof'''....''blackboard, wallboard''
* '''mas ibzyeg'''....''wall socket''
* '''mas jwobir'''....''wall clock''
* '''mas'''....''wall''
* '''masa zyub'''....''parietal lobe''
* '''masa'''....''parietal''
* '''masag'''....''high wall''
* '''masaz'''....''breastwork''
* '''masazul'''....''daub, gypsum, plaster of Paris, poultice''
* '''masazulben'''....''daubing, plastering''
* '''masazulber'''....''daub''
* '''masazulbut'''....''dauber, plasterer''
* '''masazulbwa'''....''daubed, plastered''
* '''masazulfaof'''....''plasterboard''
* '''masbolmuf'''....''buttress''
* '''masbolmufwa'''....''buttressed''
* '''mas-bu-mas'''....''wall-to-wall''
* '''masbwa'''....''walled''
* '''masbyexar'''....''knocker''
* '''masdras'''....''placard, poster''
* '''masdref'''....''wallpaper''
* '''masdrefben'''....''paperhanging''
* '''masdrefbut'''....''paperhanger''
* '''masfaof'''....''wainscot''
* '''masfaofxen'''....''wainscoting''
* '''masfaofxer'''....''wainscot''
* '''masgon'''....''panel''
* '''masgrun'''....''wall hook''
* '''masmekyel'''....''stucco''
* '''masmekyelben'''....''stuccoing''
* '''masmekyelber'''....''stucco''
* '''masmekyelbwa'''....''stuccoed''
* '''masnuf'''....''stud''
* '''masof tayeb'''....''carpet pile''
* '''masof'''....''carpet, tapestry''
* '''masofben'''....''carpeting''
* '''masofbwa'''....''carpeted''
* '''masofnam'''....''carpet store''
* '''masofnamut'''....''carpet merchant, carpet salesman, carpet seller''
* '''masofnyef'''....''carpetbag''
* '''masofog'''....''mat''
* '''masofsaxen'''....''carpet-making''
* '''masofsaxer'''....''make carpets''
* '''masofsaxut'''....''carpet-maker''
* '''masofvyixar'''....''shampooer''
* '''maspyoxun'''....''wall hanging''
* '''massin'''....''mural''
* '''massinut'''....''muralist''
* '''massum'''....''banquette''
* '''massuv'''....''stud''
* '''massuvabar'''....''stud gun''
* '''massuvaben'''....''studding''
* '''massuvaber'''....''stud''
* '''massuvabwa'''....''studded''
* '''massyob'''....''plinth''
* '''mastum'''....''cabinet''
* '''mastumxaxut'''....''cabinetmaker''
* '''mastumyan'''....''cabinetwork''
* '''mastuz'''....''wall art''
* '''mastyen'''....''masonry''
* '''mastyena'''....''masonic''
* '''mastyenut'''....''mason''
* '''masul'''....''walling''
* '''masxen'''....''bricklaying, building, masonry''
* '''masxer'''....''build''
* '''masxun'''....''masonry''
* '''masxut'''....''bricklayer, builder, mason''
* '''masxuta'''....''masonic''
* '''masxwa'''....''built''
* '''masyan'''....''masonry, walling''
* '''masyij'''....''hatch, hatchway''
* '''maszyeg'''....''porthole''
* '''mefmas'''....''brick wall''
* '''megmas'''....''parapet, stonewall''
* '''melmas'''....''balk, berm, parapet, rampart''
* '''mepkumas'''....''embankment''
* '''mes oybmasoyf'''....''doormat''
* '''milmaka mipovmas'''....''hydroelectric dam''
* '''milmas'''....''embankment, levee''
* '''milovmas'''....''causeway, dam, dyke, levee''
* '''milovmasben'''....''damming''
* '''milovmasber'''....''dam''
* '''milovmasbwa'''....''dammed''
* '''milyep oybmasoyf'''....''bath mat, bathmat''
* '''mimmas'''....''seawall''
* '''mimovmas'''....''breakwater''
* '''mimpurmasyan'''....''bulkhead''
* '''mipovmas'''....''dam, river dam''
* '''mipovmasben'''....''damming''
* '''mipovmasber'''....''dam''
* '''mipovmasbwa'''....''dammed''
* '''mufmas'''....''palisade, pen, stockade''
* '''mugnef yuzmas'''....''grated fence''
* '''mumujmas'''....''coalface''
* '''obmas'''....''foundation''
* '''obtammas'''....''foundation''
* '''obtommas'''....''foundation''
* '''obyexyea mas'''....''protective wall''
* '''obzamas'''....''porch, portico''
* '''olovmasber'''....''lift the blockade''
* '''olovmasbwa'''....''undefended''
* '''opyexyea mas'''....''defensive wall''
* '''ovbukmas'''....''bulwark, defense, defensive wall, rampart''
* '''ovmas'''....''barricade, barrier, blockade''
* '''ovmasben'''....''barricading, barring, blockading''
* '''ovmasber'''....''bar, barricade, block, blockade''
* '''ovmasbier'''....''protect oneself, shield oneself, take shelter''
* '''ovmasbin'''....''protectionism''
* '''ovmasbina'''....''protectionist''
* '''ovmasbinut'''....''protectionist''
* '''ovmasbut'''....''blocker, defender, protector, shielder''
* '''ovmasbwa'''....''barred, barricaded, blockaded, blocked, dammed, defended, protected, shielded''
* '''ovmasbyafwa'''....''defensible''
* '''ovmasbyafway'''....''defensibly''
* '''ovmasbyea abaun'''....''protective covering''
* '''ovmasbyea bikuen'''....''protective custody''
* '''ovmasbyea nuxyef'''....''protective duty, protective tariff''
* '''ovmasbyea tof'''....''protective clothing''
* '''ovmasbyea vyesag'''....''protective quota''
* '''ovmasbyea'''....''protective''
* '''ovmasbyean'''....''defensiveness''
* '''ovmasbyeay'''....''defensively''
* '''ovmasober'''....''deprive of protection, expose''
* '''ovmasobwa'''....''deprived of protection, exposed''
* '''ovmasog'''....''escutcheon''
* '''ovmasoya'''....''defenseless''
* '''ovmasoyan'''....''defenselessness''
* '''ovmasuka'''....''defenseless''
* '''ovmasukan'''....''defenselessness''
* '''ovmasukay'''....''defenselessly''
* '''oybmas faof'''....''floorboard''
* '''oybmas vyixar'''....''floor sweeper, floor cleaner''
* '''oybmas vyixir'''....''electric floor sweeper''
* '''oybmas'''....''floor''
* '''oybmasaof'''....''parquet''
* '''oybmasaoftyen'''....''parquetry''
* '''oybmasmis'''....''hatch''
* '''oybmasof'''....''carpet''
* '''oybmasoyf'''....''rug''
* '''oybmasvyixar'''....''broom, sweeper''
* '''oybmasvyixarer'''....''use a broom on''
* '''oybmasvyixirer'''....''use an electric sweeper on''
* '''oybmasyan'''....''flooring''
* '''oyboybmas'''....''underfloor''
* '''oyeba mas'''....''outer wall''
* '''oyebmas'''....''facade''
* '''oyebmasben'''....''walling out''
* '''oyebmasber'''....''wall out''
* '''oyebmasbwa'''....''walled out''
* '''oyeybmasa'''....''extramural''
* '''oyuzmasbwa'''....''undefended, unenclosed, unfenced, unprotected''
* '''syobmas'''....''footing, pedestal, substratum, underpinning''
* '''taamziunmas'''....''backstop''
* '''tabovmas'''....''body armor, body shield''
* '''tammag oybmasoyf'''....''hearthrug''
* '''ummas kipmuv'''....''molly bolt''
* '''ummas'''....''drywall''
* '''ummegmas'''....''dyke''
* '''umvibwa abtamas'''....''thatched roof''
* '''utibmasbwa'''....''autoimmune''
* '''utibmasbwan'''....''autoimmunity''
* '''uzabmas jwameg'''....''quoin''
* '''uzabmasyena'''....''fornicate''
* '''uzaybmas'''....''arch, vault, vaulted ceiling''
* '''uzaybmasika'''....''vaulted''
* '''uzaybmasyan'''....''arcade''
* '''uzyubea masof'''....''treadmill''
* '''vyamas'''....''actuality, fact, real thing, something real, substance''
* '''vyamasyan'''....''actualities, body of facts, news''
* '''yaba mas'''....''high wall''
* '''yagmas'''....''long wall''
* '''yeba mas'''....''inner wall''
* '''yebmasben'''....''walling in''
* '''yebmasber'''....''wall in''
* '''yebmasbwa'''....''walled-in''
* '''yebmasob'''....''dado''
* '''yeybmasa'''....''intramural''
* '''yimmas'''....''flood wall''
* '''yivmastyenut'''....''freemason''
* '''yonmas'''....''partition''
* '''yonmasben'''....''partitioning, walling off''
* '''yonmasber'''....''partition, wall off''
* '''yonmasbwa'''....''partitioned''
* '''yonmasbwe'''....''walled off''
* '''yuzmas'''....''circular wall''
* '''yuzmays'''....''fence''
* '''yuzmasben'''....''walling in''
* '''yuzmasber'''....''wall in''
* '''yuzmasbwa'''....''walled in''
* '''yuzmasbwem'''....''enceinte''
* '''zamas'''....''front wall, protection''
* '''zamasben'''....''protection''
* '''zamasbenina'''....''protectionist''
* '''zamasber'''....''protect, put a wall in front''
* '''zamasbus'''....''prophylactic''
* '''zamasbwa'''....''protected''
* '''zamasbyea'''....''prophylactic, protective''
* '''zamasbyean'''....''protectiveness''
* '''zomas'''....''back wall, backdrop''
* '''zomasbaxwa'''....''immured''
* '''zomasben'''....''immuring''
* '''zomasber'''....''immure''
* '''zomassin'''....''backdrop, scenery''
* '''zyanofirwa oybmasof'''....''broadloom''
* '''zyuabtamas'''....''dome''
* '''zyuabtamassana'''....''domed''
<hr>
* '''byoykmays'''....''stocks''
* '''byuxmays'''....''touchscreen''
* '''dopek mays'''....''battlement''
* '''dyez mays'''....''movie screen, silver screen''
* '''faobmays'''....''wood panel''
* '''feelkmays'''....''grill, iron screen''
* '''fubyuzmays'''....''hedge''
* '''fyasem zomays'''....''altarpiece''
* '''golwa mays'''....''split screen''
* '''ika mays'''....''full screen''
* '''jamaysuen'''....''pre-screening''
* '''jamaysuer'''....''pre-screen''
* '''jamaysuwa'''....''pre-screened''
* '''kumays meg'''....''curb stone, curbstone''
* '''kumays zyun'''....''curb ball''
* '''kumays'''....''curb''
* '''maaryafon zyevmays'''....''solar power panel''
* '''magmays'''....''fireguard, firescreen''
* '''man mays'''....''light screen''
* '''man zaypuxen mays'''....''light projection screen''
* '''mapmays'''....''windscreen''
* '''mays sin'''....''screen image''
* '''mays'''....''bulkhead, fence, panel, partition, screen, septum''
* '''maysam'''....''cupboard''
* '''maysben'''....''fencing, paneling, partitioning''
* '''maysber'''....''fence in, panel, partition, put a screen''
* '''maysbwa'''....''fenced in, paneled, partitioned''
* '''maysuen vyayek'''....''screen check''
* '''maysuen'''....''screening''
* '''maysuer'''....''screen''
* '''maysuwa'''....''screened''
* '''maysyan'''....''paneling''
* '''melmuf yuzmays'''....''picket fence''
* '''mepkumays'''....''curb, embankment, road shoulder''
* '''milmays'''....''small dam, weir''
* '''mulyonxea mays'''....''colander, filter, filtering screen, sieve, strainer''
* '''ojamaysuwa'''....''unscreened''
* '''pansin mays'''....''video screen''
* '''pansinmays'''....''motion picture screen''
* '''sizwa mays'''....''taffrail''
* '''ulza mays'''....''green screen''
* '''vigobler fubyuzmays'''....''trim a hedge''
* '''vyabarmays'''....''dashboard''
* '''yebmaysben'''....''fencing in''
* '''yebmaysber'''....''fence in''
* '''yebmaysbwa'''....''fenced-in''
* '''yibsin mays'''....''t.v. screen''
* '''yuzmays'''....''fence, paling''
* '''yuzmaysben'''....''fencing''
* '''yuzmaysber'''....''fence in''
* '''yuzmaysbwa'''....''fenced in''
* '''zamays'''....''revetment''
* '''zaymays'''....''bulkhead''
* '''zomays'''....''backdrop''
* '''zosinmays'''....''backcloth''
* '''zyevmays'''....''glass panel''
</div>
{{small/end}}
==== MES Words ====
: The root word '''mes''' means ''door, portal''. The diminutive '''meys''' means ''gate''.
Here are some derivations:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''be mesmep bi'''....''on the threshold of''
* '''be zames bi'''....''on the threshold of''
* '''bi mes-bu-mes'''....''door-to-door''
* '''bi mestob'''....''janitorial''
* '''dezmes'''....''trap door, trapdoor''
* '''enmespur'''....''coupe''
* '''eonxwa mes'''....''storm door''
* '''eynmes'''....''half-door''
* '''gumzyegek mes'''....''billiards table, pool table''
* '''kipea mes'''....''sliding door''
* '''kua mesabaun'''....''side porch''
* '''kumes'''....''side door''
* '''lobexer ha mes ija av'''....''leave the door open for''
* '''mes abexar'''....''door handle''
* '''mes beaxut'''....''doorkeeper''
* '''mes bexmuf'''....''door handle''
* '''mes byexar'''....''door knocker, doorknocker''
* '''mes kipmuv'''....''door bolt''
* '''mes kufaof'''....''doorjamb, jamb''
* '''mes muf'''....''doorpost''
* '''mes nufag'''....''door knob, doorknob''
* '''mes oybfaof'''....''doorsill, sill''
* '''mes oybmasoyf'''....''doormat''
* '''mes oybun'''....''sill, threshold''
* '''mes poxar'''....''doorstop''
* '''mes seusar'''....''doorbell''
* '''mes syoib'''....''door hinge''
* '''mes tuyabar'''....''door handle''
* '''mes yijar'''....''door opener''
* '''mes yijbut'''....''doorman''
* '''mes yugar'''....''door check''
* '''mes yujlar'''....''door lock''
* '''mes yuvar'''....''door chain''
* '''mes yuzkunad'''....''door frame, doorframe''
* '''mes zamoys'''....''door sill, doorsill''
* '''mes zyiun'''....''doorplate''
* '''mes'''....''door, hatch, port, portal''
* '''mesabab'''....''porch, portico''
* '''mesabof'''....''awning, canopy''
* '''mesag'''....''porte-cochere''
* '''mesbelar'''....''gurney''
* '''mesbikut'''....''bouncer''
* '''mesbyexar'''....''door knocker''
* '''mesmep'''....''doorway, threshold''
* '''mesnad'''....''enfilade''
* '''mesnog'''....''doorstep''
* '''mesof'''....''portiere''
* '''mestob'''....''janitor''
* '''mesyuxlut'''....''footman''
* '''mesvyixuyt'''....''busgirl''
* '''meszan'''....''threshold, stoop''
* '''nuxer be ha mes'''....''pay at the door''
* '''oyepmes'''....''egress, outlet, exit door''
* '''oyepmes yijmuv'''....''latchkey''
* '''patubasea mes'''....''flapper, shutter, valve''
* '''pexmes'''....''trap door, trapdoor''
* '''purmes'''....''portier''
* '''viyepmes'''....''portal''
* '''yabmostames'''....''penthouse''
* '''yepmes'''....''entry door''
* '''yexmes'''....''worktable''
* '''yija mes'''....''open door''
* '''zaa mesabaun'''....''front porch''
* '''zames'''....''front door''
* '''zamesag'''....''porte cochere''
* '''zaopmes'''....''swinging door''
* '''zoa mesabaun'''....''back porch''
* '''zomes'''....''back door, backdoor''
* '''zomespur'''....''hatchback''
* '''zosyoibmes'''....''tailboard, tailgate''
* '''zyefmes'''....''French door''
* '''zyuber mes nufag'''....''turn a doorknob''
* '''zyupea mes'''....''revolving door''
<hr>
* '''bixpur meys'''....''train gate''
* '''dremeys'''....''davenport''
* '''feelk meys'''....''iron gate''
* '''fyameys'''....''lychgate''
* '''glameysa'''....''multiport''
* '''ilpmeys'''....''floodgate''
* '''meys beaxam'''....''gatehouse''
* '''meys muf'''....''gatepost''
* '''meys'''....''gate, gateway''
* '''meysbeaxut'''....''gatekeeper''
* '''meysika yanotnyan'''....''gated community''
* '''meysika'''....''gated''
* '''meysmep'''....''gateway''
* '''meysog'''....''wicket''
* '''meysyan'''....''gating''
* '''meysyanyif'''....''hank''
* '''meysyanyifxer'''....''hank''
* '''mimuip meys'''....''tide gate''
* '''poxmeys'''....''barred gate, barrier, ticket barrier''
* '''sarmeys'''....''dashboard''
* '''totem meysi'''....''gates of heaven, gates of paradise''
* '''yebmeys'''....''gateway''
* '''yimmeys'''....''flood gate''
* '''yixnuxmeys'''....''tollgate''
* '''zeymeys'''....''transept''
</div>
{{small/end}}
==== MIS Words ====
: The root word '''mis''' means ''window'' and is featured in the following derivations:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''abmis'''....''fanlight''
* '''abtim mis'''....''attic window''
* '''aybmasmis'''....''hatch''
* '''drurunes mis'''....''ticket window''
* '''eynmis'''....''flap, shutter''
* '''feelk misof'''....''iron curtain''
* '''inmakmis'''....''triode''
* '''kumis'''....''casement''
* '''kyamisof'''....''scrim''
* '''makmis'''....''electrode''
* '''makmiseon'''....''diode''
* '''mamis'''....''skylight''
* '''mimmis'''....''porthole''
* '''mis moynar'''....''window shade''
* '''mis obkunad'''....''window sill, windowsill''
* '''mis yuzkunad'''....''window frame''
* '''mis'''....''window''
* '''misab'''....''pelmet''
* '''misabof'''....''awning''
* '''misag'''....''dormer window''
* '''misben'''....''fenestration''
* '''misebnad'''....''spandrel''
* '''misef'''....''lattice''
* '''mises'''....''scuttle, ticket window''
* '''misesber'''....''scuttle''
* '''misof'''....''curtain''
* '''misog'''....''attic window, dormer window, skylight''
* '''misoya'''....''windowless''
* '''misoyebim'''....''balcony''
* '''mistral map'''....''mistral''
* '''misuka'''....''windowless''
* '''misvib'''....''valance''
* '''misyan'''....''fenestration, windowing''
* '''misyaz'''....''oriel''
* '''misyuijar'''....''flap, shutter, valve''
* '''miszyef'''....''window pane, windowpane, pane of glass''
* '''nam mis'''....''shop window''
* '''nammis'''....''shop window''
* '''nunam mis'''....''shop window''
* '''oybmasmis'''....''hatch''
* '''oybmisbolar'''....''lintel''
* '''oyebmispuxen'''....''defenestrating, defenestration''
* '''oyebmispuxer'''....''defenestrate''
* '''oyebmispuxwa'''....''defenestrated''
* '''purpuen mis'''....''drive-up window''
* '''sinmis'''....''picture window''
* '''syagnasiut misog'''....''cashier's window''
* '''teatmis'''....''viewport''
* '''tujyemmis'''....''dormer''
* '''volzzyefmis'''....''stained glass window''
* '''yaobwa misabun'''....''venetian blind''
* '''yober ha misof'''....''lower the curtain''
* '''yobuxmis'''....''shutter''
* '''yogmisof'''....''teaser''
* '''yuijbyafwa misof'''....''jalousie''
* '''zamisabun'''....''awning''
* '''zemisaomuf'''....''mullion''
* '''zemisaomufika'''....''mullioned''
* '''zomisof'''....''backcloth, backdrop''
* '''zyozanmis'''....''embrasure''
* '''zyupea misof'''....''window shade''
</div>
{{small/end}}
==== MUS Words ====
: The root word '''mus''' means ''stairs, scale''. The diminutive, '''muys''' means ''ladder''.
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''agala duzmus'''....''major scale''
* '''dabmus'''....''hierarchy''
* '''dabmusa'''....''hierarchical''
* '''dabmusay'''....''hierarchically''
* '''dabmuseb'''....''hierarch''
* '''dota mus'''....''social ladder''
* '''dota musnog'''....''social rung''
* '''dota musyapren'''....''social climbing''
* '''dota musyaprut'''....''social climber''
* '''duz mus'''....''musical scale''
* '''duzmus'''....''musical scale, scale''
* '''gladabmusa'''....''polyhierarchical''
* '''magmus'''....''fire escape''
* '''makmus'''....''escalator''
* '''milmus'''....''sluice''
* '''mimpar ebmus'''....''companionway''
* '''mus zyutum'''....''stairwell''
* '''mus'''....''stair, staircase, stairs, stairway, scale''
* '''musabnod'''....''climax, peak, top of the ladder, top of the scale''
* '''musabnoda'''....''climactic''
* '''musabnodxen'''....''climaxing''
* '''musabnodxer'''....''climax''
* '''musaomuf'''....''newel''
* '''musaxyafwa'''....''scalable''
* '''muses'''....''gradation, rung''
* '''musmep'''....''stairway''
* '''musnaad'''....''banister''
* '''musnog'''....''grade, rime, rung, stair rung, step''
* '''musnoga'''....''gradual''
* '''musnogar'''....''ladder''
* '''musnogay'''....''gradually''
* '''musnogser'''....''graduate, step along''
* '''musnogxen'''....''stepping''
* '''musnogxer'''....''step''
* '''musnogxwa'''....''staged, stepped''
* '''musobnod'''....''bottom of the scale, nadir''
* '''musobnodxen'''....''bottoming out''
* '''musobnodxer'''....''bottom out''
* '''mussyob'''....''landing, staircase landing''
* '''mustum'''....''stair well, stairwell''
* '''mustuyamuf'''....''banister''
* '''musyap'''....''ascent''
* '''musyapea'''....''escalating''
* '''musyapen'''....''escalation''
* '''musyaper'''....''escalate''
* '''musyaput'''....''climber''
* '''musyena'''....''gradual, step-like''
* '''musyopea'''....''de-escalating''
* '''musyopen'''....''de-escalation''
* '''musyoper'''....''de-escalate''
* '''nagmus'''....''metric scale''
* '''nogmus'''....''degree scale''
* '''ogala duzmus'''....''minor scale''
* '''ovmusabnoda'''....''anticlimactic, anticlimax''
* '''ovmusabnoday'''....''anticlimactically''
* '''ovmusoliniina'''....''antifascist''
* '''pasea mus'''....''escalator'' (or '''panmus''' or '''makmus''')
* '''pir mus'''....''fire escape'' (or '''magmus''')
* '''sagmus'''....''index, numeric scale''
* '''sagmusben'''....''indexing''
* '''sagmusber'''....''index''
* '''sagmusbwa'''....''indexed''
* '''tabnyaun sagmus'''....''body mass index''
* '''volz sagmus'''....''color map''
* '''yabmusnogxen'''....''stepping up''
* '''yabmusnogxer'''....''step up''
* '''yabmusnogxwa'''....''stepped up''
* '''yaper ha mus'''....''ascend the staircase, go up the stairs''
* '''yobmusesien'''....''downgrading''
* '''yobmusesier'''....''downgrade''
* '''yobmusesuen'''....''downgrading''
* '''yobmusesuer'''....''downgrade''
* '''yobmusesuwa'''....''downgraded''
* '''yobmusnogxen'''....''stepping down''
* '''yobmusnogxer'''....''step down''
* '''yobmusnogxwa'''....''stepped down''
* '''yoper ha mus'''....''descend the staircase, go down the stairs''
* '''zaymusnogxer'''....''step forward''
* '''zemusa'''....''midscale''
* '''zomus'''....''backstair''
* '''zyinmus'''....''shamble''
<hr>
* '''dota muys'''....''social ladder''
* '''dotmuys'''....''social ladder''
* '''kipea muys'''....''sliding scale''
* '''muys'''....''ladder, scale, step ladder, stepladder''
* '''muysa'''....''scalar''
* '''muysben'''....''escalation, scaling''
* '''muysber'''....''escalate''
* '''muysbwa'''....''escalated, scaled''
* '''muysbyofwa'''....''unscalable''
* '''muyses'''....''rung''
* '''muyspen'''....''escalating, escalation, going up the latter, scaling''
* '''muysper'''....''escalate, go up the ladder''
* '''obmuys'''....''vernier''
* '''omuysaxer'''....''de-escalate''
* '''yabmuysa'''....''upscale''
* '''yabmuysben'''....''escalation, scaling up''
* '''yabmuysber'''....''escalate, scale up''
* '''yabmuysbwa'''....''escalated, scaled up''
* '''yabmuyspea'''....''graduating, rising, scaling up''
* '''yabmuyspen'''....''climbing up, escalation, graduation''
* '''yabmuysper'''....''climb up, escalate, go up the ladder, graduate''
* '''yobmuysa'''....''downscale''
* '''yobmuysbea'''....''scaling down''
* '''yobmuysben'''....''scale-down, scaling down''
* '''yobmuysber'''....''downscale, scale down''
* '''yobmuysbwa'''....''downscaled, scaled down''
* '''yobmuyspen'''....''getting downscaled, going downhill''
* '''yobmuysper'''....''get downscaled, go downhill''
</div>
{{small/end}}
=== '''MUF''' (rod), '''MUV''' (pin), '''MYUF''' (beam) ===
: The root '''muf''' means ''rod, stick, baton, bat, cane, stake, post''. The word '''muv''' is a lesser version meaning ''nail''. The word '''myuf''' is a larger version meaning ''beam, rafter''. The word '''mufyeg''' means ''pipe, cylinder'' and ends in the stub word '''-yeg''' from '''zyeg''' (''hollow'').
: Here are some words derived from these roots:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''abmimuf'''....''topmast''
* '''alien mufyeg'''....''blowpipe''
* '''anmimufa'''....''single-masted''
* '''anzyemufa'''....''uniaxial''
* '''aomermuf'''....''purlin''
* '''aomuf'''....''column''
* '''aomufsab'''....''fust''
* '''aomufsyob'''....''plinth''
* '''aomuftib'''....''scape''
* '''aomufyan'''....''colonnade''
* '''apaxlarmuf'''....''broomstick''
* '''baluien muyfyeg'''....''breathing tube''
* '''barmuf'''....''pestle''
* '''bolmuf'''....''column, prop, strut, support''
* '''bolmufyag'''....''support beam''
* '''buxmuf'''....''goad''
* '''byefabmuf'''....''rattan''
* '''byosmuf'''....''trapeze, trapezium''
* '''deupmuf dopmuf'''....''mace''
* '''deym mufyeg'''....''hosepipe''
* '''doof muf'''....''flagpole, flagstaff, standard''
* '''dopmuf'''....''lance''
* '''dopuz-izmuf'''....''bow-and-arrow''
* '''duzdeba muf'''....''conductor's baton''
* '''minak siynmuf'''....''milepost''
* '''enmufa mimofpar'''....''brigantine''
* '''faomuf'''....''pikestaff, quarterstaff, wooden pole''
* '''feelkmuf'''....''bar, iron bar, iron rod''
* '''feelkyiga muf'''....''steel beam''
* '''fubmuf'''....''spike''
* '''fubmufnyan'''....''faggot, bundle of branches''
* '''fyamuf'''....''staff''
* '''fyulmufzyeg'''....''cloaca''
* '''Gedada puxmuf'''....''caber''
* '''gezyemufa'''....''co-axial, coaxial''
* '''gimuf'''....''shish, skewer''
* '''gimufyeg tef'''....''cone hat, dunce cap''
* '''gimufyeg'''....''cone''
* '''gimuyf'''....''pick''
* '''givomuf'''....''cigar, stogie, stogy''
* '''givomufyeg'''....''smoking pipe, tobacco pipe''
* '''grailpmufzyeg'''....''standpipe''
* '''grunmuf'''....''crosier''
* '''gumzyegek fuybmuf'''....''pool stick''
* '''gwazomimuf'''....''mizzenmast''
* '''gyamuf'''....''beam, girder''
* '''gyaujmuf'''....''bludgeon''
* '''Iema muf'''....''shillalah, shillelagh''
* '''ilmuyf'''....''siphon''
* '''ilokmufyeg'''....''drainage pipe, gutter''
* '''ilukmufyeg'''....''drainpipe''
* '''inmuf'''....''stilt''
* '''izbexmuf'''....''joystick''
* '''izmuf'''....''arrow''
* '''izmufseb'''....''arrowhead''
* '''kaduzarmuf'''....''drumstick''
* '''kotyezmuf'''....''magic wand''
* '''kyaxen muf'''....''stick shift''
* '''sakolmuf'''....''lollipop''
* '''maegil mufyeg'''....''gas main''
* '''magmuf'''....''firebrand''
* '''magmufaob'''....''matchwood''
* '''magmufog'''....''match, matchstick''
* '''magmufogyeb'''....''matchbook''
* '''magmufogyem'''....''matchbox''
* '''magmufzyeg'''....''tuyere''
* '''magyel mufyeg'''....''oil pipe''
* '''magyel mufyegnad'''....''oil pipeline''
* '''mak muf'''....''electric pole''
* '''makmufzyeg'''....''klystron''
* '''mal muyfyeg'''....''air tube''
* '''malmufyeg'''....''air vent, windpipe, throttle, throat''
* '''maluk muyfeg'''....''vacuum tube''
* '''mamak muf'''....''lightning rod''
* '''mamilmufyeg'''....''gutter, rain spout''
* '''manar muf'''....''light pole''
* '''masbolmuf'''....''buttress''
* '''maylubea mufyeg'''....''flue''
* '''mekobarmuf'''....''mopstick''
* '''melmuf yuzmays'''....''picket fence''
* '''melmuf'''....''picket, stake''
* '''melmufyan'''....''palisade, stockade''
* '''melmufyeg'''....''soil pipe''
* '''mepyuijbea muf'''....''pike''
* '''mes bexmuf'''....''door handle''
* '''mes muf'''....''doorpost''
* '''meys muf'''....''gatepost''
* '''mialmufyegen'''....''steamfitting''
* '''milkexmuf'''....''dowsing rod''
* '''milmufyeg'''....''hooka, hookah, water pipe, nargile''
* '''milmufyega'''....''hydraulic''
* '''milmufyegut'''....''plumber''
* '''milmufzyeg'''....''penstock''
* '''mimobem magyelmufyeg'''....''flowline''
* '''mos bolmuf'''....''girder, joist''
* '''movmufyeg'''....''smokestack''
* '''muf'''....''shaft, spike, staff, stave, rod, stick''
* '''mufag'''....''baton, club, column, pole. cudgel''
* '''mufaguer'''....''beat, club''
* '''mufbelar'''....''handbarrow''
* '''mufbuxer'''....''punt''
* '''mufdazut'''....''pole-dancer''
* '''mufes'''....''peg''
* '''mufesaben'''....''pegging''
* '''mufesaber'''....''peg''
* '''mufgibar'''....''poker''
* '''mufmas'''....''palisade, pen, stockade''
* '''mufog zyulxuyt'''....''majorette''
* '''mufog'''....''dowel, peg''
* '''mufyag'''....''beam, beanpole, boom, long beam, long pole''
* '''mufyeb'''....''conduit''
* '''mufyeg'''....''cylinder, pipe''
* '''mufyegben'''....''laying pipe-laying, piping''
* '''mufyegnad'''....''pipeline''
* '''mufyegnid'''....''cylinder''
* '''mufyegubar'''....''faucet, tap''
* '''mufyegyujar'''....''nozzle''
* '''mufyegvyixar'''....''pipe-cleaner''
* '''mufyeg yankyujar'''....''gasket''
* '''mufyeg yuijar'''....''stopcock''
* '''mufyegbolar'''....''style''
* '''mufyegebnyif'''....''coir''
* '''mufyegnak'''....''caliber, calibre''
* '''mufzyun ifek'''....''lacrosse''
* '''mugabnodmuf'''....''tipstaff''
* '''mugmuf'''....''metal bar, metal rod''
* '''mugmufgrun'''....''crowbar''
* '''mugmuyf'''....''pintle''
* '''musaomuf'''....''newel''
* '''mustuyamuf'''....''banister''
* '''muyf'''....''rod, small stick, pin''
* '''muyfbyaxar'''....''pinsetter''
* '''muyfgin drilar'''....''stylograph''
* '''muyfyeg bi teupib vyixyel'''....''tube of toothpaste''
* '''muyfyeg'''....''small cylinder, small pipe, straw, tube''
* '''muyfyegyan'''....''tubing''
* '''muyfyegyeber'''....''intubate''
* '''muyfyeges'''....''tubule''
* '''nagmuf'''....''dipstick''
* '''neafmuf'''....''racquet''
* '''neafmufzyun ifek'''....''racquetball''
* '''nefmuf'''....''distaff''
* '''noyxmufyeg'''....''nozzle, spigot''
* '''nyifgimuf'''....''marlin spike, marlingspike, marlinspike''
* '''nyifmuf'''....''bollard''
* '''nyifzyumuf'''....''bobbin''
* '''ofmuf'''....''bar, barrier''
* '''povol muyf'''....''bread stick''
* '''pitpix muf'''....''fishing pole''
* '''pobalkmufyeg'''....''lead pipe, plumber's pipe''
* '''pobalkmufegbut'''....''plumber''
* '''puix muf'''....''baseball bat''
* '''puxrer izmuf'''....''shoot an arrow''
* '''pyaxmufyeg'''....''missile, rocket''
* '''pyexmufag'''....''billy club, cudgel, truncheon''
* '''pyexnyifuen muf'''....''whipping post''
* '''pyoxmufzyeg'''....''chute''
* '''siunmuf'''....''signpost''
* '''sizmuf'''....''maulstick''
* '''summuf'''....''bedpost''
* '''tabmuf'''....''gibbet''
* '''tabmufzyeg'''....''catheter''
* '''Tamilgivomuf'''....''cheroot''
* '''taolgimuf'''....''spit, meat skewer, shish''
* '''taxmuf'''....''memory stick''
* '''telmuf'''....''broach''
* '''teupib gimuf'''....''toothpick''
* '''tilmufyeg'''....''drinking straw''
* '''tiyebilmufyegoben'''....''vasectomy''
* '''tuyamuf'''....''handle, handlebar''
* '''tyezmuf'''....''magic wand''
* '''tyomuf'''....''cane, crutch''
* '''uimuf'''....''horizontal beam''
* '''ukxwalmufyeg'''....''exhaust pipe''
* '''umvab gimuf'''....''haycock''
* '''unmuf sum'''....''fourposter''
* '''uzlazon muf'''....''driveshaft''
* '''uztubmuf'''....''crankshaft''
* '''uztubmufyem'''....''crankcase''
* '''uzvusanmuf'''....''camshaft''
* '''uzyumuf'''....''windlass''
* '''vosmuf'''....''maypole''
* '''vyixarmuf'''....''broomstick''
* '''xumuf'''....''rood''
* '''yabmuf'''....''pylon''
* '''yagunmufyeg'''....''kelly''
* '''yagyazmuf'''....''ridgepole''
* '''yanxen muf'''....''hitching post''
* '''yanxmuf'''....''pitman''
* '''supetaol mufyeg'''....''wiener, wienie, wurst, sausage, frankfurter''
* '''yeba muyfyeg'''....''inner tube''
* '''yibsinibar muyfyeg'''....''television tube''
* '''orpovobmuyf'''....''chopstick''
* '''yudanakmuf'''....''yardstick''
* '''yugmufyeg'''....''hosepipe''
* '''brahefyel muyfyeg'''....''rubber tube''
* '''yuijbea muf'''....''turnpike''
* '''yujlarmuf'''....''deadbolt''
* '''zamimuf'''....''foremast''
* '''zamuf'''....''bowsprit, forepole''
* '''zemisaomuf'''....''mullion''
* '''zepaxar mufag'''....''keelson''
* '''zeymuf'''....''balk, crosspiece, transom''
* '''zomufzyeg'''....''tailpipe''
* '''zyebuxmuf'''....''ramrod''
* '''zyegek muf'''....''golf club''
* '''zyemuf'''....''axis, axle, crossbar, pivot, shaft, spindle''
* '''zyemufyeg'''....''burette, smoothbore''
* '''zyifmufyeg'''....''smoothbore''
* '''zyuaomufyan'''....''cyclostyle''
* '''zyukmuf'''....''axletree''
* '''zyumuf'''....''pestle''
* '''zyumufar'''....''roller''
* '''zyumufdresiz'''....''rotogravure''
* '''zyupmuf'''....''capstan, spindle''
* '''atuyumuv'''....''thumbtack''
* '''edebmuv'''....''scepter, staff, royal mace4''
* '''feelkmuyv'''....''tige''
* '''gimuyv'''....''tack''
* '''givomuv'''....''cigarette''
* '''givomuvuj'''....''cigarette butt''
* '''izmuv'''....''needle''
* '''kyupmuv'''....''bolt''
* '''megmuv'''....''rock bolt''
* '''merizondar izmuv'''....''compass needle''
* '''mes kipmuv'''....''door bolt''
* '''muyv'''....''pin''
* '''muyvdrof'''....''pinboard''
* '''muyvzyun ifek'''....''pinball''
* '''nyem bi givomuvi'''....''carton of cigarettes''
* '''nyufes bi givomuvi'''....''pack of cigarettes''
* '''oybtayoba izmuv'''....''hypodermic needle''
* '''oyebmes yijmuv'''....''latchkey''
* '''taxmuv'''....''thumb drive''
* '''tuyub uzyumuv'''....''thumb''
* '''ummas kipmuv'''....''molly bolt''
* '''uzmuv'''....''staple''
* '''uzmuvar'''....''stapler''
* '''uzmuvir'''....''staple gun''
* '''uzyubea muv'''....''rolling pin''
* '''vakmuyv'''....''linchpin''
* '''yaplen muv'''....''piton''
* '''yijmuv'''....''key, latch, latchet''
* '''yujlarmuyv'''....''broach''
* '''yujmuv'''....''bar, padlock, peg, bolt''
* '''yujun uzyumuv'''....''corkscrew''
* '''yumuyv'''....''ninepin''
* '''zyisebmuyv'''....''tack''
* '''zyuabuna uzyumuv'''....''roundhead''
* '''zyusebmuv'''....''rivet''
</div>
{{small/end}}
=== '''MUG''' ''metal'', '''MUK''' ''mineral'' '''MUZ''' ''ore'' ===
:* '''mug'''....''metal''
:* '''muk'''....''mineral''
:* '''muz'''....''ore''
==== MUG Words ====
: The root '''mug''' means ''metal''. The following words are derived from this root:
{{small/top}}
* '''mug'''....''metal''
** '''abmugsiz'''....''toreutic''
** '''alza mug'''....''white metal''
** '''balsiyner dresin abu mug'''....''stamp a design onto metal''
** '''bixmug'''....''magnet''
*** '''bixmugazon'''....''magnetism, magnetic force''
****'''bixmugazonmilpanazontun'''....''magnetohydrodynamics''
****'''bixmugazonnagar'''....''magnetometer''
****'''bixmugazonxer'''....''to magnetize''
*** '''ekpetyoyaf bixmug'''....''horsehoe magnet''
*** '''feelkbixmug'''....''ferromagnet''
*** '''imerbixmuga'''....''geomagnetic''
**** '''imerbixmugazon'''....''geomagnetism''
*** '''makbixmug'''....''electromagnet''
**** '''makbixmugazon'''....''electromagnetism''
***** '''kyinmakbixmugazon'''....''gravitoelectromagnetism''
**** '''lomakbixmugxer'''....''to degauss''
** '''dopirmug'''....''gunmetal''
** '''drayefmug'''....''sheet metal''
** '''drurmug'''....''printhead''
** '''ebmuga'''....''intermetallic''
** '''enmuga'''....''bimetallic''
*** '''enmugin'''....''bimetallism''
** '''fyizmug'''....''medal''
*** '''fyizmuguer'''....''to bestow a medal''
*** '''agelka fyizmug'''....''silver medal''
*** '''aulka fyizmug'''....''gold medal''
*** '''caulkyiga fyizmug'''....''bronze medal''
*** '''fyizmugag'''....''medallion''
** '''glamugyebag mimpur'''....''supertanker''
** '''kyimug'''....''heavy metal''
*** '''kyimugoben'''....''chelation''
** '''mugyanar'''....''chain, metal chain''
*** '''lomugyanarer'''....''unchain''
**** '''lomugyanaren'''....''unchaining''
**** '''lomugyanarwa'''....''unchained''
** '''mugyanil'''....''solder''
*** '''mugyanilxer'''....''to solder''
**** '''lomugyanilxer'''....''to unsolder''
** '''makmugmoys'''....''electroplate''
*** '''makmugmoysber'''....''to galvanize, electroplate''
**** '''makmugmoysbwa'''....''galvanized, electroplated''
** '''manmug'''....''phosphor''
** '''mazmug'''....''sequin''
** '''mug goypar'''....''hacksaw''
** '''muga'''....''metal, metallic''
*** '''muga milbelar'''....''metal bucket, metal pail''
*** '''muga pexum'''....''metal cage''
** '''mugabun'''....''metal cover''
*** '''mugabunxer'''....''to plate''
**** '''mugabunxen'''....''plating''
**** '''mugabunxwa'''....''plated''
** '''mugabsaibyan'''....''gantry''
** '''mugayef'''....''foil, metal sheet''
** '''mugdresiz'''....''metallography''
** '''mugfyus'''....''slag''
*** '''mugfyusuen'''....''slagging''
*** '''mugfyusuer'''....''slag''
** '''muggin'''....''spike, metal tip''
*** '''mugginxwa'''....''spiked, metal-tipped''
*** '''mugginmuf'''....''tipstaff''
** '''muggoblar'''....''hacksaw''
** '''muggyagoflun'''....''ingot''
** '''mugilxer'''....''to melt metal''
*** '''mugilxam'''....''foundry''
** '''muginaya'''....''spiky''
*** '''muginayan'''....''spikiness''
*** '''muginika'''....''spiky''
**** '''muginikan'''....''spikiness''
** '''mugkaxar'''....''metal detector''
** '''mugmapduzar'''....''brasswind''
** '''mugmef'''....''bar, ingot''
** '''mugmek'''....''filings, metal dust''
** '''mugmesog'''....''plaquette, scutcheon''
** '''mugmolz'''....''niello''
*** '''mugmolzber'''....''to niello''
** '''mugmuf'''....''metal bar, metal rod, bar''
*** '''zo mugmufi'''....''behind bars''
*** '''mugmufgrun'''....''crowbar''
*** '''mugmuyf'''....''pintle''
** '''mugneaf'''....''trellis, wire mesh, wire-mesh''
** '''mugnef'''....''grate, grid, griddle, grill, grille''
*** '''mugnef yuzmas'''....''grated fence''
** '''mugneyef'''....''metal strip, ferrule''
*** '''gunmugneyef'''....''spline''
** '''mugnif'''....''wire, cable''
*** '''enuja mugnif'''....''jumper cable''
*** '''mugnifvixun'''....''filigree''
*** '''novmugnif'''....''gimp''
*** '''gawmugnifber'''....''to rewire''
*** '''grinaya mugnif'''....''razor wire''
*** '''grunaya mugnif'''....''barbed wire''
*** '''ijar mugnif'''....''trip wire''
** '''mugnyed'''....''grill''
*** '''mugnyedmageler'''....''to grill''
*** '''mugnyedmagelar'''....''grill''
*** '''mugnyedmagelwa'''....''grilled''
*** '''mugnyedyan'''....''grating, grillwork''
** '''mugnyem'''....''metal case''
*** '''givomuv mugnyem'''....''cigarette case''
** '''mugnuf'''....''metal button, nailhead, stud''
*** '''mugnufber'''....''to stud''
*** '''mugnufben'''....''studding''
*** '''mugnufbwa'''....''studded''
*** '''tuyov mugnuf'''....''cuff link''
** '''mugnyaf'''....''buckle, clasp''
*** '''mugnyafber''''....''to buckle''
*** '''mugnyafober'''....''to unbuckle''
** '''mugnyem'''....''metal box, metal case''
** '''mugoyebixer'''....''to smelt''
*** '''mugoyebixam'''....''smelter, smeltery''
*** '''mugoyebixir'''....''smelter''
** '''mugpyeuxer'''....''to clank''
** '''mugsaib yaozgoblir'''....''bucksaw''
** '''mugseuxer'''....''to jangle''
** '''mugsanxar'''....''swage''
** '''mugsim'''....''metal chair''
** '''mugsiun'''....''token''
*** '''mugsiunin'''....''tokenism''
** '''mugtaf'''....''hauberk''
** '''mugtilyeb'''....''pannikin''
** '''mugtun'''....''metallography''
** '''mugul'''....''scoria, slag''
** '''muguz'''....''grommet''
** '''mugulz'''....''patina''
** '''mugvunid'''....''quoin''
** '''mugxer'''....''to metallize''
*** '''mugxen'''....''metallization''
** '''mugyanar'''....''chain, metal chain''
*** '''mugyanarer'''....''to catenate, chain''
** '''mugyanil'''....''solder''
*** '''mugyanilxer'''....''to solder''
** '''mugyanxer'''....''to weld''
*** '''mugyanxun'''....''weldment''
*** '''mugyanxut'''....''welder''
*** '''mugyanxyafwa'''....''weldable''
** '''mufnyaf'''....''buckle''
*** '''zetif mugnyaf'''....''belt buckle''
** '''mugyeb'''....''can, metal container, pail, pot''
*** '''fyumul mugyeb'''....''garbage can, garbage pail, rubbish can''
*** '''fyus mugyeb'''....''litter can, trash can, waste can''
*** '''milmugyeb'''....''canteen''
**** '''milmugyebag'''....''water cistern, water tank''
*** '''tefayelmugyeb'''....''tea kettle, teakettle, teapot''
*** '''miluen mugyeb'''....''watering can''
*** '''ipuxwas mugyeb'''....''trash can''
*** '''kafeyl magilmugyeb'''....''coffee kettle, coffee pot''
*** '''kafeylmugyeb'''....''coffee pot, coffee urn, coffeepot''
*** '''lobexun mugyeb'''....''trash can''
*** '''maegil mugyeb'''....''gas can, gas tank, gasoline can, petrol can''
**** '''maegil mugyebag'''....''gas tank, gasoline tank, petrol tank''
*** '''magilmugyeb'''....''kettle, pot''
**** '''magilmugyebag'''....''boiler, caldron, cauldron''
*** '''magyel mugyebag'''....''oil tank''
*** '''tilmugyeb'''....''beverage can''
*** '''vyilxen mugyebag'''....''washtub''
** '''mugyex'''....''metallurgy, metalwork''
*** '''mugyexal'''....''acetylene''
*** '''mugyexut'''....''metallurgist, metalworker''
** '''mugyigaxer'''....''to caseharden''
** '''mugzyifarer'''....''to planish''
** '''mugzyin'''....''plaquette, scutcheon''
** '''mugzyiun'''....''gussy, quoit''
** '''mugzyuk'''....''nut''
*** '''ebyujlea mugzyuk'''....''snap fastener''
** '''nasmug'''....''coin''
*** '''aloynasmug'''....''dime''
*** '''asoynasmug'''....''cent''
**** '''Feroma asoynasmug'''....''centime''
*** '''Geniqoma nasmug'''....''guinea''
*** '''nasmug-exwa'''....''coin-operated''
*** '''nasmugier'''....''to get change''
*** '''nasmugtixut'''....''numismatist''
*** '''nasmuguer'''....''make change''
*** '''nasmugxer'''....''to mint''
**** '''nasmugxam'''....''mint''
***** '''nasmugxam noyx'''....''mintage''
*** '''nasmugyan'''....''change, coinage, mintage''
*** '''nasmugyeb'''....''coin purse''
** '''nixmugsiun'''....''scrip''
** '''omuga'''....''nonmetallic''
** '''syob mug'''....''base metal''
** '''uzmug'''....''trunnion''
** '''vimugun'''....''tole''
** '''yanmug'''....''alloy''
*** '''feelk yanmug'''....''iron alloy''
{{small/end}}
==== MUK Words ====
: The root '''muk''' means ''mineral''. Here some derived terms:
:* '''muk'''....''mineral''
::* '''aagmuk'''....''macromineral''
::* '''amuk'''....''augite''
::* '''emuk'''....''vermiculite''
::* '''mukiblem'''....''mine, quarry''
:::* '''mukiblem mup'''....''mine tunnel''
:::* '''mukiblem par'''....''mine carriage''
:::* '''mukiblem yaobzyeg'''....''mine shaft''
:::* '''mukibler'''....''to mine''
::::* '''mukiblen'''....''mining''
::::* '''mukiblut'''....''miner''
:::::* '''mukibluta yigtef'''....''miner's hardhat, mining helmet''
::* '''mukmil'''....''mineral water''
::* '''muktun'''....''mineralogy''
::::* '''muktuna'''....''mineralogical''
::::* '''muktut'''....''mineralogist''
::* '''mukxer'''....''to mineralize''
:::* '''mukxen'''....''mineralization''
:::* '''mukxwa'''....''mineralized''
::* '''mukyabilok'''....''stalagmite''
::* '''mukyobilok'''....''stalactite''
::* '''mukyugmek'''....''talcum''
::* '''mukzoybesun'''....''fossil''
::* '''mukzyeg'''....''mineral pit''
::* '''nazmuk yaybar'''....''ore bridge''
::* '''nazmuk yonxen'''....''ore dressing''
::* '''nozmuk'''....''garnet''
::* '''yugmuk'''....''meerschaum''
==== MUZ Words ====
: The root '''muz''' means ''ore'' and the following words are derived from it:
:* '''muz'''....''ore''
::* '''muzika'''....''sequined, sequin-filled''
::* '''muzkexer'''....''prospect''
:::* '''muzkexen'''....''prospecting''
:::* '''muzkexut'''....''prospector''
::* '''muztalob'''....''lode''
::* '''caulk muz'''....''copper ore''
::* '''feelk muz'''....''iron ore''
::* '''muz pures'''....''ore car''
::* '''muzfyul'''....''gangue''
::* '''muzyonxen'''....''ore dressing''
=== '''NAB''' ''rank'', '''NAP''' ''order'' ===
::* '''nab'''....''rank, row''
:::* '''aonab'''....''column, y-axis''
:::* '''nabxer'''....''to arrange, to line up, to adapt''
:::* '''nabyan'''...''range, spectrum''
:::* '''uinab'''....''row, x-axis''
:::* '''yabnaba'''....''high-ranking''
:::* '''yobnaba'''....''low-ranking''
::* '''naab'''....''file''
:::* '''naaber'''....''to file, to classify''
::* '''nap'''....''order''
:::* '''lonap'''....''disorder, mess''
::::* '''lonapxer'''....''to mess up''
::::* '''dolonap'''....''riot''
::::* '''teplonap'''....''mental disorder''
:::* '''napder'''....''to order, to ordain''
:::* '''napxer'''....''to array, to put in order''
::* '''naap'''....''system, regime''
:::* '''amarnaap'''....''solar system''
:::* '''lonaap'''....''chaos''
::::* '''lonaapa'''....''chaotic''
:::* '''naapa'''....''systematic''
:::* '''naapxer'''....''to systematize''
::* '''nyap'''....''march''
:::* '''nyaper'''....''to march''
=== '''NAS''' ''money'' ===
: The stems of the words in this family all begin with '''n''' for ''merchandise''. All the words have to do with money, business, trade, and merchandise.
[[File:টাকার মাধ্যমে করোনাভাইরাস ছড়ানো.jpg|thumb|]]
: Summary:
{{small/top}}
{| class="wikitable" style="background:lightyellow"
|+ Money Core Words
|- valign=top
! MONEY/WEALTH !! SAVING/ACCUMULATING !! SPENDING/WASTING !! EARNING/ORDERING !! PAYING/SHIPPING
|-
|valign=top| '''nas'''....''money''<br>'''nax'''....''price''<br>'''nayx'''....''cost''<br>'''naz'''....''value, worth''<br>'''nasyig'''....''cash''<br>'''nasmug'''....''coin''<br>'''nases'''....''change''<br>'''nasgon'''....''stock''<br>'''nastun'''....''finance''<br>'''donastun'''....''economy''<br>'''nasyan'''....''capital''<br>'''nasdrev'''....''paper money''<br>'''nasdref'''....''check''<br>'''nasam'''....''bank''<br>'''nasak'''....''profit''<br>'''nasok'''....''deficit''<br>'''nam'''....''store''<br>'''namyan'''....''shopping center''<br>'''nasdiybut'''....''bursar''<br>'''nasdrev'''....''backnote''<br>'''nasebkyax'''....''money exchange''<br>'''nasefa'''....''poor''<br>'''nasgab'''....''surplus''<br>'''nasok'''....''deficit''<br>'''nasokya'''....''bankrupt''<br>'''nastun'''....''finance''<br>'''naxer'''....''cost''<br>'''nasbuer'''....''allocate''<br>'''nasaker'''....''profit''<br>'''naseker'''....''gamble''<br>'''nasyefer'''....''owe''<br>'''nasyefier'''<br>'''nasboler'''....''underwrite''<br>''''nasyefier''''....''borrow''<br>'''nasyefuer'''....''lend''<br>'''naxter'''....''appreciate''<br>'''nazer'''....''be worth''<br>'''nazder'''....''assess''<br>'''nazbuer'''....''reward''<br>'''nasyiguer'''....''cash''<br>'''nasbyokuer'''....''fine''<br>'''nasdier'''....''panhandle''<br>'''nasgonuer'''....''invest''<br>'''nasvelkier'''....''gamble''
|valign=top|'''nex'''....''savings''<br>'''nexak'''....''interest''<br>'''nextun'''....''economy''<br>'''nexyea'''....''thrifty''<br>'''nexer'''....''save''<br>'''neuner'''....''reserve''
|valign=top| '''nox'''....''expense''<br>'''noxun'''....''expenditure''<br>'''finox'''....''thrift''<br>'''noz'''....''jewelry''<br>'''noxufa'''...,''stingy''<br>'''noxer'''....''spend''<br>'''funoxer'''....''waste''<br>'''noxuer'''....''charge''
|valign=top| '''nix'''....''income, revenue''<br>'''yexnix'''....''salary''<br>'''tutnix'''....''honorarium''<br>'''jonix'''....''debt''<br>'''nixak'''....''profit''<br>'''dobnix'''....''pension''<br>'''dotnix'''....''welfare''<br>'''jabnix'''....''annuity''<br>'''nixgab'''....''dividend''<br>'''nier'''....''consume''<br>'''nixer'''....''earn''<br>'''nizer'''....''deserve''<br>'''nier'''....''consume''<br>'''nixbuer'''....''sell''<br>'''jobnier'''....''rent''<br>'''nixbuer'''...''sell''
|valign=top| '''nux'''....''payment, outlay''<br>'''yovnux'''....''penalty''<br>'''nuxyef'''....''duty''<br>'''jonux'''....''credit''<br>'''yufnux'''....''blackmail''<br>'''dobnux'''....''tax''<br>'''nuz'''....''award''<br>'''nuxgax'''....''pay raise'' <br>'''nuxer'''....''pay''<br>'''nuzuer'''....''award''<br>'''nuer'''....''supply''<br>'''jobnuxer'''....''lease''<br>'''nuxbier'''....''buy''<br>'''nun'''....''product''<br>'''nunyan'''....''merchandise''<br>'''nunsag'''....''inventory''<br>'''nunek'''....''negotiation''<br>'''nundel'''....''ad''<br>'''nundyun'''....''brand''<br>'''nunem'''....''market''<br>'''n(un)am'''....''shop''<br>'''nunut'''....''merchant''<br>'''nunyeb'''....''package''<br>'''nuneker'''....''deal''<br>'''nunier'''....''buy''<br>'''nunuer'''....''sell''<br>'''nunuier'''....''trade''<br>'''namper'''....''shop''<br>'''nundeler'''....''advertise''<br>'''nunsager'''....''inventory''<br>'''nunyember'''....''package''
|-
|valign=top| '''nyan'''....''stack''<br>'''nyandras'''....''list''<br>'''nyaz'''....''wealth''<br> '''nyaser'''....''accumulate''<br>'''nyaxer'''....''stack''
|valign=top|'''nyen'''....''stores, stock''<br>'''nyeb'''....''container''<br>'''nyem'''....''box, case''<br>'''nyef'''....''bag, sack''<br>'''nyeyf'''....''purse''<br>'''yignyef'''....''basket'' <br> '''nyexer'''....''stock''<br>'''nyember'''....''box up''
| valign=top|'''nyox'''....''waste''<br>'''nyoz'''....''penury''<br> '''nyoxer'''....''waste''
|valign=top| '''nyix'''....''order, demand''<br>'''nyixdref'''....''order form''<br>'''nyixut'''....''client, customer'' <br>'''nyuix'''....''supply and demand''<br>'''nyixer'''....''demand, order''
|valign=top|'''nyux'''....''delivery''<br>'''nyun'''....''cargo, freight, shipment''<br>'''nyuxdref'''....''receipt''<br>'''nyuxpur'''....''delivery truck'' <br>'''nyuer'''....''pour, produce''<br> '''nyuxer'''....''supply, deliver, ship''<br>'''nyuf'''....''package''
|}
{{small/end}}
=== '''NOD''' ''point'' ===
: The base word '''nod''' means ''point, dot'', and is the top level of the following subordinal words:
:* '''nod'''....''point, dot''
::* '''nad'''....''line''
::* '''ned'''....''plane''
::* '''nid'''....''volume''
{{small/top}}
::* '''nod'''....''point, dot''
:::* '''abnod'''....''peak''
:::* '''byinod'''....''point of origin''
:::* '''byunod'''....''target''
:::* '''dalnod'''....''talking point''
:::* '''drenod'''....''dot, period''
:::* '''duznod'''....''note (music)''
:::* '''eynduznod'''....''minim''
:::* '''gwanod'''....''maximum''
:::* '''gwonod'''....''minimum''
:::* '''ijnod'''....''square one, starting point''
:::* '''jobnod'''....''point in time, moment''
:::* '''magnod'''....''burn point, focus''
:::* '''maknod'''....''blip''
:::* '''makujnod'''....''electrode''
:::* '''mannod'''....''pip''
:::* '''memyepnod'''....''port of entry''
:::* '''mernod'''....''compass point, pole''
::::* '''ovmernod'''....''antipode''
:::* '''miilnod'''....''dew point''
:::* '''mopnod'''....''apse''
:::* '''nemnod'''....''locus''
:::* '''obpyosnod'''....''precipice''
:::* '''eknod'''....''game point''
:::* '''ovnod'''....''counterpoint''
:::* '''yabnod'''....''climax''
::::* '''ovyabnod'''....''anticlimax''
:::* '''ujnod'''....''endpoint, node, terminal, extreme''
::::* '''ovujnod'''....''antipode''
:::* '''oznod'''....''weakpoint, foible''
:::* '''posnod'''....''stopping point, deadlock''
:::* '''teatnod'''....''point of view, aspect, perspective''
:::* '''uknod'''....''hole''
:::* '''volznod'''....''freckle, color spot''
:::* '''yabnod'''....''climax, highpoint''
:::* '''yannod'''....''juncture, joint''
:::* '''yibnod'''....''apogee, extremity''
:::* '''yibamarnod'''....''aphelion''
:::* '''yibmopnod'''....''apoapse''
:::* '''yobnod'''....''lowpoint, nadir''
:::* '''yubmopnod'''....''periapsis''
:::* '''yuzamaryubnod'''....''perihelion''
:::* '''zamernod'''....''north pole''
:::* '''zenod'''....''hub, midpoint''
:::* '''zeypnod'''....''crossover point''
:::* '''zomernod'''....''south pole''
:::* '''zyenod'''....''intersection, through-point''
:::* '''zyubolnod'''....''hinge, pivot''
:::* '''zyupnod'''....''turning point, pivot''
==== NAD NYAD Words ====
::* '''nad'''....''line''
:::* '''naad'''....''track, rail''
::::* '''abexnaad'''....''railing''
::::* '''beaxnaad'''....''guardrail''
::::* '''feelknaad'''....''iron rail''
::::* '''musnaad'''....''banister''
::::* '''seuxnaad'''....''sound track''
::::* '''tuyanaad'''....''handrail''
::::* '''zonaad'''....''trace''
:::* '''naed'''....''lane''
::::* '''zenaed'''....''median''
:::* '''naid'''....''stripe, streak''
:::* '''naud'''....''ray, beam''
::::* '''amarnaud'''....''sunray''
::::* '''amurnaud'''....''moonbeam''
::::* '''mannaud'''....''lightbeam''
::::* '''xunaud'''....''x-ray''
::::* '''zyuknaud'''....''spoke''
:::* '''nayd'''....''dash''
:::* '''nyad'''....''list, chain, queue''
::::* '''aotnyad'''....''queue, line (of people)''
:::::* '''aotnyadxer'''...''to queue up, to line up''
::::* '''duntesnyad'''....''glossary''
::::* '''dyesnyad'''....''bibliography''
::::* '''dyunnyad'''....''roster''
::::* '''ekpetnyad'''....''cavalcade''
::::* '''fyadilnyad'''....''litany''
::::* '''gonuutnyad'''....''credits''
::::* '''mapnyad'''....''windrow''
::::* '''mimpurnyad'''....''convoy (of ships)''
::::* '''namnyad'''....''stip mall''
::::* '''naxnyad'''....''price list''
::::* '''nyadper'''....''to march''
:::::* '''nyadpen'''....''procession, marching''
:::::* '''nyadput'''....''marcher''
::::* '''nunnyad'''....''bill of goods''
::::* '''pesnyad'''....''wait list''
::::* '''purnyad'''....''motorcade''
:::::* '''dopurnyad'''....''convoy (military)''
::::* '''teaznyad'''....''parade''
:::::* '''teaznyadper'''....''to parade''
::::* '''texnyad'''....''chain of thought''
::::* '''tulnyad'''....''bill of fare''
::::* '''vyoknyad'''....''errata''
::::* '''xwoasnyad'''....''agenda''
:::* '''abdrenad'''....''headline''
:::* '''aonad'''....''vertical line''
:::* '''pesnad'''....''queue''
:::* '''dinnad'''....''plot, storyline''
:::* '''dobnad'''....''frontier''
:::* '''dreznad'''....''verse''
:::* '''zanad'''....''frontline''
:::* '''dunnad'''....''passage''
:::* '''ijnad'''....''theshold''
:::* '''iznad'''....''vector, bee-line''
:::* '''jobnad'''....''timeline, choronology''
:::* '''judnad'''....''dateline''
:::* '''kinad'''....''slash''
:::* '''kunad'''....''edge, rim''
::::* '''mimkunad'''....''seacoast, seashore''
:::* '''mamnad'''....''skyline, horizon''
:::* '''zaonad'''....''longitude''
:::* '''zuinad'''....''latitude''
:::* '''melyaznad'''....''ridge''
:::* '''melyoznad'''....''furrow, ditch, trench''
:::* '''mimnad'''....''coast''
:::* '''nofkunad'''....''hem''
:::* '''nunnad'''....''brand, product line''
:::* '''opyexnad'''....''line of defense''
:::* '''oyebnad'''....''outline''
:::* '''puxnad'''....''trajectory''
:::* '''sanyuznad'''....''silhouette''
:::* '''tajnad'''....''breed''
:::* '''teatnad'''....''line of sight''
:::* '''texnad'''....''line of thought''
:::* '''todnad'''....''family line, genetics''
:::* '''ujnad'''....''limit''
:::* '''uzkunad'''....''rim''
:::* '''uznad'''....''curve''
:::* '''yaoznad'''....''tilde''
:::* '''yeznad'''....''parallel''
:::* '''yibkunad'''....''fringe''
:::* '''yuzkunad'''....''frame''
:::* '''zakunad'''....''leading edge''
:::* '''zemernad'''....''equator''
:::* '''zaomernad'''....''longitude''
:::* '''zenad'''....''median''
:::* '''zonad'''....''rear line, backline''
:::* '''zuimernad'''....''latitude''
:::* '''zyokunad'''....''verge''
:::* '''zyunad'''....''circle''
:::* '''zyupnad'''....''axis''
==== NED Words ====
::* '''ned'''....''surface, plane''
:::* '''nead'''....''course''
::::* '''tixnead'''....''curriculum''
:::::* '''agaltixnead'''....''major''
::::* '''yexnead'''....''career''
::::* '''milnead'''....''waterway''
::::* '''tejnead'''....''curriculum vitae''
::::* '''byeknead'''....''course of treatment''
::::* '''popnead'''....''itinerary''
:::* '''nyed'''....''grid''
::::* '''feelknyed'''....''grate, gridiron''
::::* '''ebnyed'''....''web''
::::* '''mepnyed'''....''network''
::::* '''iznodnyed'''....''crosshair, reticle''
::::* '''teabnyed'''....''retina''
::::* '''magelnyed'''....''grill''
::::* '''sagunnyed'''....''bitmap''
::::* '''syagnyed'''....''spreadsheet''
:::* '''abned'''....''surface''
:::* '''aomegned'''....''cliff, precipice, bluff''
:::* '''ebned'''....''interface''
:::* '''imerned'''....''terrain''
:::* '''kined'''....''inclined plane, slope, ramp''
:::* '''kuned'''....''flank, side''
:::* '''megned'''....''pavement''
:::* '''melned'''....''plain, flat, meadow''
:::* '''memned'''....''ground, site''
:::* '''merned'''....''planet surface''
:::* '''mimned'''....''sea surface''
:::* '''obned'''....''bottom surface''
:::* '''oybned'''....''base, foundation, bottom''
:::* '''oyebned'''....''outer surface, hull''
:::* '''yabned'''....''platform''
:::* '''yaozned'''....''relief''
:::* '''yomned'''....''glade''
:::* '''yoymned'''....''rime''
:::* '''zaned'''....''front, face, heads (coin)''
:::* '''zyaned'''....''expanse, span, stretch''
:::* '''zyined'''....''flat surface, platform, plane''
:::* '''zoned'''....''back, rear, tails (coin)''
==== NID Words ====
::* '''nid'''....''volume, -hedron, solid''
:::* '''elonkunid'''....''icosahedron''
:::* '''eynzyunid'''....''hemisphere''
:::* '''ginid'''....''cone''
::::* '''yomginid'''....''icicle''
::::* '''zaginid'''....''nosecone''
:::* '''gunid'''....''wedge''
:::* '''inguginid'''....''pyramid''
:::* '''inkunid'''....''trihedron''
:::* '''unkunid'''....''tetrahedron''
:::* '''mufyegnid'''....''cylinder''
:::* '''mufvunid'''....''quoin''
:::* '''pifebnid'''....''cone''
:::* '''yagekunid'''....''cube, block, hexahedron''
:::* '''zyefnid'''....''prism''
:::* '''zyunid'''....''sphere, globe, orb''
{{small/end}}
=== '''NOF''' ''cloth'' ===
: The '''nof''' family words begin with '''n''' meaning ''commercial'' and end in '''f/v''' meaning ''textile''.
==== NOF, NOV, -OF, and -OV words ====
: The base word '''nof''' means ''cloth, material, weave'' and '''nov''' means ''linen''. There are truncated stub suffixes, '''-of''' and '''-ov''' that are used to form portmanteau words meaning types of ''cloth'' and ''linens''.
: The word '''faof''', meaning ''wooden board'' is part of this family. Think of it as a mixture of '''fab''' (''tree'') and '''nof''' (''matter'').
: Here is a list of words formed from the above roots:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abaunof'''....''cover''
*'''astrakhana nof'''....''astrakhan''
*'''bey nofkunviben'''....''purlwise''
*'''ganofxen'''....''reweaving''
*'''ganofxer'''....''reweave''
*'''ganofxwa'''....''rewoven''
*'''ganofyanxen'''....''re-sewing''
*'''ganofyanxer'''....''re-sew, resew''
*'''ganofyanxwa'''....''re-sewn''
*'''ganovolzilber'''....''redye''
*'''gevob nofyigxul'''....''cornstarch''
*'''gixenof'''....''strop''
*'''gyonaidnof'''....''pinstripe''
*'''gyonof'''....''gauze''
*'''gyonofyena'''....''gauzy''
*'''gyonofyenan'''....''gauziness''
*'''kexunovaren'''....''goalkeeping''
*'''kexunovarut'''....''goalkeeper, goaltender''
*'''kyunov'''....''gossamer''
*'''lonofnyafxer'''....''burl''
*'''lonofnyafxwa'''....''burled''
*'''lonofxer'''....''unweave''
*'''lonofyanxer'''....''unseam''
*'''magyelnov'''....''oilcloth''
*'''meigyena nof'''....''pebbleweave cloth''
*'''meknov'''....''dustcloth''
*'''memnof'''....''groundsheet''
*'''mesnof'''....''serviette''
*'''milnov'''....''towel''
*'''milnoves'''....''towelette''
*'''mimkum milnov'''....''beach towel''
*'''mimofnof'''....''sailcloth''
*'''nof'''....''cloth, textile, tissue, woven material''
*'''noffun'''....''fag''
*'''nofir'''....''weaving loom''
*'''nofkunvib'''....''purl''
*'''nofnyaf'''....''burl''
*'''nofsin'''....''embroidery''
*'''nofsinen'''....''embroidery''
*'''nofsiner'''....''embroider''
*'''nofun'''....''textile''
*'''nofuzyun'''....''bolt of fabric''
*'''nofxer'''....''weave''
*'''nofyanx'''....''hemstitch, seam''
*'''nofyigxul'''....''carb''
*'''nofyonx'''....''rip''
*'''nofyonxar'''....''scissor, scissors''
*'''nofyonxer'''....''rip apart''
*'''nov'''....''cloth, linen, rag''
*'''noves'''....''gussy, rag''
*'''novgorf'''....''tatter''
*'''novib'''....''cloth decoration''
*'''novim'''....''linen room''
*'''novmugnyif'''....''gimp''
*'''novsam'''....''linen chest''
*'''novsiner'''....''embroider''
*'''novum'''....''linen closet''
*'''novumxar'''....''clothes drier''
*'''novxuta goblar'''....''trivet''
*'''novyan'''....''linens, lingerie''
*'''novyanbirer'''....''shirr''
*'''novyilsom'''....''laundry appliance''
*'''novyilxam'''....''laundromat''
*'''novyilxer'''....''do laundry, launder, wash clothes''
*'''novyil'''....''laundry detergent''
*'''novyixzyuk'''....''wince, winch''
*'''novzyiar sem'''....''ironing board''
*'''novzyiar'''....''iron''
*'''novzyiarer'''....''iron, press''
*'''oognof'''....''microfiber''
*'''tayebnof'''....''haircloth''
*'''teb abunof'''....''head covering''
*'''tebzan abunof'''....''facial covering''
*'''tebzanof'''....''facecloth, yashmak''
*'''tiavnof'''....''shirting''
*'''tojnofaber'''....''enshroud''
*'''tolar milnov'''....''dishtowel''
*'''tolarnof'''....''dishcloth''
*'''tub yuznof'''....''armband''
*'''tulnov uzun'''....''napkin ring''
*'''tulnov'''....''napkin''
*'''tuyab milnov'''....''hand towel, napkin''
*'''tyobnof'''....''legging''
*'''ujbwa nofkunad '''....''selvage''
*'''unkunof'''....''lapel''
*'''viyuznof'''....''stole''
*'''yanof'''....''adhesive, tape''
*'''nofun'''....''fiber''
*'''yebnofyanx'''....''inseam''
*'''yelnof'''....''oilskin''
*'''yonof'''....''rip''
*'''yonofar'''....''scissors''
*'''yuznof'''....''bandage, swathe''
*'''yuznofaber'''....''bandage''
*'''yuznofber'''....''swathe''
*'''yuznofes'''....''band-aid''
*'''yuznov'''....''wrap, wrapper, wrapping''
*'''yuznovaben'''....''wrapping''
*'''zyanofir'''....''broadloom''
*'''zyonov'''....''strip''
<hr>
*'''aagmimof'''....''mainsail''
*'''aagyuzmepfaof'''....''motherboard''
*'''abaof'''....''blanket, cover''
*'''abdrenabof'''....''marquee''
*'''aber sindrof'''....''put up a poster''
*'''abmimof'''....''topsail''
*'''abof'''....''canopy, tarp, tarpaulin''
*'''absuemof'''....''comforter''
*'''akdoof'''....''pennant''
*'''Amerinda tamof'''....''tepee, wigwag''
*'''angonxwa yuzmep drof'''....''integrated circuit''
*'''aoksagdrof'''....''scoreboard''
*'''aopfaof'''....''gangplank''
*'''apaxlof'''....''swab, swabbing cloth''
*'''apaxof'''....''wipe, wiping cloth''
*'''aybtoof'''....''overgarments, tracksuit''
*'''ayuigof'''....''latex''
*'''bexfaof'''....''batten''
*'''bikof'''....''band aid, bandage, patch''
*'''bilyig faof'''....''cheeseboard''
*'''buixarfaof'''....''springboard''
*'''cekerekdrof'''....''checkerboard''
*'''deldrof'''....''ad, banner, billboard, sign''
*'''dezof'''....''curtain''
*'''dipdoof'''....''pennant''
*'''diztomof'''....''big top''
*'''doof'''....''banner, flag, national colors''
*'''dyeskof'''....''book jacket, dust jacket''
*'''dyezof'''....''movie curtain, movie screen, silver screen''
*'''ejnayuigof'''....''neoprene''
*'''fababof'''....''bowery''
*'''falofaof'''....''thill''
*'''faof'''....''board, plank''
*'''favof'''....''cotton linen''
*'''feelk misof'''....''iron curtain''
*'''fevof'''....''flax, linen''
*'''fivof'''....''hemp''
*'''fuvof'''....''jute''
*'''gyanafxwa suemof'''....''coverlet''
*'''gyofavof'''....''muslin''
*'''gyolof'''....''sheer''
*'''imof'''....''washcloth''
*'''inguna bexmimof'''....''jib''
*'''jatajof'''....''caul''
*'''kipasfaof'''....''skateboard''
*'''kof'''....''shroud''
*'''koxof'''....''cloak''
*'''kuzyifaof'''....''sideboard, sidepiece''
*'''kyamisof'''....''scrim''
*'''lonapfaof'''....''shuffleboard''
*'''siundrof'''....''electronic signboard''
*'''malujbof'''....''weatherstrip''
*'''malyomfaof'''....''snowboard''
*'''yuigof'''....''gum''
*'''masazulfaof'''....''plasterboard''
*'''masfaof'''....''wainscot''
*'''masof'''....''carpet, tapestry''
*'''mekkof'''....''dust cover''
*'''mekovof'''....''dust ruffle''
*'''mesabof'''....''awning, canopy''
*'''mesof'''....''portiere''
*'''mimof'''....''sail, sheet''
*'''mimoffaof'''....''sailboard''
*'''mimyazfaof'''....''surfboard''
*'''misabof'''....''awning''
*'''misof'''....''curtain''
*'''movkof'''....''smokescreen''
*'''moynabof'''....''bowery''
*'''nifaof'''....''fiberboard, fibreboard''
*'''obzatibfaof'''....''laptop''
*'''obzatifaof'''....''lapboard''
*'''oybkof'''....''lining''
*'''oybmasaof'''....''parquet''
*'''oybmasof'''....''carpet''
*'''podiz tomof'''....''circus tent''
*'''pyoslen faof'''....''gang plank''
*'''raduzarfaof'''....''keyboard''
*'''seuxfaof'''....''soundboard''
*'''sizfaof'''....''palette''
*'''soamimof'''....''lateen''
*'''suemof'''....''bedspread, counterpane''
*'''sumabaof'''....''counterpane''
*'''sumtebfaof'''....''headboard''
*'''syobfaof'''....''baseboard''
*'''taibyuzof'''....''cambium''
*'''tamof'''....''tent''
*'''tayebexof'''....''snood''
*'''tayezobkof'''....''fur lining''
*'''teabkof'''....''blindfold''
*'''tebosof'''....''brain tissue''
*'''timof'''....''booth, lean-to, shelter, stall''
*'''tolyebof'''....''grocery bag''
*'''tomof'''....''pavilion''
*'''toybkof'''....''purdah''
*'''tuyufaof'''....''fingerboard''
*'''tyoyabamof'''....''muff''
*'''tyoyafabof'''....''bootee, bootie''
*'''tyoyafaof'''....''footboard''
*'''utayefyuzkof'''....''cotta''
*'''vipof'''....''chamoix''
*'''vulobfaof'''....''dartboard''
*'''vyilxof'''....''wash cloth, washcloth, washrag''
*'''xeusfaof'''....''clapperboard''
*'''yebabaof'''....''liner''
*'''yebof'''....''bag, sack''
*'''yigfaof'''....''hardboard''
*'''yobmimof'''....''lowermost sail''
*'''yogmisof'''....''teaser''
*'''yugsrof'''....''elastic''
*'''yuigof'''....''caoutchouc, gum, rubber''
*'''yuijarfaof'''....''clavier''
*'''yujbof'''....''tampon''
*'''yuzkof'''....''blanket, wrap, wrapping''
*'''yuzof'''....''girdle, sash, wrap-around, wraparound''
*'''zamapmimof'''....''spinnaker''
*'''zamimof'''....''foresail''
*'''zatomof'''....''awning, overhang, pavilion''
*'''zofaof'''....''backboard''
*'''zomisof'''....''backcloth, backdrop''
*'''zotyoibof'''....''puttee''
*'''zoyneof'''....''backstitch''
*'''zyifaof'''....''board, plank of wood''
*'''zyofaof'''....''clapboard''
*'''zyoxbikof'''....''tourniquet''
</div>
{{small/end}}
==== NAF ''fabric'' and its Different Types ====
: The base word '''naf''' means ''fabric''. Here is a list of different types of fabric:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''naaf'''....''drape''
*'''naef'''....''canvas''
*'''naif'''....''velvet''
*'''nauf'''....''veil''
*'''nayof'''....''denim''
*'''nayaf'''....''corduroy''
*'''nayef'''....''nylon''
*'''nayif'''....''rayon''
*'''nayuf'''....''satin''
*'''naalof'''....''baize, organdie, organdy''
*'''naalaf'''....''broadcloth, organza''
*'''naalef'''....''cheviot''
*'''naalif'''....''cretonne''
*'''naaluf'''....''crinoline''
*'''naalyof'''....''damask''
*'''naalyaf'''....''faille, flannel''
*'''naalyef'''....''flannelet''
*'''naalyif'''....''flannelette''
*'''naalyuf'''....''foulard''
*'''naelof'''....''gabardine''
*'''naelaf'''....''delaine, georgette, grosgrain''
*'''naelef'''....''cambric''
*'''naelif'''....''gunny, gunnysack''
*'''naeluf'''....''lisle''
*'''nailof'''....''hessian''
*'''nailaf'''....''sateen''
*'''nailef'''....''serge''
*'''nailif'''....''tweed''
*'''naulof'''....''spandex''
*'''naarof'''....''marseilles''
*'''naaraf'''....''matting''
*'''naaref'''....''melton''
*'''naarif'''....''merino''
*'''naaruf'''....''messaline''
*'''naaryaf'''....''mousseline de laine''
*'''naaryef'''....''mousseline de soie''
*'''naaryof'''....''moquette''
*'''naaryuf'''....''nainsook''
*'''nairaf'''....''sarsenet, sarcenet, sarsnet''
*'''nairef'''....''say''
*'''nairif'''....''scrim''
*'''nairof'''....''samite''
*'''nairuf'''....''seersucker''
*'''nairyaf'''....''shalloon''
*'''nairyef'''....''shantung''
*'''nairyif'''....''shoddy''
*'''nairyof'''....''serge''
*'''nairyuf'''....''shot silk''
*'''naisaf'''....''hopsack''
*'''naisef'''....''huck, huckaback''
*'''naisif'''....''jacquard, gacquard weave''
*'''naisof'''....''honan''
*'''naisyaf'''....''jersey''
*'''naisyef'''....''khaddar''
*'''naisyif'''....''khaki''
*'''naisyof'''....''jean''
*'''naisyuf'''....''lamé''
</div>
{{small/end}}
==== NEF Words ====
: The base word '''nef''' means ''stitch, hatch, knit''
: The scalar sub-elements of '''nef''' are:
::* '''neaf'''....''net, web, mesh, grid, fretwork, reticulation, grate''
::* '''neef'''....''lace''
::* '''neif'''....''braid''
::* '''neof'''....''cross-stitch''
::* '''neuf'''....''wicker''
::* '''neyof'''....''loop''
::* '''neyaf'''....''wale ''
::* '''neyef'''....''band, stripe, fillet''
: The "World Wide Web" is '''Ha Zyamira Neaf'''.
: Here are some words derived from '''nef''' and its sub-elements:
{{small/top}}
:*'''nef'''....''stitch, knit''
::*'''nefyan'''....''crosshatch''
:::*'''fubnefyan'''....''wattle''
::*'''nefxer'''....''to knit, to darn, to weave''
:::*'''tamnefxwa'''....''homespun''
::*'''ennef'''....''twill''
:::*'''ennefxer'''....''to twill''
::*'''tianef'''....''sweater''
:::*'''vu-teyob tianef'''....''v-neck sweater''
::*'''tuyanefar'''....''handloom''
::*'''nefir'''....''loom, autoloom''
::*'''nefgrun'''....''crochet needle''
::*'''nefuz'''....''hook, loop''
::*'''vinef'''....''embroidery''
::*'''nefzyiun'''....''filter, screen''
:::*'''drurnefzyiun'''....''silkscreen''
::*'''neof'''....''cross-stitch''
::*'''neaf'''....''web, net''
:::*'''apeltneaf'''....''cobweb, spider web, spider's web, spiderweb''
:::*'''ebneaf'''....''lattice, network, web, internet''
:::*'''mugneaf'''....''trellis, wire mesh, grid''
:::*'''neafnem'''....''website''
:::*'''kudipelat neaf'''....''mosquito net''
:::*'''zyamira neaf'''....''world-wide web''
:::*'''neafeb'''....''webmaster''
:::*'''neafek'''....''tennis''
::::*'''neafekmuf'''....''tennis racket''
:::*'''neafdraves'''....''web blog''
:::*'''pitneaf'''....''fishnet''
:::*'''tayebneaf'''....''hairnet''
:::*'''neaftyoyab'''....''webfoot''
::*'''neef'''....''lace''
:::*'''neefyexun'''....''dentelle''
:::*'''neefyan'''....''lacework''
:::*'''oybneefun'''....''doily''
::*'''neif'''....''braid''
:::*'''neifxwa'''....''braided''
:::*'''tayebneif'''....''cornrow''
::::*'''tayebneifxer'''....''to cornrow''
::*'''neuf'''....''wicker''
:::*'''neufyeb'''....''wicker basket''
::*'''neyof'''....''loop''
:::*'''neyofxer'''....''to loop''
::*'''neyaf'''....''wale''
::*'''neyef'''....''strip, band''
:::*'''brahefyel neyef'''....''rubber band''
:::*'''gunmugneyef'''....''spline''
:::*'''gyoneyef'''....''thong''
:::*'''kuneyef'''....''sideband, stave''
:::*'''melneyef'''....''riving''
:::*'''pansin neyef'''....''filmstrip''
:::*'''sineyef'''....''frieze''
:::*'''syobneyef'''....''baseband''
:::*'''tayobilneyef'''....''sweatband''
:::*'''tayofneyef'''....''welt, leather strip''
:::*'''teyoneyef'''....''neckband''
:::*'''neyefzyaan'''....''bandwidth''
:::*'''yanbexneyef'''....''ferrule''
:::*'''yuzneyefxer'''....''swaddle''
:::*'''zetibneyef'''....''waistband''
:::*'''yuzneyefxer'''....''to swaddle''
:::*'''zetifneyef'''....''waistband''
{{small/end}}
==== NIF, NIV words ====
: The root word '''nif''' means ''thread, fiber, yarn'' and '''niv''' means ''strand, floss''. Here are some words derived from these roots:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abdreniv'''....''super-text''
*'''dreniv'''....''copy, text''
*'''enuzpixnif'''....''parbuckle''
*'''fyelnif'''....''wick''
*'''gyinif'''....''catgut''
*'''gyonifxwa'''....''strung up''
*'''gyonivwa'''....''finespun''
*'''memtyoda dauzyaniv'''....''hootenanny''
*'''nif'''....''fibre, thread, yarn''
*'''nifaof'''....''fiberboard, fibreboard''
*'''nifar'''....''needle, spicule''
*'''nifartyen'''....''needlework''
*'''nifarut'''....''seamster''
*'''nifarzyeg'''....''eye of a needle''
*'''nifber'''....''thread''
*'''nifglan'''....''skein''
*'''nifnak'''....''sett''
*'''nifog'''....''fibril''
*'''nifuzpexar'''....''snare''
*'''nifuzrer'''....''slub''
*'''nifxut'''....''sewer''
*'''nifxuyt'''....''seamstress, sempstress''
*'''nifyanx'''....''sleave, suture''
*'''nifyaz'''....''fibroid''
*'''nifyena'''....''fibrous, threadlike, thready, wiry''
*'''nifyenan'''....''fibrosity, wiriness''
*'''nifyija'''....''threadbare''
*'''nifyonxer'''....''sleave''
*'''nifyuzen'''....''tying up''
*'''nifyuzer'''....''tie up''
*'''nifyuzwa'''....''tied up''
*'''nifzyebar'''....''threader''
*'''nifzyeben'''....''threading''
*'''nifzyeber nifar'''....''thread a needle''
*'''nifzyebwa'''....''threaded''
*'''nifzyev'''....''fiberglass, fibreglass''
*'''nifzyun'''....''clew''
*'''niv'''....''floss, strand''
*'''nivar suaym'''....''pin cushion, pincushion''
*'''nivar'''....''pin''
*'''nivarseb'''....''pinhead''
*'''nivarer'''....''pin, poke, prick, prickle, stick''
*'''nivarzyeg'''....''pinhole''
*'''seuxika yaniv'''....''shindig, shindy''
*'''tayibnifyaz'''....''ganglion''
*'''teupibniv'''....''floss''
*'''tiibilnif'''....''fibrin''
*'''tolnif'''....''bulk''
*'''uinivyan'''....''weevil, weft''
*'''vibwa nivar'''....''stickpin''
*'''yagniv'''....''lengthwise thread, warp''
*'''yanif'''....''stitch''
*'''yanifar'''....''knitting needle, stitching needle''
*'''yanifir'''....''sewing machine''
*'''yanifnad'''....''scar, seam''
*'''yaniftyen'''....''couture''
*'''yanifxer'''....''seam, sew, stitch together''
*'''yignifxwa'''....''hard-wired, hardwired''
*'''yizdreniv'''....''hypertext''
*'''yonifwa'''....''unsewn, unstitched''
*'''yonifxer'''....''take the stitches out, unsew''
*'''yoniver'''....''fray''
*'''zyugyanif'''....''lasso''
</div>
{{small/end}}
==== NUF and -UF Words ====
: The base word '''nuf''' means ''button, knob''. The '''-uf''' stuff suffix is for things that resemble a button or knob, such as the ''head of a nail''. The '''-uf''' can also be a truncation of '''muf''', meaning something like a rod. Here are some words derived from this root:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''apenuf'''....''rein''
*'''apenufobwa'''....''unreined''
*'''apenufoya'''....''reinless''
*'''apenufuj'''....''bit''
*'''apenufuka'''....''reinless''
*'''apenufwa'''....''reined''
*'''apenufyan'''....''bridle''
*'''apenufyanober'''....''unbridle''
*'''apenufyanobwa'''....''unbridled''
*'''apenufyanxer'''....''bridle''
*'''apenufyanxwa'''....''bridled''
*'''apenufyenxen'''....''bridling''
*'''apetebnuf'''....''headstall''
*'''buxnuf'''....''pushbutton, key''
*'''buxnufsemes'''....''keyboard''
*'''enuv'''....''ogee''
*'''fyelmanufog'''....''taper''
*'''ginuv'''....''ogive''
*'''ignuf'''....''snap''
*'''ignufujber'''....''unsnap''
*'''ignufxen'''....''snapping''
*'''ignufxer'''....''snap''
*'''ignufxwa'''....''snapped''
*'''ignufyijben'''....''snapping open''
*'''ignufyijber'''....''snap open''
*'''ignufyijbwa'''....''snapped open''
*'''ignufyujben'''....''snapping shut''
*'''ignufyujber'''....''snap shut''
*'''ignufyujbwa'''....''snapped shut''
*'''lonufxen'''....''unbuttoning''
*'''lonufxer'''....''unbutton''
*'''lonufxwa'''....''unbuttoned''
*'''manuf'''....''candle''
*'''manufar'''....''candelabra, candle holder, candlestick, chandelier''
*'''manufbelar'''....''candelabrum''
*'''manufbelaryan'''....''candelabra''
*'''manufman'''....''candlelight''
*'''manufnyiyf'''....''candlewick''
*'''manufsaxut'''....''candler''
*'''manufsaxuyt'''....''candlewoman''
*'''manufut'''....''chandler''
*'''manufyafon'''....''candlepower''
*'''manufyan'''....''candelabra''
*'''manufyujar'''....''snuffer''
*'''masnuf'''....''stud''
*'''mes nufag'''....''door knob, doorknob''
*'''mimpar nyanufbem'''....''moorage''
*'''mimpar nyanufben'''....''moorage, mooring''
*'''mimpar nyanufnoyx'''....''moorage''
*'''mugnuf'''....''metal button, nailhead, stud''
*'''mugnufben'''....''studding''
*'''mugnufber'''....''stud''
*'''mugnufbwa'''....''studded''
*'''mugnufika'''....''studded''
*'''nuf'''....''button''
*'''nufag'''....''knob''
*'''nufagaya'''....''knobby, nubby''
*'''nufagayan'''....''knobbiness''
*'''nufagika'''....''knobby, nubby''
*'''nufagikan'''....''knobbiness''
*'''nufagyena'''....''knob-like''
*'''nufxen'''....''buttoning''
*'''nufxer'''....''button''
*'''nufxwa'''....''buttoned''
*'''nufzyeg'''....''button hole, buttonhole''
*'''nufzyegvos'''....''buttonniere''
*'''nyanufar'''....''holdfast''
*'''nyanufber'''....''moor, strap on''
*'''nyanufbwa'''....''moored''
*'''nyanufen'''....''tying''
*'''oapenufyanxwa'''....''unbitted''
*'''poyxnuf'''....''pause button''
*'''suv nuf'''....''nail head''
*'''tebnuf'''....''headstall''
*'''teubnuf'''....''bit''
*'''teudnuf'''....''call button''
*'''tiubnuf'''....''bellybutton, navel''
*'''tuyov mugnufi'''....''cuff links''
*'''uzyusuv nuf'''....''screw head''
*'''zyuber mes nufag'''....''turn a doorknob''
*'''zyuber nufag'''....''turn a knob''
</div>
{{small/end}}
==== NYOF, NYOV Words ====
: The base word '''nyof''' means ''film'' and '''nvov''' means ''tape, ribbon''. Here are some derived expressions:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''anyof'''....''cellophane''
*'''doyov yuznyov'''....''tapeline''
*'''dyez nyof'''....''celluloid, movie film''
*'''ilokebea nyov'''....''friction tape''
*'''kaxonyofwa'''....''insolvable, irresolvable, unsolvable''
*'''kaxonyofwan'''....''irresolvability, unsolvability''
*'''nofyonyofwa'''....''unrippable, untearable''
*'''nyof'''....''film, pellicle''
*'''nyofam'''....''film studio''
*'''nyofar'''....''film camera''
*'''nyofaren'''....''filming''
*'''nyofarer'''....''film''
*'''nyofarut'''....''film technician''
*'''nyofarwa'''....''filmed''
*'''nyofyan'''....''footage''
*'''nyov leovol'''....''flat noodle, ribbon noodle''
*'''nyov taxdrar'''....''tape recorder''
*'''nyov'''....''ribbon, tape, viscose''
*'''nyovben'''....''tying up with a ribbon''
*'''nyovbwa'''....''beribboned''
*'''nyovvos'''....''bow, ribbon bow''
*'''nyovxer'''....''tie up with a ribbon''
*'''nyovxwa'''....''tied up with a ribbon''
*'''oglanyof'''....''microfilm''
*'''oglanyofuen'''....''microfilming''
*'''oglanyofuut'''....''microfilmer''
*'''pansin nyof'''....''celluloid, film, motion picture film, motion picture film, movie film''
*'''pansinnyov'''....''videotape''
*'''taxdrawa be nyof'''....''recorded on film''
*'''teesnyov'''....''audiotape''
*'''tefnyov'''....''cockade''
*'''vinyov'''....''cordon''
*'''zyuyk bi nyof'''....''reel of film, spool of film''
</div>
{{small/end}}
==== NYAF Words ====
: The base word '''nyaf''' means ''knot, tangle''. Here are some words using this root:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''drefnyafar'''....''brad''
*'''ebnyafa'''....''internodal''
*'''ebnyafxea'''....''interconnecting''
*'''ebnyafxen'''....''interconnecting, interconnection''
*'''ebnyafxer'''....''interconnect''
*'''ebnyafxus'''....''interconnector''
*'''ebnyafxwa'''....''interconnected''
*'''ebtaibnyaf'''....''ligament''
*'''ensaunyafwa'''....''duplicable''
*'''fabnyaf'''....''burl, gnarl, knag, knar''
*'''fabnyafaya'''....''gnarly''
*'''fabnyafika'''....''gnarly''
*'''fabnyafxwa'''....''gnarled''
*'''fabnyafyena'''....''gnarly''
*'''fanyafa'''....''stubborn''
*'''fonyafon'''....''will-power, willpower''
*'''gaanyafer'''....''re-connect''
*'''gaanyafser'''....''re-connect, reconnect''
*'''gaanyafxen'''....''reconnecting, reconnection''
*'''gaanyafxer'''....''reconnect''
*'''gaanyafxun'''....''reconnection''
*'''gaanyafxwa'''....''reconnected''
*'''ganyafxer'''....''refasten''
*'''gelsaunyafwa'''....''duplicable''
*'''glasanyafwa'''....''diversifiable''
*'''glasaunyafwa'''....''diversifiable''
*'''izbyenyafwa'''....''maneuverable''
*'''izbyenyafwan'''....''maneuverability''
*'''kaxonyafwa'''....''resoluble, resolvable, solvable''
*'''kaxonyafwan'''....''resolvability, solvability''
*'''kyasaunyafwa'''....''diversifiable''
*'''kyupnyaf'''....''slip knot, slipknot''
*'''lonofnyafxer'''....''burl''
*'''lonofnyafxwa'''....''burled''
*'''lonyafen'''....''unbinding, unlacing, untying''
*'''lonyafxen'''....''denouement, disconnection, disentanglement, disentangling, loosening, loosing, resolution, resolving, straightening out, unfastening, unknotting, untangling, untying''
*'''lonyafxer'''....''disconnect, disentangle, loosen, ravel, resolve, straighten out, unfasten, unknot, unsnarl, untangle, untie, unbind, unlace''
*'''lonyafxwa'''....''disconnected, disentangled, loosened up, resolved, straightened out, unfastened, unknotted, untangled, untied, unbound, unlaced, untied''
*'''lonyafxwan'''....''disconnectedness''
*'''lonyafxway'''....''staccato''
*'''lonyafyafwa'''....''resolvable''
*'''lonyafyafwan'''....''resolvability''
*'''mugnyaf'''....''buckle, clasp''
*'''mugnyafaben'''....''buckling''
*'''mugnyafaber'''....''buckle''
*'''mugnyafabwa'''....''buckled''
*'''mugnyafober'''....''unbuckle''
*'''mugnyafobwa'''....''unbuckled''
*'''mugnyafxen'''....''buckling''
*'''mugnyafxer'''....''buckle up''
*'''mugnyafxwa'''....''buckled up''
*'''nofnyaf'''....''burl''
*'''nyaf'''....''binding, bond, connection, gnarl, knot, liaison, ligature, nodule, tangle, tie''
*'''nyafa'''....''nodular''
*'''nyafab'''....''pili tree''
*'''nyafar'''....''clasp, fastener''
*'''nyafaren'''....''fastening''
*'''nyafarer'''....''fasten''
*'''nyafarwa'''....''fastened''
*'''nyafat'''....''liaison officer''
*'''nyafaya'''....''gnarly, natty''
*'''nyafayan'''....''nattiness''
*'''nyafeb'''....''pili nut''
*'''nyafgyox'''....''slub''
*'''nyafika'''....''gnarly, natty''
*'''nyafikan'''....''nattiness''
*'''nyafovol'''....''pretzel''
*'''nyafser'''....''bind, bond with, connect, fasten, get entangled, get knotted, get tangled up, knot up, liaise with, tangle''
*'''nyafson'''....''entanglement, knotty problem, tangled mess''
*'''nyafsonika'''....''knotty, messy, tangled''
*'''nyafxen'''....''binding, connection, entanglement, fastening, imbroglio, knotting, liaison, ligation, ravel, snarling, tangling, tying''
*'''nyafxer'''....''bind, clasp, connect, entangle, fasten, knot, ligate, ravel, snarl, tangle, tie''
*'''nyafxun'''....''allegiance, league, maze''
*'''nyafxunyena'''....''mazy''
*'''nyafxwa'''....''afoul, clasped, connected, entangled, fastened, gnarled, knotted, snarled, tangled, tied''
*'''okasonyafwa'''....''unsolvable''
*'''onyafxwa'''....''unconnected''
*'''otepsinyafwa'''....''unimaginable''
*'''oyanyafxen'''....''untangling''
*'''oyanyafxer'''....''untangle''
*'''oyanyafxwa'''....''untagled''
*'''tayeb nyafar'''....''barrette''
*'''tedrunyafwa'''....''impressionable''
*'''umvab yannyaf'''....''stook''
*'''untyoyabnyafxer'''....''hog-tie, hogtie''
*'''uzunnyaf'''....''bowline''
*'''xer anyafxeni'''....''make connections''
*'''yanyaf'''....''bundle, knot, tangle''
*'''yanyafxen'''....''bundling, knotting, tangling''
*'''yanyafxer'''....''knot, tangle''
*'''yanyafxwa'''....''bundled, knotted''
*'''yevdenyaf'''....''prerogative''
*'''yonsanyafwa'''....''diversifiable''
*'''yonyafen'''....''resolving, unknotting, unleashing, untying''
*'''yonyafer'''....''unknot, unleash''
*'''yonyafwa'''....''unleashed, untied''
*'''yonyafyofwa'''....''impossible to get unknotted, irresolvable''
*'''yoonnyaf'''....''cinquefoil''
*'''yuznyaf'''....''binding''
*'''yuznyafxen'''....''binding''
*'''yuznyafxer'''....''bind''
*'''yuznyafxwa'''....''bound''
*'''zetif mugnyaf'''....''belt buckle''
*'''zonyafxwas'''....''tieback''
</div>
{{small/end}}
==== NYEF, NYEV Words ====
: The base word '''nyef''' means ''basket''. The variant '''nyev''' means ''sack, bag''. Here are some derived words:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''aayuxnyef'''....''first aid kit''
*'''apetolnyef'''....''feedbag''
*'''apetsimnyef'''....''saddlebag''
*'''donasnyef'''....''fisc''
*'''donasnyefa'''....''fiscal''
*'''donasnyefay'''....''fiscally''
*'''doparnyef'''....''holster''
*'''drefnyef'''....''paper bag, paper sack''
*'''dyes nyef'''....''book bag''
*'''ennyef'''....''pannier''
*'''fyumul nyef'''....''garbage bag, garbage sack''
*'''fyus nyef'''....''trash bag''
*'''fyus yignyef'''....''waste basket''
*'''grafinyevdea'''....''hypercritical''
*'''grafinyevdean'''....''hypercritically''
*'''grana ponyefyan'''....''excess baggage''
*'''hyasnyef'''....''ragbag''
*'''ilnyef'''....''bursa''
*'''ilnyefi'''....''bursae''
*'''ilzilnyef'''....''cholecyst''
*'''lobelunyef'''....''trash bag''
*'''lobexun nyef'''....''trash bag''
*'''malnyef'''....''air sack, airbag''
*'''mapnyef'''....''windbag''
*'''masofnyef'''....''carpetbag''
*'''maylnyev'''....''gasbag, gasholder''
*'''megnyef'''....''gabion''
*'''mieknyef'''....''sandbag''
*'''milnyef'''....''bucket''
*'''namnyef'''....''shopping bag''
*'''nasnyef'''....''scrip''
*'''nofxenyef'''....''workbasket''
*'''nyef'''....''bag, basket, bossa, mesh, sac, sack, skep''
*'''nyefab'''....''kola''
*'''nyefag'''....''holdall''
*'''nyefben'''....''bagging''
*'''nyefbut'''....''bagger''
*'''nyefeb'''....''kola nut''
*'''nyefel'''....''cola''
*'''nyefes'''....''utricle, utricular''
*'''nyefik'''....''sackful''
*'''nyefikon'''....''bagful''
*'''nyefog'''....''small bag''
*'''nyefovol amxar'''....''waffle iron''
*'''nyefovol'''....''waffle''
*'''nyefpyexar'''....''racket''
*'''nyefpyexarek'''....''battledore''
*'''nyeftyen'''....''basketry, basketwork''
*'''nyefyan'''....''baggage''
*'''nyefyena'''....''baggy''
*'''nyefyenan'''....''bagginess''
*'''nyevber'''....''bag up''
*'''nyevbwa'''....''bagged''
*'''nyevyan'''....''baggage''
*'''nyusber ha ponyefi'''....''pack the bags''
*'''ofinyevdea'''....''noncritical''
*'''ofinyevdyea'''....''uncritical''
*'''ofinyevdyeay'''....''uncritically''
*'''ovol yignyef'''....''breadbasket''
*'''oyepuxun yignyef'''....''trash basket''
*'''pitpexnyef'''....''coop''
*'''pityignyef'''....''creel''
*'''ponyef belar'''....''baggage rack, luggage barrow, luggage cart, luggage rack''
*'''ponyef belut'''....''porter, redcap''
*'''ponyef kaxim'''....''baggage claim room''
*'''ponyef'''....''travel bag''
*'''ponyefyan'''....''baggage, luggage''
*'''poteub yignyef'''....''muzzle''
*'''puxrun nyef'''....''cartridge pouch''
*'''safeylnyef'''....''teabag''
*'''sanyeven'''....''criticism, critiquing''
*'''sanyever'''....''criticize, critique''
*'''sanyevwa'''....''critiqued''
*'''sazulnyef'''....''plastic bag''
*'''sonyev'''....''critique''
*'''sonyever'''....''critique''
*'''sonyevut'''....''critique''
*'''tabnyef'''....''body bag, cyst''
*'''tabnyefa'''....''cystic''
*'''tafnyef'''....''portmanteau''
*'''tebnyef'''....''skullcap''
*'''teibnyef'''....''nosebag''
*'''tilutnyef'''....''satchel''
*'''tistam nyef'''....''schoolbag''
*'''tof yignyef'''....''hamper, laundry basket''
*'''tolnyef'''....''grocery bag, grocery sack''
*'''tuabnyef'''....''satchel, shoulder bag''
*'''tuj nyef'''....''sleeping bag''
*'''tujnyef'''....''sleeping bag''
*'''tuyanyef'''....''handbag, pocketbook''
*'''tuyepyex nyef'''....''punching bag''
*'''twiyibnyef'''....''scrotum''
*'''twiyibnyefa'''....''scrotal''
*'''twiyibnyefi'''....''scrota''
*'''uveb nyef sim'''....''beanbag chair''
*'''uveb nyef'''....''beanbag''
*'''veebnyef'''....''seedlep, seedlip''
*'''veeybnyef'''....''grain sack''
*'''yagnyef'''....''flasket''
*'''yangonnyefxen'''....''contexture''
*'''yebtabnyefben'''....''encystment''
*'''yebtabnyefber'''....''encyst''
*'''yejub ponyef'''....''weekender''
*'''yibnyuxnyef'''....''mail pouch, mailbag''
*'''yignyef'''....''basket''
*'''yignyefik'''....''basketful''
*'''yignyefzyun ekut'''....''cager''
*'''yignyefzyun'''....''basketball''
*'''yonyevdea'''....''discriminating''
*'''yonyevden'''....''discrimination''
*'''yonyevder'''....''discriminate''
*'''yonyevdus'''....''discriminant''
*'''yonyevdut'''....''discriminator''
*'''yonyevdwa'''....''discriminated''
*'''yonyevdyea'''....''discriminatory''
*'''zotib nyef'''....''backpack, rucksack''
*'''zotib ponyef'''....''travel backpack''
*'''zotibnyef'''....''backpack, knapsack, rucksack''
*'''zotibnyefen'''....''backpacking''
*'''zotibnyefut'''....''backpacker''
*'''zyigiar abnyef'''....''scabbard''
</div>
{{small/end}}
==== NYIF, NYIV Words ====
: The base word '''nyif''' means ''cord, cable, wire''. The variant '''nyiv''' means ''string, lace''. Here are some derived words:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''aybnyif dompur'''....''tram''
*'''aybnyifpur'''....''cable car''
*'''belnyif'''....''lanyard''
*'''biyxnyif'''....''towline, towrope''
*'''buixnyif pusen'''....''bungee jumping''
*'''buixnyif puser'''....''bungee jump''
*'''buixnyif pusut'''....''bungee jumper''
*'''buixnyif'''....''bungee cord''
*'''byoxnyif'''....''hangman's rope, noose''
*'''caulknyif'''....''copper wire''
*'''dinyiflat'''....''hero of the story, protagonist''
*'''dinyiflayt'''....''female protagonist''
*'''dinyifrayt'''....''heroine of the story''
*'''ebnyifxen'''....''intercabling''
*'''eonyif'''....''twine''
*'''eonyifxea vob'''....''twiner''
*'''eonyifxen'''....''intertwining''
*'''eonyifxer'''....''intertwine, twine''
*'''eonyifxwa'''....''intertwined, twined''
*'''eonyifzyun'''....''ball of twine''
*'''exea maknyif'''....''live wire, livewire''
*'''eynonyifwa'''....''semidetached''
*'''feelknyif'''....''iron filament''
*'''fyadilnyif zyunog'''....''rosary bead''
*'''fyadilnyif'''....''rosary''
*'''ganyifber'''....''rewire''
*'''grunxwa nyif'''....''barbed wire, barbwire''
*'''gyanyif uiben'''....''cablecasting''
*'''gyanyif uibun'''....''cablecast''
*'''gyanyif yibsiniar'''....''cable t.v.''
*'''gyanyif'''....''cable''
*'''gyonyif'''....''cablet, thin wire''
*'''loeonyifxen'''....''untwining''
*'''loeonyifxer'''....''untwine''
*'''loeonyifxwa'''....''untwined''
*'''lonyanyifxer'''....''unleash''
*'''lonyanyifxwa'''....''unattached''
*'''lonyifxen'''....''detachment''
*'''lonyifxer'''....''detach''
*'''lonyifxun'''....''detachment''
*'''lonyifxwa'''....''detached''
*'''lonyifxyafwa'''....''detachable''
*'''maka nyif'''....''electric cable, electric cord, electric wire''
*'''maka nyifuj'''....''electric plug''
*'''maka nyifujibar'''....''electric outlet, electric socket''
*'''maka nyifyuj'''....''electric plug''
*'''maknyif'''....''electrical cord''
*'''maknyifbut'''....''lineman''
*'''maknyifibar'''....''electrical socket''
*'''maknyifut'''....''linesman''
*'''meysyanyif'''....''hank''
*'''meysyanyifxer'''....''hank''
*'''milnyif'''....''hose''
*'''milnyifuen'''....''hosing''
*'''milnyifuwa'''....''hosed''
*'''mimpur nyifyantut'''....''boatswain''
*'''mimpurnyif'''....''hawser''
*'''mufzyegebnyif'''....''coir''
*'''mugnyif'''....''metal wire''
*'''mugnyifvixun'''....''filigree''
*'''mugnyifvixwa'''....''filigreed''
*'''novmugnyif'''....''gimp''
*'''nyif'''....''cable, cord, rope''
*'''nyifab'''....''hickory''
*'''nyifanyut'''....''rigger''
*'''nyifbexar'''....''cleat''
*'''nyifbixer'''....''trice''
*'''nyifbixwa ifektob'''....''marionette''
*'''nyifdazut'''....''rope dancer''
*'''nyifdras'''....''cable, cablegram''
*'''nyifdrawa'''....''cabled, telegraphed''
*'''nyifdren'''....''cabling, telegraphing''
*'''nyifdrer'''....''cable, telegram, telegraph''
*'''nyifdrut'''....''telegrapher, telegraphist''
*'''nyifes'''....''filament, thin wire''
*'''nyifesaya'''....''filamentous''
*'''nyifesika'''....''filamentous''
*'''nyifgimuf'''....''marlin spike, marlingspike, marlinspike''
*'''nyifmuf'''....''bollard''
*'''nyifobema tyoyaf'''....''espadrille''
*'''nyifoya'''....''cordless, wireless''
*'''nyifpixar'''....''slingshot''
*'''nyifpixer'''....''lasso, rope''
*'''nyifpixuz'''....''lasso''
*'''nyifpur'''....''funicular''
*'''nyifsaxam'''....''ropery''
*'''nyifsaxem'''....''ropewalk''
*'''nyifsaxen'''....''ropemaking''
*'''nyifsaxut'''....''ropemaker''
*'''nyiftibuf'''....''shoelace tag''
*'''nyiftyoput'''....''funambulist''
*'''nyifuben'''....''cabling, wiring''
*'''nyifuber'''....''cable, wire''
*'''nyifubwa'''....''cabled, wired''
*'''nyifuj'''....''plug''
*'''nyifujdrof'''....''plugboard''
*'''nyifujibar'''....''outlet, plug, socket''
*'''nyifujoyeben'''....''unplugging''
*'''nyifujoyeber'''....''unplug''
*'''nyifujoyebwa'''....''unplugged''
*'''nyifujyeben'''....''plugging in''
*'''nyifujyeber'''....''plug in''
*'''nyifujyebwa'''....''plugged in''
*'''nyifujyem'''....''socket''
*'''nyifuka'''....''cordless, wireless''
*'''nyifukay'''....''wirelessly''
*'''nyifun'''....''rigging''
*'''nyifuwa'''....''wired''
*'''nyifwa'''....''leashed''
*'''nyifxea'''....''attaching''
*'''nyifxen'''....''attaching, roping''
*'''nyifxer'''....''attach, corder, rope''
*'''nyifxun'''....''attachment''
*'''nyifxut'''....''roper''
*'''nyifxwa'''....''attached, roped, tied''
*'''nyifxyafwa'''....''attachable''
*'''nyifyan'''....''cordage, rigging, roping''
*'''nyifyena'''....''ropey, ropy''
*'''nyifzeyn'''....''ropeway''
*'''nyifzyumuf'''....''bobbin''
*'''onyifsar'''....''wireless device''
*'''onyifujyeber'''....''unplug''
*'''onyifujyebwa'''....''unplugged''
*'''oybnyifpur'''....''cable car''
*'''oynyifa'''....''wireless''
*'''pettebnyif'''....''halter''
*'''pixnyif'''....''lariat, lasso''
*'''pixnyifen'''....''lassoing''
*'''pixnyifxer'''....''lasso''
*'''pixnyifxut'''....''lasso wrangler''
*'''pixnyifxwa'''....''lassoed''
*'''pusnyif'''....''jump rope''
*'''pyexnyif'''....''whip''
*'''pyexnyifuen muf'''....''whipping post''
*'''pyexnyifuen'''....''whipping''
*'''pyexnyifuer'''....''whip''
*'''pyexnyifut'''....''whipper''
*'''pyexnyifuwa'''....''whipped''
*'''tayofa pyexnyif'''....''quirt''
*'''teyof yanyifar'''....''tie clip, tiepin''
*'''tofnyif'''....''clothesline''
*'''tojbyox yuznyif'''....''noose''
*'''uzra nyifyig'''....''whipcord''
*'''vak nyif'''....''lifeline''
*'''vaknyif'''....''tether''
*'''yafon nyif'''....''power cable''
*'''yanyif'''....''clasp, clip, lease, leash, liaison''
*'''yanyifben'''....''clipping''
*'''yanyifber'''....''clip''
*'''yanyifbwa'''....''clipped''
*'''yanyifxen'''....''binding, leashing, tying''
*'''yanyifxer'''....''bind, clasp, connect, leash''
*'''yanyifxwa'''....''bound, clasped, leashed''
*'''yaobnyif'''....''halliard, halyard''
*'''yuigof nyif'''....''rubber hose''
*'''yuznyif'''....''lariat, lasso''
*'''yuznyifxen'''....''lassoing''
*'''yuznyifxer'''....''lariat, lasso''
*'''yuznyifxwa'''....''lassoed''
*'''zebnyif'''....''tightrope''
*'''zebnyiftyopen'''....''tightrope-walking''
*'''zebnyiftyoput'''....''tightrope walker''
*'''zetiuba nyif'''....''umbilical cord''
*'''zeynyifyan'''....''ratlin, ratline''
*'''zyaneyef nyif'''....''broadband cable''
*'''abtyoyaf nyives'''....''bootlace''
*'''bixnyiv'''....''drawstring''
*'''doegonyiva'''....''licentious''
*'''doegonyivan'''....''licentiousness''
*'''doegonyivay'''....''licentiously''
*'''dofinyiva'''....''unscrupulous''
*'''dofinyivay'''....''unscrupulously''
*'''ebnyiven'''....''interlacing''
*'''ebnyiver'''....''interlace''
*'''ebnyivwa'''....''interlaced''
*'''ebnyivyan'''....''fretwork''
*'''ennyivduzar'''....''monochord''
*'''enyiv'''....''quint''
*'''ganyivxer'''....''restring''
*'''membexenyiv'''....''tenure''
*'''nunyiv'''....''franchise''
*'''nunyivxut'''....''franchiser''
*'''nunyivxwam'''....''franchise''
*'''nunyivxwat'''....''franchisee''
*'''nyiv'''....''string''
*'''nyiven'''....''lacing''
*'''nyiver'''....''lace up''
*'''nyives'''....''lace''
*'''nyivober'''....''unstring''
*'''nyivtuin'''....''string theory''
*'''nyivtulobeay'''....''pizzicato''
*'''nyivwa'''....''laced''
*'''nyivxer'''....''string up''
*'''nyivxut'''....''stringer''
*'''nyivxwa duzar'''....''string instrument''
*'''nyivxwa'''....''stringed''
*'''nyivyena'''....''stringy''
*'''nyivyenan'''....''stringiness''
*'''olebnyivxwa'''....''noninterlaced''
*'''onyiver'''....''unlace''
*'''onyivwa'''....''unlaced, unstrung''
*'''tyoyaf nyives'''....''shoe lace''
*'''tyoyafnyiv'''....''shoe lace, shoelace, shoestring''
*'''uzdopar nyiv'''....''bowstring''
*'''yanyiven'''....''stringing together''
*'''yanyivwa'''....''strung together''
*'''yanyivxer'''....''string together''
</div>
{{small/end}}
==== NYUF words ====
: The base word '''nyuf''' means ''package, parcel''. Some derived words follow:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''gawnyufxen'''....''repackaging''
*'''gwanyufxer'''....''repack, repackage''
*'''gawnyufxwa'''....''repackaged''
*'''janyufber'''....''prepackage''
*'''janyufbwa'''....''prepackaged''
*'''nyuf'''....''bale, bundle, pack, parcel, package''
*'''nyufag'''....''bin, crate''
*'''nyufagben'''....''crating''
*'''nyufagber'''....''crate''
*'''nyufagbwa'''....''crated''
*'''nyufapetsim'''....''packsaddle''
*'''nyufbam'''....''packing house''
*'''nyufben'''....''packing, parceling up''
*'''nyufber'''....''packed, parcel up''
*'''nyufbut'''....''packer''
*'''nyufbwa'''....''parceled''
*'''nyufes bi nivomuvi'''....''pack of cigarettes''
*'''nyufes'''....''packet, pack''
*'''nyufuben'''....''parcel post''
*'''nyufxen'''....''bundling, packaging, packing''
*'''nyufxer'''....''bundle, package, pack''
*'''nyufxut'''....''baler, packager, packer''
*'''nyufxwa'''....''bundled, packaged, packed''
*'''nyuxer nyuf'''....''deliver a package''
*'''onyufxen'''....''unpacking''
*'''onyufxer'''....''unpack''
*'''onyufxwa'''....''unpacked''
*'''taolnyufbam'''....''packinghouse''
*'''umvab nyuf'''....''bale of hay''
</div>
{{small/end}}
=== '''NOG''' ''degree'' ===
: The morpheme '''nog''' is a baseword meaning ''degree, grade'' and is at the top of a series of subordinal words:
:* '''nog'''....''degree, grade, step, rung''
::* '''noog'''....''phase, stage''
:* '''nag'''....''dimension, measure''
::* '''nak'''....''metric unit''
:* '''neg'''....''level, tier, echelon''
:* '''nig'''....''space''
: The word '''nog''' is used in a series of adverbs of degree that are answers to the question '''duhonog?'''....''to what degree?, how (very)?'':
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Adverbs of Degree
! High Degree !! Mid-degree !! Low Degree
|-
| '''ganog'''....''more'' || '''genog'''....''as'' || '''gonog'''....''less''
|-
| '''glanog'''....''very'' || '''glenog'''....''quite, rather'' || '''glonog'''....''slightly, not very''
|-
| '''granog'''....''too'' || '''grenog'''....''enough, sufficiently'' || '''gronog'''....''insufficiently''
|-
| '''gwanog'''....''most, maximally'' || '''gwenog'''....''to just the right extent'' || '''gwonog'''....''least, minimally''
|}
{{small/end}}
: In all the Mirad adverbs in the above table, the '''nog''' ending can be optionally dropped. So, for example, ''very rich'' can be expressed by '''gla nyaza''' or the lengthier '''glanog nyaza'''.
: There is also a set of deictic adverbs of degree:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Deictic Adverbs of Degree
! Type !! Mirad !! English
|-
| interrogative || '''duhonog fia?''' || ''how good?''
|-
| relative || '''honog fia''' || ''as good''
|-
| expressive || '''hoonog fia''' || ''so-o good''
|-
| definite || '''hanog fia''' || ''the degree good''
|-
| indefinite || '''henog fia''' || ''somewhat good''
|-
| proximate || '''hinog fia''' || ''this good''
|-
| distal || '''hunog fia''' || ''that good''
|-
| negative || '''hyonog fia''' || ''not at all good''
|-
| totalitive || '''hyanog fia''' || ''totally good''
|-
| indeterminate || '''hyenog fia''' || ''however good''
|-
| equalitative || '''hyinog fia''' or<br>'''genog fia''' || ''just as good''
|-
| differential || '''hyunog fia''' or<br>'''logenog fia''' || ''not as good''
|}
{{small/end}}
: '''nog''' in the above table can be replaced with '''gla''', such that '''hegla aga''', for example, would mean ''somewhat big'', synonymous with '''henog aga'''.
: The above '''nog''' words can also modify adverbs, eg. '''hunog fiay'''....''that well''.
: Here are a few derivatives of '''nog''':
:* '''nog'''....''degree, grade, step, rung''
::* '''nogdrer'''....''to grade (school marking)''
:::* '''nogdreyn'''....''grade''
::* '''nogper'''....''to step''
:::* '''yabnogper'''....''to step up''
:::* '''yobnogper'''....''to step down''
:::* '''zaynogper'''....''to step forward, to advance''
::::* '''zaynogpen'''....''progress(ion)''
:::* '''zoynogper'''....''to step back, to regress''
::::* '''zoynogpen'''....''regression''
:::* '''abnogper'''....''to step on''
:::* '''obnogper'''....''to step off''
::* '''nogyan'''....''scale''
::* '''tixnog'''....''grade (of school)''
:::* '''atixnog'''....''first grade''
:::* '''etixnog'''....''second grade''
::* '''amnog'''....''degree (of temperature)''
::* '''aopnog'''....''pitch''
::* '''aybnog'''....''supergrade''
::* '''donog'''....''social rung, class''
:::* '''yabdonog'''....''high class''
:::* '''yobdonog'''....''low class''
::* '''gabnog'''....''uptick''
::* '''galnog'''....''factorial''
::* '''gobnog'''....''downtick''
::* '''granog'''....''excess, extreme degree''
::* '''gunnog'''....''angularity''
::* '''gwanog'''....''superlative degree''
::* '''ixnog'''....''coefficient''
::* '''logelasnog'''....''contrast''
::* '''musnog'''....''rung, step, stair step''
::* '''noga'''....''gradiant''
::* '''nogyena'''....''gradual''
::* '''ganogxer'''....''to increment''
::* '''gonogxer'''....''to decrement''
::* '''tesnog'''....''nuance, shade of meaning''
::* '''tyoyanog'''....''footstep''
::* '''yabnog'''....''upper rung''
:::* '''yabnoga'''....''upscale''
:::* '''yabnogxer'''....''to upgrade, to scale up''
:::* '''yabnogper'''....''to step up, to graduate''
::* '''yobnog'''....''step down, low degree, lower rung''
:::* '''yobnogper'''....''to step down, to degrade''
:::* '''yobnogxer'''....''to downgrade, to scale down''
::* '''zoynoga'''....''retrograde''
==== NAG and NAK Words ====
:* '''nag'''....''dimension, measure, calibre''
::* '''amnag'''....''temperature''
::* '''zenag'''....''average, mean''
::* '''duznag'''....''measure (music)''
::* '''egasnag'''....''benchmark''
::* '''genag'''....''parity''
::* '''minag'''....''em''
::* '''naga'''....''metric''
::* '''nagder'''....''to measure, to gauge''
:::* '''nagdar'''....''meter''
:::* '''nagdea muf'''....''measuring stick''
:::* '''nagdyofwa'''....''immeasurable''
::* '''nagegon'''....''yardstick, standard of measurement''
::* '''naguer'''....''to mete out''
::* '''nagmus'''....''scale''
:::* '''nagmusvyaa'''....''true to scale''
::* '''nidnag'''....''dosage''
::* '''ninag'''....''en''
::* '''uknag'''....''ullage''
::* '''yabnag'''....''altitude''
::* '''yuznag'''....''circumference, girth, perimeter''
::* '''zeynadnag'''...''diamter''
::* '''zyanag'''....''breadth, width''
::* '''balnag'''....''pressure''
:* '''nak'''....''metric unit''
{{small/top}}
::* '''aagmigenak'''....''Mg, macrogram''
::* '''aganak'''....''A, amp, amperage, ampere''
::* '''aganak-gol-minak'''....''ampere per meter''
::* '''agbadenak'''....''baud, Bd''
::* '''agbakonak'''....''Bq, becquerel''
::* '''agbanak'''....''byte, B''
::* '''agcainak'''....''curie''
::* '''agcanak'''....''C, coulomb, electric charge symbol''
::* '''ageagbanak'''....''EB, exabyte''
::* '''agebanak'''....''Eb, exabit''
::* '''agfenak'''....''F, farad, unit of electrical capacitance''
::* '''agfenak'''....''Fahrenheit''
::* '''agfenak'''....''force vector''
::* '''aggebanak'''....''gB, gigabyte''
::* '''aggegenak'''....''Gg, gigagram''
::* '''aggenak'''....''gauss, G''
::* '''aggesonak'''....''gauss, magnetic flux density, Gs''
::* '''aggeyunak'''....''Gy, gray''
::* '''aghenak'''....''H, henry, inductance symbol''
::* '''aghezunak'''....''Hz, hertz''
::* '''aginak'''....''I, current''
::* '''agjinak'''....''J, joule''
::* '''agkinak'''....''K, Kelvin, thermodynamic temperature''
::* '''agkogenak'''....''quettagram, Qg''
::* '''aglinak'''....''angular momentum''
::* '''aglinak'''....''lambert''
::* '''aglonak'''....''liter, litre''
::* '''agmibanak'''....''Mb''
::* '''agminak'''....''M, mach''
::* '''agminak'''....''moment of force, torque, M''
::* '''agmivunak'''....''Mv.''
::* '''agni-gol-minak'''....''N/m, surface tension''
::* '''agniminak'''....''N-m, moment of force''
::* '''agninak'''....''N, newton, unit of force''
::* '''agomeganak'''....''ohm, Ω''
::* '''agpo-agsonak'''....''horsepower, PS, hp''
::* '''agpoanak'''....''Pa, pascal, pressure metric''
::* '''agpoasonak'''....''Pa-s, dynamic viscosity''
::* '''agponak'''....''P, poise, power''
::* '''agposonak'''....''SP, mechanical horsepower''
::* '''agqonak'''....''charge, Q''
::* '''agrodanak'''....''rutherford, Rd''
::* '''agronak'''....''roentgen, R''
::* '''agsonak'''....''Siemens, S''
::* '''agsovunak'''....''sievert''
::* '''agsovunak'''....''Sv, sievert''
::* '''agtoagbanak'''....''TB, terabyte''
::* '''agtobanak'''....''Tb, terabit''
::* '''agtogenak'''....''Tg, teragram''
::* '''agtonak'''....''tesla, T, magnetic flux density''
::* '''agvunak'''....''volt, V''
::* '''agwubanak'''....''Wb, weber''
::* '''agwu-gol-migarenak'''....''W/m2 heat flux density, irradiance''
::* '''agwunak'''....''W, watt''
::* '''agwunak'''....''watt, W''
::* '''agyuagbanak'''....''YB, yottabyte''
::* '''agyubanak'''....''Yb, yottabit''
::* '''agyugenak'''....''Yg, yottagram''
::* '''agyunak'''....''yank''
::* '''agzegenak'''....''Zg, zettagram''
::* '''agzuagbanak'''....''ZB, zettabyte''
::* '''agzubanak'''....''Zb, zettabit''
::* '''akrenak'''....''acre''
::* '''alogenak'''....''decagram''
::* '''alolinak'''....''deciliter''
::* '''alominak'''....''decameter''
::* '''amlo agbakonak'''....''rutherford, Rd, MBq''
::* '''amloagbadenak'''....''megabaud''
::* '''amloagbanak'''....''meg, megabyte''
::* '''amloaghezunak'''....''megahertz''
::* '''amloagvunak'''....''megavolt''
::* '''amloagwunak'''....''megawatt''
::* '''amlobanak'''....''megabit''
::* '''amlocanak'''....''megacycle''
::* '''amloomeganak'''....''megohm''
::* '''amloronak'''....''milliradian''
::* '''amlotonak'''....''megaton''
::* '''amloyexnak'''....''megalerg, megerg''
::* '''amloynsonak'''....''microsecond''
::* '''amloynyexnak'''....''microerg''
::* '''ammannak'''....''degree of temperature''
::* '''amroagbanak'''....''gigabyte''
::* '''amroaghezunak'''....''gH, gigahertz''
::* '''amroagvunak'''....''gV, gigavolt''
::* '''amroagwunak'''....''gW, gigawatt''
::* '''amrobanak'''....''gB, gigabyte''
::* '''amrobanak'''....''gigabit''
::* '''amrogebanak'''....''gigagram, Gg''
::* '''amrohezunak'''....''gH, gigahertz''
::* '''amroynsonak'''....''nanosecond''
::* '''anak'''....''are''
::* '''aroagbanak'''....''kilobyte''
::* '''aroaghelonak'''....''kilohm''
::* '''aroaghezunak'''....''kilohertz''
::* '''aroagjinak'''....''kilojoule''
::* '''aroagomeganak'''....''kilohm''
::* '''aroagwunak'''....''kilowatt''
::* '''arobanak'''....''kb, kilobit''
::* '''arocanak'''....''kilocycle''
::* '''arogenak'''....''kg, kilo, kilogram''
::* '''arolinak'''....''kiloliter''
::* '''arominak'''....''kilometer, kilometre, km''
::* '''arotonak'''....''kiloton''
::* '''aroynaganak'''....''milliampere''
::* '''aroynagbanak'''....''millibyte''
::* '''aroynbalnak'''....''millibar''
::* '''aroyngenak'''....''milligram''
::* '''aroynjinak'''....''millijoule''
::* '''aroynlinak'''....''milliliter, millilitre''
::* '''aroynminak'''....''millimeter, millimetre''
::* '''aroynronak'''....''milliradian''
::* '''aroynsonak'''....''millisecond, ms''
::* '''aroynvunak'''....''millivolt''
::* '''aroynwunak'''....''milliwatt''
::* '''asogenak'''....''hectogram''
::* '''asolinak'''....''hectolitre''
::* '''asominak'''....''hectometer''
::* '''asonak'''....''attosecond''
::* '''asoycanak'''....''centigrade''
::* '''asoygenak'''....''centigram''
::* '''asoylinak'''....''centiliter''
::* '''asoyminak'''....''centimeter''
::* '''asoyn-anak'''....''centigrade''
::* '''aunak'''....''angstrom''
::* '''ayoynminak'''....''millimeter''
::* '''banak'''....''byte''
::* '''baposonak'''....''bawd''
::* '''cadanak'''....''candela, cd''
::* '''cagenak'''....''centigram, cg''
::* '''caminak'''....''cm''
::* '''canak'''....''calorie, centiare''
::* '''catonak'''....''carat, ct''
::* '''cawutonak'''....''cwt, hundredweight''
::* '''daagbanak'''....''dB, decibel, loudness symbol''
::* '''daagenak'''....''decagram''
::* '''daanak'''....''decare''
::* '''dagenak'''....''decigram, dg''
::* '''daminak'''....''decimeter, dm''
::* '''danak'''....''deciare''
::* '''dayuninak'''....''dyne''
::* '''ekpetyafonnak'''....''horsepower''
::* '''elnak'''....''ell''
::* '''Enigeda minak'''....''mile''
::* '''faobnak'''....''rick''
::* '''faofnak'''....''cord of wood''
::* '''feaglinak'''....''foot-lambert''
::* '''fecanak'''....''foot-candle, fc''
::* '''feposonak'''....''foot-pound-second, f.p.s.''
::* '''ferminak'''....''fermi''
::* '''fesonak'''....''femtosecond''
::* '''fetolibanak'''....''foot-pound-force, ft-lb''
::* '''fetominak'''....''fathom, ftm, depth of water symbol''
::* '''fetonak'''....''foot-ton, ft''
::* '''finak'''....''head start, advantage, forestart''
::* '''futnak'''....''foot''
::* '''fyinak'''....''gain in value''
::* '''galonnak'''....''galon''
::* '''garale aghezunak'''....''terahertz, fresnel''
::* '''garaleagbanak'''....''Tb, terabyte''
::* '''garalyiagbanak'''....''exabyte''
::* '''garalyigenak'''....''Eg, exagram''
::* '''garalyoagbanak'''....''petabyte''
::* '''garalyobanak'''....''petabit''
::* '''garelaagbanak'''....''zettabyte''
::* '''gareluagbanak'''....''yottabyte''
::* '''garyuagbanak'''....''gigabyte''
::* '''garyubanak'''....''gb, gigabit''
::* '''garyugenak'''....''Gg, gigagram''
::* '''gehezunak'''....''gigahertz, gH''
::* '''genak'''....''gram''
::* '''glabanak'''....''multibit''
::* '''gol sonak'''....''per second''
::* '''goraleagfenak'''....''picofarad''
::* '''goralesonak'''....''picosecond''
::* '''goralyigenak'''....''ag, attogram''
::* '''goralyusonak'''....''attosecond''
::* '''gorelasonak'''....''zeptosecond''
::* '''gorelugenak'''....''yg, yoctogram''
::* '''gorelusonak'''....''yoctosecond''
::* '''goryiyexnak'''....''microerg''
::* '''goryuminak'''....''nanometer''
::* '''goryusonak'''....''nanosecond''
::* '''gwon agbanak'''....''quantum byte''
::* '''gwon banak'''....''quantum bit, qubit''
::* '''gyanifyagnak'''....''spindle''
::* '''hanak'''....''hectare''
::* '''hartleynak'''....''hartley''
::* '''heanak'''....''ha, hectare, area symbol''
::* '''hegenak'''....''hg, nectogram''
::* '''hepinak'''....''horsepower, hp''
::* '''iber finak'''....''to receive an award''
::* '''ibixazonak'''....''magneton''
::* '''incnak'''....''inch''
::* '''ingarwa minak'''....''cubic meter''
::* '''inonak'''....''inch''
::* '''jobnak'''....''chronon''
::* '''kiatonak'''....''katal, kat''
::* '''kigenak'''....''kilogram''
::* '''kogenak'''....''kg, kilogram''
::* '''kwartnak'''....''quart''
::* '''kyinak'''....''weight gain''
::* '''kyinnak'''....''carat''
::* '''libanak'''....''pound''
::* '''lignak'''....''league''
::* '''liminak'''....''lm, lumen''
::* '''lixunak'''....''lux, lx''
::* '''manazannak'''....''foot-candle, fc''
::* '''manjoobnak'''....''light eon''
::* '''mannak'''....''photon''
::* '''maylnak'''....''mile''
::* '''melnak'''....''acre''
::* '''mianak'''....''m.a.''
::* '''migenak'''....''mg, milligram''
::* '''milnak'''....''mile''
::* '''miminak'''....''mm''
::* '''mimmilnak'''....''knot''
::* '''minak'''....''meter''
::* '''minak-gol-sonak'''....''meter per second''
::* '''miolinak'''....''mole, mol, Mole''
::* '''molnak'''....''gram molecule, mole''
::* '''mufyegnak'''....''caliber''
::* '''mugammanak'''....''microgram''
::* '''naudnak'''....''rad''
::* '''nifnak'''....''sett''
::* '''nigenak'''....''nanogram, ng''
::* '''nignak'''....''stere''
::* '''niminak'''....''nm''
::* '''nogagcanak'''....''degree Celsius''
::* '''nogagfenak'''....''degree Fahrenheit''
::* '''nogagkinak'''....''degree Kelvin''
::* '''nunak'''....''nu, rotational speed''
::* '''onak'''....''octet, eight-bit byte''
::* '''oogminak'''....''micrometer, micron''
::* '''ounsnak'''....''ounce''
::* '''ozunak'''....''ounce''
::* '''pintnak'''....''pint''
::* '''poagfenak'''....''picofarad, pF''
::* '''poagjinak'''....''picojoule, pJ''
::* '''pogenak'''....''pg, picagram''
::* '''posonak'''....''parsec, picosecond, ps''
::* '''poundnak'''....''pound''
::* '''powunak'''....''pennyweight''
::* '''qosonak'''....''quectosecond''
::* '''roadanak'''....''plane angle unit, rad, radian''
::* '''rogenak'''....''rontogram, rg''
::* '''ro-gol-sogarenak'''....''angular acceleration, rad/s2''
::* '''ro-gol-sonak'''....''angular frequency, angular velocity, rad/s''
::* '''ropetnak'''....''mickey''
::* '''sonak'''....''quintal, second, s''
::* '''soronak'''....''solid angle unit, sr, steradian''
::* '''soronak'''....''steradian''
::* '''taunak'''....''torque, tau''
::* '''tonak'''....''t, ton''
::* '''troynak'''....''troy, troy weight''
::* '''tuubnak'''....''cubit, ell''
::* '''unak'''....''quarto''
::* '''vunak'''....''unit of voltage''
::* '''yafonak'''....''power gain''
::* '''yaonnak'''....''hexameter''
::* '''yardnak'''....''yard''
::* '''yegoragjinak'''....''erg''
::* '''yexazonak'''....''energy gain''
::* '''yexnak'''....''erg''
::* '''yiynbanak'''....''bit''
::* '''yudanak'''....''yard, yd''
::* '''yusonak'''....''ys, yoctosecond''
::* '''zegenak'''....''zeptogram, zg''
::* '''zeynadnak'''....''calibre''
::* '''zu-ge-jinak'''....''RPM, revolutions per minute''
::* '''zusonak'''....''zs''
::* '''zyefnak'''....''diopter''
{{small/end}}
==== NEG Words ====
:* '''neg'''....''level, stratum, echelon, tier''
::* '''abdoneg'''....'' top social class, top social stratum, upper class''
::* '''abneg'''....'' top level, upper level''
::* '''aagneg'''....'' macrolevel''
::* '''aneg'''....'' first level''
::* '''annega'''....'' single-level''
::* '''aybneg'''....'' superstratum''
::* '''doneg'''....'' class, social class, social level, social stratum''
::* '''duzneg'''....'' pitch, tune''
:::* '''duznegsiyn'''....'' clef''
:::* '''duznegxar'''....'' tuner''
::* '''ebneg'''....'' in-between level, inter-level''
::* '''ebtajnega'''....'' intergenerational''
::* '''ennega'''....'' bi-level, double-layered, split-level, two-level''
:::* '''ennegmimofag'''....'' galleon''
::* '''eynegon'''....'' gauge''
::* '''fiduznega'''....'' in key, on pitch''
:::* '''gwafiduznega'''....'' pitch-perfect''
::* '''fuduznega'''....'' off-key, off-pitch, off-tune, pitchy''
::* '''gawtajnegxer'''....'' regenerate''
::* '''genega'''....'' coplanar, levigate, level, smooth, even''
:::* '''genegxer'''....'' levigate''
::* '''getajnega'''....'' co-generational, of the same generation''
::* '''glanega'''....'' multi-level, multilevel''
::* '''glasuexnega'''....'' multivolume''
::* '''greneg'''....'' break-even, breakeven''
::* '''ijduzneg'''....'' key''
::* '''ilneg'''....'' pond, stretch of water''
::* '''kyodoneg'''....'' caste''
::* '''milneg'''....'' body of water''
::* '''naxneggox'''....'' deflation''
::* '''neg'''....'' echelon, layer, level, stratum, tier''
::* '''nega'''....'' even, level''
::* '''negar'''....'' level''
::* '''negika'''....'' tiered''
::* '''negser'''....'' level out''
::* '''negxar'''....'' leveler''
::* '''negxer'''....'' level, smooth out, stratify''
::* '''negxwa'''....'' even, leveled out, smoothed, stratified''
::* '''obneg'''....'' inferior echelon, sublevel''
::* '''ogenega'''....'' not level, uneven''
::* '''ogetajnega'''....'' allo-generational, of a different generation''
::* '''oogneg'''....'' microlevel''
::* '''oktajnegser'''....'' degenerate''
::* '''oneg'''....'' ground level''
::* '''oybneg'''....'' substratum''
::* '''seuxneg'''....'' sound level''
::* '''tajneg'''....'' generation''
::* '''tisneg'''....'' grade, grade level''
::* '''vyaduznega'''....'' in tune, on-pitch''
::* '''vyanegdwas'''....'' aphorism, catchword, dictum, maxim, saw, saying''
::* '''vyoduznega'''....'' off-pitch, out of tune, pitchy''
::* '''yabdoneg'''....'' higher social class, upper class''
::* '''yabduzneg'''....'' high pitch, treble''
::* '''yabnega'''....'' high-echelon, high-level, top echelon''
:::* '''yabnegxer'''....'' raise the level, ratchet up, uplift, upshift''
::* '''yabzedoneg'''....'' upper middle class''
::* '''yeduznega'''....'' diatonic''
::* '''yeybtajnega'''....'' intragenerational''
::* '''yobdoneg'''....'' lower class''
::* '''yobduznega'''....'' low-pitched''
::* '''yobnega'''....'' bottom echelon, bottom-level, low-echelon, low-level, lower-level''
::* '''yobzedoneg'''....'' lower middle class''
::* '''yomneg'''....'' ice floe, ice sheet''
::* '''zedoneg'''....'' middle class''
::* '''zenega'''....'' mid-level''
==== NIG Words ====
: The morpheme '''nig''' means ''space''. Here are some derived words:
::* '''ebnig'''....''interstice, leeway''
:::* '''ebnigxer'''....''to make leeway''
:::* '''ebnignabxer'''....''to stagger''
::* '''kunig'''....''margin''
:::* '''kunigxer'''....''to marginalize''
::* '''exnig'''....''field''
::* '''keaxnig'''....''scope''
::* '''malnig'''....''airspace''
::* '''memnig'''....''tract of land''
::* '''nigier'''....''to take up space''
::* '''niguer'''....''to allot space, to make room for''
::* '''tebnig'''....''headroom''
::* '''tejnig'''....''Lebensraum, living space''
::* '''tyobnig'''....''legroom''
::* '''uknig'''....''vacuum''
::* '''yannigxer'''....''to space together''
::* '''yebnig'''....''courtyard''
::* '''yexnig'''....''workspace''
::* '''yonnigxer'''....''to space apart''
::* '''yuznig'''....''environment''
::* '''zanig'''....''foreground''
:::* '''zanigber'''....''to foreground''
::* '''zonig'''....''background''
:::* '''zonigber'''....''to background''
::* '''zyanig'''....''expanse''
::* '''zyonig'''....''confines''
=== '''NOM''' ''situation'' ===
[[File:Union Street Gowanus New York October 2021 HDR panorama.jpg|thumb|]]
: The stems in this family end in '''-m''', with the general meaning of ''place'', or '''-yeb''' meaning ''container''. The family includes areas, places, locations, buildings, houses, rooms, spaces, and containers.
: The base word '''nom''', which means ''situation'', is also the base for several stub suffixes as seen in the chart below:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ NOM
|-
! BASE WORD !! STUB !! EXAMPLES
|-
| '''nom'''....''situation'' || '''-om'''....''situation''||'''yikom'''....''difficult spot''<br>'''yukom'''....''comfort, ease, convenience''
|-
| '''nam'''....''store'' || '''-am'''....''indoor place, building, house''||'''dezam'''....''theater''<br>'''posam'''....''station''
|-
| '''nem'''....''place'' || '''-(e)m'''....''open space, place''||'''nunem'''....''market''<br>'''zem'''....''middle''
|-
| '''num'''....''cell'' || '''-um'''....''cell, booth, stall, compartment''||'''pexum'''....''cage''<br>'''yibdalirum'''....''telephone booth''
|-
| '''nyem'''....''box'' || '''-yem'''....''enclosed space'' || '''syem'''....''establishment''<br>'''vaknyem'''....''safe''<br>'''byem'''....''position''
|}
{{small/end}}
==== NYEB, NYEF, ZYEB, NYEV, SYEB Words ====
: There is a set of words referring to different types of containers. Some have stub suffixes.
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ NYEB etc.
|-
! CONTAINER WORD !! STUB !! EXAMPLE
|-
| '''nyeb'''....''container'' || '''-yeb'''....''container''|| '''bixnyeb'''....''drawer''<br>'''vosyeb'''....''flower pot''<br>'''nasyeb'''....''billfold''
|-
| '''nyef'''....''basket'' ||'''-yef''' ||'''feb nyef'''....''fruit basket''<br>'''fyumulyef'''....''wastebasket''
|-
| '''nyev'''....''bag, sack'' || ||'''malnyev'''....''airbag''<br>'''tolnyev'''....''grocery bag/sack''
|-
| '''zyeb'''....''glass container'' || '''-yeb'''||'''tilzyeb'''....''drinking glass''<br>'''ammilzyeb'''....''hot-water bottle''<br>'''ilyeb'''....''bottle''
|-
| '''syeb'''....''container'' || '''-yeb'''....''container''||'''absyeb'''....''cap''<br>'''ponyeb'''....''suitcase''<br>'''ilsyeb'''....''flask''
|}
{{small/end}}
: Other container words:
::* '''syebag'''....''bin''
::* '''nyemag'''....''caisson, chest, coffer''
::* '''nyeyv'''....''sachet, ditty bag''
::* '''faosyeb'''....''barrel''
::* '''faosyeyb'''....''keg, vat''
::* '''faosyebog'''....''firkin, drum''
::* '''faosyebag'''....''cask, vat, tank, tun''
::* '''zotibyeb'''....''backpack, rucksack''
=== '''POT''' ''animal'' ===
: The stems of the words in this family begin with the letter '''p''', denoting ''movement'', and end in the letter '''t''', denoting a ''living creature''. Thus, the words have to do with animals. The ordinal vowel indicates the terrain: land, air, water, or a combination of these. If the vowel is pre-y-glided, then the animal is wild or predatory.
[[File:Animal diversity.jpg|thumb|]]
==== Core Words ====
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Animal Core Words
|-
! AIR
| '''pat'''....''bird''<br>'''pyat'''....''predatory bird''<br>'''piat'''....''aquatic bird''
|-
! LAND (WILD)
| '''pot'''....''animal''<br>'''pyot'''....''predatory animal''<br>'''piot'''....''semi-aquatic''
|-
! LAND (DOMESTIC)
| '''pet'''....''land animal''<br>'''pyet'''....''reptile''<br>'''pelt'''....''insect''<br>'''pelat'''....''flying insect''<br>'''piyet'''....''batrachian''<br>'''payet'''....''flying reptile''<br>'''peyet'''....''worm''
|-
! WATER
| '''pit'''....''fish''<br>'''pyit'''....''predatory fish''<br>'''piit'''....''crustacean''<br>'''pyeit'''....''mollusk''<br>'''peit'''....''marine mammal''
|}
{{small/end}}
==== Chart of Principal Animals ====
: As this chart shows, the base morpheme for animal is '''p...t''' (think of: a moving creature). The vowels within the base morpheme are generally geo-specific, indicating land, sea, water, or combinations thereof. The prefixes are characteristic syllables from the international Linnaean Taxonomy.
: See [[Mirad_Grammar/Vocabulary_Formation#Animal_Nomenclature|Animal Nomenclature]] for rules in forming animal names.
{{small/top}}
'''pet''': ''domestic land mammal ''
:*'''kapet''': ''dog, hound, domestic dog'', spec=''<u>Ca</u>nidae Canis familiaris''
:*'''lapet''': ''rabbit, bunny, spec=<u>La</u>gomorpha Leporidae Oryctolagus cuniculus domesticus''
:*'''fepet''': ''cat, domestic cat, house cat, feline, felid'', spec=''<u>Fe</u>lidae Felis catus''
:*'''ekpet''': ''horse'', spec=''<u>Eq</u>uidae Equus caballus''
::*'''afekpet''': ''ass, donkey, jackass'', spec=''<u>Eq</u>uidae Equus <u>af</u>ricanus asinus''
::*'''afkabekpet''': ''mule'', spec=''<u>Eq</u>uidae Equus <u>cab</u>allus x <u>af</u>ricanus''
:*'''kampet''': ''camel'', spec=''<u>Cam</u>elus dromedarius''
:*'''bopet''': ''bovine, bull, cattle, taurine cattle, ox'', spec=''<u>Bo</u>vidae Bos taurus''
::*'''kabopet''': ''goat, domestic goat'', spec=''<u>Bo</u>vidae <u>Ca</u>pra hircus''
::*'''ovbopet''': ''sheep'', spec=''<u>Bo</u>vidae <u>Ov</u>is aries''
::*'''intawbopet''': ''zebu'', spec=''<u>Bo</u>vidae Bos <u>tau</u>rus <u>in</u>dicus''
:*'''ropet''': ''mouse'', spec=''<u>Ro</u>dentia Mus musculus''
::*'''porkaropet''': ''cavy, guinea pig'', spec=''<u>Ro</u>dentia <u>Ca</u>via <u>por</u>cellus''
::*'''kriropet''': ''hamster'', spec=''<u>Ro</u>dentia <u>Cri</u>cetus cricetus''
::*'''gerropet''': ''gerbil'', spec=''<u>Ro</u>dentia <u>Ger</u>billinae''
:*'''supet''': ''pig, swine, hog'', spec=''<u>Su</u>idae Sus domesticus''
'''pelt''': ''bug, insect'', spec=''Insecta''
:*'''saklepelt''': ''silverfish'', spec=''Lepismatidae Lepisma saccharinum''
:*'''pepelt''': ''louse'', spec=''Pediculidae''
::*'''hupepelt''': ''body louse, body lice'', spec=''Pediculidae Pediculus humanus''
:::*'''kahupepelt''': ''head louse, head lice'', spec=''Pediculidae Pediculus humanus capitis''
:*'''lekcipelt''': ''bed bug'', spec=''Cimicidae Cimex lectularius''
:*'''ftipelt''': ''parasite, louse'', spec=''Phthiraptera''
:*'''hempelt''': ''true bug, bug'', spec=''Hemiptera''
::*'''cihempelt''': ''cicada'', spec=''Hemiptera Cicadidae''
::*'''lihempelt''': ''chinch bug'', spec=''Hemiptera Lygaeidae''
::*'''penhempelt''': ''stink bug, stinkbug'', spec=''Hemiptera Pentamidae Halyomorpha halys''
:*'''kopelt''': ''beetle'', spec=''Coleoptera''
::*'''skakopelt''': ''scarab, dung beetle'', spec=''Coleoptera Scarabaeidae ''
:::*'''meskakopelt''': ''cockchafer, may bug'', spec=''Coleoptera Scarabaeidae Melolontha melolontha''
:::*'''koskakopelt''': ''june bug, june beetle'', spec=''Coleoptera Scarabaeidae Cotinis nitida''
::*'''kurkopelt''': ''weevil'', spec=''Coleoptera Curculionidae''
::*'''kokkopelt''': ''ladybug'', spec=''Coleoptera Coccinellidae''
:*'''tripelt''': ''caddisfly'', spec=''Trichoptera''
:*'''fyupelt''': ''vermin, new=fupelt (fyu- = harmful)''
:*'''arpelt''': ''spider, arachnid'', spec=''Arachnida''
::*'''foycarpelt''': ''common house spider, cellar spider, daddy-long-legs'', spec=''Arachnida Phoicidae''
::*'''eragarpelt''': ''hobo spider, funnel web spider'', spec=''Arachnida Agelnidae Eratigena''
::*'''diarpelt''': ''garden spider'', spec=''Arachnida Araneus diadematus''
::*'''akarpelt''': ''mite'', spec=''Arachnida Acariformes''
::*'''likarpelt''': ''wolf spider'', spec=''Arachnida Licosidae''
::*'''losikarpelt''': ''brown recluse'', spec=''Arachnia Sicaridae Loxosceles reclusa''
::*'''salarpelt''': ''jumping spider'', spec=''Arachnida Salticidae''
::*'''tromarpelt''': ''chigger'', spec=''Arachnida Trombiculidae''
::*'''tomarpelt''': ''crab spider'', spec=''Arachnida Thomsidae''
::*'''ewparpelt''': ''daddy long-legs spider'', spec=''Arachnida Eupnoi''
::*'''pararpelt''': ''tick, mite, nit'', spec=''Arachnida Parasitiformes''
::*'''terarpelt''': ''tarantula'', spec=''Arachnida Theraphosidae''
::*'''skorarpelt''': ''scorpion'', spec=''Arachnida Scorpiones''
::*'''laterarpelt''': ''black widow'', spec=''Arachnida Therididae Latrodectus''
:*'''forpelt''': ''ant, pismere'', spec=''Formicidae''
::*'''solforpelt''': ''fire ant'', spec=''Formicidae Solenopsis''
::*'''kamforpelt''': ''carpenter ant'', spec=''Formicidae Camponotus''
:*'''orpelt''': ''othoptera'', spec=''Orthoptera''
::*'''griorpelt''': ''cricket'', spec=''Orthoptera Gryillidae''
::*'''akorpelt''': ''grasshopper'', spec=''Orthoptera Acrididae ''
::*'''tetorpelt''': ''katydid'', spec=''Orthoptera Tettigonioidea''
::*'''akrorpelt''': ''locust'', spec=''Orthoptera Acrididae''
:*'''blatpelt''': ''cockroach, roach'', spec=''Blattodea Blattidae''
:*'''manpelt''': ''mantis, praying mantis'', spec=''Mantodea''
'''peyet''': ''worm, annelid'', spec=''Annelida''
:*'''anpeyet''': ''hookworm'', spec=''Ancylostoma''
:*'''aspeyet''': ''roundworm'', spec=''Ascaridae Ascaris lumbricoides''
:*'''bompeyet''': ''silkmoth'', spec=''Bombycidae Bombyx mori''
:*'''dipeyet''': ''millipede'', spec=''Diplopoda''
:*'''hirpeyet''': ''leech'', spec=''Hirudinea''
:*'''kipeyet''': ''centipede'', spec=''Chilopoda''
:*'''lumpeyet''': ''earthworm'', spec=''Lumbricina''
:*'''nepeyet''': ''nematode, roundworm, eelworm'', spec=''Nematoda''
:*'''plapeyet''': ''flatworm, fluke'', spec=''Platyhelminthes Trematoda''
:*'''popeyet''': ''bristle worm, annelid worm, polychaeta'', spec=''Polychaeta''
:*'''taypeyet''': ''tapeworm'', spec=''Taenia''
'''piyet''': ''amphibian, batrachian'', spec=''Amphibia''
:*'''serkepiyet''': ''snapping turtle'', spec=''Chelydra serpentina''
:*'''anpiyet''': ''frog'', spec=''Anura''
::*'''hilanpiyet''': ''tree frog'', spec=''Anura Hylidae''
::*'''bufanpiyet''': ''toad'', spec=''Anura Bufonidae''
:*'''urpiyet''': ''salamander'', spec=''Urodela''
:*'''arkripiyet''': ''water rat, water vole'', spec=''Cricetidae Arvicola amphibius''
'''pyet''': ''reptile'', spec=''Reptilia''
:*'''skwapyet''': ''lizard'', spec=''Squamata''
::*'''kovaskwapyet''': ''Komodo dragon'', spec=''Squamata Varanus komodoensis''
::*'''susheskwapyet''': ''gila monster'', spec=''Squamata Heloderma suspectum''
::*'''igskwapyet''': ''iguana'', spec=''Squamata Iguana''
::*'''gekskwapyet''': ''gecko, tokay gecko'', spec=''Squamata Gekkota Gekko gekko''
:*'''dipyet''': ''dinosaur'', spec=''Dinosauria''
::*'''bradipyet''': ''brachiosaurus'', spec=''Dinosauria Brachiosaurus''
::*'''vedipyet''': ''velociraptor'', spec=''Dinosauria Velocirator''
::*'''tidipyet''': ''tyrannosaurus rex T. rex'', spec=''Dinosauria Tyrannosaurus rex''
::*'''brondipyet''': ''brontosaurus'', spec=''Dinosauria Brontosaurus''
:*'''kropyet''': ''crocodile'', spec=''Crocodilia Crocodylidae''
::*'''alkropyet''': ''alligator'', spec=''Crocodilia Alligatoridae Alligator''
::*'''kaykropyet''': ''caiman'', spec=''Crocodilia Caimaninae''
:*'''rinpyet''': ''tuatara'', spec=''Rhynchocephalia Sphenodon punctatus''
:*'''serpyet''': ''snake spec=Serpentes''
::*'''neserkopyet''': ''water snake'', spec=''Serpentes Colubridae Nerodia sipedon''
::*'''ofserkopyet''': ''green snake'', spec=''Serpentes Colubridae Opheodrys''
::*'''piserpyet''': ''python'', spec=''Serpentes Pythonidae Python regius''
::*'''viserpyet''': ''viper, spect=Serpentes Viperidae''
:::*'''beviserpyet''': ''adder'', spec=''Serpentes Viperidae Vipera berus''
:::*'''agviserpyet''': ''copperhead'', spec=''Serpentes Viperidae Agkistrodon contortrix''
:::*'''piskagviserpyet''': ''water moccasin'', spec=''Serpentes Viperidae Agkistrodon piscivorus''
:::*'''kroviserpyet''': ''rattlesnake spec=Serpentes Viperidae Crotalus''
::*'''elserpyet''': ''elapid'', spec=''Serpentes Elapidae''
:::*'''ofelserpyet''': ''king cobra'', spec=''Serpentes Elapidae Ophiophagus''
:::*'''najelserpyet''': ''cobra, naja'', spec=''Serpentes Elapidae Naja''
:::*'''denelserpyet''': ''black mamba'', spec=''Serpentes Elapidae Dendroaspis polylepis''
:::*'''psewselerpyet''': ''redbelly'', spec=''Serpentes Elapidae Pseudechis porphyriacus''
::*'''koserpyet''': ''colubrid'', spec=''Serpentes Colubridae''
:::*'''nakoserpyet''': ''grass snake'', spec=''Serpentes Colubridae Natrix natrix''
:::*'''lamkoserpyet''': ''kingsnake'', spec=''Serpentes Colubridae Lampropeltis''
:::*'''tamkoserpyet''': ''garter snake spec=Serpentes Colubridae Thamnopis''
:::*'''pankoserpyet''': ''corn snake'', spec=''Serpentes Colubridae Pantherophis guttatus''
:::*'''boykoserpyet''': ''mangrove snake'', spec=''Serpentes Colubridae Boiga dendrophila''
::*'''boyserpyet''': ''boa, boa constrictor'', spec=''Septentes Boidae Boa constrictor''
:::*'''ewboyserpyet''': ''anaconda, water boa'', spec=''Serpentes Boidae Eunectes''
:*'''tespyet''': ''tortoise, turtle'', spec=''Testudinae''
'''pot''': ''wild mammal''
:*'''kapot''': ''wild dog, feral dog, free-ranging dog'', spec=''Canidae Canis''
:*'''lapot''': ''hare'', spec=''Lagomorpha Lepus timidus''
::*'''lelapot''': ''jackrabbit'', spec=''Lagomorpha Lepus californicus''
::*'''oklapot''': ''pika'', spec=''Lagomorpha Ochotona daurica''
::*'''tallapot''': ''mole'', spec=''Lagomorpha Talpidae Talpa''
:*'''fepot''': ''feral cat'', spec=''Felidae Felis catus''
::*'''bifepot''': ''Chinese mountain cat'', spec=''Felidae Felis bieti''
::*'''lifepot''': ''African wildcat'', spec=''Felidae Felis lybica''
::*'''silfepot''': ''European wildcat'', spec=''Felidae Felis silvestris''
::*'''marfepot''': ''sand cat'', spec=''Felidae Felis margarita''
::*'''kawsfepot''': ''jungle cat'', spec=''Felidae Felis chaus''
:*'''mepot''': ''skunk, striped skunk, mephitid'', spec=''Mephitidae Mephitis mephitis''
::*'''mimepot''': ''stink badger'', spec=''Mephitidae Mydaus''
::*'''komepot''': ''hog-nosed skunk'', spec=''Mephitidae Conepatus humboldtii''
:*'''ksepot''': ''placental mammal'', spec=''Xenarthra''
::*'''sinksepot''': ''armadillo'', spec=''Xenarthra Cingulata old=napot''
::*'''foksepot''': ''sloth, tree sloth'', spec=''Xenarthra Folivora''
::*'''verksepot''': ''anteater'', spec=''Xenarthra Vermilingua''
:*'''gipot''': ''giraffe'', spec=''Giraffa camelopardalis''
:*'''ripot''': ''rhinoceros, rhino'', spec=''Rhinocerotidae Rhinoceros''
:*'''ekpot''': ''wild horse, tarpan'', spec=''Equidae Equus ferus''
::*'''zebekpot''': ''zebra, mountain zebra'', spec=''Equidae Equus zebra''
:*'''elpot''': ''elephant'', spec=''Elephantidae''
::*'''makselpot''': ''Asian elephant'', spec=''Elephantidae Elephas maximus''
::*'''aflokselpot''': ''African bush elephant'', spec=''Elephantidae Loxodonta africanus''
::*'''cilokselpot''': ''African forest elephant'', spec=''Elephantidae Loxodonta cyciotis''
:*'''kampot''': ''camel'', spec=''Camelidae''
::*'''lakampot''': ''llama'', spec=''Camelidae Lama glama''
::*'''palakampot''': ''alpaca'', spec=''Camelidae Lama pacos''
::*'''vilakampot''': ''vicuna'', spec=''Camelidae Lama vicugna''
::*'''bakkampot''': ''bachtrian camel'', spec=''Camelidae Camelus bactrianus''
::*'''drokampot''': ''dromedary'', spec=''Camelidae Camelus dromedarius''
:*'''bopot''': ''wild bovine, bovid, ruminant mammal'', spec=''Bovidae''
::*'''bibopot''': ''bison'', spec=''Bovidae Bison bison''
::*'''anbopot''': ''antelope'', spec=''Bovidae Antilope cervicapra''
::*'''gnukonbopot''': ''gnu, wildebeest'', spec=''Bovidae Connochaetes gnou''
::*'''grunbopot''': ''yak'', spec=''Bovidae Bos grunniens''
::*'''kabopot''': ''mountain goat'', spec=''Bovidae Capra aegagrus hircus''
:::*'''dorkabopot''': ''gazelle'', spec=''Bovidae Capra dorcas''
:::*'''sukabopot''': ''serow'', spec=''Bovidae Capricornis sumatraensis''
::*'''aypbopot''': ''impala, rooibok'', spec=''Bovidae Aepyceros melampus''
::*'''bubopot''': ''buffalo'', spec=''Bovidae Bubalus bubalis''
::*'''rubopot''': ''chamois'', spec=''Bovidae Rupicapra rupicapra''
::*'''ovbopot''': ''bighorn sheep'', spec=''Bovidae Ovis canadensis''
::*'''tawbopot''': ''eland, eland antelope'', spec=''Bovidae Taurotragus oryx''
:*'''ropot''': ''rat, rodent'', spec=''Rodentia''
::*'''baropot''': ''mole rat'', spec=''Rodentia Bathyergus''
::*'''furaropot''': ''bush rat, woodrat'', spec=''Rodentia Rattus fuscipes''
::*'''geropot''': ''gopher, pocket gopher'', spec=''Rodentia Geomys''
::*'''lemropot''': ''lemming'', spec=''Rodentia Lemimini''
::*'''diropot''': ''kangaroo rat'', spec=''Rodentia Dipodomys''
::*'''skiropot''': ''squirrel'', spec=''Rodentia Sciuridae Sciurus''
:::*'''neskiropot''': ''chipmunk'', spec=''Rodentia Sciuridae Neotamias''
:::*'''ciskiropot''': ''prairie dog'', spec=''Rodentia Sciuridae Cynomys''
:::*'''marskiropot''': ''marmot'', spec=''Rodentia Sciuridae Marmota marmota, old=kalyipot''
:::*'''pteskiropot''': ''flying squirrel'', spec=''Rodentia Sciuridae Pteromyni''
::*'''gliropot''': ''dormice'', spec=''Rodentia Gliridae''
::*'''arkripot''': ''vole'', spec=''Rodentia Cricetidae Arvicolini''
::*'''nekriropot''': ''pack rat'', spec=''Rodentia Critecidae Neotoma''
::*'''cinropot''': ''chinchilla spec=Rodentia Chinchilla chinchilla''
::*'''proropot''': ''raccoon'', spec=''Procyonidae Procyon lotor''
::*'''hisropot''': ''porcupine'', spec=''Rodentia Hystricognathi''
::*'''lemkriropot''': ''lemming'', spec=''Rodentia Cricetidae Lemmini''
:*'''marpot''': ''marsupial'', spec=''Marsupalia''
::*'''famarpot''': ''koala, koala bear'', spec=''Marsupialia Phascolarctos cinereus''
::*'''makmarpot''': ''kangaroo'', spec=''Marsupialia Macropus''
:::*'''amakmarpot''': ''wallaby'', spec=''Marsupialia Macropus''
:::*'''emakmarpot''': ''wallaroo'', spec=''Marsupialia Macropus''
::*'''vommarpot''': ''wombat'', spec=''Marsupialia Vombatus ursinus''
::*'''sarmarpot''': ''Tasmanian devil'', spec=''Marsupialia Sarcophilus harrisii''
::*'''mirmarpot''': ''numbat'', spec=''Marsupialia Myrmecobius fasciatus''
:*'''erpot''': ''hedgehog'', spec=''Erinaceidae''
:*'''cerpot''': ''deer, cervid'', spec=''Cervidae Cervus''
::*'''dacerpot''': ''fallow deer'', spec=''Cervidae Dama dama''
::*'''odcerpot''': ''white-tailed deer'', spec=''Cervidae Odocoileus virginianus''
::*'''hicerpot''': ''water deer'', spec=''Cervidae Hydropotes''
::*'''alcerpot''': ''moose, elk'', spec=''Cervidae Alces alces''
::*'''rancerpot''': ''reindeer, caribou'', spec=''Cervidae Rangifer tarandus''
::*'''kapcerpot''': ''roe deer'', spec=''Cervidae Capreolus capreolus''
:*'''orpot''': ''aardvark'', spec=''Orycteropodidae Orykteropus afer''
:*'''sorpot''': ''shrew'', spec=''Soricidae Sorex araneus''
:*'''muspot''': ''mustelid'', spec=''Mustelidae''
::*'''gamuspot''': ''grison'', spec=''Mustelidae Galictis''
::*'''memuspot''': ''badger'', spec=''Mustelidae Meles meles''
::*'''nimuspot''': ''black-footed ferret, prairie dog hunter'', spec=''Mustelidae Mustela nigripes''
::*'''rimuspot''': ''ermine'', spec=''Mustelidae Mustela richardsonii''
::*'''ikmuspot''': ''polecat'', spec=''Mustelidae Ictonychinae''
::*'''marmuspot''': ''marten'', spec=''Mustelidae Martes''
::*'''ermuspot''': ''weasel, stoat'', spec=''Mustelidae Mustela erminea''
::*'''fumuspot''': ''ferret'', spec=''Mutelidae Mustela furo''
::*'''gumuspot''': ''wolverine'', spec=''Mustelidae Gulo gulo''
::*'''pumuspot''': ''polecat'', spec=''Mustelidae Mustela putorius''
::*'''lumuspot''': ''mink'', spec=''Mustelidae Mustela lutreola''
:*'''tapot''': ''tapir'', spec=''Tapiridae''
'''pyot''': ''predatory or carniverous animal'', spec=''Carnivora''
:*'''kapyot''': ''predatory canine,gray wolf, spec=Canidae Canis lupus''
::*'''lakapyot''': ''coyote'', spec=''Canidae Canis latrans''
::*'''vulkapyot''': ''fox, red fox'', spec=''Canidae Vulpus vulpus''
:::*'''avulkapyot''': ''arctic fox'', spec=''Canidae Vulpes lagopus''
:::*'''vevulkapyot''': ''swift fox'', spec=''Canidae Vulpes velox''
:::*'''zervulkapyot''': ''fennec fox'', spec=''Canidae Vulpes zerda''
:::*'''korvulkapyot''': ''corsac fox'', spec=''Canidae Vulpes corsac''
::*'''urkapyot''': ''gray fox'', spec=''Canidae Urocyon cinereoargenteus''
::*'''lukapyot''': ''wolf, gray wolf'', spec=''Canidae Canis lupus''
::*'''awkapyot''': ''jackal, golden jackal'', spec=''Canidae Canis aureus''
:*'''fepyot''': ''tiger'', spec=''Felidae Panthera tigris''
::*'''acfepyot''': ''cheetah'', spec=''Felidae Acinonyx jubatus''
::*'''lefepyot''': ''ocelot'', spec=''Felidae Leopardus pardalis''
::*'''lifepyot''': ''lynx'', spec=''Felidae Lynx lynx''
:::*'''rulifepyot''': ''bobcat'', spec=''Felidae Lynx rufus''
::*'''panfepyot''': ''panther'', spec=''Felidae Panthera''
:::*'''lepanfepyot''': ''lion'', spec=''Felidae Panthera leo''
:::*'''tipanfepyot''': ''tiger'', spec=''Felidae Panthera tigris''
:::*'''onpanfepyot''': ''jaguar'', spec=''Felidae Panthera onca''
:::*'''unpanfepyot''': ''snow leopard, ounce'', spec=''Felidae Panthera uncia''
:::*'''parpanfepyot''': ''leopard'', spec=''Felidae Panthera pardus''
::*'''pufepyot''': ''puma, cougar, mountain lion'', spec=''Felidae Puma concolor, cougar''
:*'''hyaypyot''': ''hyena'', spec=''Hyena''
:*'''herpyot''': ''mongoose'', spec=''Herpestidae''
:*'''supyot''': ''boar,wild boar, wild pig'', spec=''Suidae Sus scrofa''
::*'''ermuspyot''': ''stoat'', spec=''Mustelidae Mustela erminea''
:*'''vipyot''': ''civet'', spec=''Viverridae ''
:*'''pripyot''': ''primate'', spec=''Primates''
::*'''lepripyot''': ''lemur'', spec=''Primates Lemuridae''
::*'''tarpripyot''': ''tarsier'', spec=''Primates Tarsiidae Tarsius''
:*'''simpyot''': ''ape, simian, monkey'', spec=''Simiformes''
::*'''kalsimpyot''': ''marmoset, new world monkey, tamarin'', spec=''Simiformes Callitrichidae''
::*'''cesimpyot''': ''capuchin monkey, squirrel monkey'', spec=''Simiformes Cebidae ''
::*'''hilsimpyot''': ''gibbon, lesser ape'', spec=''Simiformes Hylobatidae''
::*'''masimpyot''': ''macaque'', spec=''Simiformes Macaca mulatta''
::*'''homsimpyot''': ''great ape, ape, hominid'', spec=''Simiformes Hominidae''
:::*'''panhomsimpyot''': ''bonobo'', spec=''Simiformes Hominidae Pan''
::::*'''tropanhomsimpyot''': ''chimpanzee, chimp'', spec=''Simiformes Hominidae Pan troglodytes''
:::*'''ponhomsimpyot''': ''orangutan'', spec=''Simiformes Hominidae Pongo''
:::*'''gohomsimpyot''': ''gorilla'', spec=''Simiformes Hominidae Gorilla''
:::*'''sahomsimpyot''': ''human, Homo sapiens'', spec=''Simiformes Hominidae Homo sapiens''
::*'''cersimpyot''': ''old world monkey'', spec=''Simiformes Cercopithecidae''
:::*'''pacersimpyot''': ''baboon'', spec=''Simiformes Cercopithecidae Papio''
:::*'''mancersimpyot''': ''mandrill'', spec=''Simiformes Certopithecidae Mandrillus''
:*'''urpyot''': ''bear, ursid'', spec=''Ursidae''
::*'''marurpot''': ''polar bear, white bear'', spec=''Ursidae Ursus maritimus''
::*'''arkurpyot''': ''brown bear'', spec=''Ursidae Ursus arktos''
:::*'''midarkurpyot''': ''kodiak bear'', spec=''Urdidae Ursus arctos middendorffi''
:::*'''horarkurpyot''': ''grizzly bear'', spec=''Ursidae Ursus arctos horribilis''
:::*'''krowarkurpyot''': ''atlas bear'', spec=''Ursidae Ursus arctos crowtheri''
::*'''helurpyot''': ''sun bear'', spec=''Ursidae Helarctos malayanus''
::*'''melurpyot''': ''sloth bear'', spec=''Ursinae Melursus ursinus''
::*'''spelurpyot''': ''cave bear'', spec=''Ursidae Ursus spelaeus''
::*'''tiburpyot''': ''Asian black bear'', spec=''Ursidae Ursus thibetanus''
::*'''aylurpyot''': ''panda bear, giant panda'', spec=''Ursidae Ailuropoda melanoleuca''
::*'''amurpyot''': ''American black bear'', spec=''Ursidae Ursus americanus''
::*'''tremurpyot''': ''spectacled bear'', spec=''Ursidae Tremarctos ornatus''
'''piot''': ''aquatic mammal''
:*'''dipiot''': ''opossum'', spec=''Didelphidae''
:*'''tripiot''': ''manatee, seacow'', spec=''Trichechidae Trichechus manatus''
:*'''onropiot''': ''muskrat'', spec=''Rodentia Cricedidae Ondatra zibethicus''
:*'''kasropiot''': ''beaver'', spec=''Rodentia Castor canadensis''
:*'''hippiot''': ''hippopotamus'', spec=''Hippopotamus amphibius''
:*'''anorpiot''': ''platypus'', spec=''Ornithorhynchidae Ornithorhynchus anatinus''
:*'''kisorpiot''': ''water shrew'', spec=''Soricidae Chimarrogale''
:*'''nemuspiot''': ''mink, American mink'', spec=''Mustelidae Neogale vison''
:*'''lumuspiot''': ''otter'', spec=''Mustelidae Lutra lutra''
:*'''dupiot''': ''dugong'', spec=''Dugongidae Dugong dugon''
'''pelat''': ''flying insect''
:*'''lepelat''': ''moth'', spec=''Lepidoptera''
::*'''palepelat''': ''butterfly'', spec=''Lepidoptera Papilionoidea''
:*'''nepelat''': ''gnat'', spec=''Nematocera''
:*'''dipelat''': ''fly'', spec=''Diptera''
::*'''erdipelat''': ''drone fly'', spec=''Diptera Eristalis tenax''
::*'''musdipelat''': ''house fly'', spec=''Diptera Muscidae Musca domestica''
::*'''kudipelat''': ''mosquito'', spec=''Diptera Culicidae Culex Linnaeus''
:*'''kipelat''': ''snowfly'', spec=''Chionea''
:*'''sipelat''': ''flea'', spec=''Syphonoptera''
:*'''kokpelat''': ''ladybug'', spec=''Coccinelidae''
:*'''halpelat''': ''sweat bee'', spec=''Anthophila Halictidae''
:*'''simpelat''': ''sawfly'', spec=''Symphyta''
:*'''anpelat''': ''dragonfly'', spec=''Anisoptera''
:*'''zipelat''': ''damselfy'', spec=''Zigoptera''
:*'''appelat''': ''bee'', spec=''Apidae''
::*'''melappelat''': ''honey bee'', spec=''Apidae Apis mellifera''
::*'''ksilappelat''': ''carpenter bee'', spec=''Apidae Xylocopa''
::*'''bomappelat''': ''bumblebee'', spec=''Apidae Bombus''
:*'''vespelat''': ''wasp'', spec=''Vespidae''
::*'''kravespelat''': ''hornet'', spec=''Vespidae Vespa crabro''
::*'''penvespelat''': ''yellow jacket'', spec=''Vespidae Vespula pensylvanica''
:*'''terpelat''': ''termite'', spec=''Termitidae''
:*'''newpelat''': ''net-winged insect, neuropteran'', spec=''Neuroptera''
::*'''hemnewpelat''': ''lacewing'', spec=''Neuroptera Hemerobiiformia''
::*'''mannewpelat''': ''mantisfly'', spec=''Neuroptera Mantispidae''
::*'''mirnewpelat''': ''antlion, doodlebug'', spec=''Neuroptera Myrmeleontidae''
'''piat''': ''waterfowl''
:*'''gapiat''': ''loon'', spec=''Gaviidae Gavia Immer''
:*'''lapiat''': ''gull, seagull'', spec=''Laridae Larus''
::*'''rilapiat''': ''kittiwake'', spec=''Laridae Rissa''
::*'''rinlapiat''': ''skimmer'', spec=''Laridae Rynchops''
:*'''sfepiat''': ''penguin'', spec=''Spheniscidae Spheniscus''
:*'''fapepiat''': ''cormorant, shag'', spec=''Phalacrocoracidae, Phalacrocorax''
:*'''pepiat''': ''pelican'', spec=''Pelicaniformes Pelicanidae Pelecanus onocrotalus''
::*'''arpepiat''': ''egret, heron'', spec=''Pelecaniformes Ardeidae Ardea''
::*'''trespepiat''': ''ibis'', spec=''Pelecaniformes Treskiornithinae Treskiornis''
:*'''cipiat''': ''stork'', spec=''Ciconiidae Ciconia''
:*'''anpiat''': ''duck spec=Anatidae''
::*'''tadanpiat''': ''shelduck'', spec=''Anatidae Tadorna''
::*'''siganpiat''': ''swan'', spec=''Anatidae Cygnus''
::*'''ansanpiat''': ''goose, grey goose, greylag goose, white goose'', spec=''Anatidae Anser anser''
::*'''brantanpiat''': ''black goose, snow goose'', spec=''Anatidae Branta old=gapiat''
::*'''platanpiat''': ''mallard, wild drake'', spec=''Anatidae Anas platyrhynchos''
:*'''skopiat''': ''sandpiper'', spec=''Scolopacidae''
:*'''popiat''': ''grebe'', spec=''Podicipedidae Podiceps''
:*'''propiat''': ''petrel, procellarid, tubenose'', spec=''Procellariformes''
::*'''dipropiat''': ''albatross'', spec=''Procellariformes Diomedeidae Diomedea old=nyepiat''
:*'''sterpiat''': ''tern'', spec=''Sternidae Sterna''
:*'''tespiat''': ''terrapin'', spec=''Testundines''
:*'''grupiat''': ''crane'', spec=''Gruidae''
:*'''ansupiat''': ''darter, water turkey, snakebird'', spec=''Suliformes Anhingidae Anhinga''
::*'''mosupiat''': ''gannet'', spec=''Suliformes Sulidae Morus''
:*'''foypiat''': ''flamingo'', spec=''Phoenicopteridae''
:*'''alpiat''': ''auk'', spec=''Alcidae Alca''
'''paet''': ''flightless bird''
:*'''kapaet''': ''cassowary'', spec=''Paleognathae Casuaridae Casuarius''
:*'''dropaet''': ''emu'', spec=''Paleognathae Casuaridae Dromaius novaehollandiae''
:*'''repaet''': ''rhea'', spec=''Paleognathae Rheidae Rhea''
:*'''appaet''': ''kiwi'', spec=''Apterydidae Apteryx''
:*'''strupaet''': ''ostrich'', spec=''Struthionidae Struthio camelus''
:*'''otpaet''': ''bustard'', spec=''Otididae''
'''payet''': ''flying reptile''
:*'''ptepayet''': ''pterodactyl'', spec=''Pterodactylus''
:*'''kipayet''': ''bat'', spec=''Chiroptera''
:*'''deskipayet''': ''vampire bat'', spec=''Chiroptera Desmodontinae''
'''pat''': ''bird, flying creature'', spec=''Aves''
:*'''fapat''': ''gamebird, Phasianid'', spec=''Phasianidae''
::*'''fafapat''': ''pheasant'', spec=''Phasianidae Fasianus''
::*'''gafapat''': ''chicken, cock, domestic fowl, yardbird'', spec=''Phasianidae Gallus gallus''
::*'''pafapat''': ''peacock'', spec=''Phasianidae Pavo''
::*'''mefapat''': ''turkey'', spec=''Phasianidae Meleagris''
::*'''tefapat''': ''grouse'', spec=''Phasianidae Tetraonidae''
::*'''kofapat''': ''quail'', spec=''Phasianidae Corturnix''
::*'''perfapat''': ''partridge'', spec=''Phasianidae Perdix''
:*'''pipat''': ''piciform, arboreal bird'', spec=''Piciformes''
::*'''sfipipat''': ''sapsucker'', spec=''Piciformes Sphyrapicus''
::*'''pipipat''': ''woodpecker'', spec=''Piciformes Picidae Picus''
::*'''rampipat''': ''toucan'', spec=''Piciformes Ramphastidae''
:*'''psipat''': ''parrot'', spec=''Psittacoidea''
::*'''kapsipat''': ''cockatiel, weero, quarrion'', spec=''Psittaciformes Cacatuidae''
::*'''mepsipat''': ''parakeet, budgerigar, budgie spec=Psittaciformes Melopsittacus''
::*'''arpsipat''': ''macaw'', spec=''Psittacidae Arini''
:*'''numpat''': ''guinea fowl'', spec=''Numididae Numida''
:*'''kopat''': ''dove, columbid'', spec=''Columbidae Columbia''
::*'''likopat''': ''pigeon'', spec=''Columbidae Columba livia domestica''
::*'''strepkopat''': ''turtledove, turtle-dove'', spec=''Columbidae Streptopelida''
:*'''appat''': ''swift'', spec=''Apodiformes Apodidae''
::*'''trokappat''': ''hummingbird'', spec=''Apodiformes Trochilidae''
::*'''hemappat''': ''treeswift'', spec=''Apodiformes Hemiprocnidae Hemiprocne''
:*'''paspat''': ''passerine, perching bird, sparrow'', spec=''Passeriformes''
::*'''mepaspat''': ''lyrebird'', spec=''Passeriformes Menuridae''
::*'''rihipaspat''': ''martin'', spec=''Passeriformes Hirundidae Riparia''
::*'''pipaspat''': ''towhee'', spec=''Passeriformes Pipilo''
::*'''paripaspat''': ''titmouse'', spec=''Passeriformes Paridae Baeolophus''
::*'''fripaspat''': ''canary'', spec=''Passeriformes Frigillidae Serinus''
::*'''ikpaspat''': ''icterid, blackbird'', spec=''Passeriformes Icteridae Molothrus''
:::*'''molikpaspat''': ''cowbird, snowbird'', spec=''Passeriformes Icteridae Molothrus''
::*'''alpaspat''': ''lark, skylark'', spec=''Passeriformes Alaudidae''
::*'''silpaspat''': ''warbler'', spec=''Passeriformes Sylvidae''
::*'''frinpaspat''': ''finch'', spec=''Passeriformes Fringillidae''
::*'''junpaspat''': ''snowbird'', spec=''Passeriformes Junco hyemalis''
::*'''dopaspat''': ''sparrow'', spec=''Passeridae Passer, domesticus old=bipat''
::*'''tropaspat''': ''wren'', spec=''Passeriformes Troglodytidae''
::*'''karpaspat''': ''cardinal'', spec=''Passeriformes Cardinalis''
::*'''hirpaspat''': ''swallow'', spec=''Passeriformes Hirundidae Hirundo''
::*'''orpaspat''': ''oriole'', spec=''Passeriformes Oriolidae''
::*'''korpaspat''': ''raven, crow'', spec=''Passeriformes Corvidae Corvus corax''
:::*'''cikorpaspat''': ''blue jay'', spec=''Passeriformes Corvidae Cyanocitta cristata''
:::*'''pikorpaspat''': ''magpie'', spec=''Passeriformes Corvidae Pica''
:::*'''taskorpaspat''': ''forest raven'', spec=''Passeriformes Corvidae Corvus tasmanicus''
::*'''turpaspat''': ''thrush'', spec=''Passeriform Turdidae''
:::*'''miturpaspat''': ''robin'', spec=''Passeriformes Turdidae Turdus migratorius''
:::*'''siturpaspat''': ''bluebird'', spec=''Passeriformes Turdidae Sialia''
::*'''sturpaspat''': ''starling'', spec=''Passeriformes Sturnidae''
:::*'''misturpaspat''': ''myna bird'', spec=''Passeriformes Sturnidae Mino''
::*'''paspaspat''': ''sparrow'', spec=''Passeriformes Passer''
::*'''muspaspat''': ''old world flycatcher'', spec=''Passeriformes Muscicapidae''
:::*'''lumuspaspat''': ''nightingale'', spec=''Passeriformes Muscicapidae Luscinia''
::*'''parpaspat''': ''warbler'', spec=''Passeriformes Parulidae''
:::*'''separpaspat''': ''ovenbird'', spec=''Passeriformes Parulidae seiurus''
:*'''kupat''': ''cuckoo'', spec=''Cuculidae''
::*'''gekupat''': ''roadrunner'', spec=''Cuculidae Geococcyx''
::*'''cenkupat''': ''coucal'', spec=''Cuculidae Centropus''
::*'''ewkupat''': ''koel'', spec=''Cuculidae Eudynamys''
::*'''ankupat''': ''anis'', spec=''Cuculidae Crotofaga''
::*'''kukupat''': ''true cuckoo'', spec=''Cuculidae Cuculus''
'''pyat''': ''hawk, bird of prey, raptor'', spec=''Accipitridae''
:*'''kapyat''': ''vulture'', spec=''Accipitriformes Cathartidae''
:*'''stripyat''': ''strigid, owl'', spec=''Strigidae''
::*'''mestripyat''': ''screech owl'', spec=''Strigidae Megascops''
::*'''tistripyat''': ''barn owl'', spec=''Tytonidae Tyto''
:*'''akpyat''': ''eagle'', spec=''Accipitridae Aquilinae''
::*'''halakpyat''': ''bald eagle'', spec=''Accipitridae Haliaeetus leucocephalus''
:*'''cirpyat''': ''harrier'', spec=''Accipitridae Circus''
:*'''falpyat''': ''falcon'', spec=''Falconidae''
::*'''sparfalpyat''': ''kestrel'', spec=''Falconidae sparverius''
:*'''panpyat''': ''osprey'', spec=''Accipitriformes Pandionidae Pandion haliaetus''
:*'''gimpyat''': ''condor'', spec=''Accipitridae Gymnogyps''
:*'''konpyat''': ''kite'', spec=''Accipitridae Chondrohierax''
:*'''bupyat''': ''buzzard, hawk-buzzard'', spec=''Accipitridae Accipiter Buteo''
'''peit''': ''marine mammal''
:*'''cepeit''': ''whale'', spec=''Cetacea''
::*'''mecepeit''': ''humpback whale'', spec=''Cetacea Megaptera novaeangliae''
::*'''ficepeit''': ''sperm whale'', spec=''Cetacea Physeteridae''
::*'''delcepeit''': ''dolphin'', spec=''Cetacea delphinidae''
:::*'''lewdelcepeit''': ''beluga whale'', spec=''Cetacea Delphinapterus leucas''
::*'''focepeit''': ''porpoise'', spec=''Cetacea Phocoena''
:::*'''sifocepeit''': ''vaquita'', spec=''Cetacea Phocoena sinus''
::*'''mocepeit''': ''narwhal'', spec=''Cetacea Monodon monoceros''
::*'''orcepeit''': ''orca'', spec=''Cetacea Orcinus orca''
::*'''miscepeit''': ''baleen whale'', spec=''Cetacea Mysticeti''
:*'''pinpeit''': ''pinniped, marine mammal, seal, pec=Pinnipedia''
::*'''odopinpeit''': ''walrus'', spec=''Pinnipedia Odobenidae Odobenus rosmarus''
::*'''fopinpeit''': ''seal, earless seal, crawling seal'', spec=''Pinnipedia Phocidae Pusa''
::*'''muspinpeit''': ''marine otter'', spec=''Pinnipedia Mustelidae Lutra''
::*'''otpinpeit''': ''otary, sea lion, fur seal, pec=Pinnipedia Otaridae Otaria''
'''pyeit''': ''mollusk'', spec=''Mollusca''
:*'''cepyeit''': ''cephalopod'', spec=''Cephalopoda''
::*'''decepyeit''': ''squid'', spec=''Cephalopoda Decapodiformes''
:::*'''sedecepyeit''': ''cuttlefish, cuttles'', spec=''Cephalopoda Decapodiformes Sepiida''
:::*'''midecepyeit''': ''squid'', spec=''Cephalopoda Decapodiformes Myopsida''
:::*'''nawdecepyeit''': ''nautilis'', spec=''Cephalopoda Nautilidae''
:*'''okcepyeit''': ''octopus'', spec=''Cephalopoda Octopoda''
::*'''nawcepyeit''': ''nautilus'', spec=''Cephalopoda Nautilidae''
:*'''bipyeit''': ''oyster, bivalve'', spec=''Bivalvia''
::*'''osbipyeit''': ''oyster'', spec=''Bivalvia Ostreidae''
::*'''panbipyeit''': ''geoduck'', spec=''Bivalvia Panopea generosa''
::*'''pekbipeyit''': ''scallop'', spec=''Bivalvia Pectinidae''
::*'''mibipyeit''': ''mussel'', spec=''Bivalvia Mytilidae''
::*'''spibipyeit''': ''clam'', spec=''Bivalvia Spisula solidissima''
::*'''karbipyeit''': ''cockle'', spec=''Bivalvia Cardiidae''
:*'''gaspyeit''': ''snail, escargot, slug, gastropod'', spec=''Gastropoda''
::*'''halgaspyeit''': ''abalone'', spec=''Gastropoda Haliotidae''
::*'''stromgaspyeit''': ''conch, sea snail'', spec=''Gastropoda Strombidae''
::*'''angaspyeit''': ''sea hare'', spec=''Gastropoda Anaspidea''
::*'''ongaspyeit''': ''slug'', spec=''Gastropoda Onchidiacea''
::*'''cigaspyeit''': ''cowrie'', spec=''Gastropoda Cypraedidae''
'''piit''': ''crustacean, shellfish, arthropod'', spec=''Crustaceae''
:*'''depiit''': ''decapod'', spec=''Decapoda''
::*'''padepiit''': ''hermit crab'', spec=''Decapoda Paguroidea''
::*'''bradepiit''': ''crab'', spec=''Decapodia Brachyura''
::*'''nedepiit''': ''lobster'', spec=''Decapoda Nephropididae''
:::*'''amhonedepiit''': ''Maine lobster, American lobster'', spec=''Nephropidae Homarus americanus''
:::*'''nornedepiit''': ''langostino, red lobster, scampi spec=Nephropidae Nephrops norvegicus''
::*'''krandepiit''': ''shrimp'', spec=''Decapoda Crangonidae old=yapiit''
::*'''dendepiit''': ''prawn'', spec=''Decapoda Dendrobranchiata''
::*'''asdepiit''': ''crawdad, crayfish, crawfish, mudbug, yabbies spec=Decapoda Astacidea''
:*'''cirpiit''': ''barnacle'', spec=''Cirripedia''
'''pit''': ''fish'', spec=''Pisces''
:*'''bapit''': ''ray'', spec=''Batoidea''
:*'''gapit''': ''codfish, cod'', spec=''Gadidae''
:*'''awkapit''': ''goldfish'', spec=''Carassius auratus''
:*'''sprapit''': ''sprat'', spec=''Sprattus''
:*'''abpit''': ''seabream, sea bream, bream'', spec=''Abramis''
:*'''aymepit''': ''haddock'', spec=''Melanogrammus aeglefinus''
:*'''skofpit''': ''turbot'', spec=''Scophthalmus maximus''
:*'''cipit''': ''minnow, pinkeen'', spec=''Cyprinoidea''
::*'''karcipit''': ''carp'', spec=''Cyprinus carpio''
:*'''sipit''': ''catfish'', spec=''Siluriformes''
:*'''trutsalpit''': ''trout'', spec=''Salmo trutta''
:*'''anpit''': ''eel'', spec=''Anguiliformes''
:*'''merpit''': ''whiting'', spec=''Merlangius merlangus''
:*'''enpit''': ''anchovy'', spec=''Engraulidae''
:*'''tinpit''': ''tench'', spec=''Tincidae Tinca tinca''
:*'''sopit''': ''sole'', spec=''Soleidae''
:*'''hippit''': ''seahorse'', spec=''Hippocampus''
:*'''barpit''': ''barbel'', spec=''Barbus''
:*'''sarpit''': ''sardine'', spec=''Sardina''
:*'''merlucpit''': ''hake'', spec=''Merlucciidae''
:*'''perpit''': ''bass'', spec=''Percomorpha''
:*'''gaspit''': ''stickleback'', spec=''Gasterosteidae''
:*'''ispit''': ''marlin'', spec=''Istiophoridae''
:*'''lutpit''': ''red snapper'', spec=''Lutjanus''
:*'''klupit''': ''herring, clupeid'', spec=''Clupeidae''
'''pyit''': ''predatory fish''
:*'''plewpyit''': ''flounder'', spec=''Pleuronectoidea''
:*'''poypyit''': ''guppy, molly'', spec=''Poecilidae''
:*'''gapyit''': ''cod'', spec=''Gadidae Gadus''
:*'''acpyit''': ''sturgeon'', spec=''Acipenseridae''
:*'''sepyit''': ''shark'', spec=''Selachimorpha''
::*'''gasepyit''': ''tiger shark'', spec=''Selachimorpha Galeocerdonidae Galeocerdo cuvier''
::*'''skwasepyit''': ''angel shark'', spec=''Selachimorpha Squatinidae Squatina''
::*'''karlamsepyit''': ''great white shark'', spec=''Selachimorpha Lamnidae Carcharodon carcharias''
::*'''karkarsepyit''': ''bull shark, Zambezi shark'', spec=''Selachimorpha Carcharhinidae Carcharhinus leucas''
::*'''sfirsepyit''': ''hammerhead shark'', spec=''Selachimorpha Sphyrnidae''
:*'''sfipyit''': ''barracuda'', spec=''Sphyraenidae''
:*'''mipyit''': ''stingray'', spec=''Myliobatoidei''
:*'''epipyit''': ''grouper'', spec=''Epinephelinae''
:*'''ksipyit''': ''swordfish'', spec=''Xiphiidae Xiphias gladius''
:*'''salpyit''': ''salmon'', spec=''Salmonidae''
:*'''skompyit''': ''mackerel'', spec=''Scombridae''
:*'''tunpyit''': ''tuna'', spec=''Thunnus''
::*'''altunpyit''': ''yellowfin tuna'', spec=''Thunnus albacares''
::*'''tintunpyit''': ''bluefin tuna'', spec=''Thunnus Thynnus''
::*'''attunpyit''': ''blackfin tuna'', spec=''Tunnus atlanticus''
:*'''kopyit''': ''mahi-mahi, dolphin fish'', spec=''Coryphainidae Coryphaena hippurus''
:*'''perpyit''': ''perch'', spec=''Percidae''
::*'''sanperpyit''': ''walleye'', spec=''Percidae Sander vitreus''
:*'''serpyit''': ''piranha'', spec=''Serrasalmidae''
:*'''espyit''': ''pike'', spec=''Esocidae Esox lucius''
'''pilt''': ''marine invertebrate'', spec=''Cnidaria''
:*'''mepilt''': ''jellyfish, sea jelly, sea nettle'', spec=''Medusazoa''
:*'''lipilt''': ''horseshoe crab'', spec=''Limulidae''
:*'''ekpilt''': ''sea urchin'', spec=''Echinoidea''
:*'''anpilt''': ''coral'', spec=''Anthozoa''
:*'''porpilt''': ''sponge'', spec=''Portifera''
:*'''aspilt''': ''starfish'', spec=''Asteroidea''
{{small/end}}
==== Animal Sounds ====
: The animal noise verbs are formed by replacing the final '''t''' of the animal's name to '''der''' (''communicate, utter''), as in the chart below. If the noise is particularly "noisy", the verb '''teuder''' (''scream'') can be used instead of '''der'''.
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Animal Sounds
|-
! ANIMAL !! SOUND VERB
|-
| '''ekpet'''....''horse'' ||'''ekpeder'''....''neigh, whinny ''
|-
| '''bopet'''....''bull'' ||'''bopeder'''....''bellow ''
|-
| '''bopeot'''....''ox''||'''bopeoder'''....''low, moo, bellow ''
|-
| '''bopeyt'''....''cow''||'''bopeyder'''....''moo ''
|-
| '''afekpet'''....''ass'' ||'''afekpeder'''....''bray, hehaw ''
|-
| '''lakampot'''....''llama'' ||'''lakampoder'''....''growl ''
|-
| '''ovbopet'''....''sheep'' ||'''ovbopeder'''....''bleat ''
|-
| '''kabopet'''....''goat''||'''kabopeder'''....''bray ''
|-
| '''supet'''....''hog''||'''supepeder'''....''grunt, snort, oink ''
|-
| '''kapet'''....''dog'' ||'''kapeder'''....''bark '' ('''kapeteuder'''....''yelp'')
|-
| '''kapyot'''....''wolf'' ||'''kapyoder'''....''howl ''
|-
| '''vulkapyot'''....''fox'' ||'''vulkapyoder'''....''yelp ''
|-
| '''fepet'''....''cat'' ||'''fepeder'''....''mew, purr, meow ''
|-
| '''tipanfepyot'''....''tiger'' ||'''tipanfepyoder'''....''growl ''
|-
| '''yupet'''....''rabbit'' ||'''yupeder'''....''drum ''
|-
| '''skiropot'''....''squirrel'' ||'''skiropoder'''....''squeak ''
|-
| '''proropot'''....''raccoon'' ||'''proropoder'''....''chitter ''
|-
| '''ropet'''....''mouse'' ||'''ropeder'''....''squeak ''
|-
| '''famarpot'''....''koala'' ||'''famarpoder'''....''wail ''
|-
| '''lepanfepyot'''....''lion''||'''lepanfepyoder'''....''roar ''
|-
| '''hyaypyot'''....''hyena''||'''hyaypyoder'''....''laugh ''
|-
| '''awkapyot'''....''jackal'' ||'''awkapyoder'''....''howl ''
|-
| '''simpyot'''....''ape'' ||'''simpyoder'''....''gibber ''
|-
| '''urpyot'''....''bear''||'''urpyoder'''....''growl ''
|-
| '''elpot'''....''elephant''||'''elpoder'''....''trumpet ''
|-
| '''rancerpot'''....''reindeer''||'''rancerpoder'''....''bellow ''
|-
| '''alcerpot'''....''moose'' ||'''alcerpoder'''....''bellow ''
|-
| '''kampet'''....''camel'' ||'''kampeder'''....''grunt ''
|-
| '''gipot'''....''giraffe''||'''gipoder'''....''bleat ''
|-
| '''gekskwapyet'''....''gecko'' ||'''gekskwapyeder'''....''go to-key, make a gecko noise ''
|-
| '''serpyet'''....''snake'' ||'''serpyeder'''....''hiss ''
|-
| '''kipayet'''....''bat''||'''kipayeder'''....''screech ''
|-
| '''anpiyet'''....''frog''||'''ampiyeder'''....''rivet, croak ''
|-
| '''appelat'''....''bee'' ||'''appelader'''....''buzz ''
|-
| '''kopelt'''....''beetle''||'''kopelder'''....''drone ''
|-
| '''grilorpelt'''....''cricket'' ||'''grilorpelder'''....''chirp ''
|-
| '''pat'''....''bird'' ||'''pader'''....''chirp, tweet, coo, sing ''
|-
| '''gafapat'''....''rooster'' ||'''gafapader'''....''crow, cockadoodledoo ''
|-
| '''apayt'''....''hen'' ||'''apayder'''....''cluck ''
|-
| '''apatog'''....''chicken'' ||'''apatoder'''....''cheep ''
|-
| '''anpiat'''....''duck''||'''anpiader'''....''quack ''
|-
| '''ipat'''....''turkey''||'''ipader'''....''gobble ''
|-
| '''likopat'''....''pigeon'' ||'''likopader'''....''coo ''
|-
| '''akpyat'''....''eagle'' ||'''akpyader'''....''squawk ''
|-
| '''kapyat'''....''vulture''||'''kapyader'''....''scream ''
|-
| '''korpaspat'''....''raven, crow''||'''korpasder'''....''croak ''
|-
| '''stripyat'''....''owl''||'''stripyader'''....''hoot ''
|-
| '''cikorpaspat'''....''jay''||'''cikorpaspader'''....''chatter ''
|-
| '''strutopat'''....''ostrich'' ||'''strutopader'''....''bleep ''
|-
| '''siganpiat'''....''swan''||'''siganpiader'''....''cry ''
|-
| '''hirpaspat'''....''swallow'' ||'''dirpaspader'''....''squeal ''
|-
| '''psipat'''....''parrot''||'''psipader'''....''parrot ''
|-
| '''lumuspat'''....''nightingale'' ||'''lumuspader'''....''pipe ''
|-
| '''silpaspat'''....''warbler'' ||'''silpaspader'''....''warble ''
|-
| '''sfepiat'''....''penguin''||'''sfepiader'''....''honk ''
|-
| '''mapiot'''....''platypus''||'''mapioder'''....''chitter ''
|-
| '''anorpiot'''....''walrus'' ||'''anorpioder'''....''groan ''
|-
| '''focepeit'''....''porpoise''||'''focepeider'''....''whistle ''
|}
{{small/end}}
==== Animal Habitats ====
: By suffixing the final '''t''' of the animal name with '''tam'''....''house'', you get corresponding animal's living quarters:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Animal Habitats
|-
! ANIMAL !! LIVING SPACE
|-
| '''ekpet'''....''horse'' || '''ekpetam'''....''stable''
|-
| '''bopet'''....''ox'' || '''bopetam'''....''cowshed''
|-
| '''supet'''....''pig'' || '''supetam'''....''pigpen, pigsty''
|-
| '''kapet'''....''dog'' || '''kapetam'''....''doghouse''
|-
| '''lepanfepyot'''....''lion'' || '''lepanfepyotam'''....''den, lion's den''
|-
| '''forpelt'''....''ant'' || '''forpeltam'''....''anthill''
|-
| '''appelat'''....''bee'' || '''appelatam'''....''beehive''
|-
| '''pat'''....''bird'' || '''patam'''....''nest, bird's nest''
|-
| '''gafapat'''....''chicken'' || '''gafapatam'''....''henhouse, chicken coop''
|-
| '''urpyot'''....''bear'' || '''urpyotam'''....''lair''
|-
| '''pyot'''....''wild animal'' || '''pyotam'''....''cage''
|}
{{small/end}}
==== Animal Meats ====
: By changing the final letter of the animal's name to an '''l''', you get the meat eaten from that animal:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Animal Meats
! ANIMAL !! MEAT
|-
| '''bopet'''....''ox'' || '''bopel'''....''beef''
|-
| '''cerpot'''....''deer'' || '''cerpol'''....''venison''
|-
| '''supet'''....''hog'' || '''supel'''....''pork''
|-
| '''supetyob'''....''hog leg'' || '''supetyol'''....''ham''
|-
| '''ovbopet'''....''sheep'' || '''ovbopel'''....''mutton''
|-
| '''kapbopetud'''....''calf'' || '''kapbopetul'''....''veal''
|-
| '''gaspyeit'''....''snail''|| '''gaspyel'''....''escargot''
|}
{{small/end}}
==== Animal Groupings ====
: By adding '''yan'''....''aggregate'' or '''nyan'''....''crowd'' to the name of an animal, you get the animal grouping:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Animal Groupings
! ANIMAL !! GROUPING
|-
| '''pat'''....''bird'' || '''patyan'''....''flock''
|-
| '''bopeot'''....''ox'' || '''bopeotyan'''....''cattle''
|-
| '''pit'''....''fish'' || '''pityan'''....''school''
|-
| '''pelt'''....''insect'' || '''peltyan'''....''swarm''
|-
| '''gafapat'''....''cock'' || '''gafapatyan'''....''poultry''
|-
| '''pot'''....''animal'' || '''potnyan'''....''herd''
|-
| '''kapbopet'''....''goat'' || '''kapbopetyan'''....''goatherd''
|}
{{small/end}}
==== Animals' Babies ====
: The baby of an animal ends in '''ud''', which is a stub suffix for '''tud'''....''offspring, child'':
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Animals' Babies
! ANIMAL !! BABY
|-
| '''ekpet'''....''horse'' || '''ekpetud'''....''foal''
|-
| '''pat'''....''bird'' || '''patud'''....''chick''
|-
| '''bopeot'''....''ox'' || '''bopeotud'''....''calf''
|-
| '''kapet'''....''dog'' || '''kapetud'''....''pup''
|-
| '''fepet'''....''cat'' || '''fepetud'''....''kitten''
|-
| '''gafapat'''....''cock'' || '''gafapatud'''....''chick''
|-
| '''apyat'''....''eagle'' || '''apyatud'''....''eaglet''
|-
| '''ansanpiat'''....''goose'' || '''ansanpiatud'''....''gosling''
|-
| '''ovbopet'''....''ram'' || '''ovbopetud'''....''lamb''
|-
| '''kabopet'''....''goat'' || '''kabopetud'''....''kid''
|}
{{small/end}}
==== Animal's Pet Names ====
: To create an animal pet name, add the suffix '''if'''
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Animal Pet Names
! ANIMAL !! PET
|-
| '''kapet'''....''dog'' || '''kapetif'''....''puppy''
|-
| '''fepet'''....''cat'' || '''fepetif'''....''kitten''
|-
| '''gafapat'''....''cock'' || '''gafapatif'''....''chickadee''
|}
{{small/end}}
==== Animals' Diminutives and Augmentatives ====
: Other size suffixes can be appended as well:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Animal Diminutives and Augmentatives
! ANIMAL !! SIZE-VARIANT
|-
| '''kapet'''....''dog'' || '''kapetog'''....''doggy''
|-
| '''kapet'''....''dog'' || '''kapetayg'''....''cur''
|-
| '''kapet'''....''dog'' || '''kapetag'''....''hound''
|-
| '''ovbopetud'''....''lamb'' || '''ovbopetudog'''....''lambkin''
|-
| '''supet'''....''hog'' || '''supetog'''....''piggy''
|}
{{small/end}}
==== Animal-derived Adjectives ====
: Here is a chart showing the adjectives used to refer to animals:
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Animal Adjectives
|-
! ANIMAL NOUN !! ADJECTIVE
|-
| '''ekpet'''....''horse'' || '''ekpeta'''....''equine''
|-
| '''bopeot'''....''ox'' || '''bopeota'''....''bovine''
|-
| '''ovbopet'''....''ram'' || '''ovbopeta'''....''ovine''
|-
| '''supet'''....''hog'' || '''supeta'''....''porcine''
|-
| '''kapet'''....''dog'' || '''kapeta'''....''canine''
|-
| '''fepet'''....''cat'' || '''fepeta'''....''feline''
|-
| '''kapyot'''....''wolf'' || '''kapyota'''....''lupine''
|-
| '''pyet'''....''reptile'' || '''pyeta'''....''reptilian''
|-
| '''pat'''....''bird'' || '''pata'''....''avian''
|}
{{small/end}}
==== Other Words Derived from Animal Names ====
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Various Animal Derviations
|-
! ANIMAL NAME !! DERIVED WORD
|-
| '''apet'''....''horse'' || '''ekpetsim'''....''saddle''<br>'''ekpetyoyafut'''....''blacksmith''<br>'''ekpetyoyaper'''....''trot''<br>'''ekpetpar'''....''carriage''<br>'''ekpetapekam'''....''hippodrome''<br>'''fizekpetaput'''....''knight''<br>'''dopekpetaput'''....''mounted trooper''
|-
| '''appelat'''....''bee'' || '''appelatyel'''....''wax''<br>'''appelatil'''....''honey''<br>'''appelatam'''....''hive''<br>'''appelatyan'''....''swarm''
|-
| '''pat'''....''bird'' || '''patij'''....''egg''<br>'''patam'''....''nest''<br>'''patijber'''....''hatch''<br>'''patijsana'''....''oval''
|-
| '''pit'''....''fish'' || '''pitpexar'''....''lure''<br>'''pitgrunen'''....''angling''<br>'''pitpixut'''....''fisherman''<br>'''pittun'''....''ichthyology''<br>'''pitsana'''....''pisciform''<br>'''pituil'''....''fish sauce''<br>'''pitub'''....''fin''<br>'''pitaib'''....''fishbone''<br>'''piteab'''....''fisheye''<br>'''piteob'''....''jowl''<br>'''pitieb'''....''gill''<br>'''pitoyb'''....''mermaid''
|}
{{small/end}}
==== Animals' Hair ====
: The hair of an animal ends in '''tayeb'''....''hair'':
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Animal Hair
! ANIMAL !! HAIR
|-
| '''pat'''....''bird'' || '''patayeb'''....''feather''
|-
| '''ekpet'''....''horse'' || '''ekpetayeb'''....''horsehair, mane''
|-
| '''fepet'''....''cat'' || '''fepetayeb'''....''cat fur''
|-
| '''kampet'''....''camel'' || '''kampetayeb'''....''camelhair''
|-
| '''pit'''....''fish'' || '''pitayeb'''....''scale''
|-
| '''ansanpiat'''....''goose'' || '''ansanpiatayeb'''....''down, goose down''
|-
| '''urpyot'''....''bear'' || '''urpyotayeb'''....''fuzz''
|-
| '''ovbopet'''....''sheep'' || '''ovbopetayeb'''....''wool, fleece''
|}
{{small/end}}
==== Motion Verbs Based on Animals ====
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Animal Hair
! ANIMAL !! MOTION VERBS
|-
| '''ekpet'''....''horse'' || '''ekpeper'''....''gallop''<br>'''ekpetyoper'''....''trot''<br>'''ivekpetyoper'''....''cavort''<br>'''ekpepuyser'''....''prance''
|-
| '''pafapat'''....''peacock'' || '''pafapaper'''....''strut''
|-
| '''serpyet'''....''snake'' || '''serpyeper'''....''slither''
|-
| '''peyet'''....''worm'' || '''peyeper'''....''squirm, wriggle''
|-
| '''ropet'''....''mouse'' || '''ropetaper'''....''scurry''<br>'''ropetyoper'''....''patter''
|-
| '''pelt'''....''insect'' || '''pelper'''....''crawl''
|-
| '''pat'''....''bird'' || '''paper'''....''fly''
|-
| '''pit'''....''fish'' || '''piper'''....''swim''
|-
| '''palepelat'''....''butterfly'' || '''palepelaper'''....''flutter''
|-
| '''skiropot'''....''squirrel'' || '''skiropoper'''....''squirrel''
|-
| '''pitiyub'''....''fishtail'' || '''pitiyuper'''....''fishtail''
|-
| '''kabopot'''....''mountain goat'' || '''kabopoper'''....''skulk''
|}
{{small/end}}
==== Gendered Counterparts of Animals ====
::* The word for the <u>female</u> counterpart of an animal is created by inserting a '''y''' before the final '''t''' of the animal's adult name.
::* The word for the specifically <u>male</u> counterpart of an animal is created by placing a '''w''' after the '''p''' of the animal's adult name, unless the '''p''' is followed by a '''y''' such as in '''pyot''', in which case the '''w''' goes before the final '''t''', eg. '''gapyo<u>w</u>t'''....''papa bear''.
::* The word for the <u>gelded</u> male counterpart of an animal is created by placing an '''o''' vowel before the final '''t''' of the animal's adult male name.
::* To form a mixed breed, put the appropriate vowels that precede the '''p''' of the two animal's adult names in a combination. For example, '''kabekpeyt'''....''mare'' + '''afekpet'''....''ass'' = '''afkabekpet'''....''mule''.
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Animal Gendered Counterparts
! ANIMAL !! MALE !! FEMALE !!NEUTERED OR MIXED
|-
| '''ekpet'''....''horse'' || '''ekpwet'''....''stallion'' || '''ekpeyt'''....''mare''|| '''ekpweot'''....''gelding''
|-
| '''bopet'''....''bovine, cattle'' || '''bopwet'''....''bull, ox'' ||'''bopeyt'''....''cow''||'''bopweot'''....''steer''
|-
| '''afekpet'''....''ass'' || '''afekpwet'''....''donkey'' || '''afekpeyt'''....''she-ass, jenny''|| '''afkabekpet'''....''mule''
|-
| '''kabopet'''....''goat'' || '''kabopwet'''....''buck'' || '''kabopeyt'''....''nanny, doe''||'''kabopweot'''....''wether''
|-
| '''ovbopet'''....''sheep'' || '''ovbopwet'''....''ram'' || '''ovbopeyt'''....''ewe'' ||'''ovbopweot'''....''wether''
|-
| '''supet'''....''pig, swine'' || '''supwet'''....''hog'' || '''supeyt'''....''sow''||'''supweot'''....''barrow''
|-
| '''kapet'''....''dog'' || '''kapwet'''....''hound'' || '''kapeyt'''....''bitch''||
|-
| '''fepet'''....''cat'' || '''fepwet'''....''tom'' || '''fepeyt'''....''tabby'' ||
|-
| '''lapet'''....''rabbit'' || '''lapwet'''....''buck''||'''lapeyt'''....''doe rabbit''||
|-
| '''lepanpyot'''....''lion'' || ||'''lepanpyoyt'''....''lioness''||
|-
| '''kapyot'''....''wolf'' || '''kapyowt'''....''he-wolf''||'''kapyoyt'''....''wolverine, she-wolf''||
|-
| '''vulkapyot'''....''fox'' || '''vulkapyowt'''....''tod''||'''vulkapyoyt'''....''vixen''||
|-
| '''elpot'''....''elephant'' || ||'''elpoyt'''....''cow elephant''||
|-
| '''gafapat'''....''cock'' || '''gafapwat'''....''rooster'' || '''gafapayt'''....''hen''||'''gafapweot'''....''capon''
|}
{{small/end}}
==== Interesting Analogies from Animal/Human Body Parts ====
:* '''teub'''....''mouth''
::* '''pateub'''....''beak, bill''
::* '''poteub'''....''mug''
::* '''dizeub'''....''grin''
::* '''mimeub'''....''bay''
::* '''mipeub'''....''estuary''
::* '''zyomileub'''....''debouch''
:* '''teib'''....''nose''
::* '''poteib'''....''snout''
::* '''elpoteib'''....''elephant trunk''
::* '''meib'''....''promontory''
::* '''tilabeib'''....''nipple''
::* '''kampeteib'''....''camel hump''
::* '''tomazeib'''....''bastion''
::* '''tomeib'''....''marquee, ledge, balcony''
::* '''tyebeib'''....''brain lobe''
::* '''teebeib'''....''ear lobe''
::* '''mufyegeib'''....''nozzle''
:* '''tayeb'''....''hair''
::* '''patayeb'''....''feather, plume''
::* '''pitayeb'''....''scale''
::* '''piatayeb'''....''down''
::* '''petayeb'''....''fur''
::* '''nemuspotayeb'''....''sable, mink''
::* '''drayeb'''....''folio''
::* '''fayeb'''....''leaf, foil''
::* '''infayeb'''....''clover, club''
::* '''fimofayeb'''...''fig leaf''
::* '''mesayeb'''....''table leaf''
::* '''mugayeb'''....''foil''
::* '''masofayeb'''....''carpet pile''
::* '''ovbopetayeb'''....''fleece''
::* '''sonilkayeb'''....''tin foil''
::* '''tabijayeb'''....''cotyledon''
::* '''polvayeb'''....''frond''
::* '''arfayeb'''....''palm leaf''
::* '''vabayeb'''....''blade of grass''
::* '''vifayeb'''....''grape leaf''
::* '''vosayeb'''....''petal''
::* '''uopetayeb'''....''wool, fleece''
:* '''tulob'''....''nail''
::* '''patulob'''....''claw''
::* '''appelatulob'''....''stinger''
::* '''pifulob'''....''pine needle''
::* '''fulob'''....''prick''
::* '''vulob'''....''thorn''
::* '''yomulob'''....''icicle''
:* '''tyoyab'''....''foot''
::* '''ekpetyoyab'''....''hoof''
::* '''insyoyab'''....''tripod''
::* '''supetyoyab'''....''totter''
::* '''potyoyab'''....''paw''
::* '''fyoyab'''....''stump''
::* '''syoyab'''....''pod''
::* '''vyoyab'''....''stub''
:* '''tayob'''....''skin''
::* '''potayob'''....''hide''
::* '''piitayob'''....''shell''
::* '''pyetayob'''....''slough''
::* '''povayob'''....''bran''
::* '''mimpurayob'''....''ship hull''
::* '''abayob'''....''crust''
::* '''fayob'''....''bark''
::* '''vayob'''....''peel, husk, rind''
::* '''veeybayob'''....''shuck''
::* '''veebayob'''....''bur''
::* '''vosayob'''....''sepal''
::* '''anbopoytayob'''....''suede''
::* '''patijayob'''....''eggshell''
::* '''dopayob'''....''armor''
:* '''tub'''....''arm''
::* '''patub'''....''wing''
::* '''pitub'''....''fin''
::* '''potub'''....''paw''
::* '''peitub'''....''flipper''
::* '''mapatub'''....''fan blade''
::* '''milpatub'''....''hydrofoil''
::* '''mimtub'''....''estuary''
::* '''boltub'''....''boom''
::* '''byoxtub'''....''gibbet''
::* '''enbirtub'''....''forceps, tongs''
::* '''tomub'''....''wing (of a building)''
::* '''zyupatub'''....''propeller''
::* '''zyuptub'''....''turnstile''
:* '''teeb'''....''ear''
::* '''draveeb'''....''tab''
::* '''seeb'''....''flap''
=== '''SAR''' ''tool'', '''PAR''' ''vehicle'' ===
: The base words having to do with tools, devices, and machines all begin in '''s''' for ''thing'' and end in '''r''' for ''tool''. Vehicles are mobile machines, and therefore their stems begin with '''p''' for ''mobile''. Specific tools and machines are created by appending one of the stub suffixes to the stem of the word that describes what the tool or machine does. For example, '''makijar''', meaning ''electrical switch, starter'' is composed of '''mak''' (''electricity'') and '''ij-''' (''start'').
: Summary:
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Stub Suffixes for Tools and Machines
|-
! STANDALONE WORD !! STUB SUFFIX !! MEANING
|-
| '''sar''' || '''-ar''' || ''instrument, tool, device (default)''
|-
| '''sir'''|| '''-ir''' || ''apparatus, hand-driven machine''
|-
| '''sor''' || '''-or''' || ''machine, powered machine''
|-
| '''sur''' || '''-ur''' || ''motor, engine''
|}
{{small/end}}
: Note: the stub suffixes other than '''-ar''' (the default) are used only to distinguish words like ''bicycle'' and ''motorcycle'' or ''needle'' and ''loom'', etc.
==== Vehicles ====
[[File:Finnish bike symbol.svg|thumb|]]
{{small/top}}
: Vehicle words end in '''par''', where the initial '''p''' signifies ''going'' and the final '''ar''' indicates ''instrument'', unless there is a need for further distinction, in which case, the ending may be '''-ir''', '''-or''', or '''-ur'''.
::{| class="wikitable" style="background:lightyellow"
|+ Vehicles
|-
! VEHICLES
|-
| '''par'''....''cart''<br>'''pir'''....''carriage''<br>'''pur'''....''car''
|-
| '''mampur'''....''airplane''
|-
| '''mempur'''....''automobile, car''
|-
| '''mimpar'''....''boat''<br>'''mimpir'''....''motorboat''<br>'''mimpur'''....''ship''
|-
| '''mumpur'''....''subway''
|-
| '''mompur'''....''spaceship''
|-
| '''kyinpar'''....''dolly''<br>'''kyinpir'''....''cart, wagon''<br>'''anzyukyinpir'''....''wheelbarrow''<br>'''kyinpur'''....''truck''
|-
| '''bixpur'''....''train''
|-
| '''yuzpur'''....''bus''
|-
| '''enzyukpar'''....''bicycle''<br>'''enzyukpir'''....''scooter''<br>'''enzyukpor'''....''motorcycle''
|-
| '''inzyukpar'''....''tricycle''
|-
| '''kipar'''....''skate''<br>'''kipir'''....''sled''<br>'''kipur'''....''sleigh''
|}
{{small/end}}
==== Tools and Machines ====
[[File:20060513 toolbox.jpg|thumb|]]
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Tools and Machines
|-
! TOOLS AND MACHINES
|-
| '''drar'''....''pencil''<br>'''drir'''....''typewriter''<br>'''drur'''....''printer''<br>'''dodrur'''....''press''
|-
| '''syaagar'''....''calculator''<br>'''syaagir'''....''computer''
|-
| '''vyixar'''....''brush''<br>'''vyixir'''....''sweeper''<br>'''vyixur'''....''vacuum cleaner''
|-
| '''yibdalir'''....''telephone''
|-
| '''yibsinibar'''....''television (set)''
|-
| '''yaoblir'''....''elevator''
|-
| '''jwatuar'''....''alarm''
|-
| '''belir'''....''carriage, wagon''<br>'''apetbixwa belir'''....''buggy, horse-drawn carriage''<br>'''belur'''....''truck''
|}
{{small/end}}
: To create the verb that means to use any of these instruments, simply suffix the word with '''-er''', eg.
::* '''yibdalir'''....''telephone'' ---> '''yibdalirer'''....''to phone''
::* '''drir'''....''typewriter'' ---> '''drirer'''....''to type''
=== '''SOM''' ''furniture'' ===
: The stems in this family begin with '''s''', meaning ''thing'', and end in '''m''', meaning ''place''. The words all have to do with furniture.
: Summary:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ S-M Core Words
|- valign=top
! FURNITURE BASE WORD || DERIVATIVES
|-
| '''som'''....''furniture''|| '''somber'''....''furnish''<br>'''somxut'''....''carpenter''<br>'''vyilxensom'''....''sink''<br>'''miltumsom''' ....''toilet''<br>'''maksom'''....''appliance''<br>'''mansom'''....''light fixture''<br>'''somyan'''....''furnishings''<br>'''milamsom'''....''water heater''<br>'''malomsom'''....''air-conditioner''
|-
| '''sam'''....''armoire, chest''|| '''telarsam'''....''china cabinet''<br>'''telsam'''....''cupboard''<br>'''tovsam'''....''chest of drawers''<br>'''samnyem'''....''drawer''<br>'''povelsom'''....''pantry''
|-
| '''sem'''....''table''|| '''semof'''....''table cloth''<br>'''tilsem'''....''bar''<br>'''yagsem'''....''countertop''<br>'''yuzsem'''....''round table''<br>'''dresem'''....''desk''<br>'''dalsem'''....''pulpit''<br>'''tabsem'''....''bier''<br>'''fyasem'''....''altar''<br>'''tularsem'''....''buffet''<br>'''dyedsem'''....''lectern''<br>'''syagsem'''....''counter (cashier stand)''
|-
| '''sim'''....''chair'' || '''zaopsim'''....''rocking chair''<br>'''yagyugsim'''....''couch''<br>'''zyupsim'''....''swivel chair''<br>'''eynsim'''....''stool''<br>'''edebsim'''....''throne''<br>'''yagyigsim'''....''bench''<br>'''tobotsim'''....''high chair''<br>'''apetsim'''....''saddle''<br>'''fyadilsim'''....''pew''<br>'''maksim'''.....''electric chair''<br>'''teadutsim'''....''witness box''<br>'''tujyagsim'''....''sleep sofa''<br>'''zopsim'''....''recliner''<br>'''yigsim'''....''hard chair''<br>'''agsim'''....''arm chair''<br>'''simber'''....''to seat''<br>'''simper'''....''to sit''
|-
| '''sum'''....''bed''|| '''suam'''....''cushion''<br>'''suaym'''....''pillow''<br>'''suav'''....''pillow case''<br>'''suem'''....''mattress''<br>'''suev'''....''sheet''<br>'''suef'''....''blanket''<br>'''absuef'''....''bedspread''<br>'''obsuev'''....''liner''<br>'''suim'''....''box spring''<br>'''summuf'''....''bedpost''<br>'''eonsum'''....''twin bed''<br>'''eynsum'''....''day bed''<br>'''igsum'''....''cot''<br>'''suym''' ....''couch''<br>'''nyanxwa sum'''....''bunk bed''<br>'''milsum'''....''waterbed''<br>'''tabsum'''....''sleeping bag''<br>'''pyoxwa sum'''....''hammock''<br>'''malsum'''....''airbed''<br>'''summanar'''....''bed lamp''<br>'''sumber'''....''put to bed''<br>'''sumper'''....''go to bed''
|}
{{small/end}}
==== SOM Words ====
: The base word '''som''' means ''furniture, appliance''. Here are some derived words:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''abtafsom'''....''coat hanger, coat rack, portmanteau''
* '''dezsom'''....''prop''
* '''dezsomyan'''....''props, stage props, theater props''
* '''dresom'''....''desk, secretary''
* '''dyezsomyan'''....''movie props, movie set''
* '''dyezsom'''....''movie prop''
* '''fyusulsom'''....''potty, toilet''
* '''gasomxen'''....''revamping''
* '''gasomxer'''....''revamp''
* '''gasomxwa'''....''revamped''
* '''grasomber''''....''overfurnish''
* '''grosomber'''....''underfurnish''
* '''iksombwa'''....''fully-furnished''
* '''jasombwa'''....''pre-furnished''
* '''maksom'''....''appliance, electrical appliance''
* '''mansom'''....''lamp, light fixture''
* '''milamsom'''....''water-heater''
* '''milsom'''....''sink''
* '''milufsom'''....''commode, crapper, toilet''
* '''milyepim milsom'''....''bathroom sink''
* '''milyepsom'''....''bath tub, bathtub, tub''
* '''nyebsom'''....''chest, trunk''
* '''osombwa'''....''unfurnished''
* '''oyeba fyusulsom'''....''outhouse, port-a-potty''
* '''som'''....''furnishing, furniture, item of furniture''
* '''sombeler'''....''move''
* '''sombelen nox'''....''moving expense''
* '''sombelpur'''....''moving truck, moving van''
* '''sombelut'''....''mover''
* '''sombelutyan'''....''moving firm''
* '''somben'''....''furnishing''
* '''somber'''....''furnish''
* '''sombut'''....''furnisher''
* '''sombwa'''....''furnished''
* '''sompiya'''....''moved out''
* '''sompuya'''....''moved in''
* '''sompuer'''....''move in''
* '''somsaxam'''....''carpenter's shop''
* '''somsaxen tuzutyan'''....''carpenters’ guild''
* '''somsaxen'''....''carpentry''
* '''somsaxer'''....''do carpentry, make furniture''
* '''somsaxut'''....''carpenter, furniture maker''
* '''somsaxuta ingunar'''....''gnomon''
* '''somuper'''....''move in''
* '''somyan'''....''furnishings, furniture, real estate''
* '''tamsomyan'''....''house furnishings''
* '''teubilsom'''....''spittoon''
* '''tilsom'''....''refreshment stand''
* '''tiyabilsom'''....''pisser, urinal, pissoir''
* '''tyoibsom'''....''kneeler''
* '''ukxer ha milufsom'''....''flush the toilet''
* '''vyilsom'''....''wash basin, washbasin''
* '''yansom'''....''furnishings''
* '''yixer ha milufsom'''....''use the toilet''
</div>
{{small/end}}
==== SAM Words ====
: The root word '''sam''' means ''cabinet, armoire, chest''
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''aber sammoys'''....''put on a shelf''
* '''aybmagsammoys'''....''mantel, mantelpiece''
* '''bekulsam'''....''medicine cabinet''
* '''dreunyebsam'''....''filing cabinet''
* '''dyes sammoys'''....''bookshelf''
* '''dyes sammoysyan'''....''book shelving, bookcase, bookstack''
* '''dyessam'''....''bookcase, bookstall''
* '''faosam'''....''cabinet''
* '''faosamsaxen'''....''cabinetmaking''
* '''faosamsaxut'''....''cabinetmaker''
* '''faosamtyen'''....''cabinetmaking, cabinetry''
* '''faosamtyenut'''....''cabinetmaker''
* '''milnov sammoys'''....''towel rack''
* '''mumaozyeg sammoys'''....''stempel''
* '''naabdrafsam'''....''file cabinet, filing cabinet''
* '''naabsam'''....''filing cabinet''
* '''nexun ay ojbuen nasam'''....''savings and loan bank''
* '''neyxen sammoysyan'''....''stock shelving''
* '''novsam'''....''linen chest''
* '''nyemsam'''....''chest of drawers, coffer''
* '''nyexen sammoys'''....''stock shelf, storage shelf''
* '''nyexen sammoysyan'''....''storage shelving''
* '''ober sammoys'''....''take off a shelf''
* '''obsammoysa'''....''off-the-shelf''
* '''ovol sam'''....''pantry''
* '''oybposam'''....''substation''
* '''sam'''....''armoire, chest of drawers''
* '''samag'''....''tallboy''
* '''sammanar'''....''lamp''
* '''sammoys nyen'''....''shelf stock''
* '''sammoys'''....''shelf''
* '''sammoysaba'''....''on-the-shelf''
* '''sammoysaber'''....''put on the shelf, shelve''
* '''sammoysabut'''....''shelf clerk, shelver''
* '''sammoysben'''....''shelving, stocking''
* '''sammoysber'''....''shelve, stock''
* '''sammoysbwa'''....''shelved''
* '''sammoystej'''....''shelf life''
* '''sammoysyan'''....''etagere, rack, shelves, shelving, stack''
* '''samnyeb'''....''drawer''
* '''samnyebyan'''....''set of drawers''
* '''syagnas samnyeb'''....''cash drawer''
* '''telsam'''....''cupboard''
* '''tofsam'''....''chest of drawers, dresser, wardrobe''
* '''tolarsam'''....''china cabinet''
* '''tolmek sammoys'''....''spice rack''
* '''tolsam'''....''food buffet''
* '''toofsam'''....''clothes dresser''
* '''tovsam'''....''chest''
* '''tyoyab sam'''....''footlocker''
* '''vifaosamyan'''....''cabinetry, cabinetwork''
* '''yaba tofsam'''....''highboy''
* '''yazzansam'''....''breakfront''
* '''yijber sammoys'''....''clear a shelf''
* '''yobsam'''....''lowboy''
* '''yomsam'''....''freezer, fridge, ice chest, refrigerator''
* '''zyefsam'''....''vitrine''
</div>
{{small/end}}
==== SEM Words ====
: The core concepts are:
:* '''sem'''....''table''
::* '''seem'''....''counter, panel, bar''
::* '''semes'''....''board''
::* '''semog'''....''tablet, shelf''
::* '''seym'''....''tablet, pad, slate''
::* '''seymog'''....''bar''
: Here are some important deratives:
:* '''sem'''....''table''
::* '''abu ha sem'''....''onto the table''
::* '''ab ha sem'''....''on the table, on top of the table''
::* '''abaxlen sem'''....''massage table''
::* '''abektuna sem'''....''surgical table''
::* '''ebpovelsem'''....''smorgasbord''
::* '''buien sem'''....''trading table''
::* '''dalsem'''....''tribune''
::* '''dresem'''....''desk, writing desk''
::* '''fyasem'''....''altar''
:::* '''fyasem abof'''....''baldacchin, baldachin''
:::* '''fyasem abtom'''....''baldacchin, baldachin''
:::* '''fyasem yuxlut'''....''altar server''
:::* '''fyasem zomays'''....''altarpiece, reredos''
:::* '''belyafwa fyasem'''....''viaticum''
::* '''fyozsem'''....''pillory''
::* '''gumyegek sem'''....''billiards table, pool table''
::* '''ifek sem'''....''game table''
::* '''jabexer sem'''....''reserve a table''
::* '''jwaber ha sem'''....''set the table''
::* '''nasvek sem'''....''betting table, gambling table''
::* '''nunuien sem'''....''trading table''
::* '''pyexler ha sem'''....''pound the table''
::* '''sem vafil'''....''table wine, vin de table''
::* '''sember'''....''seat at the table''
:::* '''sembun'''....''table setting''
::* '''semmem'''....''mesa''
::* '''semnof'''....''serviette''
::* '''semov'''....''table cloth, table linen, tablecloth''
::* '''semper'''....''sit down at the table''
:::* '''sempya'''....''seated at the table''
::* '''sempier'''....''get up from the table''
::* '''semsan'''....''trapezoid''
::* '''semub'''....''flap, table flap''
::* '''semvyifxut'''....''busboy''
:::* '''semvyifxuyt'''....''busgirl''
::* '''tulsem'''....''buffet, dinner table''
::* '''tyalagsem'''....''banquet table''
::* '''tyalsem'''....''dining table''
::* '''ujponyem sem'''....''bier''
::* '''vyifxer ha sem'''....''clear the table''
::* '''vyilxen sem'''....''washstand''
::* '''xemsem'''....''office desk''
::* '''yaba fyasem'''....''high altar''
::* '''yagsemabun'''....''benchtop, countertop''
::* '''yanotpur posem'''....''bus stop''
::* '''yansemtob'''....''tableman''
::* '''yexsem'''....''desk, work desk''
::* '''yibdal kyaxarsem'''....''telephone switchboard''
::* '''zyua sem ebdal'''....''round table discussion''
::* '''zyupea sem'''....''dumbwaiter''
::* '''zyupsem'''....''carousel''
:* '''seem'''....''counter, panel, bench''
::* '''byemser be seem'''....''sit at the bar, sit at the counter''
::* '''tilseem'''....''bar, drink counter''
::* '''faob seem'''....''wood panel''
::* '''izbex seem'''....''control panel''
::* '''nixbuen seem'''....''sales counter''
::* '''syagseem'''....''counter''
:::* '''syagseemut'''....''counter clerk, counterman, teller''
::* '''tilseem'''....''counter, drink counter, bar''
:::* '''tilseemtim'''....''barroom''
:::* '''tilseemut'''....''barista, barkeep, barkeeper, bartender''
::::* '''tilseemuyt'''....''barmaid''
::* '''yanupseem'''....''panel''
:::* '''yanupseem ebdal'''....''panel discussion''
:::* '''yanupseemut'''....''panelist''
::* '''yevdibutseem'''....''bench''
:* '''semes'''....''board, tablet''
::* '''buxnufsemes'''....''keyboard''
:::* '''buxnufsemesut'''....''keyboarder, keyboardist''
::* '''ifek semes'''....''game board''
::* '''kusemes'''....''credenza, sideboard''
:::* '''kusemes tulyan'''....''buffet''
::* '''makyuijarsemes'''....''switchboard''
::* '''novzyiar semes'''....''ironing board''
::* '''raduzar semes'''....''keyboard, piano keyboard''
:* '''semog'''....''shelf, slate''
::* '''ensemog'''....''diptych''
:* '''seym'''....''desk, small table, stand''
::* '''abseym'''....''desktop''
::* '''buxnufseym'''....''keypad''
::* '''dalseym'''....''dais, podium, pulpit''
:::* '''dodalseym'''....''dais, rostrum, speaker's platform''
::* '''dyeutseym'''....''lectern''
::* '''fyadalseym'''....''pulpit''
::* '''ilukseym'''....''drainboard''
::* '''manar seym'''....''lamp stand''
::* '''uka seym'''....''tabula rasa''
::* '''mojseym'''....''nightstand''
::* '''syagnasiut seym'''....''cashier desk''
::* '''dyeutseym'''....''lectern''
::* '''zyadalseym'''....''pulpit''
::* '''zyiseym'''....''platter''
:* '''seymog'''....''bar''
::* '''seymog bi katefyel'''....''bar of chocolate''
::* '''seymog bi vyixyel'''....''bar of soap''
==== SIM Words ====
: The root word '''sim''' means ''chair''. The word '''siim''' means ''bench''. Here are some derivatives:
:* '''agsim'''....''armchair''
:* '''ekpetsim'''....''saddle''
::* '''nyufekpetsim'''....''packsaddle''
::* '''ekpetsimaper'''....''to saddle up''
:* '''aybsimper'''....''preside over''
:* '''bokatsim'''....''sickbed''
:* '''buxsim'''....''push chair, pushchair''
:* '''doyevsim'''....''bench''
:* '''eatsim'''....''pillion''
:* '''ebmep sim'''....''aisle seat''
:* '''edebsim'''....''throne''
:** '''edebsimber'''....''enthrone, install on the throne''
:** '''edebsimober'''....''dethrone''
:* '''entoba sim'''....''love seat, loveseat''
:* '''eynsim'''....''bar stool, footstool, stool''
::* '''tilam eysim'''....''bar stool''
::* '''tyoyab eysim'''....''footstool''
:* '''faobsim'''....''wooden chair''
:* '''fyadilsim'''....''pew''
:* '''izzonsim'''....''straight-back chair''
:* '''kua gon sim'''....''side section seat''
:* '''kuapetsim'''....''sidesaddle''
:* '''amar sim'''....''deck chair''
:* '''maka sim'''....''electric chair''
:* '''mimkum sim'''....''beach chair''
:* '''mugsim'''....''metal chair''
:* '''nyemsim'''....''box seat''
:* '''ofyujea sim'''....''camp chair, folding chair''
:* '''oyebema yagsim'''....''chaise lounge, deck chair''
:* '''oyebsim'''....''deck chair''
:* '''parsim'''....''shay''
:* '''ponsim'''....''chaise lounge''
:* '''purexuta sim'''....''driver's seat''
:* '''pursim'''....''car seat, coach seat''
:* '''sim'''....''chair, seat''
:* '''sim zetif'''....''seat belt''
:* '''simaper'''....''to sit down''
:* '''simbelar'''....''chairlift''
:* '''simber'''....''assign a seat''
:* '''simbeser'''....''remain seated, sit''
:* '''simbexer'''....''reserve a seat''
:* '''simbiya'''....''seated, sitting''
:* '''simbier'''....''have a seat, occupy a seat oneself, sit down, take a seat''
:* '''simbuer'''....''offer a seat, usher''
:** '''simbuut'''....''usher''
:* '''simim'''....''sitting room''
:* '''simober'''....''de-seat, take away one's seat''
:* '''simoker'''....''lose a seat, lose one's seat''
:* '''simoper'''....''abdicate, get up from a chair''
:* '''simper'''....''have a seat, sit down''
:* '''simpier'''....''get up from one's seat''
:* '''simpya'''....''seated''
:* '''simyag'''....''daybed''
:* '''teadutsim'''....''witness box, witness chair''
:* '''toj sim'''....''death chair''
:* '''tubsim'''....''armchair''
:* '''tudetsim'''....''highchair''
:* '''tuj yagsim'''....''sleep sofa''
:* '''tumsimyan'''....''loge''
:* '''tyal yigsim'''....''dining room chair''
:* '''uka sim'''....''vacant seat''
:* '''utsimber'''....''seat oneself''
:* '''faveel nyev sim'''....''beanbag chair''
:* '''uzzonsim'''....''bucket seat''
:* '''yabzona sim'''....''high-back chair''
:* '''yagpen sim'''....''lounge chair''
:* '''yagsim'''....''bench, settee''
:* '''yagyigsim'''....''bench, divan''
:* '''yagyugsim'''....''couch, divan, sofa''
:* '''yansimbien'''....''synod''
:* '''yaopsim'''....''seesaw''
:* '''yexsimyag'''....''workbench''
:* '''yigzonsim'''....''hard back chair''
:* '''yobeysim'''....''taboret, tabouret, tabret''
:* '''yobzonsim'''....''low-back chair''
:* '''yugsim'''....''easy chair''
:* '''zana sim'''....''front seat''
:* '''zaobasea sim'''....''rocker, rocking chair''
:* '''zaopsim'''....''swing''
:* '''zea gon sim'''....''center section seat''
:* '''zona sim'''....''back seat''
:* '''zoykixea sim'''....''recliner, reclining chair''
:* '''zyasim'''....''armchair''
:* '''zyuksim'''....''wheel chair, wheelchair''
:* '''zyupsim'''....''swivel chair''
:* '''siim'''....''bench''
:* '''yevdibutsiim'''....''bench in a court of law''
==== SUM Words ====
:* '''sum'''....''bed''
::* '''suam'''....''pillow, cushion''
:::* '''suaf'''....''slipcover''
:::* '''suav'''....''pillowcase''
::* '''suem'''....''mattress, pad''
:::* '''absuemof'''....''comforter''
:::* '''absuef'''....''bedspread''
:::* '''suemof'''....''blanket''
:::* '''gyosuef'''....''duvet''
:::* '''suemov'''....''sheet''
:::* '''suim'''....''bed springs''
: Here are some different types of beds:
:* '''abof sum'''....''canopy bed''
:* '''antoba sum'''....''single bed''
:* '''zaobassum'''....''cradle''
:* '''belsum'''....''litter, stretcher''
:* '''tudetsum'''....''crib''
:* '''bokam sum'''....''hospital bed''
:* '''byoxwa sum'''....''hammock''
:* '''entoba sum'''....''twin bed''
:* '''eynsum'''....''day bed''
:* '''faosum'''....''coffin, casket''
:* '''gaba sum'''....''extra bed''
:* '''gyoumvibsum'''....''palliasse''
:* '''igsum'''....''cot''
:* '''intoba sum'''....''queen-size bed''
:* '''kapetsum'''....''dogbed''
:* '''koxwa sum'''....''hide-a-bed''
:* '''kusum'''....''bun, cot, side bed''
:* '''malsum'''....''airbed''
:* '''massum'''....''murphy bed, wall bed, banquette''
:* '''milsum'''....''water bed''
:* '''mimparsum'''...''bunk''
:* '''nyaxwa sum'''....''bunk bed''
:* '''oyebixwa sum'''....''murphy bed, truckle bed''
:* '''pata vubsum'''....''bird's nest''
:* '''patayeybsum'''....''featherbed''
:* '''pop sum'''....''berth''
:* '''potsum'''....''lair''
:* '''simsum'''....''sofabed''
:* '''tadsum'''....''nuptial bed, bridal bed''
:* '''tamofsum'''....''cot bed, sleeping bag''
:* '''teluarsum'''....''crib, creche''
:* '''tojsum'''....''deathbed''
:* '''tyoyasum'''....''ottoman''
:* '''ujpon belsum'''....''bier''
:* '''umvib tudetsum'''....''bassinet''
:* '''umvibsum'''....''paillasse, pallet''
:* '''unaomuf sum'''....''fourposter''
:* '''untoba sum'''....''king-size bed''
:* '''vubsum'''....''nest''
:* '''yabwa sum'''....''loft bed''
:* '''yantada sum'''....''conjugal bed''
:* '''yaobsum'''....''bunk bed''
:* '''yobsum'''....''divan''
:* '''yomkipur sum'''....''sleigh bed''
:* '''zaobassum'''....''cradle''
:* '''zyinedsum'''....''platform bed''
:* '''zyua sum'''....''round bed''
:* '''zyuksum'''....''trundle bed, truckle bed, rollaway bed''
:* '''zyukbelsum'''....''gurney''
=== '''SON''' ''matter, issue'' ===
: The base word '''son''' means ''(abstract) thing, matter, issue''.
::* '''son'''....''matter, issue''
::* '''san'''....''shape, form''
:::* '''saun'''....''kind, type''
::* '''sen'''....''essence''
::* '''sin'''....''image, picture''
:::* '''siyn'''....''mark''
:::* '''siun'''....''sign''
::* '''sun'''....''thing''
::* '''suan'''....''element''
::* '''syan'''....''class''
::* '''syen'''....''style''
::* '''syin'''....''subject''
::* '''syun'''....''object''
: Here are some derivatives of '''son''':
:* '''son'''....''matter, issue, affair''
::* '''avson'''....''sake''
:::* '''av ha avson bi'''....''for the sake of''
::* '''dalson'''....''topic, issue, subject''
::* '''dolson'''....''hush-hush affair, mystery''
::* '''doyevson'''....''court case''
::* '''efkason'''....''plight''
::* '''efson'''....''matter of necessity''
::* '''eson'''....''state''
::* '''ifonson'''....''love affair''
::* '''igefson'''....''crisis, emergency''
::* '''ivson'''....''good time, happy affair''
::* '''jeson'''....''conjuncture''
::* '''kason'''....''situation''
:::* '''vaka kason'''....''dangerous situation''
:::* '''pesen kason'''....''limbo''
:::* '''gyua kason'''....''declicate situation''
:::* '''efla kason'''....''dire straits''
::* '''keson'''....''experience''
::* '''koson'''....''secret''
::* '''kuson'''....''side issue''
::* '''kyenson'''....''matter of luck''
::* '''kyeson'''....''case, circumstance''
:::* '''kyuxea kyeson'''....''attenuating circumstance''
:::* '''be kyeson bi'''....''in case of''
::* '''kyison'''....''grave matter, problem''
::* '''kyoson'''....''status quo''
::* '''kyuson'''....''trivial matter''
::* '''nyafson'''....''intrigue''
::* '''ogson'''....''minor issue, trivium''
::* '''oson'''....''non-issue''
::* '''ovson'''....''the contrary''
::* '''teojson'''....''matter of life and death''
::* '''venson'''....''condition''
:::* '''tepvenson'''....''mental condition, psychosis''
::* '''tyenara son'''....''technical issue''
::* '''vonson'''....''no-no''
::* '''vyanson'''....''matter of fact''
::* '''vyaoson'''....''mystery''
::* '''vyeson'''....''circumstance''
::* '''yevson'''....''case''
::* '''yikkyeson'''....''predicament''
::* '''yikson'''....''problem, difficult matter''
::* '''yokson'''....''sensation''
::* '''yontexson'''....''controversy''
::* '''yukson'''....''levity''
::* '''yuzkason'''....''context''
::* '''zeson'''....''central theme, keynote, crux''
:::* '''oybzeson'''....''subtopic''
==== SAN, SAUN, SYAN, SUAN words ====
:* '''san'''....''shape, form, figure''
::* '''sanxer'''....''to form''
::* '''sanser'''....''to form, to develop''
::* '''dosana'''....''formal''
:::* '''odosana'''....''informal''
::* '''sandras'''....''formula''
::* '''sandrer'''....''to formulate''
::* '''saun'''....''type, kind, taxon''
:::* '''asaun'''....''model, paragon, example''
::::* '''asauna'''....''exemplary''
::::* '''asauntob'''....''mannekin''
::::* '''asaunder'''....''to specify''
::::* '''asaunxer'''....''to exemplify''
:::* '''aasaun'''....''archetype''
:::* '''aynsaun'''....''holotype''
:::* '''dunsaun'''....''part of speech''
:::* '''ejnasaun'''....''neotype''
:::* '''gelsaun'''....''copy''
:::* '''ijsaun'''....''pattern''
:::* '''jwasaun'''....''prototype''
:::* '''kyasaun'''....''version''
:::* '''kyesaun'''....''sample''
:::* '''kyosaun'''....''formula, template, matrix, boilerplate, convention, mold, pattern, stereotype''
:::* '''potsaun'''....''animalia, fauna''
:::* '''tabsaun'''....''body type''
:::* '''tobsaun'''....''humankind, mankind''
:::* '''todaunsaun'''....''genotype''
:::* '''yansauna'''....''common''
:::* '''yonsauna'''....''peculiar, particular, special''
:::* '''visauna'''....''classic''
:::* '''vyasauna'''....''original''
:::* '''zyasauna'''....''general, generic''
:::* '''zyosauna'''....''specific''
::* '''syan'''....''class (of objects)''
:::* '''syanxer'''....''to classify''
::* '''suan'''....''element''
:::* '''suana'''....''elementary''
:::* '''suankyaser'''....''to mutate''
:::* '''asuana'''....''unary''
:::* '''esuana'''....''binary''
:::* '''isuana'''....''trinary''
:::* '''suanmultun'''....''chemistry''
::::* '''suanmultut'''....''chemist''
:::* '''suanmul'''....''chemical (substance)''
::::* '''suanmula'''....''chemical''
::::* '''suanmulbek'''....''chemotherapy''
::::* '''suanmulk'''....''chemical element''
:::* '''suanyanxer'''....''to synthesize''
::::* '''suanyanxen'''....''synthesis''
:::* '''suanyonxer'''....''to analyze''
::::* '''suanyonxen'''....''analysis''
::* '''asuan'''....''urelement''
::* '''hyimsuan'''....''isotope''
::* '''filsuan'''....''enzyme''
::* '''sinsuan'''....''chemical''
:::* '''sinsuanxer'''....''to pixelate''
::* '''yansuan'''....''constituent''
:::* '''yansuanser'''....''to constitute''
::* '''yonsuana'''....''disparate''
: In botanical and zoological taxonomies or nomenclatures, the following taxons are used:
:* '''asaun'''....''domain''
:* '''esaun'''....''kingdom''
:* '''isaun'''....''phylum, division''
:* '''usaun'''....''class''
:* '''yosaun'''....''order''
:* '''yasaun'''....''family''
:* '''yesaun'''....''genus''
:* '''yisaun'''....''species''
: The prefixes '''ab-''' (''super-'') and '''ob-''' (''sub'') are used with the above taxons, eg.: '''abyasaun''' equates to '''superfamily''' and '''obyesaun''' refers to ''subgenus''.
: The word '''division''' is used rather than '''phylum''' in botanical nomenclature.
: The word '''saun''' is used in the following deictic adjectives:
::* '''duhosauna?'''....''what kind of?''
::* '''hasauna'''....''the kind of''
::* '''hesauna'''....''some kind of''
::* '''hisauna'''....''this kind of''
::* '''husauna'''....''that kind of''
::* '''hyosauna'''....''no kind of''
::* '''hyasauna'''....''every kind of''
::* '''hyesauna'''....''any kind of, whatever kind of''
::* '''hyisauna'''....''the same kind of''
::* '''hyusauna'''....''another kind of''
==== SIN, SIYN, SIUN, and SYIN words ====
:* '''sin'''....''image, picture''
::* '''domsin'''....''cityscape''
::* '''drasin'''....''drawing''
:::* '''exdrasin'''....''diagram''
::* '''dresin'''....''design''
::* '''dyunsin'''....''logo''
::* '''fyasin'''....''icon''
::* '''fyesin'''....''specter''
::* '''gelsin'''....''likeness''
::* '''hihisin'''....''cartoon''
::* '''innagsin'''....''hologram''
::* '''izonsin'''....''arrow''
::* '''josin'''....''afterimage''
::* '''mansin'''....''photograph''
:::* '''yibmansin'''....''telephoto''
::* '''massin'''....''mural''
::* '''memsin'''....''landscape''
::* '''mimsin'''....''seascape''
::* '''pansin'''....''movie''
::* '''tabsin'''....''figure''
::* '''tebsin'''....''face''
::* '''teubsin'''....''expression''
::* '''teasin'''....''view''
::* '''tepsin'''....''mental image''
:::* '''tepsinier'''....''to imagine''
:::* '''tepsinuer'''....''to pretend''
:::* '''vyotepsin'''....''illusion, hallucination''
:::* '''fyetepsin'''....''fantasy''
::* '''topsin'''....''phantom''
::* '''totsin'''....''idol''
::* '''vyusin'''....''dirty picture''
:::* '''vyusinyan'''....''pornography''
::* '''vyomsin'''....''illusion''
::* '''yibsin'''....''television''
:::* '''yibsinibar'''....''television set''
::* '''zasin'''....''foreground''
::* '''zesin'''....''vignette''
::* '''zosin'''....''backdrop, background''
::* '''zoysin'''....''reflection''
:* '''siyn'''....''mark''
::* '''aysiyn'''....''ampersand''
::* '''aybsiyn'''....''superscript''
::* '''balsiyn'''....''stamp''
::* '''buksiyn'''....''brand, stigma''
::* '''dresiyn'''....''letter''
:::* '''dresiynay'''....''literally''
:::* '''dresiynyan'''....''alphabet''
::::* '''tuyub dresiynyan'''....''finger alphabet''
:::* '''andresiyn'''....''monograph''
:::* '''endresiyn'''....''digraph''
:::* '''aybdresiyn'''.....''superscript''
:::* '''agdresiyn'''....''uppercase letter, majuscule''
::::* '''agdresiyndyun'''....''acronym''
::::* '''agdresiynxer'''....''to capitalize''
:::* '''ogdresiyn'''....''lowercase letter, miniscule''
::::* '''ogdresiynxer'''....''to lowercase''
:::* '''sagdresiyn'''....''cipher''
:::* '''sindresiyn'''....''ideogram''
:::* '''ijdresiyn'''....''initial''
::::* '''ijdresiynxer'''....''to initialize''
::::* '''zea ijdresiyn'''....''middle initial''
::::* '''zeydresiynxer'''....''to transliterate''
::::* '''kodresiynyan'''....''code''
:::::* '''kodresiynxer'''....''to encode''
::::* '''kindresiyni'''....''italics''
:::::* '''kindresiynxer'''....''to italicize''
::* '''drursiyn'''....''character''
::* '''ebnaydsiyn'''....''hyphen''
::* '''finsiyn'''....''grade, mark''
::* '''fyasiyn'''....''emblem''
::* '''gabsiyn'''....''plus sign''
::* '''gesiyn'''....''equal sign''
::* '''gedsiyn'''....''quotation mark''
::* '''gobsiyn'''....''minus sign''
::* '''grunsiyn'''....''comma''
::* '''jobsiyn'''....''time mark''
::* '''josiyn'''....''trace''
::* '''kodresiyn'''....''cipher''
::* '''kyidsiyn'''....''stress mark, accent''
::* '''magsiyn'''....''brand''
::* '''memsiyn'''....''landmark''
::* '''milsiyn'''....''watermark''
::* '''oybsiyn'''....''subscript''
::* '''nodsiyn'''....''punctuation mark''
::* '''tajsiyn'''....''birthmark''
::* '''todsiyn'''....''herald''
::* '''yonsiyn'''....''diacritic''
::* '''vasiyn'''....''checkmark''
::* '''yovsiyn'''....''mark of shame''
:* '''siun'''....''sign''
::* '''boksiun''''....''symptom''
::* '''drursiun'''....''dingbat''
::* '''jwadsiun'''....''warning sign''
::* '''mugsiun'''....''token''
::* '''ojsiun'''....''harbinger''
:::* '''fiojsiun'''....''good omen''
:::* '''fuojsiun'''....''bad omen''
::* '''siunar'''....''signal''
::* '''tesiun'''....''symbol, tag''
:::* '''tesiuna'''....''symbolic''
:::* '''tesiunin'''....''symbolism''
:::* '''tosiun'''....''cross''
::* '''ujaksiun'''....''trophy''
:* '''syin'''....''subject''
::* '''syina'''....''subjective''
==== SUN, SUAN, SYUN, -UN words ====
:* '''sun'''....''thing''
::* '''ansun'''....''singleton''
::* '''sunxer'''....''to reify''
:* '''suan'''....''element''
::* '''sinsuan'''....''pixel''
:::* '''sinsuanxer'''....''to pixelate''
::* '''filsuan'''....''enzyme''
::* '''hyimsuan'''....''isotope''
::* '''suana'''....''elementary''
::* '''asuan'''....''urelement, domain''
:::* '''asuana'''....''unary''
:::* '''esuana'''....''binary''
:::* '''isauna'''....''trinary''
::* '''suanmul'''....''chemical (substance)''
:::* '''suanmultun'''....''chemisty''
:::* '''suanmultut'''....''chemist''
::* '''suankyaxer'''....''to mutate''
::* '''suanyanxer'''....''to synthesize''
::* '''suanyonxer'''....''to analyze''
:* '''syun'''....''object''
::* '''syuna'''....''objective''
:* '''-un'''....''thing (stub suffix for many "thing" words)''
::* '''zyiun'''....''disk'' (flat thing)
::* '''abun'''....''cover'' (on-top-of thing)
: The stub suffix '''-un''' is also used for the result of actions, eg.:
:* '''drer'''....''to write''
::* '''drun'''....''writ, graph''
:* '''beler'''....''to carry''
::* '''belun'''....''cargo, freight''
:* '''ayser'''....''to have''
::* '''aysun'''....''possession''
:* '''dodrurer'''....''to publish''
::* '''dodrurun'''....''publication, edition''
==== SYEN, -YEN words ====
:* '''syen'''....''style, mode''
::* '''visyen'''....''fashion''
::* '''dalsyen'''....''language, speaking style''
:* '''-yen''' (stub suffix)
::* '''byen'''....''manner''
:::* '''tejbyen'''....''way of life''
:::* '''vibyen'''....''decor''
:::* '''yukbyen'''....''comfort, convenience''
::* '''dalyen'''....''idiom''
::* '''dreyen'''....''writing style''
::* '''dyen'''....''expression''
:::* '''vidyen'''....''euphemism''
::* '''exyen'''....''procedure''
::* '''kyayen'''....''version''
::* '''napyen'''....''discipline''
::* '''pyen'''....''gait, allure, pace, stride''
::* '''sexyen'''....''structure''
::* '''tabyen'''....''posture, poise, attitude''
::* '''teasyen'''....''aspect''
::* '''tejyen'''....''lifestyle''
::* '''texyen'''....''opinion''
::* '''teyen'''....''idea''
::* '''tipyen'''....''mood''
::* '''tosyen'''....''mood''
::* '''tyen'''....''skill, know-how, craft''
::* '''yabdoutbyen'''....''courtliness''
::* '''yanbyen'''....''harmony''
::* '''yixyen'''....''usage''
::* '''yugfyen'''....''tact, smooth style, finesse''
::* '''xyen'''....''profession''
::* '''zeyen'''....''means, wherewithal''
=== '''TOB''' ''human'' ===
: The stem of words in this family begin with the consonant '''t''', designating ''human'', and end in '''b''', meaning ''organism, body, or organ'' or '''p''', having to do with the non-corporeal aspects of man, such as ''mind'' and ''emotion''.
==== Principal Derivatives ====
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ TOB, TOP principal derivatives
|-
! -B !! -P
|-
| '''tob'''....''human, man'' || '''top'''....''soul, psyche''
|-
| '''tab'''....''body'' || '''tap'''....''physique''
|-
| '''teb'''....''head'' || '''tep'''....''mind''
|-
| '''tib'''....''trunk'' || '''tip'''....''sentiment, emotion''
|-
| '''tub'''....''arm'' || '''tup'''....''limb''
|-
| '''tyob'''....''leg'' ||
|}
{{small/end}}
::[[File:Regions of Human Body.jpg|thumb|Regions_of_Human_Body]]
: All the names of the parts of the body are derived from these core words in a hierarchical fashion using stem vowel scalarization, as can be seen from the sample chart below of the body parts relating to ''arm'' and ''leg'' (note the parallelism):
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Parts of the Body
|- valign=top
| '''tub'''<br>arm || '''tuab'''<br> shoulder || '''tueb'''<br> upper arm || '''tuib'''<br> elbow || '''tuub'''<br> forearm || '''tuyob'''<br> ''wrist'' || '''tuyab'''<br> hand || '''tuyeb'''<br> fist || '''tuyib'''<br> palm || '''tuyub'''<br> finger || '''tulob'''<br> fingernail
|-
| '''tyob'''<br> leg || '''tyoab'''<br> hip || '''tyoeb'''<br> thigh || '''tyoib'''<br> knee || '''tyoub'''<br> tibia || '''tyoyob'''<br> ankle || '''tyoyab'''<br> foot || '''tyoyeb'''<br> heel || '''tyoyib'''<br> sole || '''tyoyub'''<br> toe || '''tyolob'''<br> toenail
|}
{{small/end}}
==== TOB and TOOB Words ====
::* '''tob'''....''person, human being''
:::* '''twob'''....''man''♂
::::* '''twobet'''....''boy''
:::* '''toyb'''....''woman''♀
::::* '''toybet'''....''girl''
::* '''toob'''....''gender''
:::* '''twoob'''....''male''
:::* '''tooyb'''....''female''
:::* '''geltoobifat'''....''homosexual'' (short: '''gelt''')
:::* '''logeltoobifat'''....''heterosexual'' (short: '''logelt''')
:::* '''hyaewatoobifat'''....''bisexual'' (short: '''hyaewat''')
: Here are words derived from '''tob''':
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''aajtobtun'''....''paleo-anthropology''
*'''abtob'''....''kingpin, super human, superman''
*'''afyapattob'''....''seraph''
*'''agtobtojber'''....''assassin, assassinate''
*'''antoba mimpur'''....''skiff''
*'''antoba sum'''....''single bed''
*'''antobnad'''....''single file''
*'''arpeltob'''....''spiderman''
*'''kipayetob'''....''batman''
*'''asauntob'''....''mannequin''
*'''atobij'''....''germ, seed''
*'''domep tobyog'''....''street urchin''
*'''ega tob'''....''average joe''
*'''ektobet'''....''doll, puppet''
*'''entoba sim'''....''love seat, loveseat''
*'''eyntoba'''....''half-human''
*'''eyntobekpet'''....''centaur''
*'''fitob'''....''fine fellow, fine gentleman, good guy''
*'''futob'''....''bad guy, ruffler, villain''
*'''fyatob'''....''holy person, saint''
*'''fyefutob'''....''gremlin, puck, leprechaun, ouphe''
*'''fyefutobag'''....''orc, ogre''
*'''fyegyutob'''....''elf''
*'''fyeiftob'''....''pixie''
*'''fyetob'''....''elf''
*'''fyetobag'''....''giant''
*'''fyetobapyot'''....''sphinx''
*'''fyetobekpet'''....''minotaur''
*'''fyetobet'''....''elfin, pixie''
*'''fyetobog'''....''dwarf, sprite''
*'''fyetobtelut'''....''ogre, orc''
*'''fyetobteluyt'''....''ogress''
*'''fyetobyog'''....''goblin''
*'''fyoektob'''....''poppet''
*'''fyutob'''....''pest, annoying person''
*'''iftob'''....''playboy''
*'''intob'''....''triumvir''
*'''intoba sum'''....''queen-size bed''
*'''intobyan'''....''triumvirate''
*'''jogtob'''....''young man''
*'''jogtobet'''....''younker''
*'''jwatob'''....''protohuman''
*'''lotobxer'''....''dehumanize, unperson''
*'''malyomtob'''....''snowman''
*'''malztob'''....''honky, whitey''
*'''meimtob'''....''yokel''
*'''mestob'''....''janitor''
*'''miektob'''....''sandman''
*'''moibtob'''....''caveman''
*'''momtob'''....''spaceman''
*'''nyaztob'''....''nabob''
*'''nyifbixwa ektobet'''....''marionette''
*'''ogtob'''....''minim''
*'''otoba'''....''inhuman, nonhuman, unhuman''
*'''oybtoba'''....''subhuman''
*'''pattob'''....''angel, birdman''
*'''sirtob'''....''automaton, robot''
*'''suztob'''....''mannequin''
*'''syaagirtob'''....''cyborg''
*'''teaztob'''....''prodigy''
*'''tob'''....''human being, man, person''
*'''tobava'''....''humane, humanitarian''
*'''tobavin'''....''humanism, humanitarianism''
*'''tobbixwa belir'''....''tuk-tuk''
*'''tobbixwa par'''....''ricksha''
*'''tobet'''....''chap, chit, juvenile, youth''
*'''tobetdal'''....''prattle''
*'''tobetekem'''....''sandlot''
*'''tobetel'''....''pap''
*'''tobetifek zyunog'''....''pewee''
*'''tobetog'''....''tot''
*'''tobeytyena'''....''maidenly, girlish''
*'''tobfyabuun'''....''human sacrifice''
*'''tobif'''....''buster, chap, dude''
*'''tobifin'''....''philanthropy''
*'''tobij'''....''fetus''
*'''tobijabnyeb'''....''amnion''
*'''tobijber'''....''impregnate, ovulate''
*'''tobijbler'''....''gestate''
*'''tobijbwa'''....''impregnated, ovulated, pregnant''
*'''tobijer'''....''ovulate''
*'''tobijien'''....''conception''
*'''tobijnyem'''....''womb''
*'''tobijnyemoben'''....''hysterectomy''
*'''tobijoga'''....''ovular''
*'''tobijovar'''....''contraceptive''
*'''tobijovben'''....''contraception''
*'''tobijuer'''....''impregnate''
*'''tobijuf'''....''oviduct''
*'''tobijum'''....''ovum''
*'''tobijumog'''....''ovule''
*'''tobijyem'''....''ovary''
*'''tobin'''....''humanism''
*'''tobion'''....''triumvirate''
*'''tobkex'''....''bounty-hunt, manhunt''
*'''tobnyan'''....''crowd, group''
*'''tobog'''....''grig, little person, midget, pewee''
*'''toboyt'''....''female child, female infant''
*'''tobpixler'''....''kidnap''
*'''tobsan'''....''manikin, mannikin''
*'''tobsana'''....''anthropomorphic''
*'''tobsaun'''....''humankind, mankind''
*'''tobsaxwa'''....''man-made, manmade''
*'''tobsayna'''....''android, anthropoid''
*'''tobsaynat'''....''android, anthropoid''
*'''tobtelut'''....''cannibal''
*'''tobtod'''....''mankind, family of man''
*'''tobtojber'''....''kill, murder, slay''
*'''tobtun'''....''anthropology''
*'''tobuer'''....''man''
*'''tobkapyot'''....''werewolf''
*'''tobwot'''....''male infant''
*'''tobxer'''....''humanize''
*'''tobyafon'''....''human power, manpower''
*'''tobyan'''....''humanity, humankind, mankind''
*'''tobyen'''....''manliness, virility''
*'''tobyenat'''....''humanoid''
*'''tobyenay'''....''manfully''
*'''tobyentaf'''....''costume''
*'''tobyog'''....''kid, pigmy, pygmy, urchin''
*'''tobyogif'''....''kiddie''
*'''tobzena'''....''anthropocentric''
*'''umvib tob'''....''scare crow, straw man''
*'''untoba sum'''....''king-size bed''
*'''vatob'''....''yes-man''
*'''vutob'''....''troll''
*'''vutobag'''....''ogre''
*'''vyotob'''....''dummy''
*'''vyutobet'''....''ragamuffin''
*'''yextob'''....''workingman''
*'''yivtob'''....''freeman''
*'''yiztob'''....''superman''
*'''yomtob'''....''iceman''
*'''yuftob'''....''boogeyman, boogie man''
*'''yugtob'''....''softling''
*'''zatob'''....''foreperson''
*'''zetob'''....''arbiter, arbitrager, arbitrageur, arbitrator, medium, middleman, middle man, intermediary''
*'''zyuktob'''....''wheelman''
</div>
{{small/end}}
: Words derived from '''twob''' (''man''):
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''asauntwob'''....''male mannequin''
*'''deuzutyan twobet'''....''choirboy''
*'''diztwob'''....''jackass''
*'''ektwobet'''....''boy doll''
*'''fyatwob'''....''male saint''
*'''fyepitwob'''....''merman''
*'''fyevutwobog'''....''troll''
*'''jaga twob'''....''old man''
*'''mimpurtwobet'''....''ship's boy''
*'''momtwob'''....''spaceman''
*'''tamtwobet'''....''houseboy''
*'''tamyuxtwobet'''....''knave''
*'''tistam twobet'''....''schoolboy''
*'''twob'''....''bloke, fellow, guy, man''
*'''twoba eftim'''....''men's room, men’s lavatory''
*'''twoba tof'''....''menswear''
*'''twoban'''....''manhood''
*'''twobet'''....''boy, lad''
*'''twobetog'''....''laddie''
*'''twobetyena'''....''boyish, puerile''
*'''twobgon'''....''male member, penis, dick''
*'''twobog'''....''little fellow, young man''
*'''twobyen'''....''machismo, mannishness''
*'''vutwobog'''....''gnome''
*'''vyutwob'''....''sloven''
*'''yuxtwobet'''....''knave, boy servant, jack, swain''
</div>
{{small/end}}
: Words derived from '''toyb''' (''woman''):
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''asauntoyb'''....''female mannequin''
*'''aztoybet'''....''chit''
*'''beaxtoyb'''....''duenna''
*'''dalovekyea jagtoyb'''....''termagant''
*'''deuztoyb'''....''songstress''
*'''ebtoyba'''....''woman-to-woman''
*'''ektoybet'''....''girl doll''
*'''futoyb'''....''jade, tramp''
*'''futoybyena'''....''jadish''
*'''fyatoyb'''....''female saint''
*'''fyepitoyb'''....''mermaid''
*'''fyetoybag'''....''giantess''
*'''ifwa toyb'''....''ladylove''
*'''jaga toyb'''....''matron, old lady, old woman''
*'''joga toyb'''....''young woman''
*'''jogtoyb'''....''young lady, young woman''
*'''momtoyb'''....''spacewoman''
*'''nuxiftoyb'''....''hooker''
*'''ofwimtoyb'''....''odalisk, odalisque''
*'''otoybyena'''....''unladylike''
*'''pitoyb'''....''siren''
*'''tamtoyb'''....''woman of the house''
*'''tezika fitixwa toyb'''....''bluestocking''
*'''tistam toyb'''....''schoolgirl''
*'''toyb tofabim'''....''boudoir''
*'''toyb vyoekdezen'''....''female impersonation, playing a drag queen''
*'''toyb vyoekdezun'''....''drag queen show''
*'''toyb vyoekdezut'''....''drag queen, female impersonator''
*'''toyb'''....''woman''
*'''toyba'''....''womanhood''
*'''toybbaktun'''....''gynecology''
*'''toybbaktuna'''....''gynecologic, gynecological''
*'''toybbaktunay'''....''gynecologically''
*'''toybbaktut'''....''gynecologist''
*'''toybbik'''....''obstetrics''
*'''toybbika'''....''obstetric, obstetrical''
*'''toybbikut'''....''obstetrician''
*'''toybboktun'''....''gynecopathy''
*'''toybboktuna'''....''gynecopathic''
*'''toybboktut'''....''gynecopath''
*'''toybdab'''....''gynecocracy gynarchy''
*'''toybdaba'''....''gynarchic, gynecocratic''
*'''toybdeb'''....''gynarch, gynecocrat''
*'''toybet'''....''gal, girl, lass, lassie, maiden''
*'''toybetan'''....''girlhood, maidenhood''
*'''toybetyena'''....''girlish, girly''
*'''toybetyenan'''....''girlishness''
*'''toybetyenay'''....''girlishly, maidenly''
*'''toybeymir'''....''demimonde''
*'''toybeymirayt'''....''demimondaine''
*'''toybi'''....''womenfolk''
*'''toybifa'''....''feminist, pro-woman''
*'''toybifin'''....''feminism''
*'''toybifina'''....''feminist, pro-woman''
*'''toybifinut'''....''feminist''
*'''toybifoneken'''....''philandering''
*'''toybifoneker'''....''philander''
*'''toybifonekut'''....''philanderer''
*'''toybifut'''....''womanizer''
*'''toybil'''....''human milk, mothers milk''
*'''toybin'''....''feminism''
*'''toybina'''....''feminist''
*'''toybinut'''....''feminist''
*'''toybkexea'''....''woman-seeking''
*'''toybkexen'''....''seeking out women''
*'''toybkexut'''....''woman-seeker''
*'''toybkof'''....''purdah''
*'''toybnoyv'''....''sanitary napkin''
*'''toybob'''....''infant girl''
*'''toybot'''....''infant daughter''
*'''toybtwobsana'''....''gynandromorphous''
*'''toybtwobyena'''....''gynandrous''
*'''toybuf'''....''futz, misogyny''
*'''toybufa'''....''misogynous, woman-hating''
*'''toybufen'''....''woman-hating''
*'''toybufin'''....''misogyny''
*'''toybufina'''....''misogynistic''
*'''toybufinut'''....''misogynist''
*'''toybufut'''....''misogynist''
*'''toybyan'''....''womankind''
*'''toybyekuen'''....''womanizing''
*'''toybyekuer'''....''womanize''
*'''toybyekuut'''....''womanizer''
*'''toybyena'''....''feminine, ladylike, queeny, sissified, womanish, womanlike''
*'''toybyenan'''....''femininity, womanliness''
*'''toybyenay'''....''womanly''
*'''toybyig'''....''virago''
*'''toybyog'''....''molly''
*'''toybzoigpen'''....''woman-chasing, womanizing''
*'''toybzoigput'''....''woman-chaser''
*'''tuuxen bi twobi ay toybi'''....''coeducation''
*'''tuxtoyb'''....''schoolmarm''
*'''tuxtoybyena'''....''schoolmarmish''
*'''utoybdaber'''....''kowtow, submit''
*'''utoybdabyean'''....''submissiveness''
*'''vuftoyb'''....''fishwife''
*'''vujagtoyb'''....''hag''
*'''vujagtoybyena'''....''haggish''
*'''vutoybag'''....''ogress''
*'''yextoyb'''....''workingwoman''
*'''yiztoyb'''....''superwoman''
*'''yuktoyb'''....''strumpet''
*'''zuza toybwet'''....''hobbledehoy''
</div>
{{small/end}}
: Here are words derived from '''toob''' (''gender'' ), '''twoob''' (''male'') or '''tooyb''' (''female''):
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''antooba'''....''unisex, unisexual''
*'''avhyitoobifa'''....''pro-gay''
*'''avhyitoobifan'''....''pro-gayness''
*'''bay twoobi ay tooybi'''....''co-ed, coed''
*'''duhotooba?'''....''of what gender?''
*'''ebtooba'''....''cross-gendered, intersex''
*'''ebtooban'''....''androgyny''
*'''ebtoobat'''....''intersex person''
*'''egtooba'''....''cisgender''
*'''entooba'''....''bi-gendered, hermaphroditic''
*'''entoobat'''....''bi-gendered person, hermaphrodite''
*'''entoobifa'''....''bisexual''
*'''entoobifan'''....''bisexuality''
*'''entoobinfay'''....''bisexually''
*'''evtooba'''....''epicene, gender-neutral, neuter''
*'''geltoobifa'''....''homophile, homosexual''
*'''geltoobifan'''....''homophily, homosexuality''
*'''geltoobifanufa'''....''homophobic''
*'''geltoobifanufan'''....''homophobia''
*'''geltoobifanufut'''....''homophobe''
*'''geltoobifin'''....''homophilism''
*'''geltoobifina'''....''homophilic''
*'''geltoobifinut'''....''homophile''
*'''geltoobifut'''....''homosexual''
*'''getoobifa'''....''gay, homosexual''
*'''getoobifan'''....''gayness, homosexuality''
*'''getoobifut'''....''gay person, homosexual''
*'''getoobifuyt'''....''lesbian, female homosexual''
*'''getoobifwut'''....''gay male homosexual''
*'''getoobiyfa'''....''lesbian, female homosexual''
*'''getoobwifa'''....''gay male homosexual''
*'''glatooba'''....''multi-gendered''
*'''hitooba'''....''this gender''
*'''hutooba'''....''that gender''
*'''hyaewatooba'''....''ambigendered''
*'''hyaewatoobifa'''....''ambi-sexual''
*'''hyatooba'''....''omni-sexual, pan-sexual''
*'''hyatoobifa'''....''pan-sexual''
*'''hyatoobifan'''....''pan-sexuality''
*'''hyatoobifut'''....''pan-sexual''
*'''hyetooba'''....''any gender-fluid, of any gender, of whatever gender, whatever gender''
*'''hyetoobat'''....''person of whatever gender''
*'''hyitooba tadan'''....''same-sex marrage''
*'''hyitooba'''....''same gender''
*'''hyitoobifa'''....''homophile, homosexual, same-sex''
*'''hyitoobifan'''....''homosexuality''
*'''hyitoobifayt'''....''lesbian''
*'''hyitoobifaytan'''....''lesbianism''
*'''hyitoobifaytin'''....''lesbianism''
*'''hyitoobifinut'''....''homophile''
*'''hyitoobifut'''....''fag, faggot, homosexual''
*'''hyotooba'''....''genderless, of no gender, ungendered''
*'''hyotoobat'''....''person of no gender''
*'''hyotoobifa'''....''asexual''
*'''hyotoobifan'''....''asexuality''
*'''hyotoobifay'''....''asexually''
*'''hyutoob'''....''alternative gender''
*'''hyutooba'''....''alternatively gendered, different-gendered''
*'''hyutoobifa'''....''heterosexual, straight''
*'''hyutoobifan'''....''heterosexuality, straightness''
*'''hyutoobifut'''....''heterosexual, straight person''
*'''kwatooyb'''....''trans female, trans woman''
*'''kyatooba'''....''of variable gender, transgender, transgendered''
*'''kyatoobasea'''....''transitioning''
*'''kyatoobasen'''....''transitioning gender''
*'''kyatoobaser'''....''transition gender''
*'''kyatoobat'''....''transgender person''
*'''kyatoobaxwa'''....''transitioned''
*'''kyatooyb'''....''trans female, trans woman''
*'''kyatooyba'''....''trans female''
*'''kyatooybser'''....''transition to a female''
*'''kyatwoob'''....''trans male, trans man''
*'''kyatwooba'''....''trans male''
*'''kyatwoobsen'''....''transitioning to a male''
*'''kyatwoobser'''....''transition to a male''
*'''kyetooba'''....''of any gender, of whatever gender, random-gender''
*'''kyetooban'''....''gender fluidity''
*'''kyotooba'''....''cisgendered, fixed-gender, of fixed gender''
*'''kyotoobat'''....''cisgendered person''
*'''logeltooba'''....''different-gendered''
*'''lotoobaxen'''....''gender-nullification''
*'''lotoobaxer'''....''gender-nullify''
*'''lotoobaxwa'''....''gender-nullified''
*'''lotoobxer'''....''unman''
*'''otooba'''....''gender-neutral, neuter, sexless, ungendered, unsexed''
*'''otoobaxen'''....''neutering''
*'''otoobaxer'''....''neuter''
*'''otoobaxwa'''....''neutered''
*'''otoobifa'''....''non-sexual, nonsexual''
*'''otoobina'''....''nonsexist''
*'''otooybyena'''....''unfeminine''
*'''otooybyenan'''....''unfemininity''
*'''ovhyitoobifa'''....''anti-gay''
*'''ovhyitoobifan'''....''anti-gayness''
*'''oytooba'''....''genderless''
*'''oytoobat'''....''genderless person''
*'''toob'''....''gender, sex''
*'''tooba tiibilnad tyed'''....''agnate''
*'''tooba'''....''gender-related, sexual''
*'''toobika'''....''sexed''
*'''toobin'''....''sexism''
*'''toobina'''....''sexist''
*'''toobinut'''....''sexist''
*'''toobvia'''....''hunky''
*'''toobyena'''....''butch''
*'''tooyb'''....''female''
*'''tooyba teuzuen'''....''female suffrage''
*'''tooyba'''....''female, feminine''
*'''tooyban'''....''femaleness''
*'''tooybay'''....''femininely''
*'''tooybyena twob'''....''cockney''
*'''tooybyena'''....''effeminate, female-ish, feminine''
*'''tooybyenan'''....''effeminacy, femininity''
*'''tooybyenay'''....''effeminately''
*'''tooybyenwat'''....''sissy''
*'''twoob'''....''male''
*'''twooba'''....''male''
*'''twooban'''....''maleness''
*'''twoobin'''....''male chauvinism''
*'''twoobina'''....''male chauvinistic''
*'''twoobinut'''....''male chauvinist''
*'''twoobyena'''....''male-ish, masculine''
*'''twoobyenan'''....''masculinity''
*'''twoobyenay'''....''masculinely''
*'''twoobyenoben'''....''emasculation''
*'''twoobyenober'''....''emasculate''
*'''twoobyenobwa'''....''emasculated''
*'''twooyba'''....''hermaphroditic''
*'''twooybat'''....''hermaphrodite''
*'''twooybsana'''....''gynandromorph''
*'''twooybsanat'''....''gynandromorph''
*'''yiija hyitoobifut'''....''flamer''
*'''zetooba'''....''middle-gender''
*'''zeytooba'''....''trans, transsexual''
*'''zeytoobat'''....''trans, transsexual''
*'''zeytoobin'''....''transsexualism''
</div>
{{small/end}}
==== TAB Words ====
::* '''tab'''....''body''
: Words derived from '''tab''':
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''ebtabif'''....''coitus, intercourse, sex''
'''ebtabifer'''....''have intercourse, have sex, make love, shag''
*'''ebtabifon'''....''eros''
*'''etabij'''....''larva''
*'''gyotaba'''....''lank, scrawny''
*'''itabij'''....''pupa''
*'''kyitaba'''....''heavyset''
*'''loyebtabxer'''....''disembody''
*'''ogratab'''....''corpuscle''
*'''ovtabes'''....''antibody''
*'''tab'''....''body, corpus''
*'''tabaga'''....''burly, corpulent, stout''
*'''tabaka'''....''healthy, physically sound''
*'''tabaza'''....''strong-bodied''
*'''tabes'''....''corpuscle''
*'''tabgon'''....''body part''
*'''tabgoni'''....''viscera''
*'''tabgontix'''....''autopsy''
*'''tabgontun'''....''anatomy''
*'''tabij'''....''embryo''
*'''tabil'''....''body fluid, humor''
*'''tabkum'''....''flank''
*'''tabkyin'''....''bodyweight''
*'''tabmegnyeb'''....''sarcophagus''
*'''tabmeluk'''....''tomb''
*'''tabmelukem'''....''graveyard, saree''
*'''tabmelzyeg'''....''tomb''
*'''tabnuniam'''....''bordello''
*'''tabnyaun'''....''body mass''
*'''tabnyef'''....''body bag, cyst''
*'''tabnyem'''....''casket''
*'''tabobelun'''....''corpse''
*'''taboka'''....''ill, physically unwell, sick''
*'''tabos'''....''organ''
*'''tabosober'''....''eviscerate''
*'''tabosok'''....''atrophy''
*'''tabosyan'''....''organism''
*'''taboza'''....''tired, weak-bodied''
*'''tabsan'''....''body shape''
*'''tabsaun'''....''body type''
*'''tabsin'''....''figure''
*'''tabteax'''....''autopsy''
*'''tabum'''....''cell''
*'''tabummul'''....''cytoplasm''
*'''tabumtun'''....''cytology''
*'''tabuzler'''....''squirm, writhe''
*'''tabvyavyek'''....''bodycheck''
*'''tabyekler'''....''wrestle''
*'''tabyen'''....''poise, posture, attitude''
*'''tabyigsa'''....''catatonic''
*'''tabyuz'''....''tegument''
*'''tabzyoa'''....''skintight''
*'''teptaba'''....''psychosomatic''
*'''tojtab'''....''cadaver, corpse''
*'''tojpotab'''....''carcass''
*'''tojtabteliut'''....''ghoul''
*'''tumtabes'''....''organelle''
*'''uktabmelzyeg'''....''cenotaph''
*'''utabij'''....''imago''
*'''vitaba'''....''buff''
*'''volztabog'''....''chromosome''
*'''yantabxer'''....''incorporate''
*'''yebtabosyan'''....''offal, viscera''
</div>
{{small/end}}
: From this root word are formed all the parts of the body that relate to the body as a whole:
::* '''taob'''....''flesh, tissue''
:::* '''taol'''....''meat''
::* '''taab'''....''lymph node''
::* '''taeb'''....''muscle''
::* '''taib'''....''bone''
:::* '''takib'''....''vertebra''
::* '''taub'''....''cartilage''
::* '''tayob'''....''skin, hide''
::* '''tayab'''....''fat''
:::* '''tayal'''....''lard, grease, fat (edible)''
::* '''tayeb'''....''hair''
::* '''tayib'''....''nerve''
::* '''tayub'''....''gland''
: The word '''tayob''' (''skin'') or its stub suffix '''ayob''' have the following derived words:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abtayob'''....''epidermis''
*'''apetayob'''....''horsehide''
*'''apyitayob'''....''sharkskin''
*'''bifayob'''....''banana peel''
*'''epeytayob'''....''cowhide''
*'''fatayob'''....''hull''
*'''fayob'''....''bark, rind, tree bark''
*'''fevol fayob'''....''onion peel''
*'''gapyotayob'''....''bearskin''
*'''gyotayob'''....''pellicle''
*'''kaduzarayob'''....''drumhead, tympan, tympanum''
*'''kyipotayob'''....''coonskin''
*'''lavol fayob'''....''potato peel''
*'''magelwa yeb piitayob'''....''scalloped''
*'''mapiyetayob'''....''carapace, shell, tortoise shell, turtle shell''
*'''mapyetayob'''....''tortoiseshell''
*'''meir abayob'''....''earth's crust''
*'''meir ebayob'''....''earth's mantle''
*'''meylzaxfayob'''....''tanbark''
*'''mofayob'''....''nutshell''
*'''nofebayob'''....''nutshell''
*'''oabunwa tayob'''....''buff''
*'''omeylzaxwa petayob'''....''kip''
*'''omeylzaxwa tayob'''....''rawhide''
*'''oyebtayob'''....''cuticle''
*'''patijayob'''....''egg shell, eggshell''
*'''piitayob'''....''conk, scallop, sea scallop, seashell, shell''
*'''potayob'''....''animal hide, animal skin''
*'''sipotayob'''....''moleskin''
*'''tayob'''....''hide, pellicle, rind, skin''
*'''upetayob'''....''sheepskin''
*'''upetubayob'''....''lambskin''
*'''vafayob'''....''grape skin''
*'''vapyetayob'''....''cochlea''
*'''vayob'''....''hull, husk''
*'''veebayob'''....''bur''
*'''veeybayob'''....''shuck''
*'''vipotayob'''....''deerskin''
*'''vosayob'''....''sepal''
*'''vyupotayob'''....''buckskin, suede, doeskin''
*'''yapetayob'''....''pigskin''
*'''yebikxer potayob'''....''stuff an animal hide''
*'''yebtayob'''....''endoderm''
*'''yobtayob'''....''cortex''
*'''yoepetayob'''....''Angora goat, angora''
*'''yopetayob'''....''goatskin''
*'''yopetud tayob'''....''kidskin''
*'''yuztayob'''....''periderm''
*'''zatayob'''....''carapace, foreskin, prepuce, shell''
*'''zetayob'''....''epithelium''
</div>
{{small/end}}
: Similarly, the word '''tayeb''' (''hair''), along with its stub suffix '''ayeb''' have many derived words:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''absayeb'''....''upper layer''
*'''alilkayeb'''....''aluminum foil''
*'''apetayeb'''....''horsehair''
*'''apwatayeb'''....''cockscomb''
*'''bafayeb'''....''palm leaf''
*'''caulkayeb'''....''copper foil''
*'''ebsayeb'''....''layer in-between, mantle''
*'''enymolza tayeb'''....''grizzle''
*'''epatayeb'''....''eiderdown''
*'''fayeb'''....''blade, foil, leaf''
*'''gapyotayeb'''....''fuzz''
*'''gepiatayeb'''....''swansdown''
*'''gipotayeb'''....''camel hair, camelhair''
*'''givofayeb'''....''tobacco leaf''
*'''goblaruxer ota tayeb'''....''get one's hair cut''
*'''iklaxwa vafayeb'''....''stuffed grape leaves''
*'''infayeb'''....''clover, club, shamrock''
*'''kelupotayeb'''....''sable''
*'''masof tayeb'''....''carpet pile''
*'''patayeb'''....''feather, plume''
*'''petayeb'''....''fur, animal hair''
*'''pitayeb'''....''fish scale''
*'''potayeb'''....''animal hair''
*'''safayeb'''....''tea leaf''
*'''savayeb'''....''frond''
*'''sayeb'''....''foil, layer, sheet, spathe''
*'''sevobayeb'''....''thistledown''
*'''sonilkayeb'''....''tin foil, tin plate, tin-plate, tinfoil, tin-foil, tinplate''
*'''tab tayeb'''....''body hair''
*'''tabijayeb'''....''cotyledon''
*'''tayeb'''....''hair, pile''
*'''teb tayeb'''....''hair on the head''
*'''tebzan tayeb'''....''scruff''
*'''teubayeb'''....''mustache''
*'''tiab tayeb'''....''chest hair''
*'''upatayeb'''....''down, goose down''
*'''upetayeb'''....''fleece''
*'''utayefa vyotayeb'''....''jasey''
*'''uvosayeb'''....''rose petal''
*'''vafayeb'''....''blade of grass''
*'''vipatayeb'''....''panache''
*'''vobilzayeb'''....''xanthophyll''
*'''vosayeb'''....''petal''
*'''vyotayeb'''....''peruke, wig''
*'''yagzotayeb'''....''mullet''
*'''yipetayeb'''....''cat fur, cat hair''
*'''zatayeb'''....''forelock''
</div>
{{small/end}}
: The '''tayib''' (''nerve'') family is quite rich:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abektun bi tayib'''....''neurosurgery''
*'''ejna tayib tum'''....''neuroblast''
*'''tayib bosaxul'''....''sedative''
*'''tayib boxen'''....''nerve block''
*'''tayib buk'''....''nerve damage''
*'''tayib fab'''....''dendrite''
*'''tayib fib'''....''nerve trunk''
*'''tayib fub'''....''axon''
*'''tayib fyob'''....''nerve root''
*'''tayib igbux'''....''nerve impulse''
*'''tayib mayl'''....''nerve gas''
*'''tayib nif'''....''nerve fiber''
*'''tayib tum'''....''nerve cell''
*'''tayib ujun'''....''nerve ending''
*'''tayib zen'''....''nerve center''
*'''tayib'''....''nerve''
*'''tayib-'''....''neuro-''
*'''tayiba naap'''....''nervous system''
*'''tayiba'''....''nerve-related, nervous, neural''
*'''tayibabaxreay'''....''irritatingly, exasperatingly''
*'''tayibabaxren'''....''irritation, exasperation''
*'''tayibabaxrer'''....''irritate, exasperate''
*'''tayibabaxrus'''....''irritant''
*'''tayibabaxryafway'''....''irritably''
*'''tayibabaxyafwa'''....''irritable''
*'''tayibabaxyyafwan'''....''irritability''
*'''tayib-abektut'''....''neurosurgeon''
*'''tayibabxrawa'''....''irritated''
*'''tayibabxrea'''....''irritating''
*'''tayibaun'''....''neuron''
*'''tayibauna'''....''neuronal''
*'''tayibay'''....''neurally''
*'''tayibaya'''....''nervous''
*'''tayibayan'''....''nervosity, nervousness''
*'''tayibbekkultunay'''....''neuropharmacological''
*'''tayibbekultun'''....''neuropharmacology''
*'''tayibbekultuna'''....''neuropharmacological''
*'''tayibbekultut'''....''neuropharmacologist''
*'''tayibbok'''....''neurosis''
*'''tayibboka'''....''neurotic''
*'''tayibbokan'''....''neuroticism''
*'''tayibbokat'''....''neurotic person''
*'''tayibbokay'''....''neurotically''
*'''tayibboktun'''....''neuropathology''
*'''tayibboktuna'''....''neuropathological''
*'''tayibboktunay'''....''neuropathologically''
*'''tayibboktut'''....''neuropathologist''
*'''tayibbokul'''....''neurotoxin''
*'''tayibbokuluyea'''....''neurotoxic''
*'''tayibbokuluyean'''....''neurotoxicity''
*'''tayibbook'''....''neurasthenia''
*'''tayibbooka'''....''neurasthenic''
*'''tayibbyisea'''....''neurogenic''
*'''tayibbyuk'''....''neuralgia''
*'''tayibbyuka'''....''neuralgic''
*'''tayibdalzeyntun'''....''neurolinguistics''
*'''tayibdalzeyntuna'''....''neurolinguistic''
*'''tayibdalzeyntunay'''....''neurolinguistically''
*'''tayibdalzeyntut'''....''neurolinguist''
*'''tayibgyas'''....''neuroma''
*'''tayibika'''....''nervous''
*'''tayibikan'''....''nervosity, nervousness''
*'''tayibmavxen'''....''neuritic''
*'''tayibnifyaz'''....''ganglion''
*'''tayibnifyaza'''....''ganglionic''
*'''tayibnyan'''....''peduncle''
*'''tayiboex'''....''neurolysis''
*'''tayiboexa'''....''neurolytic''
*'''tayiboya'''....''nerveless''
*'''tayiboyan'''....''nervelessness''
*'''tayiboyegoblen'''....''neurotomy''
*'''tayibtaeba'''....''neuromuscular''
*'''tayibtejtun'''....''neurobiology''
*'''tayibtejtuna'''....''neurobiological''
*'''tayibtejtunay'''....''neurobiologically''
*'''tayibtejtut'''....''neurobiologist''
*'''tayibteptun'''....''neuropsychology''
*'''tayibteptuna'''....''neuropsychological''
*'''tayibteptunay'''....''neuro-psychological''
*'''tayibteptut'''....''neuro-psychologist, neuropsychologist''
*'''tayibtiibilufa'''....''neurovascular''
*'''tayibtun'''....''neurology''
*'''tayibtuna'''....''neurological''
*'''tayibtunay'''....''neurologically''
*'''tayibtut'''....''neurologist''
*'''tayibubar'''....''neurotransmitter''
*'''tayibuea'''....''innervating''
*'''tayibuen'''....''innervation''
*'''tayibuer'''....''innervate''
*'''tayibujnod'''....''synapse''
*'''tayibujnoda'''....''synaptic''
*'''tayibuka'''....''nerveless''
*'''tayibukan'''....''nervelessness''
*'''tayibukay'''....''nervelessly''
*'''tayibyan'''....''nervous system''
*'''tayibyok'''....''neuralgia''
*'''tayibyoka'''....''neuralgic''
*'''teatayibbok'''....''glaucoma''
*'''tyoaba tayib'''....''sciatic nerve''
*'''tyoaba tayibbyok'''....''sciatica''
</div>
{{small/end}}
==== TEB Words ====
: The parts of the head are:
:* '''teb'''....''head''
::* '''teab'''....''eye''
::* '''teeb'''....''ear''
::* '''teib'''....''nose''
::* '''teub'''....''mouth''
::* '''teob'''....''cheek''
::* '''teyob'''....''neck''
:::* '''zateyob'''....''throat''
:::* '''zoteyob'''....''nape''
::* '''teyub'''....''horn''
::* '''abteb'''....''scalp''
::* '''yobteb'''....''chin''
::* '''zateb'''....''forehead''
::* '''tebzan'''....''face''
: But also some mnemonically derived words:
::* '''tyeb'''....''brain''
::* '''tyep'''....''intellect''
::* '''tep'''....''mind''
:::* '''tepier'''....''to take note of''
:::* '''tepuer'''....''to mention, to point out''
::* '''tes'''....''meaning''
:::* '''teser'''....''to mean''
:::* '''tester'''....''to understand''
::::* '''testier'''....''to realize''
::::* '''testuer'''....''to explain''
::* '''tex'''....''thought''
:::* '''texier'''....''to conceive''
:::* '''texuer'''....''to persuade''
::::* '''vyatexuer'''....''to convince''
::::* '''vyotexuer'''....''to deceive''
: Here are words built from the root '''teb''':
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|2}};{{column-rule|2px solid blue}}";>
*'''teb'''....''head''
:*'''abteb'''....''scalp''
:*'''yobteb'''....''chin''
:*'''zateb'''....''forehead''
:*'''zoteb'''....''occiput, back of the head''
::*'''zoteba zyub'''....''occipital lobe''
:*'''tebkun'''....''side of the head''
:*'''tebnyem'''....''cranium, skull''
::* '''tebnyema'''....''cranial''
::* '''tebnyemsantun'''....''phrenology''
:*'''tebsin'''....''countenance''
:*'''tebzan'''....''face''
:*'''tebuz'''....''crown''
::*'''eyntebuz'''....''diadem''
::*'''eyntebuyz'''....''tiara''
:*'''yabteb'''....''brow, forehead''
::*'''tebzanuer'''....''to face, to confront''
:*'''tyeb'''....''brain''
::*'''tyeb num'''....''brain cell''
::*'''tyeb pyaon'''....''brain wave''
::*'''tyeb zyub'''....''brain lobe''
::*'''tyeba'''....''cerebral''
:::*'''tyeba oyebmoys'''....''cerebral cortex''
::*'''tyebib'''....''brain stem''
::*'''zatyeb'''....''cerebrum''
::*'''zotyeb'''....''cerebellum''
:*'''tebabun'''....''pate''
:*'''tep'''....''mind''
::* '''tepa'''....''mental''
:::* '''tepan'''....''mentality''
::* '''tepier'''....''to take note of''
::* '''tepuer'''....''to mention, to point out''
::* '''tepuzra'''....''crazy''
:::* '''tepuzraser'''....''to go crazy''
::* '''boktepa'''....''mentally ill''
::* '''teptun'''....''psychology''
::*'''tyep'''....''intellect''
:::* '''tyepa'''....''intellectual''
::::* '''gityepa'''....''shrewd, witty, keen''
::::* '''kotyepa'''....''sly''
::::* '''kyutyepa'''....''harebrained''
::::* '''tyepagra'''....''genius''
::::* '''teypograt'''....''nitwit''
:*'''tex'''....''thought''
::*'''texer'''....''to think''
:::* '''texier'''....''to conceive''
:::* '''texuer'''....''to persuade''
::::* '''vyatexuer'''....''to convince''
::::* '''vyotexuer'''....''to deceive''
:*'''tes'''....''meaning''
::*'''teser'''....''to mean''
:::*'''tester'''....''to understand''
::::* '''testier'''....''to realize''
::::* '''testuer'''....''to explain''
</div>
{{small/end}}
==== TEAB, TEA- , and -EA- Words ====
: The word '''teab''' means ''eye''. Many words are built on this prolific root along with its truncated stub roots '''tea-''' and '''-ea-''':
: First off, physical words pertaining to the ''eye'':
: The main parts of the eye are:
::* '''teabzyun'''....''eyeball''
::* '''teabyeg'''....''eye socket''
::* '''teabab'''....''eyelid''
:::* '''ateabab'''....''upper eyelid''
:::* '''oteabab'''....''lower eyelid''
::* '''teabyeb'''....''eyelash''
:::* '''ateabyeb'''....''upper eyelash''
:::* '''oteabyeb'''....''lower eyelash''
::* '''abteabyeb'''....''eyebrow''
::* '''zateab'''....''cornea''
::* '''zeteab'''....''pupil''
::* '''teabnyed'''....''retina''
::* '''teabil'''....''tear''
: The main things eyes do are:
::* '''teater'''....''to see''
:::* '''teatier'''....''to catch sight of, to perceive''
::::* '''vyoteatier'''....''to misperceive''
:::* '''teatuer'''....''to show''
:::* '''yonteater'''....''to discern''
:::* '''jateater'''....''to foresee''
:::* '''kyeteater'''....''to happen to see''
:::* '''ojteater'''....''to envisage''
:::* '''oteater'''....''to miss, to fail to see''
:::* '''zyeteater'''....''to see through''
:::* '''eynteater'''....''to barely make out''
::* '''teaxer'''....''to look''
:::* '''ajteaxer'''....''to retrospect''
:::* '''jeteaxer'''....''to watch''
:::* '''aybteaxer'''....''to overlook, to supervise''
:::* '''eynteaxer'''....''to squint''
:::* '''fizteaxer'''....''to respect''
:::* '''fuzteaxer'''....''to disrespect''
:::* '''gawteaxer'''....''to review''
:::* '''koteaxer'''....''to peek''
:::* '''ifteaxer'''....''to ogle''
:::* '''igteaxer'''....''to glance''
:::* '''izteaxer'''....''to confront''
:::* '''jateaxer'''....''to preview''
:::* '''joteaxer'''....''to review''
:::* '''keteaxer'''....''to scan''
:::* '''kiteaxer'''....''to look askance at''
:::* '''koaybteaxer'''....''to surveil''
:::* '''kozyeteaxer'''....''to peep''
:::* '''kuteaxer'''....''to observe''
:::* '''kyeteaxer'''....''to browse''
:::* '''kyoteaxer'''....''to stare''
:::* '''ojteaxer'''....''to auspicate''
:::* '''ubteaxer'''....''to consider''
:::* '''ugteaxer'''....''to gaze''
:::* '''ufteaxer'''....''to glower''
:::* '''vyateaxer'''....''to inspect, to check''
:::* '''vyuzteaxer'''....''to leer''
:::* '''yagteaxer'''....''to gape, to ogle''
:::* '''yibteaxer'''....''to view from afar, to telescope''
:::* '''yizteaxer'''....''to look beyond, to pretermit, to overlook''
:::* '''yogteaxer'''....''to glimpse''
:::* '''yokteaxer'''....''to gawp, to do a double-take''
:::* '''yubketeaxer'''....''to pry''
:::* '''yubteaxer'''....''to look closely at, to examine''
:::* '''yuzteaxer'''....''to look around, to circumspect''
:::* '''zateaxer'''....''to face, to confront, to look head on at''
:::* '''zoyteaxer'''....''to look back, to reflect''
:::* '''zyateaxer'''....''to look all about, to survey''
:::* '''zyeteaxer'''....''to look through, to peruse''
:::* '''zyoteaxer'''....''to squint, to peer''
: Also:
::* '''teabyuijer'''....''to blink''
::* '''teabaxer'''....''to wink, to bat an eye''
::* '''teabiler'''....''to weep, to lachrimate''
:::* '''teabilier'''....''to tear up''
:::* '''teabiluer'''....''to bring to tears''
::* '''teabuzyuber'''....''to roll one's eyes''
::* '''teabeynyujber'''....''to squint''
::* '''teabixer'''....''to attract''
:::* '''teabixwer'''....''to be attracted''
::* '''teabsiuner'''....''to wink''
::* '''teabyexer'''....''to bat an eye, to flirt''
::* '''teabbexler'''....''to keep an eye on''
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abteabyeb'''....''eyebrow''
*'''abteabyexer'''....''frown, furl one's eyebrows''
*'''anteaba'''....''monocular, one-eyed''
*'''anteabar'''....''monocle''
*'''ateabvolzvyon'''....''protanopia''
*'''ateabyeb'''....''upper eyelash''
*'''azteabiler'''....''bawl, sob, wail''
*'''be teabneg'''....''at eye level''
*'''enteabar'''....''binoculars''
*'''giteaba'''....''eagle-eyed, hawk-eyed, keen-eyed, sharp-eyed''
*'''igteabyujer'''....''blink''
*'''ivteabil'''....''tear of joy''
*'''jagteabbok'''....''presbyopia''
*'''kiteaba'''....''epicanthic, slant-eyed''
*'''kyopotteaba'''....''beady-eyed''
*'''mazteaba'''....''bright-eyed''
*'''molzteab'''....''shiner''
*'''molzteaba'''....''black-eyed''
*'''mozteaba'''....''sloe-eyed''
*'''oteabyeb'''....''lower eyelash''
*'''oteabzen'''....''astigmatism''
*'''oteabzena'''....''astigmatic, non-focal''
*'''pitteaba'''....''fish-eyed, walleyed''
*'''teab byus'''....''eye contact''
*'''teab draf'''....''eye chart''
*'''teab malz'''....''white of the eye, whites of the eyes''
*'''teab'''....''eye, oculus''
*'''teaba'''....''eye-related, ocular, ophthalmic, optic''
*'''teabab ambok'''....''sty''
*'''teabab'''....''eyelid''
*'''teababer'''....''blink''
*'''teabar'''....''eyeglass, eyeglasses, glasses, spectacles''
*'''teabarut'''....''optician''
*'''teabaxer'''....''bat an eye, wink''
*'''teabbektyen'''....''optometry''
*'''teabbektyena'''....''optometric''
*'''teabbektyenut'''....''optometrist''
*'''teabbok'''....''ophthalmia''
*'''teabgos'''....''floater''
*'''teabil'''....''tear''
*'''teabiler'''....''cry, shed tears, weep''
*'''teabiles'''....''tear drop''
*'''teabilier'''....''tear up''
*'''teabiluer'''....''bring to tears''
*'''teabiluus'''....''tear-jerker''
*'''teabilzyun'''....''tear drop, teardrop''
*'''teabilzyunuar'''....''eye dropper''
*'''teabix'''....''attraction, visual attraction''
*'''teabixer'''....''visually attract''
*'''teabixyea'''....''conspicuous, egregious''
*'''teabizer'''....''aim''
*'''teabkof'''....''blindfold''
*'''teabkunadbok'''....''conjunctivitis''
*'''teabnyed'''....''retina''
*'''teabnyedbok'''....''retinopathy''
*'''teabober'''....''gouge out one's eyes''
*'''teabofyuja'''....''epicanthic''
*'''teabog'''....''eyelet''
*'''teabovar'''....''eye protector, visor''
*'''teabpixea'''....''eye-catching''
*'''teabtun'''....''ophthalmology''
*'''teabtyen'''....''optics''
*'''teabulza'''....''green-eyed''
*'''teabuzyuber'''....''roll one's eyes''
*'''teabvixul'''....''eye shadow''
*'''teabvos'''....''iris''
*'''teabvyixil'''....''eyewash''
*'''teabyeb'''....''cilia, eyelash''
*'''teabyelzbok'''....''pinkeye''
*'''teabyija'''....''eyes wide open, fully aware, wide-eyed''
*'''teabyuijber'''....''wink''
*'''teabyunxar'''....''sight''
*'''teazexer''''....''to focus''
*'''teabzyaa'''....''wide-eyed''
*'''teabzyeg'''....''eye orbit, eye socket''
*'''teabzyun'''....''eyeball, orb''
*'''tujteaba'''....''sleepy-eyed''
*'''uvteabiler'''....''cry, sob, weep''
*'''vakteabar'''....''goggles''
*'''vyuyteaba'''....''bleary-eyed''
*'''yazteaba'''....''bug-eyed''
*'''yokteabilier'''....''burst into tears''
*'''yolzteaba'''....''blue-eyed''
*'''yuibteabar'''....''bifocals''
*'''zateab'''....''cornea''
*'''zateabmafnod'''....''leucoma''
*'''zeteab'''....''pupil''
*'''zeysteaba'''....''crosseyed''
*'''zyateaba'''....''wide-eyed''
*'''zyeva teab'''....''glass eye''
*'''zyoteaba'''....''squint-eyed, strabismic''
*'''zyuteaba'''....''round-eyed''
</div>
{{small/end}}
: Now, words related to ''seeing'' with the eye, the principal ones being:
::* '''teater'''....''to see''
:::* '''fyeteater'''....''to fantasize''
:::* '''ojteater'''....''to envisage''
:::* '''teatier'''....''to perceive''
:::* '''teatuer'''....''to show, to demonstrate''
:::* '''teatyaf'''....''eyesight, vision''
:::* '''teatyofa'''....''blind''
::::* '''teatyofxer'''....''to blind''
::* '''teaser'''....''to seem, to appear''
::* '''teasier'''....''to come into view, to show up''
:::* '''gelteaser'''....''to ressemble''
::* '''teaxer'''....''to look at''
:::* '''jeteaxer'''....''to watch''
::* '''teaper'''....''to visit''
::* '''teader'''....''to witness, to testify''
::* '''teazexer'''....''to focus''
::* '''teazuer'''....''to amaze''
::* '''tepeazer'''....''to imagine''
::* '''tujeazer'''....''to dream''
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''aateatwa'''....''first-seen''
*'''abteaxer'''....''overlook''
*'''aglateatbok'''....''macropsia''
*'''aglateaxara'''....''macroscopic''
*'''aglateaxen'''....''macroscopy''
*'''Ajna Fyatead'''....''Old Testament''
*'''ajteax'''....''retrospect, retrospective''
*'''ajteaxea'''....''retrospective''
*'''ajteaxeay'''....''retrospectively''
*'''ajteaxen'''....''retrospection''
*'''ajteaxer'''....''retrospect''
*'''alpkaxen teaxar'''....''radar scope''
*'''alpkaxen yibteaxir'''....''radar telescope''
*'''apeteaxuen'''....''dressage''
*'''aybteas'''....''overview, survey, synopsis''
*'''aybteasa'''....''synoptic, synoptical''
*'''aybteasdid'''....''survey''
*'''aybteasdiden'''....''surveying''
*'''aybteasdider'''....''conduct a survey, do a survey''
*'''aybteasdidier'''....''take a survey''
*'''aybteasdidiut'''....''survey-taker''
*'''aybteasdiduen'''....''giving a survey''
*'''aybteasdiduer'''....''give a survey''
*'''aybteasdiduut'''....''survey-giver, surveyor''
*'''aybteasdidwa'''....''surveyed''
*'''aybteax'''....''oversight, overview, survey''
*'''aybteaxea'''....''overlooking, overseeing, supervising''
*'''aybteaxen'''....''invigilation, overseeing, superintendence, supervising, supervision, watching over''
*'''aybteaxena'''....''supervisory''
*'''aybteaxer'''....''invigilate, oversee, superintend, supervise''
*'''aybteaxut'''....''intendant, invigilator, overseer, superintendent, supervisor''
*'''aybteaxutan'''....''superintendency''
*'''aybteaxwa'''....''overseen, supervised''
*'''baktean'''....''health awareness, health consciousness''
*'''be ijna igteat'''....''at first blush, at first glance''
*'''be ijna teat'''....''at first sight''
*'''be teaxuyea if'''....''in flagrante delicto''
*'''be yogteasi'''....''snatchy''
*'''bekteap'''....''checkup''
*'''bi hyua teasgun'''....''from another perspective, on the other hand''
*'''bi oujyena teatyen'''....''imperfective''
*'''bixpurteaxut'''....''anorak''
*'''bookteasa'''....''haggard''
*'''bookteasan'''....''haggardness''
*'''bookteasay'''....''haggardly''
*'''dezekut teas'''....''curtain-call''
*'''dezteaxun'''....''show, spectacle, theatrical show''
*'''dezteaxut'''....''spectator, theater spectator''
*'''dodutteaxut'''....''flasher''
*'''dota abteaxut'''....''chaperon''
*'''dota abteaxutyan'''....''chaperonage''
*'''dota abteaxuyt'''....''chaperone''
*'''dotay abteaxwa'''....''chaperoned''
*'''doteada'''....''notarial''
*'''doteaden'''....''notarization, notarizing''
*'''doteader'''....''notarize''
*'''doteadut'''....''notary''
*'''doteadwa'''....''notarized''
*'''dresiynteatuar'''....''charactron''
*'''ebteaxer'''....''look between''
*'''Ejna Fyatead'''....''New Testament''
*'''ennagteaxa'''....''stereoscopic''
*'''ennagteaxar'''....''stereoscope''
*'''enteazexa'''....''bifocal''
*'''enteazexar'''....''bifocals''
*'''enyibteaxar'''....''binoculars''
*'''Et tease trawa bu at.'''....''You look familiar to me.''
*'''eynteaten'''....''glimpsing, making out''
*'''eynteater'''....''glimpse, make out''
*'''eynteatwa'''....''glimpsed, made out''
*'''eynteatyofa'''....''purblind''
*'''eynteaxen'''....''squinting''
*'''eynteaxer'''....''squint''
*'''eynzyeteasa'''....''semitransparent''
*'''eynzyeteatuwa'''....''semi-opaque''
*'''finteatuyea duz'''....''toccata''
*'''fitean'''....''expertise, expertness''
*'''fiteapya'''....''well-attended''
*'''fiteas nod'''....''vantage point''
*'''fiteas'''....''nice appearance, vantage''
*'''fiteasa'''....''good-looking, handsome, nice-looking''
*'''fiteasea'''....''good-looking, handsome, nice-looking''
*'''fiteaser'''....''look good''
*'''fiteat'''....''keen sight''
*'''fiteater'''....''see keenly, see well''
*'''fiteay'''....''expertly''
*'''fiteazexwa'''....''well-focused''
*'''fiyuzteaxpurwa'''....''well-patrolled''
*'''fizteaxer'''....''look up to''
*'''fluzteax'''....''disrespect''
*'''fluzteaxen'''....''disrespecting''
*'''fluzteaxer'''....''disrespect''
*'''fluzteaxwa'''....''disrespected''
*'''frutipteax'''....''tantrum''
*'''futeapibyuj'''....''overbite''
*'''futeasa'''....''hard-to-see, obscure''
*'''futeasan'''....''obscurity''
*'''futeasaxer'''....''obscure''
*'''futeasaxwa'''....''obscured''
*'''futeasea'''....''bad-looking''
*'''futeat'''....''bad vision, poor sight''
*'''futeata'''....''poor-sighted''
*'''futeater'''....''see poorly''
*'''futeax'''....''contempt''
*'''futeaxea'''....''contemptuous''
*'''futeaxean'''....''contemptuousness''
*'''futeaxeay'''....''contemptuously''
*'''futeaxen'''....''expostulation''
*'''futeaxer'''....''expostulate''
*'''futeaxyefwa'''....''contemptible''
*'''futeaxyefway'''....''contemptibly''
*'''futeazexwa'''....''ill-focused''
*'''fuzteaxer'''....''look down at''
*'''fyatead'''....''gospel, holy witnessing, testament''
*'''fyateada'''....''testamentary''
*'''fyateader'''....''give holy testimony, preach, spread the gospel''
*'''fyateadut'''....''holy witness, preacher, spreader of the gospel''
*'''fyateadyan'''....''gospels, hadith''
*'''fyateaz'''....''miracle, thaumaturgy''
*'''fyateaza'''....''miraculous, thaumaturgical''
*'''fyateazay'''....''miraculously''
*'''fyateazen'''....''thaumaturgy''
*'''fyateazena'''....''thaumaturgical''
*'''fyateazer'''....''perform a miracle''
*'''fyateazun'''....''miracle''
*'''fyateazuna'''....''miraculous''
*'''fyateazunxer'''....''work a miracle''
*'''fyateazunxut'''....''miracle-worker''
*'''fyateazut'''....''thaumaturge, thaumaturgist''
*'''fyavyadwa tead'''....''sworn testimony''
*'''fyoteasa'''....''sinister''
*'''fyoteasay'''....''sinisterly''
*'''fyteaza'''....''thaumaturgic''
*'''gaaybteaxer'''....''resurvey''
*'''gateasa'''....''reappeared''
*'''gateasea'''....''reappearing''
*'''gateasen'''....''reappearance, reappearing''
*'''gateaser'''....''reappear''
*'''gateatuer'''....''reshow''
*'''gateax'''....''review''
*'''gateaxuer'''....''reshow''
*'''gateaxut'''....''reviewer''
*'''gateaxwa'''....''reflected, reviewed''
*'''gateazexen'''....''re-focusing''
*'''gateazexer'''....''re-focus, refocus''
*'''gateazexwa'''....''refocused''
*'''gayubteaxea'''....''reexamining''
*'''gayubteaxen'''....''reexamination, reexamining''
*'''gayubteaxer'''....''reexamine''
*'''gayubteaxwa'''....''reexamined''
*'''gelteas'''....''resemblance''
*'''gelteasat'''....''lookalike''
*'''gelteasea'''....''resembling, resembling''
*'''gelteasen'''....''resembling''
*'''gelteaser'''....''look alike, look like, look similar, resemble, resemble''
*'''geylteasea'''....''similar in appearance''
*'''giteasa'''....''sharp-sighted''
*'''giteat'''....''keen sight''
*'''giteata'''....''keen-sighted''
*'''giteatan'''....''keenness''
*'''giteatiyea'''....''perspicacious''
*'''giteatiyean'''....''perspicacity''
*'''giteatiyeay'''....''perspicaciously''
*'''glasteat'''....''cognoscente''
*'''glatean'''....''knowledgeableness''
*'''glateapen'''....''frequenting''
*'''glateaper'''....''frequent''
*'''glateaput'''....''frequenter''
*'''glateapya'''....''frequented''
*'''glateasgona'''....''multi-aspect''
*'''gloteatwa'''....''little-seen, not-often-seen''
*'''gra teatyikwa'''....''oversubtle''
*'''granoxteazun'''....''extravaganza''
*'''grateatwas'''....''eyeful''
*'''gratijtean'''....''hyper-consciousness''
*'''hyastean'''....''omniscience''
*'''hyasteat'''....''omniscient person''
*'''hyasteaxuea'''....''hardcore''
*'''hyasteay'''....''omnisciently''
*'''hyostean'''....''ignorance''
*'''hyosteat'''....''nitwit''
*'''hyuitteaxer'''....''look at one another''
*'''hyuityegteater'''....''see one another again''
*'''hyuteasea'''....''different-looking''
*'''hyuteaser'''....''look different''
*'''ibteaxea'''....''nonchalant''
*'''ibteaxeay'''....''nonchalantly''
*'''ibteaxen'''....''ignoring, looking away, nonchalance''
*'''ibteaxer'''....''ignore, look away''
*'''ifteaxen'''....''ogling''
*'''ifteaxer'''....''ogle''
*'''ifteaxin'''....''voyeurism''
*'''ifteaxina'''....''voyeuristic''
*'''ifteaxut'''....''ogler, voyeur''
*'''igteas'''....''cameo''
*'''igteax'''....''eyebeam, glance, glimpse, quick look''
*'''igteaxen'''....''glancing, glimpsing''
*'''igteaxer'''....''glance, glimpse''
*'''igteaxwa'''....''glimpsed''
*'''ijteasen'''....''sprouting''
*'''ijteaser'''....''sprout''
*'''ijteasya'''....''sprouted''
*'''ijteatien'''....''distinguishing, recognition''
*'''ijteatier'''....''begin to make out, discern, distinguish, recognize''
*'''ijteatiwa'''....''discerned''
*'''ijteatiyaf'''....''discernment''
*'''ijteatiyafwa'''....''discernible''
*'''ijteatiyafwan'''....''discernibility''
*'''ijteatiyafway'''....''discernibly''
*'''ijteatiyea'''....''discerning''
*'''ijteatiyeay'''....''discerningly''
*'''ikteas'''....''panorama''
*'''ikteasa sin'''....''panoramic view''
*'''ikteasa'''....''panoramic''
*'''ikteaxea'''....''contemplative''
*'''ikteaxen'''....''contemplation''
*'''ikteaxer'''....''contemplate''
*'''ikteaxwa'''....''contemplated''
*'''ikxer aybteasdid'''....''complete a survey, fill out a survey''
*'''iteat'''....''major archbishop''
*'''izteas'''....''line of sight, straight-shot view''
*'''izteatuen'''....''indication, pointing out''
*'''izteatuer'''....''indicate, point out''
*'''izteatuwa'''....''indicated, pointed out''
*'''izteatuyea'''....''indicative''
*'''izteaxen'''....''aiming, looking at direction''
*'''izteaxer'''....''aim, look at directly''
*'''izteaxun'''....''aim''
*'''izteaxwa'''....''aimed''
*'''jaghyasteat'''....''whippersnapper''
*'''jaigteax'''....''foreglimpse''
*'''jatean'''....''prescience''
*'''jateas'''....''prevision''
*'''jateat'''....''foresight, providence''
*'''jateata'''....''providential''
*'''jateatay'''....''providentially''
*'''jateatea'''....''clairvoyant, provident''
*'''jateatean'''....''clairvoyance''
*'''jateateat'''....''clairvoyant''
*'''jateateay'''....''clairvoyantly''
*'''jateater'''....''foresee''
*'''jateatut'''....''foreseer''
*'''jateatwa'''....''foreseen''
*'''jateatyafwa'''....''foreseeable''
*'''jateax'''....''preview''
*'''jateaxen'''....''previewing''
*'''jateaxer'''....''preview''
*'''jateaxut'''....''previewer''
*'''jateaxwa'''....''previewed''
*'''jateay'''....''presciently, providently''
*'''jeeba teaput'''....''summer visitor''
*'''jeteax'''....''observance, vigil, wake, watch''
*'''jeteaxen'''....''observation, observing, watching''
*'''jeteaxena'''....''observational''
*'''jeteaxenay'''....''observationally''
*'''jeteaxer'''....''observe, watch''
*'''jeteaxut'''....''bystander, observer, watcher''
*'''jeteaxwa'''....''watched over''
*'''jeteaxyafwa'''....''observable''
*'''jeteaxyafway'''....''observably''
*'''jeteaxyea'''....''observant, vigilant, watchful''
*'''jeteaxyean'''....''vigilance, watchfulness''
*'''jeteaxyeay'''....''observantly, watchfully''
*'''joteat'''....''hindsight''
*'''joteax'''....''post-review''
*'''joteaxen'''....''reviewing''
*'''joteaxer'''....''review''
*'''joteaxut'''....''reviewer''
*'''joteaxwa'''....''reviewed''
*'''Ju van yat hyuityegteatwo!'''....''Until we see one another again!''
*'''Ju yata yegteat'''....''Until we see one another again''
*'''Ju yegteat!'''....''Au revoir!''
*'''ju yegteat'''....''au revoir''
*'''jwobir kyoteaxut'''....''clock watcher''
*'''jwobirteaxut'''....''clock-watcher, clockwatcher''
*'''kateaxer'''....''find, locate''
*'''keteax'''....''scan''
*'''keteaxar'''....''scanner''
*'''keteaxer'''....''scan for''
*'''keteaxun'''....''scan''
*'''kexunteaxar'''....''scope''
*'''kexunteaxen'''....''scoping''
*'''kexunteaxwa'''....''scoped''
*'''kiteatay'''....''keenly''
*'''kiteaxen'''....''looking askance at''
*'''kiteaxer'''....''look askance at''
*'''koteasyen'''....''guise''
*'''koteatyofwasen'''....''decampment''
*'''koteatyofwaser'''....''decamp''
*'''koteatzyeg'''....''peephole''
*'''koteaxen'''....''espionage, peeking, sneaking, spying''
*'''koteaxer'''....''peek, sneak a look, spy''
*'''koteaxlen'''....''peeping''
*'''koteaxler'''....''peep''
*'''koteaxlut'''....''peeper, peeping tom''
*'''koteaxut'''....''peeker, sneaker, spy''
*'''kozyeteaxen'''....''peeping''
*'''kozyeteaxer'''....''peep''
*'''kozyeteaxut'''....''peeper''
*'''kozyoteaxer'''....''peer''
*'''kuteas'''....''profile, sideview''
*'''kuteatyofxar'''....''winker''
*'''kuteax bem'''....''observation post''
*'''kuteax yabtom'''....''observation tower''
*'''kuteax'''....''observance''
*'''kuteaxen'''....''observation, observing''
*'''kuteaxena'''....''observational''
*'''kuteaxenay'''....''observationally''
*'''kuteaxer'''....''observe''
*'''kuteaxut'''....''bystander, observer''
*'''kuteaxwa'''....''observed''
*'''kuteaxyafwa'''....''observable''
*'''kuteaxyafway'''....''observably''
*'''kuteaxyea'''....''observant''
*'''kuteaxyeay'''....''observantly''
*'''kuteaxyofwa'''....''unobservable''
*'''kyavolzteatar'''....''kaleidoscope''
*'''kyavolzteatara'''....''kaleidoscopic''
*'''kyavolzteataray'''....''kaleidoscopically''
*'''kyeojteay'''....''presciently''
*'''kyeteaten'''....''noticing''
*'''kyeteater'''....''happen to see, notice''
*'''kyeteatwa'''....''noticed''
*'''kyeteaxar'''....''browser''
*'''kyeteaxen'''....''browsing''
*'''kyeteaxer'''....''browse''
*'''kyoteaxen'''....''fixing one's eyes on, glaring, staring''
*'''kyoteaxer'''....''glare, glom, keep one's eyes fixed on, stare at, train one's eye on''
*'''kyoteaxun'''....''aim, object of attention''
*'''kyoteaxut'''....''rubbernecker''
*'''logelteasea'''....''different-looking''
*'''maarteaxar'''....''helioscope''
*'''magteaz'''....''pyrotechny''
*'''magteazun'''....''firework''
*'''magteazuna'''....''pyrotechnic, pyrotechnical''
*'''magteazuni'''....''fireworks, pyrotechnics''
*'''makteaxar'''....''electroscope''
*'''makteaxara'''....''electroscopic''
*'''mamteas'''....''bird's-eye view''
*'''mansin gwogteaxaren'''....''photomicrography''
*'''manteazun'''....''glitz''
*'''manteazunaya'''....''glitzy''
*'''manteazunika'''....''glitzy''
*'''marteaxam'''....''observatory''
*'''marteaxen'''....''star-gazing''
*'''marteaxer'''....''gaze at the stars, stargaze''
*'''marteaxut'''....''stargazer''
*'''mepteaxea mar'''....''lodestar''
*'''mepteaxuer'''....''guide''
*'''mepteaxuus'''....''guide, guidebook''
*'''mepteaxuwa'''....''guided''
*'''merteaxam'''....''planetarium''
*'''mialteaxar'''....''hygroscope''
*'''mialteaxara'''....''hygroscopic''
*'''mirteasyen'''....''Weltanschau, world view''
*'''moteata'''....''dim-sighted''
*'''muarteas'''....''moonscape''
*'''nabyanteaxar'''....''spectroscope''
*'''nabyanteaxara'''....''spectroscopic''
*'''nabyanteaxaren'''....''spectroscopy''
*'''nunteatuem'''....''merchandise display''
*'''oabteaxwa dotay'''....''unchaperoned''
*'''oaybteaxwa'''....''unsupervised''
*'''ofavyatean'''....''unfaithfulness''
*'''ofiteay'''....''inexpertly''
*'''oglateapya'''....''unfrequented''
*'''oglateaxar'''....''microscope''
*'''oglateaxara'''....''microscopical''
*'''oglateaxaray'''....''microscopically''
*'''oglateaxaren'''....''microscopy''
*'''oglateaxarer'''....''examine by microscope, train a microscope on''
*'''oglateaxarwa mansin'''....''photomicrograph''
*'''ogteasaxea'''....''overshadowing''
*'''ogteasaxer'''....''overshadow''
*'''ogteasaxwa'''....''overshadowed''
*'''ojaateatwa'''....''never-before-seen''
*'''ojateatwa'''....''groundbreaking, unforeseen''
*'''ojateatwas'''....''something unforeseen''
*'''ojateatyafwa'''....''unforeseeable''
*'''ojteadena'''....''pythonic''
*'''ojtean'''....''foresightedness''
*'''ojteas'''....''prospect, prospects''
*'''ojteasa'''....''prospective''
*'''ojteasay'''....''prospectively''
*'''ojteater'''....''envision, see into the future''
*'''ojteatut'''....''seer, visionary''
*'''ojteatuta zyun'''....''crystal ball''
*'''ojteatwas'''....''future vision''
*'''ojteaxea'''....''expectant''
*'''ojteaxeay'''....''expectantly''
*'''ojteaxen'''....''expectation, future gazing, peering into the future''
*'''ojteaxer'''....''expect, peer into the future''
*'''ojteaxwa'''....''expected''
*'''ojteaxway'''....''expectedly''
*'''okuteaxwa'''....''unobserved''
*'''okuteaxyea'''....''unobservant''
*'''okyeteatwa'''....''unnoticed''
*'''onaxtean'''....''ingratitude''
*'''otayotean'''....''numbness''
*'''oteagixwa'''....''unfocused''
*'''oteabexlawa'''....''unguarded, unmonitored''
*'''oteabiwa'''....''unconsidered''
*'''oteabixea tob'''....''unattractive person''
*'''oteabixea'''....''unappealing, unattractive''
*'''oteabixean'''....''unattractiveness''
*'''oteabixeay'''....''unappealingly''
*'''oteabixyea'''....''inconspicuous''
*'''oteabixyean'''....''inconspicuousness''
*'''oteabixyeay'''....''inconspicuously''
*'''oteabiyea'''....''inconsiderate''
*'''oteabiyean'''....''inconsiderateness''
*'''oteabiyeay'''....''inconsiderately''
*'''oteabizwa'''....''unfocused''
*'''otean'''....''ignorance, unawareness''
*'''oteasea'''....''unapparent''
*'''oteasen'''....''nonappearance''
*'''oteat'''....''ignorant person''
*'''oteatea'''....''unseeing''
*'''oteateay'''....''unseeingly''
*'''oteater'''....''overslip''
*'''oteatiwa'''....''unnoticed, unperceived''
*'''oteatiyea'''....''unperceptive''
*'''oteatwa'''....''unseen''
*'''oteatwas'''....''something unseen''
*'''oteatzenbwa'''....''unfocused''
*'''oteaxer'''....''pretermit''
*'''oteaxiyea'''....''unobservant''
*'''oteaxuwa'''....''unshown''
*'''oteaxuyea'''....''unspectacular''
*'''oteaxwa'''....''unregarded''
*'''oteay'''....''ignorantly, unknowingly, unwittingly''
*'''oteaza'''....''unremarkable''
*'''oteazexwa'''....''out of focus, unfocused''
*'''oteazika'''....''unspectacular''
*'''otesteay'''....''uncomprehendingly''
*'''otijtean'''....''unawareness''
*'''ovyamteasea'''....''fake-looking, illusory''
*'''ovyamteater'''....''have illusions''
*'''ovyatean'''....''imprudence, lack of wisdom''
*'''ovyateay'''....''uninsightfully, unwisely''
*'''oybgwogteaxara'''....''submicroscopic''
*'''oyebteas'''....''outward appearance''
*'''oyebteaxer'''....''look out''
*'''oyebteaxuea'''....''manifesting''
*'''oyebteaxuen'''....''manifestation, manifesting''
*'''oyebteaxuer'''....''manifest''
*'''oyebteaxuwa'''....''manifested''
*'''oyebteaxuwer'''....''manifest itself''
*'''oyuxwa teat'''....''naked eye, unaided vision''
*'''pansin jateax'''....''trailer''
*'''pat teatwas'''....''bird's eye view''
*'''pat teaxen'''....''bird watching''
*'''pat teaxut'''....''bird watcher''
*'''patteaxut'''....''birder, birdwatcher''
*'''per teasteaten'''....''go sightseeing''
*'''pyaonteaxar'''....''oscilloscope''
*'''seuxteaxar'''....''sonogram''
*'''tabteax'''....''autopsy''
*'''tabteaxer'''....''autopsy, do an autopsy''
*'''tabteaxwa'''....''autopsied''
*'''talabteaxa'''....''arthroscopic''
*'''talabteaxar'''....''arthroscope''
*'''tamsonabteaxut'''....''chamberlain''
*'''tea pitpixut'''....''sharpie, sharpy''
*'''teabexlar'''....''monitor''
*'''teabexlawa'''....''guarded, monitored, watched''
*'''teabexlen'''....''guarding, keeping an eye on, monitoring, watching''
*'''teabexler'''....''guard, keep an eye on, monitor, watch''
*'''teabexlun job'''....''vigil, watch''
*'''teabexlun yabtom'''....''guard tower, watch tower''
*'''teabexlun'''....''guard, wake''
*'''teabexlut'''....''guard, guardian, monitor''
*'''teabexlutan'''....''guardianship''
*'''teabexlutum'''....''guard booth, guard post, guard booth''
*'''teaden'''....''testification, testifying, testimony, witnessing''
*'''teader'''....''testify, witness''
*'''teadeyn'''....''testimonial, eyewitness account''
*'''teadun'''....''testimony''
*'''teadut'''....''eyewitness, testifier, witness''
*'''teadutduden'''....''recross''
*'''teadutsim'''....''witness box, witness chair''
*'''teadwa'''....''testified, witnessed''
*'''teadwas'''....''eyewitness account, testimony''
*'''teadyafwa'''....''testifiable''
*'''teadyafway'''....''testifiably''
*'''teadyof'''....''misprision''
*'''teaf'''....''blinder''
*'''teagia'''....''sharp''
*'''teagian'''....''visual sharpness''
*'''teagixer'''....''sharpen''
*'''teagixwa'''....''in focus''
*'''teagua'''....''fuzzy, out of focus''
*'''teaguan'''....''dullness, fuzziness, lack of focus''
*'''teaguxwa'''....''fuzzied''
*'''teakaxen'''....''spotting''
*'''teakaxer'''....''spot''
*'''teakaxut'''....''spotter''
*'''teakaxwa'''....''spotted''
*'''teakyax'''....''parallax''
*'''teakyes'''....''phenomenon''
*'''teakyesa'''....''phenomenal''
*'''teakyesay'''....''phenomenally''
*'''teakyestun'''....''phenomenology''
*'''teakyestuna'''....''phenomenological''
*'''teakyestunay'''....''phenomenologically''
*'''teamalz'''....''white of the eye''
*'''teamelza'''....''brown-eyed''
*'''teamelza'''....''brown-eyed''
*'''teamelzat'''....''brown-eyed person''
*'''teamelzat'''....''brown-eyed person''
*'''teamolz'''....''black eye''
*'''teamolz'''....''black-eye''
*'''teamolza'''....''black-eyed''
*'''teamolzier'''....''get a black eye''
*'''teamolzuer'''....''give a black eye to''
*'''tean'''....''awareness''
*'''teap'''....''visit''
*'''teapem'''....''stopover''
*'''teapen'''....''visitation, visiting''
*'''teaper baktut'''....''consult a doctor''
*'''teaper'''....''drop by, drop in, drop over, go see, visit''
*'''teapim'''....''visiting room''
*'''teapixea'''....''eye-catching''
*'''teapixer'''....''be noticed, catch the eye''
*'''teapopen'''....''sight-seeing, sightseeing''
*'''teapoper'''....''sight-see''
*'''teapoput'''....''sight-seer, sightseer''
*'''teaput'''....''visitant, visitor''
*'''teapwem'''....''port of call''
*'''teapya midom'''....''port of call''
*'''teapya'''....''visited''
*'''teapyefwa'''....''worth visiting''
*'''teas yegvixen'''....''facelift''
*'''teas'''....''appearance, aspect, sight, view''
*'''teasa'''....''aspectual, visual''
*'''teasdyeer'''....''sightread''
*'''teasea'''....''apparent, appearing, seeming''
*'''teaseay'''....''apparently, seemingly''
*'''teaser'''....''appear, look like, seem''
*'''teasgon'''....''feature''
*'''teasgonoya'''....''featureless''
*'''teasgonuka'''....''featureless''
*'''teasgun'''....''aspect, perspective, standpoint''
*'''teasguna'''....''aspectual''
*'''teasien'''....''appearance''
*'''teasier be dezyem'''....''appear on the stage''
*'''teasier'''....''come into view, appear''
*'''teasifwa'''....''fetching''
*'''teasin'''....''scene, sight, view, vista''
*'''teasina'''....''scenic''
*'''teasinay'''....''scenically''
*'''teasinyan'''....''scenery''
*'''teaskovyoxen'''....''camouflage, camouflaging''
*'''teaskovyoxer'''....''camouflage''
*'''teaskovyoxun'''....''camouflage''
*'''teaskovyoxwa'''....''camouflaged''
*'''teasnabyan'''....''visual spectrum''
*'''teasnod'''....''standpoint''
*'''teasoya'''....''viewless''
*'''teasuer'''....''afford a view, present''
*'''teasuka'''....''viewless''
*'''teasvyoxen'''....''dissimulation''
*'''teasvyoxer'''....''dissimulate''
*'''teasvyoxut'''....''dissimulator''
*'''teasvyoxwa'''....''dissimulated''
*'''teasyen'''....''aspect, guise, semblance''
*'''teasyena'''....''aspectual''
*'''teasyuibar'''....''zoom''
*'''teasyuiben'''....''zoom, zooming''
*'''teasyuiber'''....''zoom''
*'''teat'''....''sight, vision, vista''
*'''teata'''....''optical, visional, visual''
*'''teatar'''....''eyepiece''
*'''teatay'''....''visually''
*'''teatayibbok'''....''glaucoma''
*'''teatea'''....''seeing, viewing''
*'''teaten'''....''seeing, sighting, viewing''
*'''teater'''....''descry, see, view''
*'''teatgun'''....''opinion, perspective, viewpoint''
*'''teatiea'''....''perceiving''
*'''teatien'''....''apparition, appearance, appearing, noticing, noting, perceiving, perception''
*'''teatiena'''....''perceptional''
*'''teatier'''....''catch sight of, espy, notice, perceive''
*'''teatiut'''....''perceiver''
*'''teatiwa'''....''noticed, perceived''
*'''teatiyafwa'''....''noticeable, perceivable, perceptible''
*'''teatiyafwan'''....''perceptibly''
*'''teatiyafway'''....''noticeably, perceivably''
*'''teatiyea'''....''perceptive, percipient''
*'''teatiyean'''....''perceptiveness, percipience''
*'''teatiyikwa'''....''faint''
*'''teatiyofa'''....''imperceptive''
*'''teatiyofwa'''....''imperceivable, imperceptible, unnoticeable''
*'''teatiyofwan'''....''imperceptibility''
*'''teatiyofway'''....''imperceptibly''
*'''teatizon'''....''perspective, viewing direction''
*'''teatkin'''....''opinion, viewpoint''
*'''teatmis'''....''viewport''
*'''teatnad'''....''line of sight, vista''
*'''teatnazea'''....''worth seeing''
*'''teatnig'''....''eyeshot, field of view, viewing range''
*'''teatnod'''....''perspective''
*'''teatos'''....''sense of sight''
*'''teatpuxar'''....''diascope''
*'''teatu'''....''qv''
*'''teatuar'''....''index''
*'''teatuem'''....''exhibition site''
*'''teatuen'''....''demo, demonstration, display, displaying, exhibit, exhibiting, exhibition, show, showing''
*'''teatuena'''....''indexical''
*'''teatuer'''....''demonstrate, display, evince, exhibit, let see, run by, show''
*'''teatunyem'''....''diorama''
*'''teatut'''....''eyer''
*'''teatuun'''....''muster''
*'''teatuut'''....''demonstrator, exhibitioner, exhibitor''
*'''teatuwa'''....''demonstrated, displayed, exhibited, shown''
*'''teatuxyea nyaz'''....''bling''
*'''teatuyafwa'''....''demonstrable''
*'''teatuyafwan'''....''demonstrability''
*'''teatuyafway'''....''demonstrably''
*'''teatuyea'''....''demonstrative''
*'''teatuyean'''....''demonstrativeness''
*'''teatuyeay'''....''demonstratively''
*'''teatuyefas'''....''showpiece''
*'''teatuyofwa'''....''indemonstrable''
*'''teatwa'''....''seen, viewed''
*'''teatwas'''....''sight, something seen''
*'''teatwer'''....''be seen, be viewed''
*'''teatyaf'''....''ability to see, eyesight, sight, vision''
*'''teatyafa'''....''able to see, sighted''
*'''teatyafan'''....''sightfulness''
*'''teatyafat'''....''seeing person, sighted person''
*'''teatyafwa ayb ha memnad je yuzpen'''....''circumpolar''
*'''teatyafwa'''....''evident, manifest, visible''
*'''teatyafwan'''....''evidence, visibility''
*'''teatyafwaxen'''....''exposing, exposure, making visible''
*'''teatyafwaxer'''....''expose, make visible''
*'''teatyafwaxwa'''....''exposed, made visible''
*'''teatyafway'''....''manifestly, visibly''
*'''teatyen'''....''outlook''
*'''teatyiban'''....''range of vision, visual distance''
*'''teatyika'''....''nearly blind, sight-impaired''
*'''teatyikwa'''....''hard to see, obscure''
*'''teatyikwan'''....''difficulty to see''
*'''teatyikwaxen'''....''obscuring''
*'''teatyikwaxer'''....''obscure''
*'''teatyikwaxwa'''....''obscured''
*'''teatyof'''....''blindness, inability to see''
*'''teatyofa'''....''blind, sightless, unsighted''
*'''teatyofan'''....''blindness''
*'''teatyofat'''....''blind person''
*'''teatyofay'''....''blindly''
*'''teatyofer'''....''be blind''
*'''teatyofsea'''....''disappearing, going blind''
*'''teatyofsen'''....''disappearance''
*'''teatyofser'''....''become unable to see, go blind''
*'''teatyofvabien'''....''superstition''
*'''teatyofvabiyea'''....''superstitious''
*'''teatyofwa kum'''....''blindside''
*'''teatyofwa'''....''invisible''
*'''teatyofwan'''....''invisibility''
*'''teatyofwaser'''....''disappear''
*'''teatyofway'''....''invisibly''
*'''teatyofxar'''....''blinder''
*'''teatyofxea mapil'''....''whiteout''
*'''teatyofxea'''....''blinding''
*'''teatyofxeay'''....''blindingly''
*'''teatyofxer'''....''blind''
*'''teatyofxwa'''....''blinded, disappeared''
*'''teatyofxwat'''....''disappeared person''
*'''teatyofxwaxer'''....''make disappear''
*'''teatyofxwaxwat'''....''desaparecido''
*'''teatyuka'''....''obvious''
*'''teatyukan'''....''obviousness''
*'''teatyukay'''....''obviously''
*'''teatyukwa'''....''clear, glaring, sightly, evident''
*'''teatyukwan'''....''clearness''
*'''teatyukwas'''....''evidence''
*'''teatyukwaser'''....''become evident''
*'''teatyukway'''....''evidently, glaringly''
*'''teatzyeg'''....''peephole''
*'''teatzyegdez'''....''peepshow''
*'''teav'''....''blindfold''
*'''teaves'''....''eye patch''
*'''teavolz'''....''eye color''
*'''teavolzil'''....''eyeliner''
*'''teavuer'''....''blindfold''
*'''teax'''....''look, regard''
*'''teaxam'''....''theater''
*'''teaxar'''....''viewing device''
*'''teaxem'''....''arena''
*'''teaxen'''....''beholding, looking, observation, viewing''
*'''teaxer yibsin'''....''watch t.v.''
*'''teaxer'''....''behold, eye, look at, regard, view''
*'''teaxgun'''....''viewing angle''
*'''teaxien'''....''observance, observation, observing, watching''
*'''teaxier'''....''look at, observe, take in, watch''
*'''teaxim'''....''theater, viewing room''
*'''teaxiut'''....''observer, watcher''
*'''teaxiwa'''....''observed''
*'''teaxiyea'''....''observant''
*'''teaxiyeay'''....''observantly''
*'''teaxlawa'''....''watched''
*'''teaxlea'''....''watching''
*'''teaxlen'''....''watching''
*'''teaxler'''....''watch''
*'''teaxlut'''....''watcher''
*'''teaxnod'''....''outlook''
*'''teaxtyoper'''....''sashay''
*'''teaxu'''....''lo''
*'''teaxuar'''....''pointer''
*'''teaxuen'''....''spectacle''
*'''teaxuena'''....''spectacular''
*'''teaxuer'''....''show''
*'''teaxut'''....''beholder, looker, observer, viewer, watcher''
*'''teaxutyan'''....''viewing audience''
*'''teaxuun'''....''show, spectacle''
*'''teaxuunpoxus'''....''show-stopper''
*'''teaxuutyen'''....''showmanship''
*'''teaxuwa'''....''shown''
*'''teaxuyea'''....''flagrant, flashy, ostentatious, showy, specatacular''
*'''teaxuyean'''....''flagrance, flagrancy, ostentation, showiness''
*'''teaxuyeay'''....''flagrantly, ostentatiously, showily''
*'''teaxwa'''....''regarded, viewed''
*'''teaxyafwa'''....''viewable''
*'''teaxyeyfwa'''....''outstanding''
*'''teaxyikwa'''....''unsightly''
*'''teaxyikwan'''....''unsightliness''
*'''teaxzyefyem'''....''showcase''
*'''teay'''....''knowingly, wittingly''
*'''teayofwaxer'''....''make invisible''
*'''teayolza'''....''blue-eyed''
*'''teayolzat'''....''blue-eyed person''
*'''teaz'''....''awe, dazzle, marvel, spectacle, wonder''
*'''teaza'''....''geegaw''
*'''teazaya'''....''marvelous, remarkable, showy, spectacular, wondrous''
*'''teazayan'''....''showiness, wondrousness''
*'''teazdalea'''....''grandiloquent''
*'''teazdalean'''....''grandiloquence''
*'''teazdat'''....''backslapper''
*'''teazdatsen'''....''backslapping''
*'''teazek'''....''geegaw''
*'''teazen'''....''aim, bullseye, focus''
*'''teazena nod'''....''focal point''
*'''teazena'''....''focal''
*'''teazev'''....''lens''
*'''teazexar'''....''focus mechanism''
*'''teazexen'''....''aiming, focusing, paying attention''
*'''teazexer be'''....''focus on''
*'''teazexer'''....''aim at, focus''
*'''teazexoker'''....''go out of focus''
*'''teazexwa'''....''aimed, focused, in focus''
*'''teazfyus'''....''gimcrack''
*'''teazien'''....''being amazed, being awed, being awestruck, being dazzled, being stunned, marveling''
*'''teazier'''....''be amazed, be awed, be awestruck, be dazzled, be stunned, marvel''
*'''teazika'''....''marvelous, remarkable, showy, spectacular, wondrous''
*'''teazikan'''....''showiness, wondrousness''
*'''teazikay'''....''marvelously, remarkably, showily, spectacularly, wondrously''
*'''teaziper'''....''flounce''
*'''teaziwa'''....''amazed, astonished, awed, dazzled, stunned''
*'''teazmem'''....''wonderland''
*'''teaznixbuut'''....''huckster''
*'''teazpas'''....''stunt''
*'''teazpaser'''....''flounce''
*'''teazpasut'''....''stunt man, stuntman''
*'''teazpasuyt'''....''stuntwoman''
*'''teaztob'''....''prodigy''
*'''teaztof'''....''get-up, getup''
*'''teazuen'''....''amazement, astonishment, dazzling''
*'''teazuer teeputyan'''....''grandstand''
*'''teazuer'''....''amaze, awe, dazzle, stun''
*'''teazun'''....''show, spectacle''
*'''teazunaya'''....''amazing, awesome, dazzling, show, spectacular, stunning, wondrous''
*'''teazunika'''....''amazing, awesome, dazzling, show, spectacular, stunning, wondrous''
*'''teazunikan'''....''razzle-dazzle, wondrousness''
*'''teazunikay'''....''amazingly, astonishingly, awesomely, awesomeness, spectacularly, stunningly''
*'''teazuus'''....''stunner, showstopper''
*'''teazuut'''....''dazzler, show artist, showman''
*'''teazuwa'''....''amazed, astonished, awed, awestricken, awestruck, dazzled, stunned''
*'''teazuwan'''....''wonderment''
*'''teazuyea'''....''amazing, astonishing, awesome, dazzling, redoubtable, remarkable, stunning, wonderful''
*'''teazuyean'''....''remarkableness, wonderfulness''
*'''teazuyeay'''....''amazingly, astonishingly, awesomely, dazzlingly, redoubtably, stunningly, wonderfully''
*'''teazyef'''....''eyeglass''
*'''teazyen'''....''showmanship''
*'''teazzyigiaren'''....''swashbuckling''
*'''teazzyigiarut'''....''swashbuckler''
*'''tebos zyateax'''....''brain scan''
*'''teeteata'''....''audio-visual, audiovisual''
*'''tepteas'''....''phantasy''
*'''testeay'''....''understandingly''
*'''teypteas'''....''phantom''
*'''tojat jeteax'''....''vigil''
*'''topteas'''....''specter, spectre''
*'''topteasa'''....''spectral''
*'''tostea saxwat'''....''sentient creature''
*'''tostea sut'''....''sentient being''
*'''tostean'''....''sentience''
*'''totteas'''....''epiphany''
*'''ufranteas'''....''look of scorn''
*'''ufteaxer'''....''glare, leer, look meanly at''
*'''ugteax'''....''gaze''
*'''ugteaxen'''....''gazing''
*'''ugteaxer'''....''gaze''
*'''utteatut'''....''showoff''
*'''utteatuut'''....''exhibitionist''
*'''utteatuyea'''....''exhibitionist''
*'''utteatuyean'''....''exhibitionism''
*'''utteaxuut'''....''showoff''
*'''uyfteaxea'''....''glowering''
*'''uyfteaxen'''....''glowering''
*'''uyfteaxer'''....''glower''
*'''uzper ay kyoteaxer'''....''rubberneck''
*'''Van Tot su ata teadut.'''....''Let God be my witness.''
*'''viteasa'''....''picturesque, sightly''
*'''viteasan'''....''picturesqueness''
*'''viteasay'''....''picturesquely''
*'''viteaza'''....''snazzy''
*'''viteazay'''....''snazzily''
*'''vlatean'''....''certainty''
*'''volzteatyofa'''....''colorblind''
*'''volzteatyofan'''....''colorblindness''
*'''vomul gwogteaxar'''....''electron microscope''
*'''vomula gwogteaxar'''....''electron microscope''
*'''voyteater'''....''see again''
*'''voyteaxen'''....''looking back, reflected, reviewing''
*'''voyteaxer'''....''look back, reflect, review''
*'''vuteas'''....''eye-sore, eyesore, ugly sight''
*'''vuyateaten'''....''repulsion''
*'''vuyateater'''....''be repulsed, consider vile''
*'''vuyateatut'''....''reviler''
*'''vuyteasea'''....''frowsy, frowzy''
*'''vuyteasean'''....''frowziness''
*'''vuyteaseay'''....''frowzily''
*'''vyaduwa teadut'''....''deponent''
*'''vyamteasea'''....''real-looking, seemingly real, verisimilar''
*'''vyamteaser'''....''ring true, seem real, seem true''
*'''vyamteatyofa'''....''blind to reality, superstitious''
*'''vyamteatyofan'''....''blindness to reality, superstition''
*'''vyaotean'''....''acumen, discernment, insight''
*'''vyaoteat'''....''insightful person''
*'''vyaoteay'''....''discerningly''
*'''vyatea jdin'''....''true life story''
*'''vyatean'''....''sagacity, sapience''
*'''vyateay'''....''sagaciously, sagely''
*'''vyidteata'''....''clear-sighted''
*'''vyidteatan'''....''clear-sightedness''
*'''vyiteasaxen'''....''clearing''
*'''vyiteasaxwa'''....''cleared''
*'''vyiteaten'''....''clarity''
*'''vyomteas'''....''phantasm''
*'''vyomteasa'''....''phantasmal''
*'''vyomteasyan'''....''phantasmagoria''
*'''vyomteasyana'''....''phantasmagorical''
*'''vyomteatea'''....''having illusions, illusional, seeing things''
*'''vyomteaten'''....''be illusional, having illuions, seeing things''
*'''vyomteater'''....''be illusional, have illusion, see things''
*'''vyotean'''....''illusion''
*'''vyoteas'''....''affectation, illusion, mirage, trompe-l'oeil''
*'''vyoteasa'''....''illusory, make-believe''
*'''vyoteatien'''....''delusion, misperception''
*'''vyoteatier'''....''be deluded, misperceive''
*'''vyoteatiwa'''....''misperceived''
*'''vyoteatuea'''....''misleading''
*'''vyoteatuen'''....''delusion, feigning, misdirection''
*'''vyoteatuer'''....''delude, feign, mislead''
*'''vyoteatuwa'''....''deluded, feigned, misled''
*'''vyoteatuyea'''....''delusive''
*'''vyoteatuyeay'''....''delusively''
*'''vyoteaxyea'''....''geegaw''
*'''vyoteaz'''....''fake miracle, razzmatazz''
*'''vyoteazexwa'''....''misfocused''
*'''vyoteazut'''....''charlatan''
*'''vyuteasa'''....''slovenly''
*'''vyuteasan'''....''slovenliness''
*'''xaer teazpas'''....''perform a stunt''
*'''xunaudteaxen'''....''radioscopy''
*'''yabteasem'''....''lookout''
*'''yabteaxer'''....''look up''
*'''yagteata'''....''longsighted''
*'''yagteax'''....''stare, watch, glare''
*'''yagteaxen'''....''staring, watching, glaring, gawking''
*'''yagteaxer'''....''gape, gawk, glare, stare, watch, stare''
*'''yantada teap'''....''conjugal visit''
*'''yanteatien'''....''confusion, mixup''
*'''yanteatier'''....''confuse''
*'''yanteatiwa'''....''confused''
*'''yanteatuer'''....''confound''
*'''yanteatuyea'''....''confusing''
*'''yateat'''....''metropolitan bishop''
*'''yebteas'''....''cutaway''
*'''yebteaxar'''....''endoscope''
*'''yebteaxea'''....''introspective, inward-looking''
*'''yebteaxeay'''....''introspectively''
*'''yebteaxen'''....''endoscopy, inspection, introspection''
*'''yebteaxena'''....''endoscopic''
*'''yebteaxer'''....''inspect, introspect, look in''
*'''yebteaxut'''....''inspector''
*'''yibsin teaxutyan'''....''t.v. audience''
*'''yibsin teaz'''....''t.v. show, television show''
*'''yibsinteaxer'''....''teleview''
*'''yibsinteaxut'''....''televiewer''
*'''yibteasintyenut'''....''veejay''
*'''yibteat'''....''remote vision''
*'''yibteata'''....''far-sighted, farsighted''
*'''yibteatan'''....''far-sightedness, farsightedness''
*'''yibteatay'''....''sagely''
*'''yibteatea'''....''farseeing, sagacious''
*'''yibteatean'''....''sagacity''
*'''yibteateay'''....''sagaciously''
*'''yibteatut'''....''sage''
*'''yibteatyaf'''....''far-sightedness, farsightedness''
*'''yibteatyafa'''....''far-sighted, farsighted''
*'''yibteaxar'''....''spyglass, telescope''
*'''yibteaxara'''....''telescopic''
*'''yibteaxaray'''....''telescopically''
*'''yibteaxarer'''....''view through a telescope''
*'''yibteaxarwa'''....''telescoped, viewed through a telescope''
*'''yibteaxen'''....''distant viewing, telescoping''
*'''yibteaxer'''....''view from afar''
*'''yibteaxwa'''....''viewed from afar''
*'''yigteat'''....''acumen''
*'''yizgwogteaxar'''....''ultramicroscope''
*'''yobkyoteaxer'''....''glop''
*'''yobteaxen'''....''looking down''
*'''yobteaxer'''....''look down''
*'''yogjateas'''....''teaser''
*'''yogteata'''....''myopic''
*'''yogteatan'''....''myopia''
*'''yogteatay'''....''myopically''
*'''yogteatea'''....''shortsighted''
*'''yogteatean'''....''shortsightedness''
*'''yogteateay'''....''shortsightedly''
*'''yogteatut'''....''myope''
*'''yogteax'''....''glance''
*'''yogteaxen'''....''glancing''
*'''yogteaxer'''....''glance at''
*'''yogxwa teas'''....''cropped view''
*'''yokteas'''....''sudden appearance''
*'''yokteaser'''....''suddenly appear''
*'''yokteatier'''....''appear out of nowhere''
*'''yokteaxen'''....''peeking''
*'''yokteaxer'''....''peek''
*'''yokteaxut'''....''peeker''
*'''yoneateay'''....''discerningly''
*'''yonteatwa'''....''outstanding''
*'''yonteatwan'''....''outness''
*'''yonteatway'''....''outstandingly''
*'''yoteat'''....''primate''
*'''yubketeaxen'''....''prying''
*'''yubketeaxer'''....''pry''
*'''yubketeaxut'''....''pryer''
*'''yubteas'''....''close-up view, closeup''
*'''yubteata'''....''near-sighted, nearsighted''
*'''yubteatan'''....''nearsightedness''
*'''yubteaxea'''....''scrutinizing''
*'''yubteaxen'''....''examination, inspection, scrutinizing, scrutiny''
*'''yubteaxer'''....''examine, inspect, look closely at, parse, scrutinize''
*'''yubteaxut'''....''examiner, inspector''
*'''yubteaxwa'''....''parsed''
*'''yuibteaxen'''....''looking near and far''
*'''yuibteaxer'''....''look near and far''
*'''yuznada teat'''....''peripheral vision''
*'''yuzteax'''....''look-around''
*'''yuzteaxar'''....''periscope''
*'''yuzteaxeay'''....''circumspectly''
*'''yuzteaxen'''....''circumspection, looking around, patrolling, reconnaissance''
*'''yuzteaxer'''....''circumspect, look around, patrol, reconnoiter''
*'''yuzteaxpur'''....''patrol car, reconnaissance vehicle''
*'''yuzteaxpuren'''....''patrolling, reconnaissance''
*'''yuzteaxpurer'''....''patrol, reconnoiter''
*'''yuzteaxwa'''....''circumspected, patrolled, reconnoitered''
*'''zateaxer'''....''face, look at head-on''
*'''zayteax'''....''lookahead''
*'''zayteaxea'''....''expectant, forward-looking''
*'''zayteaxen'''....''expectation, looking ahead''
*'''zayteaxer'''....''expect, look ahead, look forward to''
*'''zayteaxwa'''....''expected''
*'''zeyteaxer'''....''look across, survey''
*'''ziteaxea'''....''facing right''
*'''ziteaxer'''....''face right, look right''
*'''zoteas'''....''rearview''
*'''zoteatar'''....''hindsight''
*'''zoyteas sinzyef'''....''rear-view mirror''
*'''zuteaxea'''....''facing left''
*'''zuteaxer'''....''face left, look left''
*'''zyateas'''....''wide-angle view''
*'''zyateasin'''....''panorama''
*'''zyateasina'''....''panoramic''
*'''zyateatuen'''....''exhibiting, exhibition''
*'''zyateatuer'''....''exhibit, show widely''
*'''zyateatuwa'''....''exhibited''
*'''zyateax'''....''scan''
*'''zyateaxar'''....''monitor, scanner''
*'''zyateaxem'''....''range, scan zone, scanning area''
*'''zyateaxen'''....''scanning''
*'''zyateaxer'''....''look all about, monitor, scan, survey''
*'''zyateaxuea'''....''flaunting''
*'''zyateaxueay'''....''flauntingly''
*'''zyateaxuen'''....''flaunting''
*'''zyateaxuer'''....''flaunt''
*'''zyateaxuwa'''....''flaunted''
*'''zyeteasa'''....''limpid, lucent, transparent''
*'''zyeteasan'''....''limpidity, limpidness, transparence, transparency''
*'''zyeteasay'''....''limpidly, transparently''
*'''zyeteata'''....''sheer''
*'''zyeteater'''....''see through''
*'''zyeteatyafwa'''....''hyaline, transparent''
*'''zyeteatyafwan'''....''transparence, transparency''
*'''zyeteatyikwa'''....''opaque''
*'''zyeteatyikwan'''....''opacity, opaqueness''
*'''zyeteatyikway'''....''opaquely''
*'''zyeteatyofwa'''....''non-see-through, nontransparent, opaque''
*'''zyeteatyofwan'''....''opacity''
*'''zyeteatyofway'''....''opaquely''
*'''zyeteatyukwa'''....''transparent''
*'''zyeteatyukwan'''....''transparency''
*'''zyeteatyukway'''....''transparently''
*'''zyeteaxea'''....''perusing''
*'''zyeteaxen'''....''peeping, perusal, perusing''
*'''zyeteaxer'''....''look through, peep, peruse''
*'''zyeteaxut'''....''peeper, peruser''
*'''zyeteaxwa'''....''perused''
*'''zyoteas'''....''cropped view, narrow view''
*'''zyoteaxen'''....''peering, prying, squinting''
*'''zyoteaxer'''....''peer, pry, squint''
*'''zyoteaxut'''....''pryer''
</div>
{{small/end}}
: Here are words that use the mnemonic stub '''ea''':
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abeater'''....''survey, oversee''
*'''abeaxer'''....''survey''
*'''beaxer'''....''guard, keep watch, monitor, protect, ward off, watch over''
*'''ejeater'''....''envisage''
*'''fuzeater'''....''disdain''
*'''ganeaxer'''....''re-aim''
*'''gavyabeaxer'''....''reinspect''
*'''gineaxer'''....''hone in on''
*'''ijeater'''....''catch sight of, glimpse''
*'''izeaxer'''....''demonstrate, designate, point out, point to, show''
*'''keaxer'''....''scan, scope out''
*'''neaxer'''....''aim''
*'''nodeaxer'''....''aim, demonstrate, show''
*'''ojeater'''....''envisage''
*'''oseaser'''....''disappear''
*'''oseaxer'''....''make disappear''
*'''ovbeaxer'''....''guard against''
*'''ovyoneaxer'''....''contradistinguish''
*'''oyebeaser'''....''become exposed''
*'''oyebeaxer'''....''expose, express''
*'''seater'''....''note, state, take note of''
*'''tojbeaxer'''....''do a wake''
*'''tuyubizeaxer'''....''indicate''
*'''utejeaser'''....''represent''
*'''vakbeaxer'''....''safeguard''
*'''veaxer'''....''make possible''
*'''vyabeaxer'''....''examine, inspect''
*'''vyaleaxer'''....''check, inspect, examine''
*'''yaneater'''....''confuse''
*'''yaneaxer'''....''confuse, flummox''
*'''yoneater'''....''discern, discriminate, distinguish, make out''
*'''yoneaxer'''....''distinguish''
</div>
{{small/end}}
==== TEEB and TEE- Words ====
: The root word '''teeb''' (''ear'') and its stub word form '''tee-''' produce many terms relating to the ear, hearing, and acoustics:
: The principal verbs are:
::* '''teeter'''....''to hear''
::* '''teeser'''....''to sound like''
::* '''teexer'''....''to listen''
::* '''teeper'''....''to attend''
::* '''teeder'''....''to quote''
::* '''yuvteeter'''....''to obey''
: Here are many words built on '''teeb''' or '''tee-''':
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''aateetwa'''....''first-heard''
*'''amez teebuz'''....''diamond earring''
*'''anteeba'''....''monaural''
*'''Ata teeb tuloxefwe.'''....''My ear itches.''
*'''byoyk bi teeb byoyk'''....''earache''
*'''dita oyuvteexen'''....''civil disobedience''
*'''ennagteexa'''....''stereophonic''
*'''ennagteexar'''....''stereophones''
*'''fitees'''....''melody, nice sound, sweet sound''
*'''fiteesa'''....''melodious, nice-sounding, sweet-sounding''
*'''fiteesea'''....''nice-sounding''
*'''fiteeser'''....''sound nice, sound sweet''
*'''fiteexegwa'''....''well-rehearsed''
*'''frunteexen'''....''hearing confession''
*'''frunteexer'''....''hear confession''
*'''futees'''....''cacophony''
*'''futeesea'''....''bad-sounding, cacophonous, ugly-sounding''
*'''futeet'''....''bad hearing''
*'''futeeta'''....''hard of hearing''
*'''fyoxunteexer'''....''hear confession''
*'''gelteesa'''....''homophonous, sound-alike''
*'''gelteeser'''....''sound alike''
*'''gelteesun'''....''homophone''
*'''giteeba'''....''sharp-eared''
*'''glateetwa'''....''much-heard, oft-heard, often-heard''
*'''gloteetwa'''....''rarely-heard, seldom-heard''
*'''grateetwa'''....''shopworn''
*'''gyateebbok'''....''mumps''
*'''ikay teetyofa'''....''stone-deaf''
*'''ikteepya'''....''plenary''
*'''kodteexut'''....''confessor''
*'''koteeten'''....''overhearing''
*'''koteeter'''....''overhear''
*'''koteetwa'''....''overheard''
*'''koteexar'''....''bug, listening device, wiretap''
*'''koteexen'''....''eavesdropping, listening in on, snooping, wiretapping''
*'''koteexer'''....''eavesdrop, listen in on, snoop''
*'''koteexut'''....''eavesdropper, snooper, wiretapper''
*'''koteexyea'''....''snoopy''
*'''mansinteesdrar'''....''camcorder''
*'''mansinteesdrarer'''....''camcorder''
*'''oglateexar'''....''mic, microphone, mike''
*'''oteedrawa'''....''unreported''
*'''oteepea'''....''not attending''
*'''oteepen tistam'''....''hookey, hooky''
*'''oteepen'''....''absence, failure to attend, nonattendance''
*'''oteeper tisun'''....''miss a class''
*'''oteeper'''....''absent, be absent, fail to attend''
*'''oteeput'''....''absentee''
*'''oteeputyen'''....''absenteeism''
*'''oteetwa'''....''unheard of, unheard-of''
*'''oteetwas'''....''something unheard of, unheard-of''
*'''oteexean'''....''inattentiveness''
*'''oteexegwa'''....''unrehearsed''
*'''oteexwa'''....''unaudited''
*'''oteexyea'''....''inattentive''
*'''oyebteeb'''....''ear pavillon''
*'''oyuvteexea'''....''disobedient, disobeying''
*'''oyuvteexean'''....''disobedience''
*'''oyuvteexeay'''....''disobediently''
*'''oyuvteexen'''....''disobedience''
*'''oyuvteexer'''....''disobey''
*'''oyuvteexwa'''....''disobeyed''
*'''oyuvteexyean'''....''contumacy''
*'''oyuvteexyeay'''....''contumaciously''
*'''poteexen'''....''sniffing''
*'''seuzteefyofa'''....''tone deaf, tone-deaf''
*'''seuzteefyofan'''....''tone deafness''
*'''seuzteefyofser'''....''become tone deaf''
*'''seuzteefyofxen'''....''rendering tone deaf''
*'''seuzteefyofxer'''....''render tone deaf''
*'''seuzteefyofxwa'''....''rendered tone deaf''
*'''teazuer teeputyan'''....''grandstand''
*'''teeb byoyk'''....''ear ache''
*'''teeb kaduzar'''....''ear drum, eardrum''
*'''teeb-'''....''auri-, oto-''
*'''teeb'''....''auricle, ear''
*'''teeba'''....''aural, auricular, otic''
*'''teebar'''....''audio device, earphone, earpiece''
*'''teebay'''....''aurally''
*'''teebbekut'''....''aurist''
*'''teebden'''....''whisper, whispering''
*'''teebder'''....''whisper''
*'''teebdut'''....''whisperer''
*'''teebdwa'''....''whispered''
*'''teebeib'''....''earlobe''
*'''teebik'''....''earful''
*'''teebil'''....''cerumen, earwax''
*'''teebiyub'''....''ear lobe''
*'''teebsiynxen'''....''earmarking''
*'''teebsiynxer'''....''earmark''
*'''teebsiynxwa'''....''earmarked''
*'''teebuz'''....''earing, earring''
*'''teebuzun'''....''stapes, stapedes''
*'''teebyel'''....''ear wax''
*'''teebyuba'''....''parotid''
*'''teebyujar'''....''earplug''
*'''teed'''....''hear-say, hearsay, quotation''
*'''teeden'''....''quoting, rumoring''
*'''teeder'''....''quote''
*'''teedras'''....''report''
*'''teedrawa'''....''reported''
*'''teedren'''....''reporting''
*'''teedrenyan'''....''reportage''
*'''teedrer'''....''report''
*'''teedrun'''....''report''
*'''teedrut'''....''reporter''
*'''teedrutyan'''....''press pool''
*'''teedwa'''....''hear-say, hearsay, quoted, rumored''
*'''teedwe van'''....''hearsay has it that''
*'''teef'''....''earmuff, headgear''
*'''teeiyob-bektut'''....''otorhinolaryngologist''
*'''teepea'''....''attending, in attendance''
*'''teepen'''....''attendance''
*'''teeper dyez'''....''attend a film''
*'''teeper fyaxam'''....''attend mass, attend services''
*'''teeper totifram'''....''attend church''
*'''teeper yaniv'''....''attend a party''
*'''teeper'''....''attend''
*'''teeput'''....''attendee, member of the audience''
*'''teeputsag'''....''turnout''
*'''teeputyan'''....''attendance, audience''
*'''tees-'''....''audio-''
*'''tees'''....''audio, sound''
*'''teesa'''....''sonic''
*'''teesag'''....''noise''
*'''teesaza'''....''loud, noisy''
*'''teesazan'''....''loudness, noisiness''
*'''teesazay'''....''loudly, noisily''
*'''teesdras'''....''sonogram''
*'''teeser'''....''sound like''
*'''teesnabyan'''....''sound spectrum''
*'''teesnaga'''....''audiometric''
*'''teesnagar'''....''audiometer''
*'''teesnagen'''....''audiometry''
*'''teesnyov'''....''audiotape''
*'''teestaxdras'''....''phonogram''
*'''teestaxdren'''....''audiorecording''
*'''teestun'''....''audiology''
*'''teestuna'''....''audiological''
*'''teestut'''....''audiologist''
*'''teet-'''....''audio-''
*'''teet'''....''audio, hearing''
*'''teeta'''....''auditive, auditory, aural''
*'''teetay'''....''aurally''
*'''teeteata'''....''audio-visual, audiovisual''
*'''tee-tei-teyob-bektut'''....''ear-nose-throat doctor''
*'''teetem'''....''auditorium''
*'''teeten'''....''audition, hearing''
*'''teeter'''....''hear''
*'''teetien'''....''get word, getting wind of, hearing''
*'''teetier'''....''get wind of, get word, hear''
*'''teetifwa'''....''mellifluent, mellifluous''
*'''teetifwan'''....''mellifluousness''
*'''teetifway'''....''mellifluously''
*'''teetim'''....''sound studio''
*'''teetnazea'''....''worth hearing''
*'''teetos'''....''sense of hearing''
*'''teetuen'''....''informing, letting it be heard, notification, notifying''
*'''teetuer'''....''inform, let it be heard, notify''
*'''teetum'''....''sound booth''
*'''teetut'''....''hearer''
*'''teetuut'''....''notifier''
*'''teetuwa'''....''notified''
*'''teetyaf'''....''ability to hear''
*'''teetyafa'''....''able to hear, hearing''
*'''teetyafnogar'''....''sonometer''
*'''teetyafok'''....''hearing loss''
*'''teetyafokea'''....''suffering from hearing loss''
*'''teetyafwa yiban'''....''earshot''
*'''teetyafwa'''....''audible''
*'''teetyafwan'''....''audibility''
*'''teetyafway'''....''audibly''
*'''teetyekea'''....''clued in''
*'''teetyeker'''....''attempt to hear, try to hear''
*'''teetyika'''....''hard of hearing''
*'''teetyikat'''....''hearing-challenged person''
*'''teetyiken'''....''having a hard time hearing, straining to hear''
*'''teetyiker'''....''have a hard time hearing, strain to hear''
*'''teetyikwa vyod'''....''howler''
*'''teetyikwa vyos'''....''howler''
*'''teetyikwa xeus'''....''faint noise''
*'''teetyikwa'''....''hard to hear, hard-to-hear''
*'''teetyof'''....''deafness, inability to hear''
*'''teetyofa'''....''deaf''
*'''teetyofan'''....''deafness''
*'''teetyofat'''....''deaf person''
*'''teetyofsea'''....''going deaf''
*'''teetyofser'''....''go deaf''
*'''teetyofwa'''....''inaudible, unaudible''
*'''teetyofwan'''....''inaudibility''
*'''teetyofwaser'''....''become inaudible''
*'''teetyofwaxer'''....''make inaudible''
*'''teetyofway'''....''inaudibly''
*'''teetyofxer'''....''deafen''
*'''teetyofxyea'''....''deafening, ear-splitting, earsplitting''
*'''teetyofxyeay'''....''deafeningly''
*'''teetyukwa'''....''easy to hear''
*'''teetyuxar'''....''hearing aid''
*'''teex-'''....''audio-''
*'''teex'''....''audition, hearing''
*'''teexar'''....''headphone, listening device, microphone''
*'''teexdras'''....''audiogram''
*'''teexdren'''....''audiography''
*'''teexdyes'''....''audiobook''
*'''teexea'''....''hearkening, listening''
*'''teexegen'''....''rehearsing''
*'''teexeger '''....''rehearse''
*'''teexegut'''....''rehearser''
*'''teexegwa'''....''rehearsed''
*'''teexen'''....''hearkening, listening''
*'''teexer doyevson'''....''hear a case, try a case''
*'''teexer yevson'''....''hear a case''
*'''teexer'''....''audit, audition, harken, hearken, listen''
*'''teexien'''....''auditing, auditioning''
*'''teexier'''....''audit, audition''
*'''teexifut'''....''audiophile''
*'''teexir'''....''headset''
*'''teexiut'''....''auditor''
*'''teexiwat'''....''person being auditioned''
*'''teexu'''....''hark''
*'''teexuen'''....''audition, letting it be heard, pointing out''
*'''teexuer'''....''audition, let it be heard, point out, try out''
*'''teexut'''....''auditor, listener''
*'''teexutyan'''....''audience''
*'''teexuut'''....''auditioner''
*'''teexuwa'''....''auditioned, pointed out''
*'''teexwa'''....''hearkened''
*'''tiba gwogteexar'''....''lavalier''
*'''voyteexer'''....''listen to again, run over''
*'''vyoteeten'''....''mishearing''
*'''vyoteeter'''....''mishear''
*'''vyoteetwa'''....''misheard''
*'''yapeteeb'''....''pig's ear, pigs ear''
*'''yeb teetyafwa yiban'''....''within earshot''
*'''yekteex'''....''hearing''
*'''yekteexen'''....''audit, audition, auditioning, trying''
*'''yekteexer'''....''audit, audition, hear''
*'''yekteexim'''....''hearing chamber''
*'''yekteexut'''....''auditor''
*'''yekteexwa'''....''audited, tried''
*'''yevsonteex'''....''hearing''
*'''yevsonteexer'''....''hear a case''
*'''yevsonteexwa'''....''on trial, tried''
*'''yevsonteexwat'''....''person on trial''
*'''yobteeb'''....''ear lobe''
*'''yubteexar'''....''stethoscope''
*'''yubteexen'''....''auscultation''
*'''yubteexer'''....''auscultate, examine aurally, listen closely''
*'''yubteexwa'''....''auscultated''
*'''yuvteexea'''....''docile, obedient, obeying''
*'''yuvteexean'''....''docility, obedience''
*'''yuvteexeay'''....''docilely, obediently''
*'''yuvteexen'''....''obedience''
*'''yuvteexer'''....''obey''
*'''yuvteexwa'''....''obeyed''
*'''zoteebaiba'''....''mastoid''
*'''zyateetuen'''....''rumor-mongering, rumoring''
*'''zyateetuer'''....''rumor''
*'''zyateetuun'''....''rumor''
*'''zyateetuut'''....''rumormonger''
*'''zyateetuwa'''....''rumored''
</div>
{{small/end}}
==== TEIB and TEI- Words ====
: The root word '''teib''' (''nose'') and its stub word form '''tei-''' are incorporated in many words having to do with the nose and smelling.
: The main verbs are:
::* '''teiter'''....''to smell''
::* '''teixer'''....''to sniff''
::* '''teiser'''....''to smell like''
::* '''futeiser'''....''to stink, reek''
: Here is a fuller list of derivations:
{{small/top}}
<hr color=blue>
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abektun bi teib'''....''rhinoplasty''
*'''azfuteisa'''....''rancid''
*'''azfuteisan'''....''rancidity, rancidness''
*'''azteisyel'''....''musk''
*'''azteisyelyena'''....''musky''
*'''azteisyelyenan'''....''muskiness''
*'''azteixer'''....''snuffle''
*'''beer mulikxwa teib'''....''have a stuffed-up nose''
*'''ebteibea'''....''interfering''
*'''ebteiben'''....''interference, interfering, meddling''
*'''ebteiber'''....''interfere, meddle, nose in''
*'''ebteibut'''....''busybody, meddler''
*'''ebteibwa'''....''interfered''
*'''ebteibyea'''....''meddlesome, nosey, nosy''
*'''ebteibyean'''....''nosiness''
*'''ebteibyeay'''....''nosily''
*'''faosyebteisa'''....''fusty''
*'''faosyebteisan'''....''fustiness''
*'''fiteis'''....''aroma, fragrance, nice aroma, nice smell, scent''
*'''fiteisa'''....''aromatic, fragrant, good-smelling, palatable, redolent, sweet-smelling''
*'''fiteisan'''....''redolence''
*'''fiteisaser'''....''become sweet-smelling''
*'''fiteisaxea'''....''aromatizing, making sweet-smelling''
*'''fiteisaxen'''....''aromatization, making sweet-smelling''
*'''fiteisaxer'''....''aromatize, make sweet-smelling''
*'''fiteisay'''....''fragrantly''
*'''fiteisea'''....''aromatic, nice-smelling, sweet-smelling''
*'''fiteisen'''....''smelling good''
*'''fiteiser'''....''smell good''
*'''fiteisika'''....''scented''
*'''fiteisoya'''....''scentless''
*'''fiteisuka'''....''scentless''
*'''futeis'''....''bad smell, foul odor, foul smell, odor, reek, stench, stink''
*'''futeisa'''....''bad-smelling, bad-tasting, fetid, malodorous, niffy, rank, stinky''
*'''futeisan'''....''fetidness, rankness''
*'''futeisaser'''....''become stinky''
*'''futeisaxea'''....''stinking up, yucky''
*'''futeisaxen'''....''stinking up''
*'''futeisaxer'''....''stink up''
*'''futeisaxwa'''....''stunk up''
*'''futeisayan'''....''smelliness''
*'''futeisea'''....''bad-smelling, foul, odorous, stinking, stinky''
*'''futeisean'''....''odorousness''
*'''futeiseay'''....''odorously''
*'''futeiser'''....''niff, reek, smell bad, stink''
*'''futeisikan'''....''smelliness''
*'''futeiskoxul'''....''elixir''
*'''futeismov'''....''funk''
*'''futeisobar'''....''deodorizer''
*'''futeisobea'''....''deodorizing''
*'''futeisoben'''....''deodorization''
*'''futeisober'''....''deodorize''
*'''futeisobul'''....''deodorant, deodorizer''
*'''gapoteib'''....''elephant trunk''
*'''giteiba'''....''sharp-nosed''
*'''givobteixut'''....''snuffer''
*'''ilokyea teib'''....''runny nose''
*'''jwofteisa'''....''fusty, musty''
*'''jwofteisan'''....''fustiness, mustiness''
*'''koyebteiben'''....''snooping''
*'''koyebteiber'''....''snoop''
*'''mogteizber'''....''cense''
*'''mogteizbut'''....''censer''
*'''myekber ota teib'''....''powder one’s nose''
*'''ofiteisa'''....''unpalatable''
*'''otein'''....''agnosticism''
*'''oteizuwa'''....''unscented''
*'''ovteibukxil'''....''cough medicine, cough syrup''
*'''pateib'''....''beak, bill, neb''
*'''poteib'''....''snout''
*'''poteif'''....''muzzle''
*'''poteifben'''....''muzzling''
*'''poteifber'''....''muzzle''
*'''poteifbwa'''....''muzzled''
*'''poteixen'''....''sniffing''
*'''poteixer'''....''sniff''
*'''poteixus'''....''sniffer''
*'''poteixut'''....''sniffer''
*'''poteixwa'''....''sniffed''
*'''tee-tei-teyob-bektut'''....''ear-nose-throat doctor''
*'''tei-'''....''nasal, nose, rhino-''
*'''teib'''....''nose, proboscis, schnoz, schnozz, smeller, snoot, snout''
*'''teiba yujteuzun'''....''nasal consonant''
*'''teiba'''....''nasal, rhinal''
*'''teibag'''....''schnozzle''
*'''teibalegien'''....''sniffling''
*'''teibalegier'''....''sniffle''
*'''teibalien'''....''sniffing''
*'''teibalier'''....''sniff''
*'''teibalufa'''....''tracheal''
*'''teibaluier'''....''breathe''
*'''teiban'''....''nasality''
*'''teibaxen'''....''nasalization, nuzzling''
*'''teibaxer'''....''nasalize, nuzzle''
*'''teibaxut'''....''nuzzler''
*'''teibay'''....''nasally''
*'''teibaysea'''....''proboscidate''
*'''teibbok'''....''rhinitis''
*'''teibdaler'''....''snuffle''
*'''teibginid'''....''nose cone, nosecone''
*'''teibil'''....''mucus, snot''
*'''teibila'''....''mucal''
*'''teibilay'''....''snottily''
*'''teibilaya'''....''mucus-filled, snot-nosed, snotty''
*'''teibilayan'''....''snottiness''
*'''teibilea'''....''running at the nose''
*'''teibilen'''....''rhinorrhea, running at the nose''
*'''teibiler'''....''run at the nose''
*'''teibilika'''....''mucus-filled, snot-nosed, snotty''
*'''teibilikan'''....''snottiness''
*'''teibilikay'''....''snottily''
*'''teibiloker'''....''run at the nose''
*'''teibilun'''....''boogie''
*'''teibixun'''....''something chewable''
*'''teibnyef'''....''nosebag''
*'''teibok'''....''cold, rhume''
*'''teiboksen'''....''catching a cold''
*'''teibokser'''....''catch a cold''
*'''teibtiibiluen'''....''nosebleed''
*'''teibtun'''....''rhinology''
*'''teibtuna'''....''rhinological''
*'''teibtut'''....''rhinologist''
*'''teibukxen'''....''blowing one's nose''
*'''teibukxer'''....''blow one's nose''
*'''teibuz'''....''nose ring''
*'''teibuzuk'''....''sinus''
*'''teibuzukbok'''....''sinusitis''
*'''teibyeg'''....''nostril''
*'''teibyeger'''....''flare at the nostrils''
*'''teibyena'''....''nose-like, rhinoid''
*'''teibzoteyob'''....''nasopharynx''
*'''teibzoteyoba'''....''nasopharyngeal''
*'''teif'''....''muffler''
*'''teifober'''....''unmuffle, unmuzzle''
*'''teikyebzyobus'''....''sphincter''
*'''teipyeux'''....''achoo, sneeze''
*'''teipyos'''....''nose-dive, nosedive''
*'''teipyosea'''....''nose-diving''
*'''teipyosen'''....''nose-diving''
*'''teipyoser'''....''nose-dive, nosedive''
*'''teipyuxlen'''....''sneezing, sternutation''
*'''teipyuxlena'''....''sternutative, sternutatory''
*'''teipyuxler'''....''sneeze''
*'''teipyuxloa'''....''about to sneeze''
*'''teis gel teliwa pot'''....''gaminess''
*'''teis'''....''aroma, odor, scent, smell, whiff''
*'''teisaya'''....''aromatic, odorous, smelly''
*'''teisea gel teiliwa pot'''....''gamey''
*'''teisea'''....''ostensible''
*'''teiseay'''....''ostensibly''
*'''teiser'''....''smell like''
*'''teisika'''....''aromatic, odorous, smelly''
*'''teisoya'''....''odorless''
*'''teisuka'''....''odorless''
*'''teisukan'''....''gimcrackery''
*'''teit'''....''sense of smell''
*'''teita'''....''olfactory''
*'''teitayub'''....''adenoid''
*'''teitayuba'''....''adenoidal''
*'''teiter'''....''smell''
*'''teitier'''....''get a whiff of, savor''
*'''teitiwa'''....''savored''
*'''teitos'''....''sense of smell''
*'''teituen'''....''giving off a smell''
*'''teituer'''....''give off a smell''
*'''teityaf'''....''ability to smell, olfactory sense of smell''
*'''teityafa'''....''able to smell''
*'''teityafwa'''....''able to be smelled''
*'''teityafwan'''....''ability to be smelled''
*'''teityof'''....''anosmia, inability to smell''
*'''teityofa'''....''suffering from anosmia, unable to smell''
*'''teityofser'''....''lose the ability to smell''
*'''teityofwa'''....''impossible to smell, odorless''
*'''teityofwan'''....''inability to be smelled, odorlessness''
*'''teiv'''....''handkerchief, hankie, hanky, snot rag''
*'''teixar'''....''smeller''
*'''teixen'''....''olfaction, smelling''
*'''teixena'''....''olfactory''
*'''teixer'''....''smell, sniff, whiff''
*'''teixeusen'''....''snoring''
*'''teixeuser'''....''snore''
*'''teixeusut'''....''snorer''
*'''teixgivob'''....''snuff''
*'''teixgivoben'''....''snuffing''
*'''teixgivober'''....''snuff''
*'''teixgivobnyem'''....''snuffbox''
*'''teixun'''....''whiff''
*'''teixut'''....''smeller''
*'''teixwa'''....''smelled''
*'''teixyofxen'''....''smothering''
*'''teixyofxer'''....''smother''
*'''teixyofxwa'''....''smothered''
*'''teiz'''....''aroma, perfume''
*'''teizaya'''....''aromatic, perfumy''
*'''teizayan'''....''perfuminess''
*'''teizbar'''....''aromatizer, perfumer''
*'''teizbek'''....''aromatherapy''
*'''teizbekut'''....''aromatherapist''
*'''teizben'''....''aromatization, perfuming''
*'''teizber'''....''aromatize, perfume''
*'''teizbwa'''....''aromatized, perfumed''
*'''teizika'''....''aromatic, perfumy''
*'''teizikan'''....''perfuminess''
*'''teiznam'''....''perfumery''
*'''teiznamut'''....''perfumer''
*'''teizuka'''....''aroma-free, perfume-free''
*'''teizxam'''....''perfume factory''
*'''teizyeb'''....''vial of perfume''
*'''teizyun'''....''pomander''
*'''viteis'''....''fragrance, nice aroma, perfume, scent''
*'''viteisa'''....''fragrant''
*'''viteisea'''....''aromatic''
*'''viteiser'''....''smell fragrant''
*'''viteisuer'''....''perfume''
*'''viteizuwa'''....''perfumed''
*'''vobier gel futeisa'''....''disrelish''
*'''vuteisa'''....''mephitic''
*'''vuteisea'''....''putrid, stinky''
*'''vuteiser'''....''smell foul, stink''
*'''vuteisobul'''....''deodorant''
*'''vuteixen'''....''putrefaction, stinking up''
*'''vuteixer'''....''stink up''
*'''vuteixwa'''....''putrefied, stunk up''
*'''vyuteis'''....''nasty smell''
*'''yavilteisea'''....''beery''
*'''yeybteiba'''....''intranasal''
*'''yeybteibay'''....''intranasally''
*'''zoteiba'''....''postnasal''
*'''zoteis'''....''spoor''
</div>
<hr style="color: blue">
{{small/end}}
==== TEUB and TEU- Words ====
: The root word '''teub''' and the related stub form '''teu-''' are used in numerous derived words having to do with ''mouth, tasting, shouting, vocalizing''.
: The main words to know are:
::* '''teub'''....''mouth''
::* '''teuter'''....''to taste''
::* '''teuser'''....''to taste like''
::* '''teuxer'''....''to take a taste''
::* '''teubiluer'''....''to spit''
::* '''ivteuber'''....''to smile''
::* '''uvteuber'''....''to frown''
::* '''teubab'''....''tongue''
:::* '''teubaxer'''....''to lick''
::* '''teubob'''....''lip''
:::* '''teuboxer'''....''to kiss''
::* '''teupib'''....''tooth''
:::* '''teupixer'''....''to bite''
::* '''teubier'''....''to swallow''
::* '''teuder'''....''to shout''
::* '''teuz'''....''voice''
: The mneumonic stub '''eu''' forms words having to do with the vocalization or sounds in general, eg.:
::* '''deuz'''....''song''
::* '''seux'''....''sound''
::* '''xeus'''....''noise''
: Here is a more complete list:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abaxrea yujteuzun'''....''fricative consonant''
*'''abteuba yujteuzun'''....''alveolar consonant''
*'''abteuba'''....''alveolar''
*'''abteubbok'''....''alveolitis''
*'''abteubob'''....''upper lip''
*'''abteupimul'''....''enamel''
*'''abteupimulxen'''....''enameling''
*'''abteupimulxut'''....''enameler''
*'''abteupimulxwa'''....''enameled''
*'''abteupimulxwasyan'''....''enamelware''
*'''abteuz'''....''voice-over''
*'''agivteub'''....''big smile, wide grin''
*'''agivteuben'''....''grinning widely, smiling bigly''
*'''agivteuber'''....''grin widely, smile bigly''
*'''agivteud'''....''cackle, guffaw''
*'''agivteudea'''....''cackling, guffawing''
*'''agivteuden'''....''cackling, guffawing''
*'''agivteuder'''....''cackle, guffaw''
*'''aglateuzubar'''....''megaphone''
*'''agteuboba'''....''lippy''
*'''anteuza'''....''unanimous''
*'''anteuzan'''....''unanimity''
*'''anteuzay'''....''unanimously''
*'''anteuzuna'''....''monophonic''
*'''apateusoz'''....''cackle''
*'''apateusozen'''....''cackling''
*'''apateusozer'''....''cackle''
*'''ateubob'''....''upper lip''
*'''ateupib'''....''central incisor''
*'''aynteubien'''....''swallowing whole''
*'''aynteubier'''....''swallow whole''
*'''aynteubiwa'''....''swallowed whole''
*'''azivteud'''....''belly laugh, cheer, gleeful yelp, guffaw, loud laughter''
*'''azivteuden'''....''cheering, guffawing, laughing out loud, shouting out with glee, yelping gleefully''
*'''azivteuder'''....''cheer, guffaw, laugh out loud, laugh raucously, laugh riotously, laugh uproariously, shout out with glee, yelp gleefully''
*'''azteud'''....''clamor, exclamation, holler, scream, shout''
*'''azteuden'''....''clamoring, exclaiming, exclamation, screaming, shouting, vociferation, yelling''
*'''azteudena'''....''exclamatory''
*'''azteuder'''....''clamor, exclaim, holler, scream, shout, vociferate''
*'''azteudut'''....''screamer, shouter''
*'''azteudwa'''....''clamored, exclaimed, screamed, shouted''
*'''azteudyea'''....''vociferously''
*'''azteudyeay'''....''vociferousness''
*'''azteuzar'''....''loudhailer''
*'''azufteuden'''....''carping, loud complaining''
*'''azufteudut'''....''carper''
*'''azuvteud'''....''cry out loud, groan, moan, sob, wail''
*'''azuvteuden'''....''bawling, crying out loud, groaning, lamentation, moaning, railing, sobbing, wailing''
*'''azuvteuder'''....''bawl, complain loudly, cry out loud, groan, lament loudly, moan, rail, sob, wail, waul''
*'''azuvteudut'''....''railer, wailer''
*'''baosteuz'''....''twang''
*'''baosteuzyena'''....''twangy''
*'''be aza teuz'''....''aloud''
*'''bokuluyea teupixun'''....''poisonous bite''
*'''dizteudyefwa'''....''ludicrous''
*'''dizteudyefwan'''....''ludicrousness''
*'''dizteudyefway'''....''ludicrously''
*'''dopteud'''....''battle cry''
*'''doteudafxer'''....''enfanchise''
*'''doteudafxwa'''....''enfranchised''
*'''doteudofxer'''....''disenfranchise''
*'''doteudofxwa'''....''disenfranchised''
*'''doteudut'''....''crier''
*'''doteudyiva'''....''free to vote''
*'''doteuzdref nyem'''....''ballot box''
*'''doteuzdref'''....''ballot''
*'''doteuziem'''....''poll, polling site''
*'''doteuzien'''....''polling''
*'''doteuzier'''....''poll''
*'''doteuziut'''....''poll-taker, pollster''
*'''doteuziwa'''....''polled''
*'''doteuzkyaxut'''....''swinger''
*'''doteuzsager'''....''canvass''
*'''doteuzsagut'''....''canvasser''
*'''doteuzsagwa'''....''canvassed''
*'''doteuzuaf'''....''permission to vote''
*'''doteuzuar'''....''voting machine''
*'''doteuzuem'''....''poll, voting place''
*'''doteuzuen tum'''....''voting booth''
*'''doteuzuen'''....''voting''
*'''doteuzuer'''....''cast a vote''
*'''doteuzuun'''....''vote''
*'''doteuzuut'''....''voter''
*'''doteuzuwa'''....''voted''
*'''doteuzuyofxen'''....''disenfranchisement''
*'''doteuzuyofxer'''....''disenfranchise''
*'''doteuzuyofxwa'''....''disenfranchised''
*'''doteuzyiv'''....''franchise, right to vote''
*'''doteuzyivan'''....''freedom to vote''
*'''douvteud'''....''gravamen''
*'''doyiv bi teuzer'''....''right to vote, suffrage, voting right''
*'''doymteudut'''....''town crier''
*'''dropek teud'''....''war cry''
*'''dyafel-teuxuwa'''....''vanilla-flavored''
*'''ebyijteuzuna'''....''intervocalic''
*'''enteuboba'''....''bilabial''
*'''enyijteuzun'''....''diphthong''
*'''eteupib'''....''lateral incisor''
*'''evyijteuz'''....''schwa''
*'''eynabaxrea yujteuzun'''....''affricative consonant''
*'''eynteubier'''....''half-swallow''
*'''eynteusoz'''....''snicker, titter''
*'''eynteusozen'''....''snickering, tittering''
*'''eynteusozer'''....''snicker, titter''
*'''eynyijteuzun'''....''semivowel''
*'''eynyujteuzun'''....''semi-consonant''
*'''fiteud'''....''acclamation, cheer, howl of approval, praise''
*'''fiteudea'''....''acclaiming''
*'''fiteuden'''....''acclamation, cheering, howling, laudation, lauding, ovation, praising''
*'''fiteuder'''....''acclaim, cheer, howl, laud, praise''
*'''fiteuduer'''....''arouse applause''
*'''fiteudut'''....''praiser''
*'''fiteuduyea'''....''cheer-inducing, cheerful''
*'''fiteudwa'''....''acclaimed, cheered, howled, lauded, praised''
*'''fiteudyea'''....''laudatory, praiseful''
*'''fiteudyeay'''....''laudatorily, praisingly''
*'''fiteudyefwa'''....''worthy of applause''
*'''Fiteus!'''....''Yum!''
*'''fiteus'''....''flavor, good taste''
*'''fiteusa'''....''delicious, lush, mouthwatering, nice-tasting, sapid, tasty, toothsome, yum, yummy''
*'''fiteusan'''....''deliciousness, lushness, sapidity''
*'''fiteusay'''....''deliciously, lushly''
*'''fiteusaya'''....''delicious, flavored, flavorful, flavorsome, luscious''
*'''fiteusayan'''....''deliciousness, lusciousness, savoriness, tastiness''
*'''fiteusea'''....''flavorful, good-tasting, savory''
*'''fiteuser'''....''taste good''
*'''fiteusika'''....''delicious, flavored, flavorful, flavorsome, luscious''
*'''fiteusikan'''....''deliciousness, lusciousness, savoriness''
*'''fiteusikay'''....''deliciously, lusciously''
*'''fiteusoya'''....''flavorless''
*'''fiteusuka'''....''flavorless''
*'''fiteuxer'''....''flavor''
*'''fiteuxul'''....''flavoring''
*'''fiteuxwa'''....''flavored''
*'''fuivteub'''....''smirk, sneer''
*'''fuivteubea'''....''smirking, sneering''
*'''fuivteuben'''....''smirking, sneering''
*'''fuivteuber'''....''smirk, sneer''
*'''fuivteud'''....''ridicule, satire, snide laugh, twit''
*'''fuivteudea'''....''satiric, satirical''
*'''fuivteuden'''....''ridicule, ridiculing, satirization, snidely laughing''
*'''fuivteuder'''....''laugh snidely, make fun of, ridicule, satirize, twit''
*'''fuivteudut'''....''satirist''
*'''fuivteudwa'''....''ridiculed, satirized, sneered''
*'''fuivteudyafwa'''....''ridiculous''
*'''fuivteudyafwan'''....''ridiculousness''
*'''fuivteudyafway'''....''ridiculously''
*'''fuivteudyea'''....''satirical, sneering''
*'''fuivteudyeay'''....''satirically, sneeringly''
*'''futeud'''....''denunciation''
*'''futeuden'''....''decrying, denouncement, denouncing, denunciation, philippic, shouting down''
*'''futeuder'''....''decry, denounce, denunciate, shout down''
*'''futeudwa'''....''decried, denounced, denunciated, shouted down''
*'''futeus'''....''bad taste''
*'''futeusa'''....''bad-tasting, brackish, flyblown, foul-tasting, unsavory''
*'''futeusan'''....''brackishness, foul taste, unsavoriness''
*'''futeusaya'''....''nasty, unsavory''
*'''futeusayan'''....''nastiness, unsavoriness''
*'''futeusea'''....''bad-tasting, nasty, unsavory''
*'''futeuser'''....''taste bad''
*'''futeusika'''....''nasty, unsavory''
*'''futeusikan'''....''nastiness, unsavoriness''
*'''gapoteupib'''....''elephant tusk''
*'''gapoteupibul'''....''ivory''
*'''gateubier'''....''regorge''
*'''gateupib'''....''tusk''
*'''gateupibika'''....''tusked''
*'''gateupibog'''....''tush''
*'''gateuzer'''....''reecho''
*'''giteubaba'''....''sharp-tongued''
*'''giteud'''....''screak, scream, screech''
*'''giteudea'''....''screaming, screeching, shrieking, squealing''
*'''giteuden'''....''screaming, screeching, shrieking, squealing''
*'''giteuder'''....''screak, scream, screech, shriek, squeal''
*'''giteudut'''....''screamer, squealer''
*'''giteudwa'''....''screamed''
*'''giteudyea'''....''screechy''
*'''giteus'''....''tang, zest''
*'''giteusa'''....''tangy, zestful''
*'''giteusan'''....''zestfulness''
*'''giteusay'''....''zestfully''
*'''giteusaya'''....''zesty''
*'''giteusika'''....''zesty''
*'''giyufteud'''....''screak''
*'''giyufteuder'''....''screak''
*'''glagla ivteuduyea'''....''sidesplitting''
*'''groteusa'''....''insipid''
*'''groteusan'''....''insipidity, insipidness''
*'''groteusay'''....''insipidly''
*'''ibteubixer'''....''gnaw away''
*'''ifteuduer'''....''razz''
*'''igteubien'''....''gulping down''
*'''igteubier'''....''gulp down, quickly swallow''
*'''igteubiwa'''....''gulped down''
*'''igteupixyafa'''....''snappish''
*'''igteupixyafan'''....''snappishness''
*'''igteupixyafay'''....''snappishly''
*'''ijmola teud'''....''primal scream''
*'''ikay teutyofa'''....''stone-blind''
*'''ikteubien'''....''swallowing up''
*'''ikteubier'''....''ingurgitate, swallow up, swallow whole''
*'''ikteubiwa'''....''swallowed up''
*'''ikteubixegwa'''....''gnawed away, gnawed off''
*'''ikteubixer'''....''chew up''
*'''ikteubixwa'''....''chewed up''
*'''ila yuzteuzun'''....''liquid consonant''
*'''inyijteuzun'''....''triphthong''
*'''inyujteuzuna'''....''tri-consonantal''
*'''iteupib'''....''canine tooth''
*'''ivteub'''....''grin, smile''
*'''ivteubea'''....''grinning, smiley, smiling''
*'''ivteuben'''....''grinning, smiling''
*'''ivteuber'''....''grin, smile''
*'''ivteubsin'''....''smiley''
*'''ivteubuer'''....''cause to grin, make grin''
*'''ivteubuyea'''....''grin-inducing''
*'''ivteubxen'''....''amusement''
*'''ivteubxer'''....''amuse, make smile''
*'''ivteubxwa'''....''amused''
*'''ivteubyeay'''....''smilingly''
*'''ivteud'''....''laugh''
*'''ivteudea'''....''laughing''
*'''ivteuden'''....''laughing, laughter''
*'''ivteuder'''....''laugh''
*'''ivteudog'''....''giggle''
*'''ivteudogen'''....''giggling''
*'''ivteudoger'''....''giggle''
*'''ivteudogyea'''....''giggly''
*'''ivteuduen'''....''amusing, entertainment, tickling''
*'''ivteuduer'''....''amuse, entertain, tickle''
*'''ivteuduwa'''....''amused, entertained, tickled''
*'''ivteuduyea'''....''funny''
*'''ivteudxea'''....''amusing, funny''
*'''ivteudxeay'''....''amusingly''
*'''ivteudxer'''....''amuse, make laugh''
*'''ivteudyafwa'''....''laughable, ridiculous''
*'''ivteudyafwan'''....''ridiculousness''
*'''ivteudyafway'''....''laughably, ridiculously''
*'''ivteudyeay'''....''laughingly''
*'''ivteusoz'''....''chortle''
*'''ivteusozen'''....''chortling''
*'''ivteusozer'''....''chortle''
*'''ivteusozut'''....''chortler''
*'''izteupibtyen'''....''orthodontia, orthodontics''
*'''izteupibtyena'''....''orthodontic''
*'''izteupibtyenut'''....''orthodontist''
*'''jateux'''....''foretaste''
*'''jateuxen'''....''pre-taste''
*'''jateuxer'''....''pre-taste''
*'''jateuxut'''....''pre-taster''
*'''joteus'''....''after-taste, aftertaste''
*'''joteuzben'''....''dubbing''
*'''joteuzber'''....''dub''
*'''joteuzbut'''....''dubber''
*'''joteuzbwa'''....''dubbed''
*'''joyujteuzuna'''....''postconsonantal''
*'''koda doteuzdref'''....''secret ballot''
*'''loteuboxer'''....''unmuffle''
*'''loteuzuwa'''....''unvoiced''
*'''malpoxea yujteuzun'''....''stop consonant''
*'''Mas bi Yaguvteuden'''....''Wailing Wall''
*'''muyfyeg bi teupib vyixyel'''....''tube of toothpaste''
*'''teuzdyeer'''....''read aloud''
*'''bay teuz'''....''out loud, aloud''
*'''obteubixer'''....''gnaw off''
*'''obteuzwas'''....''something whispered''
*'''odoteuzea'''....''nonvoting''
*'''odoteuzut'''....''nonvoter''
*'''ofiteusayxwa'''....''unflavored''
*'''ofteudyut'''....''grump''
*'''oglateuzibar'''....''microphone''
*'''ogovteud'''....''quibble''
*'''ogovteuden'''....''quibbling''
*'''ogovteuder'''....''quibble''
*'''ogovteudut'''....''quibbler''
*'''ogteupixen'''....''nibbling''
*'''ogteupixer'''....''nibble''
*'''ogteupixut'''....''nibbler''
*'''ogteupixwa'''....''nibbled''
*'''oivteubea'''....''unsmiling''
*'''oluvteudea'''....''uncomplaining''
*'''oluvteudeay'''....''uncomplainingly''
*'''olyebteupibwa'''....''unindented''
*'''opasteurxwa'''....''unpasteurized''
*'''oteubaxwa'''....''unlicked''
*'''oteubob'''....''lower lip, underlip''
*'''oteuda'''....''mute''
*'''oteudan'''....''muteness''
*'''oteudser'''....''go mute''
*'''oteudxen'''....''muting''
*'''oteudxer'''....''mute''
*'''oteudxwa'''....''muted''
*'''oteuxwa'''....''untasted''
*'''oteuza'''....''nonvocal''
*'''oteuzan'''....''voicelessness''
*'''oteuzsagen'''....''canvassing''
*'''oteuzwa'''....''voiceless''
*'''oteuzwy'''....''voicelessly''
*'''ovteuz'''....''antiphony''
*'''oybteuzen'''....''sub-vocalization''
*'''oybteuzer'''....''sub-vocalize''
*'''oybteuzwa'''....''sub-vocalized''
*'''oyebier teupib'''....''extract a tooth''
*'''oyebixer teupib'''....''extract a tooth''
*'''oyebteubilpuxen'''....''spitting out''
*'''oyebteubilpuxer'''....''spit out''
*'''oyebteubwa'''....''spat out''
*'''oyteupiba'''....''toothless''
*'''ozivteuden'''....''chuckling''
*'''ozivteuder'''....''chuckle''
*'''ozteuder'''....''whimper''
*'''ozuvteud'''....''mewl, moan, sigh, whimper''
*'''ozuvteudea'''....''moaning, sighing, whimpering''
*'''ozuvteuden'''....''moaning, sighing, whimpering''
*'''ozuvteuder'''....''mewl, moan, sigh, weep, whimper''
*'''ozuvteudut'''....''moaner, weeper, whimperer''
*'''pasteurxar'''....''pasteurizer''
*'''pasteurxen'''....''pasteurization''
*'''pasteurxer'''....''pasteurize''
*'''pasteurxwa'''....''pasteurized''
*'''pateub'''....''beak, bill''
*'''pateuxen'''....''pecking''
*'''pateuxer'''....''peck''
*'''pateuxut'''....''pecker''
*'''pateuxwa'''....''pecked''
*'''pelt teupixun'''....''bug bite, insect bite''
*'''pelteux'''....''buzz''
*'''pelteuxea'''....''buzzing''
*'''pelteuxen'''....''buzzing''
*'''pelteuxer'''....''buzz''
*'''pelteuxyea'''....''buzzy''
*'''pelteuxyean'''....''buzziness''
*'''pobalkber teupib'''....''fill a tooth''
*'''pobokul teupixun'''....''venom bite''
*'''poteub yignyef'''....''muzzle''
*'''poteub'''....''mug''
*'''seuxaza ovteud'''....''uproar''
*'''seuz bi teuz'''....''tone of voice''
*'''sopyedea yujteuzun'''....''sibilant consonant''
*'''sopyet teupixun'''....''snakebite''
*'''teiba yujteuzun'''....''nasal consonant''
*'''teub vyixil'''....''mouthwash''
*'''teub'''....''bazoo, gab, mouth, orifice''
*'''teuba byak'''....''oral hygiene''
*'''teuba byaktun'''....''oral hygienics''
*'''teuba byaktuna'''....''oral hygienic''
*'''teuba byaktut'''....''oral hygienist''
*'''teuba'''....''buccal, oral, parol''
*'''teubab yobalar'''....''tongue depressor''
*'''teubab'''....''tongue''
*'''teubaba'''....''lingual''
*'''teubaber'''....''tongue''
*'''teubaboya'''....''tongueless''
*'''teubabuka'''....''tongueless''
*'''teubabwa'''....''tongued''
*'''teubabyoxer'''....''loll''
*'''teubaoxer'''....''wag the tongue''
*'''teubap'''....''tang''
*'''teubaxen'''....''embouchure, licking''
*'''teubaxer'''....''lick''
*'''teubaxut'''....''licker''
*'''teubaxwa'''....''licked''
*'''teubay'''....''orally''
*'''teubayeb'''....''mustache''
*'''teubayebag'''....''mustachio''
*'''teubayebagika'''....''mustachioed''
*'''teubayebika'''....''mustached''
*'''teubeb'''....''gum''
*'''teubeba'''....''gingival''
*'''teubebbok'''....''gingivitis, gum disease''
*'''teubebyaz'''....''gumboil''
*'''teubexar'''....''snaffle''
*'''teubexarer'''....''snaffle''
*'''teubib'''....''jaw, mandible''
*'''teubiba funadxen'''....''malocclusion''
*'''teubiba'''....''mandibular''
*'''teubibaib'''....''jawbone, maxilla''
*'''teubibaiba'''....''maxillary''
*'''teubibaibi'''....''maxillae''
*'''teubien'''....''swallowing''
*'''teubier bekzyunog'''....''swallow a pill''
*'''teubier'''....''swallow''
*'''teubik'''....''gag, mouthful''
*'''teubikber'''....''cram into the mouth''
*'''teubil'''....''saliva, slobber, spit''
*'''teubila tayub'''....''salivary gland''
*'''teubila'''....''salivary''
*'''teubilen'''....''salivation''
*'''teubiler'''....''salivate''
*'''teubilien'''....''sucking''
*'''teubilier'''....''suck''
*'''teubilokegea'''....''dribbling, driveling''
*'''teubilokegen'''....''dribbling, driveling''
*'''teubilokeger'''....''dribble, drivel''
*'''teubilokegyea'''....''dribbly, drively''
*'''teubiloken'''....''drooling, slavering, slobbering''
*'''teubiloker'''....''drool, slabber, slaver''
*'''teubilokyea'''....''slobbery''
*'''teubiloyeben'''....''expectoration''
*'''teubiloyeber'''....''expectorate''
*'''teubiloyebun'''....''expectorant''
*'''teubiloyebwa'''....''expectorated''
*'''teubilpuxegen'''....''sputtering''
*'''teubilpuxeger'''....''sputter''
*'''teubilpuxen'''....''expectoration, spewing, spitting''
*'''teubilpuxer'''....''expectorate, spew, spit''
*'''teubilpuxun'''....''expectorant, spit''
*'''teubilpuxwa'''....''expectorated, spewed, spitted''
*'''teubilsom'''....''spittoon''
*'''teubiluen'''....''expectoration''
*'''teubiluer'''....''expectorate''
*'''teubilun'''....''spittle''
*'''teubiluxen'''....''tantalization''
*'''teubiluxer'''....''tantalize''
*'''teubiluxut'''....''tantalizer''
*'''teubiluxyea'''....''tantalizing''
*'''teubiluxyeay'''....''tantalizingly''
*'''teubiwa'''....''swallowed''
*'''teubix zyunog'''....''cud''
*'''teubixazer'''....''chomp''
*'''teubixegea'''....''ruminant''
*'''teubixegen'''....''gnawing, grazing, rumination''
*'''teubixeger'''....''graze, ruminate''
*'''teubixegut'''....''ruminant''
*'''teubixegwa'''....''gnawed''
*'''teubixen'''....''chewing, mastication''
*'''teubixer givob'''....''chew tobacco''
*'''teubixer yuigofel'''....''chew gum''
*'''teubixer'''....''champ, champing, chew, manducate, masticate''
*'''teubixut'''....''masticator''
*'''teubixwa dref'''....''papier mache, papier mâché''
*'''teubixwa'''....''chewed, masticated''
*'''teubixyafwa'''....''chewable''
*'''teubixyea'''....''chewy, mouthy''
*'''teubixyean'''....''chewiness, mouthiness''
*'''teubiyik'''....''difficulty swallowing''
*'''teubiyika'''....''hard of swallowing''
*'''teubiyikwa'''....''hard to swallow''
*'''teubiyl'''....''spittle''
*'''teubiyxen'''....''munching''
*'''teubiyxer'''....''munch''
*'''teubiyxun'''....''munchable, snack''
*'''teubiyxut'''....''muncher''
*'''teubiyxwa'''....''munched''
*'''teubnuf'''....''bit''
*'''teubob volz'''....''lip color, lip gloss, lipstick''
*'''teubob'''....''labium, lip, valve''
*'''teuboba yujteuzun'''....''labial consonant''
*'''teuboba'''....''labial''
*'''teubobdyeen'''....''lipreading''
*'''teubobdyeer'''....''lipread''
*'''teubobdyeut'''....''lipreader''
*'''teubobsan'''....''labrum''
*'''teubobyeben'''....''sucking''
*'''teubobyeber'''....''suck''
*'''teubobyebwa'''....''sucked''
*'''teubov'''....''facial covering, mask, mouth cover''
*'''teubox'''....''buss, kiss''
*'''teuboxegen'''....''smooching''
*'''teuboxeger'''....''smooch''
*'''teuboxen'''....''bussing, kissing, osculation''
*'''teuboxer'''....''buss, kiss, osculate''
*'''teuboxwa'''....''bussed''
*'''teuboxyafwa'''....''kissable''
*'''teuboyxer'''....''give a peck on the cheek''
*'''teubsar'''....''mouthpiece''
*'''teubsin'''....''expression''
*'''teubsinen'''....''making an expression''
*'''teubsiner'''....''make an expression''
*'''teubsinoya'''....''deadpan, expressionless, glassy''
*'''teubsinuka'''....''deadpan, expressionless, glassy''
*'''teubsun'''....''mouthpiece''
*'''teubukxwul'''....''sputum''
*'''teubvyixul'''....''mouthwash''
*'''teubyijea'''....''yawning''
*'''teubyijen'''....''yawning''
*'''teubyijer'''....''yawn''
*'''teubyijuyeas'''....''yawner''
*'''teubyijyea'''....''yawny''
*'''teubyujar'''....''gag''
*'''teubyujben'''....''gagging''
*'''teubyujber'''....''gag, gagged''
*'''teubzoteyob'''....''oropharynx''
*'''teubzoteyoba'''....''oropharyngeal''
*'''teubzyayijben'''....''gaping''
*'''teubzyayijber'''....''gape''
*'''teud'''....''call, cry, exclamation''
*'''teudaz'''....''yell''
*'''teudazer'''....''yell''
*'''teudazut'''....''yeller''
*'''teudazwa'''....''yelled''
*'''teuden'''....''calling, crying out, exclaiming''
*'''teudena'''....''exclamatory''
*'''teuder'''....''call, cry out, exclaim''
*'''teudnuf'''....''call button''
*'''teudut'''....''crier''
*'''teudwa'''....''called, cried out, exclaimed''
*'''teuf'''....''muzzle''
*'''teufuen'''....''muzzling''
*'''teufuer'''....''muzzle''
*'''teufuwa'''....''muzzled''
*'''teumib'''....''palate''
*'''teumiba'''....''palatal''
*'''teumibxen'''....''palatalization''
*'''teumibxer'''....''palatalize''
*'''teumibxwa'''....''palatalized''
*'''teupib ebzyan'''....''bridgework''
*'''teupib gimuf'''....''toothpick''
*'''teupib megyel'''....''cementum''
*'''teupib oyebixen'''....''tooth extraction''
*'''teupib vyixar'''....''toothbrush''
*'''teupib vyixyel'''....''toothpaste''
*'''teupib yigabmul'''....''tooth enamel''
*'''teupib yilemikun'''....''tooth filling''
*'''teupib yonmulsen'''....''tooth decay''
*'''teupib yugzen'''....''pulp''
*'''teupib zyeg'''....''tooth cavity''
*'''teupib'''....''tooth''
*'''teupiba yujteuzun'''....''dental consonant''
*'''teupiba'''....''dental''
*'''teupibaga'''....''toothy''
*'''teupibagay'''....''toothily''
*'''teupibaosen'''....''teeth chattering''
*'''teupibaoser'''....''teeth chatter''
*'''teupibbek'''....''dental care, dental hygiene, dentistry''
*'''teupibbekam'''....''dental clinic, dentist office''
*'''teupibbekut'''....''dental hygienist''
*'''teupibbyok'''....''dental pain, odontalgia''
*'''teupibbyoyk'''....''toothache''
*'''teupiben'''....''toothing''
*'''teupibgoblar'''....''hob''
*'''teupibien'''....''teething''
*'''teupibier'''....''teethe''
*'''teupibika'''....''dentate, indented, serrated, toothed''
*'''teupibilz'''....''tartar''
*'''teupibniv'''....''floss''
*'''teupibniven'''....''flossing''
*'''teupibniver'''....''floss''
*'''teupibok'''....''tooth loss''
*'''teupiboya'''....''toothless''
*'''teupiboyan'''....''toothlessness''
*'''teupibsen'''....''dentition, odontiasis''
*'''teupibsiynxen'''....''denting''
*'''teupibsiynxwa'''....''dented''
*'''teupibtun'''....''dentistry, odontology''
*'''teupibtuna'''....''dental, odontological''
*'''teupibtut'''....''dentist, odontologist''
*'''teupibuka'''....''toothless''
*'''teupibukan'''....''toothlessness''
*'''teupibut'''....''dentist''
*'''teupibutam'''....''dentists office''
*'''teupibvyixyel'''....''dentifrice''
*'''teupibwa'''....''indented, notched, serrated''
*'''teupibxen'''....''dentition, teething''
*'''teupibxer'''....''teethe''
*'''teupibyan'''....''denture''
*'''teupibyena'''....''odontoid, tooth-like''
*'''teupimul'''....''dentin, dentine''
*'''teupip'''....''fang''
*'''teupipika'''....''fanged''
*'''teupipoben'''....''defanging''
*'''teupipober'''....''defang''
*'''teupipobwa'''....''defanged''
*'''teupixegen'''....''gnashing''
*'''teupixeger'''....''gnash''
*'''teupixen'''....''biting''
*'''teupixer'''....''bite''
*'''teupixun'''....''bite, morsel''
*'''teupixwa'''....''bitten''
*'''teupixyea'''....''biting, mordant''
*'''teupixyean'''....''mordancy''
*'''teupixyeay'''....''bitingly, mordantly''
*'''teus'''....''taste''
*'''teusa'''....''gustatory''
*'''teusaya'''....''full of taste, savory, tasty''
*'''teusayan'''....''savoriness, tastiness''
*'''teusayxer'''....''make tasty''
*'''teusea'''....''tasting like''
*'''teusen'''....''tasting like''
*'''teuser'''....''taste like''
*'''teusgab'''....''seasoning, spice, taste supplement''
*'''teusgaben'''....''seasoning, spicing''
*'''teusgaber'''....''season, spice up, supplement with taste''
*'''teusgabwa'''....''spiced''
*'''teusibar'''....''taste bud, taste receptor''
*'''teusifien'''....''degustation''
*'''teusifier'''....''degust''
*'''teusika'''....''full of taste, savory, tasty''
*'''teusikan'''....''savoriness, tastiness''
*'''teusikxer'''....''fill up with taste, imbue with taste''
*'''teusoya'''....''insipid, tasteless''
*'''teusoyan'''....''insipidness, tastelessness''
*'''teusoyxen'''....''depriving of taste''
*'''teusoyxer'''....''deprive of taste''
*'''teusoyxwa'''....''deprived of taste''
*'''teusufer'''....''be disgusted''
*'''teusufxyika'''....''easily disgusted''
*'''teusufxyikwa'''....''squeamish''
*'''teusufxyikwan'''....''squeamishness''
*'''teusufxyikway'''....''squeamishly''
*'''teusuka'''....''insipid, tasteless''
*'''teusukan'''....''insipidness, tastelessness''
*'''teusukxer'''....''remove the taste''
*'''teusyiga'''....''acerbic, astringent, bitter''
*'''teusyigan'''....''acerbity, astringency, bitterness''
*'''teusyigay'''....''astringently''
*'''teusyigser'''....''become astringent, become bitter''
*'''teusyigxer'''....''embitter, make astringent''
*'''teusyigxwa'''....''embittered''
*'''teut'''....''sense of taste''
*'''teuta'''....''gustatory''
*'''teuter'''....''taste''
*'''teutien tul'''....''sample dish''
*'''teutien'''....''sampling, savoring, tasting''
*'''teutier'''....''sample, take a taste''
*'''teutiun'''....''sample, sampler, taste''
*'''teutiut'''....''sampler, taster''
*'''teutiwa'''....''sampled''
*'''teutos'''....''sense of taste''
*'''teutuer'''....''give a taste to, offer a sample, offer to taste''
*'''teutuwa'''....''offered a taste''
*'''teutyaf'''....''ability to taste, sense of taste''
*'''teutyafwa'''....''tastable''
*'''teutyof'''....''inability to taste''
*'''teutyofa'''....''unable to taste''
*'''teutyofwa'''....''unable to be tasted''
*'''teutyofwan'''....''inability to be tasted, vapidity''
*'''teuv'''....''mask''
*'''teuvdazag'''....''masked ball''
*'''teuvien'''....''mummery, putting on a mask''
*'''teuvier'''....''put on a mask''
*'''teuviut'''....''mummer''
*'''teuvuen'''....''masquerade''
*'''teuvuer'''....''mask''
*'''teuvuutyan'''....''masquerade''
*'''teuvuwa'''....''masked''
*'''teuvuwat'''....''masker''
*'''teuxen'''....''tasting''
*'''teuxer'''....''taste''
*'''teuxuen'''....''flavoring''
*'''teuxuer'''....''flavor''
*'''teuxuwa'''....''flavored''
*'''teuxwa'''....''tasted''
*'''teuz'''....''voice''
*'''teuza'''....''vocal''
*'''teuzagxar'''....''megaphone, microphone, mike''
*'''teuzaun'''....''phoneme''
*'''teuzauna'''....''phonemic''
*'''teuzaunay'''....''phonemically''
*'''teuzauntun'''....''phonemics''
*'''teuzauntut'''....''phonemicist''
*'''teuzaxen'''....''vocalization''
*'''teuzaxer'''....''vocalize''
*'''teuzaxut'''....''vocalizer''
*'''teuzaxwa'''....''vocalized''
*'''teuzay'''....''vocally''
*'''teuzaza'''....''loud, loudmouthed''
*'''teuzazar'''....''loudspeaker, mic''
*'''teuzazat'''....''loudmouth''
*'''teuzazay'''....''in a loud voice, loudly''
*'''teuzdriren'''....''phonotypy''
*'''teuzdrirena'''....''phonotypical''
*'''teuzdrirsiyn'''....''phonotype''
*'''teuzea'''....''uttering''
*'''teuzebden'''....''voicemail''
*'''teuzen'''....''uttering, vocalization, voicing, phonation''
*'''teuzer'''....''phonate, vocalize''
*'''teuzijuna'''....''glottal''
*'''teuzneyef'''....''voiceband''
*'''teuznyem'''....''larynx, voice box''
*'''teuznyema'''....''laryngeal''
*'''teuzoza'''....''soft-spoken''
*'''teuzozay'''....''in a low voice, in a soft voice''
*'''teuztisyen'''....''phonics''
*'''teuztun'''....''phonology''
*'''teuztuna'''....''phonological''
*'''teuztunay'''....''phonologically''
*'''teuztut'''....''phonologist''
*'''teuzun'''....''phone, sound, utterance''
*'''teuzuna saen'''....''phoneticism''
*'''teuzuna'''....''phonetic, phonic''
*'''teuzunay'''....''phonetically, phonically''
*'''teuzuntun'''....''phonetics''
*'''teuzuntuna'''....''phonetic''
*'''teuzuntut'''....''phoneticist''
*'''teuzuntyenut'''....''phonetician''
*'''teuzut'''....''voicer''
*'''teuzwa'''....''sonant, uttered, voiced''
*'''teuzyan'''....''chorus''
*'''teuzyana'''....''choral''
*'''teuzyantixar'''....''vocoder''
*'''teuzyanut'''....''choral singer''
*'''teuzyigfa'''....''hoarse''
*'''teuzyigfan'''....''hoarseness''
*'''teuzyigfaser'''....''hoarsen''
*'''teuzyigfaxer'''....''hoarsen''
*'''teuzyigfay'''....''hoarsely''
*'''teyobufa yujteuzun'''....''guttural consonant''
*'''tikyebteubaxen'''....''analingus''
*'''tojteuv'''....''death mask''
*'''tooyba teuzuen'''....''female suffrage''
*'''tudet teupib'''....''baby tooth''
*'''tyoyafteubaxut'''....''brown noser''
*'''uateupib'''....''molar''
*'''ufteub'''....''frown, grimace, sneer''
*'''ufteubea'''....''frowning, grimacing, sneering''
*'''ufteuben'''....''frowning, grimacing, sneering scowling''
*'''ufteuber'''....''frown, grimace, lour, mug, sneer''
*'''ufteubsin'''....''glower, hateful expression''
*'''ufteubuer'''....''make frown''
*'''ufteud'''....''gripe, grouch, grouse, grumble, scorn, scowl''
*'''ufteudea'''....''griping, grouching, grousing, grumbling, scowling''
*'''ufteuden'''....''griping, grouching, grousing, grumbling, scorning, scowling, snarling''
*'''ufteuder'''....''gripe, grouch, grouse, grumble, grump, scorn, scowl, snarl, whine''
*'''ufteuduer'''....''make groan''
*'''ufteudut'''....''griper, grouser, scorner, whiner''
*'''ufteuduyea'''....''groan-inducing''
*'''ufteudwa'''....''scorned''
*'''ufteudyea jagat'''....''codger''
*'''ufteudyea'''....''grouchy, grumpy, scornful, snarly''
*'''ufteudyean'''....''grouchiness, grumpiness''
*'''ufteudyeay'''....''grouchily, grumpily, scornfully''
*'''uteupib'''....''premolar, wisdom tooth''
*'''utivteubeay'''....''simperingly''
*'''utivteuber'''....''simper''
*'''uvteub'''....''frown, grimace, long face, pouty face''
*'''uvteubea'''....''frowning, grimacing, pouting''
*'''uvteuben'''....''frowning, grimacing, making a long face, moping, pouting, sulking''
*'''uvteuber'''....''be sad-faced, frown, grimace, lour, make a long face, mope, pout, sulk''
*'''uvteubsin'''....''sad expression, sad face''
*'''uvteubsinea'''....''making a sad face, pouting''
*'''uvteubsinen'''....''making a sad face, pouting''
*'''uvteubsiner'''....''make a sad face, pout''
*'''uvteubut'''....''moper''
*'''uvteud'''....''complaint, moan, outcry, plaint, wail''
*'''uvteuden'''....''beefing, complaining, crying out, groaning, moaning, wailing''
*'''uvteuder'''....''complain, cry out, groan, moan, wail''
*'''uvteuduer'''....''make cry, make groan, make moan''
*'''uvteudut'''....''complainant, complainer''
*'''uvteuduyea'''....''groan-inducing, moan-inducing''
*'''uvteudyea'''....''grumbling, mournful, peevish, plaintive, querulous''
*'''uvteudyean'''....''peevishness, querulousness''
*'''uvteudyeay'''....''peevishly, plaintively, querulously''
*'''uvteudyefwa'''....''groan-worthy''
*'''uvteudyen'''....''plangency''
*'''uvteudyena'''....''plangent''
*'''vadoteuz'''....''yes vote''
*'''vadoteuzea'''....''voting yes''
*'''vadoteuzer'''....''vote yes''
*'''vadoteuzut'''....''yes voter''
*'''vadoteuzwa'''....''voted in''
*'''vafil teuxen'''....''wine tasting''
*'''vateuyea'''....''telling''
*'''vateuyeay'''....''tellingly''
*'''vateuz'''....''aye, yes vote''
*'''vateuzer'''....''say aye, vote affirmatively, vote yes''
*'''vateuzut'''....''yes voter''
*'''viteus'''....''good taste''
*'''viteusa'''....''scrumptious''
*'''viteusay'''....''scrumptiously''
*'''viteusea'''....''savory, tasty''
*'''vodoteuzuea'''....''voting no''
*'''vodoteuzuer'''....''vote no''
*'''vodoteuzuut'''....''no voter''
*'''vodoteuzuwa'''....''voted down''
*'''voteud'''....''disclaimer''
*'''voteuder'''....''disclaim''
*'''voteudwa'''....''disclaimed''
*'''voteuz'''....''nay, no vote''
*'''voteuzer'''....''vote down, vote no''
*'''voteuzut'''....''no voter''
*'''voteuzwa'''....''voted down''
*'''vyosaxwa teupibi'''....''false teeth''
*'''vyuteuba'''....''foul-mouthed, foulmouthed, ribald''
*'''vyuteuban'''....''ribaldry''
*'''vyuteubat'''....''foul-mouthed person, foulmouth, ribald''
*'''yaba yijteuzun'''....''high vowel''
*'''yagteubixea'''....''gnawing''
*'''yagteubixen'''....''gnawing''
*'''yagteubixer'''....''gnaw''
*'''yagteubixwa'''....''gnawed''
*'''yaguvteud'''....''lament, wail, whine''
*'''yaguvteudea'''....''lamenting, moaning, wailing, whining''
*'''yaguvteuden'''....''lamentation, lamenting, moaning, wailing, whining''
*'''yaguvteuder'''....''kvetch, lament, moan, wail, whine, whinge''
*'''yaguvteudut'''....''whiner, whinger''
*'''yaguvteudyea'''....''whiny''
*'''yaguvteudyefwa'''....''lamentable''
*'''yaguvteudyefway'''....''lamentably''
*'''yanyujber teubobi'''....''pucker, purse the lips''
*'''yazabteupib'''....''bucktooth''
*'''yazabteupibika'''....''bucktoothed''
*'''yeba teuz'''....''conscience, inner voice''
*'''yeber doteuzdref'''....''cast a ballot, cast a vote''
*'''yebteuboben'''....''sucking''
*'''yebteubober'''....''suck''
*'''yebteubobun'''....''suction''
*'''yebteubobwa'''....''sucked''
*'''yebteupiben'''....''indentation, indenting''
*'''yebteupiber'''....''indent''
*'''yebteupibun'''....''dent, indentation''
*'''yebteupibwa'''....''indented''
*'''yembiara teupibbek'''....''prosthodontics''
*'''yembiara teupibbeka'''....''prosthodontic''
*'''yembiara teupibbekut'''....''prosthodontist''
*'''yepeteupib'''....''cuspid''
*'''yigteupix seux'''....''graunch''
*'''yigteupixen'''....''crunching''
*'''yigteupixer'''....''crunch''
*'''yigteupixwa'''....''crunched''
*'''yigteupixyea'''....''crunchy''
*'''yigteupixyean'''....''crunchiness''
*'''yijteuza'''....''vocalic''
*'''yijteuzun yanseuz'''....''vowel harmony''
*'''yijteuzun'''....''vowel''
*'''yijteuzyan'''....''vocalism''
*'''yiteupib'''....''wisdom tooth''
*'''yizdoteuzuer'''....''outvote''
*'''yizdoteuzuwa'''....''outvoted''
*'''yizteuder'''....''outshout''
*'''yoba yijteuzun'''....''low vowel''
*'''yokteud'''....''exclamation, outburst''
*'''yokteuda siyn'''....''exclamation mark, exclamation point''
*'''yokteuda'''....''exclamatory''
*'''yokteuden'''....''exclamation''
*'''yokteudena'''....''exclamatory''
*'''yokteuder'''....''exclaim''
*'''yokteudwa'''....''exclaimed''
*'''yokteudyea'''....''exclamatory''
*'''yolzteuboba'''....''blue-lipped''
*'''yonteuzika'''....''dissonant''
*'''yonteuzikan'''....''dissonance''
*'''yopelat teupixun'''....''mosquito bite''
*'''yoteupib'''....''molar''
*'''yufteud'''....''growl, roar''
*'''yufteudea'''....''growling, roaring''
*'''yufteuden'''....''growling, roaring''
*'''yufteuder'''....''growl, roar''
*'''yugteumib'''....''soft palate, velum''
*'''yugteumiba yujteuzun'''....''velar consonant''
*'''yugteumiba'''....''velar''
*'''yugteumibxer'''....''velarize''
*'''yujteuzun glal'''....''consonant cluster''
*'''yujteuzun'''....''consonant''
*'''yujteuzuna'''....''consonantal''
*'''yupleteubob'''....''harelip''
*'''yupleteuboba'''....''harelipped''
*'''yuzteupiba'''....''periodontal''
*'''yuzteupibut'''....''periodontist''
*'''zaa yijteuzun'''....''front vowel''
*'''zateupib'''....''foretooth''
*'''zateyoba yuzteuzun'''....''laryngeal consonant''
*'''zea yijteuzun'''....''mid vowel''
*'''zoa yijteuzun'''....''back vowel''
*'''zoyteuz'''....''echo''
*'''zoyteuza emkaxen'''....''echolocation''
*'''zoyteuza'''....''echoic''
*'''zoyteuzen'''....''echoing''
*'''zoyteuzer'''....''echo''
*'''zoyteuzim'''....''echo chamber''
*'''zoyteuzuka'''....''anechoic''
*'''zoyteuzwa'''....''echoed''
*'''zyaa yijteuzun'''....''open vowel''
*'''zyaivteub'''....''beaming grin, wide grin''
*'''zyaivteubea'''....''beaming, grinning widely''
*'''zyaivteuben'''....''grinning widely''
*'''zyaivteuber'''....''be all grins, beam, grin widely''
*'''zyateuba ilyebag'''....''ewer''
*'''zyateuba'''....''widemouthed''
*'''zyoa yijteuzun'''....''close vowel''
*'''zyoyujben teubobi'''....''puckering, pursing the lips''
*'''zyoyujber teubobi'''....''pucker, purse the lips''
*'''zyuteuba'''....''orthant''
</div>
{{small/end}}
==== TIB (''trunk'') Words ====
: The root word '''tib''' means ''trunk (of the body)'' The meronymic elements are:
::* '''zotib'''....''back''
::* '''zetib'''....''waist''
::* '''zatib'''....''lap''
::* '''tibuj'''....''tail''
:::* '''tibujaib'''....''tailbone, coccyx''
::* '''tibaib'''....''rib''
:::* '''tibaibyan'''....''ribcage''
::* '''tibyob'''....''groin''
::* '''tiab'''....''bosom''
:::* '''tilab'''....''chest''
::::* '''twilab'''....''pectoral''
::::* '''tilayb'''....''breast''
:::* '''tilabeib'''....''teat, nipple''
::* '''tieb'''....''lung''
::* '''tiib'''....''heart''
::* '''tiub'''....''belly''
:::* '''tiuyb'''....''abdomen''
:::* '''zotiub'''....''buttock''
:::* '''zetiub'''....''belly button''
::* '''tiyob'''....''kidney''
::* '''tiyab'''....''bladder''
::* '''tiyeb'''....''prostate''
::* '''twiyib'''....''testical''
::* '''tiyiyb'''....''ovary''
::* '''tiyub'''....''genitals''
:::* '''twiyub'''....''penis''
:::* '''tiyuyb'''....''vagina''
::* '''tikab'''....''esophagus''
::* '''tikeb'''....''stomach''
::* '''tikib'''....''liver''
::* '''tikub'''....''pancreas''
::* '''tikyob'''....''small intestine''
::* '''tikyab'''....''large intestine''
::* '''tikyeb'''....''anus''
: Here is a set of words derived from '''tib''':
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abtaf tibuj'''....''coattail''
*'''aomuftib'''....''scape''
*'''apetibuj tayebsyen'''....''ponytail''
*'''apetibuj'''....''horsetail, ponytail''
*'''byoyk bi zotib'''....''backache''
*'''ebtibaiba'''....''intercostal''
*'''entibuj yagtif'''....''swallowtail''
*'''entibuj'''....''swallowtail''
*'''eopetibiil-volz'''....''oxblood''
*'''eopetibiil-volza'''....''oxblood''
*'''eopetibuj'''....''oxtail''
*'''epeytibuj'''....''cow tail''
*'''gibarer be ha zotib'''....''backstab''
*'''hyutibuja'''....''heterocercal''
*'''iztibsea'''....''erect, standing up, standing up straight, upright''
*'''iztibsen'''....''erection, standing up, standing up straight''
*'''iztibser'''....''stand erect, stand up, stand up straight''
*'''iztibsya'''....''erect, standing straight, upright''
*'''jogat datibam'''....''youth hostel''
*'''kapeltiblen'''....''nitpicking''
*'''kapeltibler'''....''nitpick''
*'''marmeg tibuj'''....''comet tail''
*'''nyiftibuf'''....''shoelace tag''
*'''obtibgun'''....''crotch''
*'''obzatib syaagir'''....''laptop computer''
*'''obzatib'''....''lap''
*'''obzatibfaof'''....''laptop''
*'''obzatibik'''....''lapful''
*'''odatibyena'''....''inhospitable''
*'''odatibyenay'''....''inhospitably''
*'''pitibuj'''....''fishtail''
*'''tib'''....''torso, trunk''
*'''tiba gwogteexar'''....''lavalier''
*'''tiba pyosuz'''....''lavaliere''
*'''tibaib'''....''rib''
*'''tibaiba'''....''costal''
*'''tibaibika'''....''ribbed''
*'''tibaibuer'''....''rib''
*'''tibaibyan'''....''rib cage''
*'''tibal'''....''distress''
*'''tibalea'''....''distressing''
*'''tibalwa'''....''distressed''
*'''tibalyea'''....''distressful''
*'''tibalyeay'''....''distressingly''
*'''tibiilgran'''....''plethora''
*'''tibuf'''....''dragnet, tassel, train''
*'''tibufika'''....''tasseled''
*'''tibuj oybsiyn'''....''cedilla''
*'''tibuj'''....''tail''
*'''tibuja'''....''caudal''
*'''tibujika'''....''tailed''
*'''tibujoya'''....''tailless''
*'''tibujuka'''....''tailless''
*'''tibujyog'''....''bobtail''
*'''tibupea'''....''dragging behind, lagging''
*'''tibupen'''....''dragging behind, lagging''
*'''tibuper'''....''drag behind, lag''
*'''tibuxegen'''....''tail wagging''
*'''tibuxeger'''....''wag the tail''
*'''tibuzasen'''....''bending over, bowing''
*'''tibuzaser'''....''bend over, bow''
*'''tibuzogxen'''....''curtsy''
*'''tibyeym'''....''poke, pouch''
*'''atikeb'''....''rumen''
*'''byoyk bi tikeb'''....''bellyache, stomachache''
*'''eopetuda tikib'''....''calf's liver''
*'''jatikabier'''....''predigest''
*'''jatikabiwa'''....''predigested''
*'''meylztikibbok'''....''cirrhosis''
*'''meylztikibboka'''....''cirrhotic''
*'''otikabiwa'''....''indigested''
*'''otikabyebniwa'''....''undigested''
*'''patikeb'''....''gizzard''
*'''peltiktojbut'''....''exterminator, bug exterminator''
*'''potikexb'''....''craw''
*'''pottikyebil'''....''scat''
*'''pyuer ha nod bi tikebiloken'''....''gag''
*'''tikab'''....''esophagus''
*'''tikaba'''....''esophageal''
*'''tikabien'''....''digesting, digestion''
*'''tikabiena'''....''digestive, peptic''
*'''tikabier'''....''digest''
*'''tikabiwa'''....''digested''
*'''tikabiyafwa'''....''digestible''
*'''tikabiyik'''....''dyspepsia, indigestion, liverish''
*'''tikabiyika'''....''dyspepsic, dyspeptic''
*'''tikabiyikwa'''....''hard to digest''
*'''tikabiyofwa'''....''indigestible''
*'''tikeb'''....''gut, maw, stomach''
*'''tikeba'''....''gastric, stomach-related, stomachic''
*'''tikeba-tikyaba'''....''gastrointestinal''
*'''tikebbok'''....''gastritis''
*'''tikebbyoyk'''....''stomach ache''
*'''tikebien'''....''ingestion''
*'''tikebier'''....''ingest''
*'''tikebiil'''....''gastric juice''
*'''tikebikxen'''....''stuffing''
*'''tikebikxer'''....''fill the stomach, stuff''
*'''tikebikxwa'''....''stuffed''
*'''tikebikxwas'''....''stuffing''
*'''tikebil'''....''chyme''
*'''tikebiloken'''....''puking, regurgitation, throwing up, vomiting''
*'''tikebiloker'''....''barf, disgorge, keck, puke, regorge, regurgitate, throw up, upchuck, vomit''
*'''tikebilokuer'''....''gag''
*'''tikebilokun'''....''puke, vomit''
*'''tikebilokwa'''....''vomited''
*'''tikebilokxea'''....''vomitive''
*'''tikebilokyeker'''....''retch''
*'''tikebiokxus'''....''vomitory''
*'''tikebiwa'''....''ingested''
*'''tikebukxar'''....''stomach pump''
*'''tikebukxen'''....''stomach pumping''
*'''tikebukxer'''....''pump the stomach''
*'''tikebukxil'''....''emetic''
*'''tikebyijben'''....''gutting''
*'''tikebyijber'''....''gut''
*'''tikebyijbwa'''....''gutted''
*'''tikebyik'''....''indigestion''
*'''tikebzyaoxen'''....''peristalsis''
*'''tikebzyaoxena'''....''peristaltic''
*'''tikebzyubaoxea'''....''stomach-churning''
*'''tikib'''....''liver''
*'''tikiba'''....''hepatic, liver-''
*'''tikibbok'''....''hepatitis, liver disease''
*'''tikibil'''....''bile''
*'''tikibila'''....''biliary, bilious''
*'''tikibilan'''....''biliousness''
*'''tikibtaolfuyf'''....''liverwurst''
*'''tikibtun'''....''hepatology''
*'''tikibtuna'''....''hepatological''
*'''tikibtunay'''....''hepatologically''
*'''tikibtut'''....''hepatologist''
*'''tikibul'''....''heparin''
*'''tikub'''....''pancreas''
*'''tikuba'''....''pancreatic''
*'''tikubbok'''....''pancreatitis''
*'''tikyab'''....''large intestine''
*'''tikyaba'''....''enteric''
*'''tikyabbok'''....''colic''
*'''tikyabboka'''....''colicky''
*'''tikyabbokmula'''....''coliform''
*'''tikyabujgoblen'''....''colostomy''
*'''tikyeb'''....''anus, bung, pooper''
*'''tikyeba'''....''anal''
*'''tikyebal'''....''fart, flatulence, wind''
*'''tikyebaluen'''....''breaking wind, farting, flatulence''
*'''tikyebaluer'''....''break wind, fart''
*'''tikyebaluyea'''....''flatulent''
*'''tikyebay'''....''anally''
*'''tikyebteubaxen'''....''analingus''
*'''tikyebuj'''....''rectum''
*'''tikyebuja tayoxen'''....''rectal palpation''
*'''tikyebuja'''....''rectal''
*'''tikyebujay'''....''rectally''
*'''tikyebul'''....''dung, feces, shit, slop''
*'''tikyebula'''....''fecal''
*'''tikyebulif'''....''scat''
*'''tikyebultuna'''....''scatological, scatology''
*'''tikyebuluen'''....''defecation, shitting''
*'''tikyebuluena'''....''defecatory''
*'''tikyebuluer'''....''defecate, shit''
*'''tikyebzoytalobbok'''....''hemorrhoids, piles''
*'''tikyob'''....''bowel, intestine, small intestine''
*'''tikyoba'''....''intestinal''
*'''tikyobbok'''....''dysentery, enteritis''
*'''tikyobi'''....''bowels''
*'''tikyobien'''....''ingesting, ingestion''
*'''tikyobier'''....''ingest''
*'''tikyobij'''....''duodenum''
*'''tikyobija'''....''duodenal''
*'''tikyobil'''....''chyle''
*'''tikyobilp'''....''diarrhea''
*'''tikyobiwa'''....''ingested''
*'''tikyobobeer'''....''unbowel''
*'''tikyoboben'''....''disemboweling, disembowelment''
*'''tikyobober'''....''disembowel, embowel''
*'''tikyobobwa'''....''disemboweled''
*'''tikyobuien'''....''digestion''
*'''tikyobuier'''....''digest''
*'''tikyobuiwa'''....''digested''
*'''ujtikyob'''....''ileum''
*'''zetikyob'''....''jejunum''
*'''tibyobyoz'''....''groin''
*'''yanzotibaxen'''....''spooning''
*'''yanzotibaxer'''....''spoon''
*'''yapetibuj'''....''pigtail''
*'''yapetzotib'''....''pig's back''
*'''yapiitibuj'''....''shrimp tail''
*'''yetetib'''....''lay ministry''
*'''yipetibuj'''....''cattail''
*'''yobtibsea'''....''crouched, crouching''
*'''yobtibsen'''....''crouching''
*'''yobtibser'''....''crouch, hunker, scrooch, scrootch, scrouge''
*'''yobzotib'''....''lumbago, sirloin''
*'''yobzotiba'''....''lumbar''
*'''yupetibuj'''....''scut''
*'''zaobasea tibuj'''....''wagging tail''
*'''zetib'''....''midriff, waist''
*'''zetibnad'''....''waistline''
*'''zetibneyef'''....''waistband''
*'''zotib nyef'''....''backpack, rucksack''
*'''zotib ponyef'''....''travel backpack''
*'''zotib'''....''back''
*'''zotiba'''....''dorsal''
*'''zotibabaxlun'''....''back massage''
*'''zotibabwa'''....''supine''
*'''zotibabway'''....''supinely''
*'''zotibar'''....''back''
*'''zotibay'''....''dorsally''
*'''zotibbelwa'''....''pickaback''
*'''zotibnyef'''....''backpack, knapsack, rucksack''
*'''zotibnyefen'''....''backpacking''
*'''zotibnyefut'''....''backpacker''
*'''zotibpyex'''....''backstroke''
*'''zotibyaza'''....''hunchbacked, humpbacked''
*'''zotibyazat'''....''hunchback''
*'''zotibyokbas'''....''wrick''
*'''zotib-yonpyexea'''....''backbreaking''
*'''zyatibsen'''....''stretching''
*'''zyatibser'''....''stretch''
</div>
{{small/end}}
==== TUB and TUP Words ====
: The root word '''tub''' means ''arm''. The word '''tup''' means ''limb'' in general.
: The meronyms of '''tub''' are:
::* '''tuab'''....''shoulder''
::* '''tueb'''....''upper arm''
::* '''tuib'''....''elbow''
::* '''tuub'''....''forearm''
:::* '''tuubaib'''....''ulna''
::* '''tuyob'''....''wrist''
:::* '''tuyobaib'''....''carpal, wrist bone''
::::* '''atuyobaib'''....''scaphoid''
::::* '''etuyobaib'''....''lunate''
::::* '''ituyobaib'''....''triquetrum''
::::* '''utuyobaib'''....''pisiform''
::::* '''yotuyobaib'''....''trapezium''
::::* '''yatuyobaib'''....''trapezoid''
::::* '''yetuyobaib'''....''capitate''
::::* '''yituyobabi'''....''hamate''
::* '''tuyab'''....''hand''
::* '''tuyeb'''....''fist''
::* '''tuyib'''....''palm''
::* '''tuyub'''....''finger''
::* '''tulob'''....''fingernail''
: Words containing '''tub''' and '''tup''' are the following:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''anpatuba'''....''single-wing, single-winged''
*'''anpatubeon'''....''monoplane''
*'''antuba'''....''one-armed''
*'''antubat'''....''one-armed person''
*'''apatub'''....''chicken wing''
*'''bay oyebzyabwa tupi'''....''spreadeagled, akimbo, sprawled out''
*'''byoxtub'''....''gibbet''
*'''byuxtub'''....''tentacle''
*'''byuxtubika'''....''tentacled''
*'''enbirtub'''....''tongs''
*'''enpatuba mampur'''....''biplane''
*'''enpatuba'''....''bi-wing''
*'''fyepatubatem'''....''fairyland''
*'''glapituba'''....''finny''
*'''inpatuba mampur'''....''triplane''
*'''kyoaxea patubes'''....''canard''
*'''lotupxen'''....''ouster''
*'''lotupxer'''....''oust from the membership''
*'''mapatub mampur'''....''prop plane, propeller aircraft, propeller plane''
*'''mapatub'''....''fan, propeller''
*'''mapitub'''....''weather vane''
*'''milatub'''....''hydrofoil''
*'''otupdyundrawa'''....''unregistered''
*'''oybtuba'''....''underarm''
*'''patub'''....''aileron, airfoil, fan, flapper, pinion, wing''
*'''patubas'''....''flap, flutter''
*'''patubasar'''....''flapper, valve''
*'''patubasea mes'''....''flapper, shutter, valve''
*'''patubasea'''....''aflutter, flapping, fluttering''
*'''patubasen'''....''flapping, fluttering''
*'''patubaser'''....''flap, flutter''
*'''patubes'''....''winglet''
*'''patubgin'''....''wingtip''
*'''patubier'''....''fledge''
*'''patubika'''....''winged''
*'''patuboya'''....''wingless''
*'''patubuer'''....''fledge''
*'''patubuj'''....''flexure''
*'''patubuka'''....''wingless''
*'''patubuwa'''....''fledged''
*'''patubuzan'''....''camber''
*'''patubyena'''....''winglike''
*'''patubyuj'''....''flap, volet''
*'''patubzen'''....''hub''
*'''patubzyab'''....''wingspread''
*'''patubzyag'''....''wingspan''
*'''patupea'''....''flitting''
*'''patupen'''....''flitting''
*'''patuper'''....''flit''
*'''peitub'''....''flipper''
*'''pitub'''....''fin''
*'''potub'''....''paw''
*'''potuben'''....''pawing''
*'''potuber'''....''paw''
*'''potubwa'''....''pawed''
*'''pyatub'''....''poult''
*'''seuztub'''....''tonearm''
*'''suza tup'''....''prosthesis, prosthetic''
*'''talabtupet'''....''arthropod''
*'''tostub'''....''antenna''
*'''tostubi'''....''antennae''
*'''tostubsyob'''....''scape''
*'''tub yuznof'''....''armband''
*'''tub'''....''arm, brace''
*'''tuba'''....''brachial''
*'''tubalk'''....''terbium, Tb''
*'''tubaxen'''....''flailing, swinging''
*'''tubaxer'''....''flail''
*'''tubazyuj'''....''hammerlock''
*'''tubbol'''....''armrest''
*'''tubglan'''....''armful''
*'''tubkyiun'''....''armload''
*'''tubsim'''....''armchair''
*'''tubuken'''....''winging''
*'''tubuker'''....''wing''
*'''tubyog'''....''stub, stump''
*'''tubyujlen'''....''keylock''
*'''tubyuxok'''....''paraplegia''
*'''tubyuxokya'''....''paraplegic''
*'''tubyuxokyat'''....''paraplegic''
*'''tubyuzen'''....''cuddling, embracing, hugging''
*'''tubyuzer'''....''cuddle, embrace, hug''
*'''tubyuzwa'''....''cuddled''
*'''tubyuzyea'''....''cuddly''
*'''tubyuzyuben'''....''folding one's arms''
*'''tubyuzyuber'''....''fold one's arms''
*'''tubzyeg'''....''armhole, armpit''
*'''tubzyus'''....''armlet''
*'''tup'''....''limb, member, outgrowth, appendage''
*'''tupoben'''....''amputation, dismemberment''
*'''tupober'''....''amputate, dismember, remove a limb''
*'''tupobwa'''....''amputated, dismembered''
*'''tupot'''....''tarsier''
*'''tupoya'''....''limbless''
*'''tupoza'''....''rickety''
*'''tupuka'''....''limbless''
*'''tupuzren'''....''wrench''
*'''tupyaga'''....''rangy''
*'''tupyagan'''....''ranginess''
*'''tupyugxer'''....''unlimber''
*'''ummagelwa patub'''....''baked chicken''
*'''untuppasyof'''....''quadriplegia''
*'''untuppasyofa'''....''quadriplegic''
*'''untuppasyofat'''....''quadriplegic''
*'''upetubayob'''....''lambskin''
*'''upetubayof'''....''lambskin''
*'''uztub'''....''crank''
*'''uztuben'''....''crank, cranking''
*'''uztubmuf'''....''crankshaft''
*'''uztubmufyem'''....''crankcase''
*'''uzyupatub mampur'''....''helicopter''
*'''uzyupatub'''....''chopper, copter, helical wing, helicopter wing, screw wing''
*'''uzyupatupur'''....''helicopter''
*'''uzyupatupurem'''....''heliport''
*'''yantubyuzen'''....''snuggling''
*'''yantubyuzer'''....''snuggle''
*'''yijtup'''....''raglan''
*'''yuztuben'''....''embrace, embracing''
*'''yuztuber'''....''embrace''
*'''zatup'''....''forelimb''
*'''zotup'''....''backlimb''
*'''zyubmapatub'''....''turboprop''
*'''zyuptub'''....''turnstile''
</div>
{{small/end}}
: Words containing sub-elements of '''tub''' are the following:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''amez tuyobuz'''....''diamond bracelet''
*'''antuyaba'''....''single-handed''
*'''antuyabay'''....''single-handedly, singlehanded''
*'''atulob'''....''thumbnail''
*'''atuyub abaxlun'''....''shiatsu''
*'''atuyub'''....''thumb''
*'''atuyubek zyun'''....''marble''
*'''atuyuben'''....''thumbing''
*'''atuyuber'''....''thumb''
*'''aybtuyaba'''....''overhanded''
*'''baoxer tuyabi'''....''shake hands''
*'''beker kyituyabay'''....''treat heavy-handedly''
*'''bekwa kyituyabay'''....''treated heavy-handedly''
*'''bey tuyab'''....''by hand''
*'''buktulob'''....''hangnail''
*'''daztuyabnaad'''....''barre''
*'''ebtuabuz'''....''epaulet''
*'''etuyub'''....''index finger''
*'''fituyabwa'''....''well-handled''
*'''futuyaben'''....''mishandling''
*'''futuyaber'''....''mishandle''
*'''futuyabwa'''....''mishandled''
*'''iatuyub'''....''right hand thumb''
*'''ietuyub'''....''right hand index finger''
*'''igtuyubtyen'''....''legerdemain''
*'''ituyub'''....''middle finger''
*'''iyotuyub'''....''right hand pinkie''
*'''iza tuyabel'''....''express delivery''
*'''kyituyaba'''....''heavy-handed''
*'''kyituyaban'''....''heavy-handedness''
*'''kyituyabay'''....''heavy-handedly''
*'''kyituyaben'''....''mauling, treat heavy-handedly''
*'''kyituyaber'''....''maul, treat heavy-handedly''
*'''kyituyabwa'''....''mauled, treated heavy-handedly''
*'''lotuyaber'''....''unhand''
*'''mes tuyabar'''....''door handle''
*'''nyivtulobeay'''....''pizzicato''
*'''patulob'''....''claw, gripper''
*'''patulobar'''....''grip, gripper''
*'''patuloben'''....''gripping''
*'''patulober'''....''grip''
*'''patulobwa'''....''gripped''
*'''potulob'''....''claw''
*'''pyex bay zoa tuyab'''....''backhander''
*'''pyotuyaben'''....''pawing''
*'''pyotuyaber'''....''paw''
*'''pyotuyabwa'''....''pawed''
*'''sartuyabar'''....''haft, helve''
*'''sepetulob'''....''spine''
*'''tuab dopar'''....''shoulder gun, shoulder weapon''
*'''tuab'''....''humerus, shoulder''
*'''tuaba'''....''humeral''
*'''tuababeler dudyef'''....''shoulder responsibility''
*'''tuababeler'''....''carry on one’s shoulders, shoulder''
*'''tuababwa'''....''piggyback, piggybacked''
*'''tuabaoxen'''....''shimmying''
*'''tuabaoxer'''....''shimmy''
*'''tuabapen'''....''piggybacking''
*'''tuabexen'''....''shouldering''
*'''tuabexer'''....''hold on one's shoulders, shoulder''
*'''tuabexwa'''....''shouldered''
*'''tuabnyef'''....''satchel, shoulder bag''
*'''tuabof'''....''tippet''
*'''tuabtaol'''....''chuck''
*'''tuabzogon'''....''scapula''
*'''tuabzogona'''....''scapular''
*'''tueb'''....''upper arm, biceps''
*'''tuebaeb'''....''bicep, biceps''
*'''tuib yanar'''....''elbow joint''
*'''tuib'''....''elbow''
*'''tuibaxen'''....''elbowing, nudging''
*'''tuibaxer'''....''elbow, nudge''
*'''tuibaxwa'''....''elbowed, nudged''
*'''tulob goyblar'''....''nail clipper''
*'''tulob goyblun'''....''nail clipping''
*'''tulob yivtayobes'''....''agnail''
*'''tulob yugfar'''....''nail file''
*'''tulob yugfaxil'''....''nail polish''
*'''tulob'''....''fingernail, nail''
*'''tulobar'''....''file, manicure device, nail cutter, nail scissor, plectrum''
*'''tulobaryan'''....''manicure set''
*'''tulobbek'''....''manicure''
*'''tulobbekam'''....''manicure salon, nail salon''
*'''tulobbeken'''....''manicuring''
*'''tulobbekut'''....''manicurist''
*'''tulobbekwa'''....''manicured''
*'''tulobseuxen'''....''scrooping''
*'''tulobseuxer'''....''scroop''
*'''tulobtayebar'''....''nailbrush''
*'''tulobul'''....''keratin''
*'''tulobula'''....''keratinous''
*'''tulobulxer'''....''keratinize''
*'''tulobyog'''....''dewclaw''
*'''tuub'''....''forearm, tendril''
*'''tuubaib'''....''ulna''
*'''tuubaiba'''....''ulnar''
*'''tuubnak'''....''cubit''
*'''tuyab adopar'''....''hand gun, handgun, pistol''
*'''tuyab belar'''....''hand truck, handbarrow, handcart''
*'''tuyab dopar'''....''hand weapon''
*'''tuyab ektobet'''....''hand puppet''
*'''tuyab kotyen'''....''sleight of hand''
*'''tuyab manar'''....''flashlight''
*'''tuyab milnov'''....''hand towel, napkin''
*'''tuyab ponyeb'''....''valise''
*'''tuyab umxar'''....''hand dryer''
*'''tuyab yaozgoblar'''....''handsaw''
*'''tuyab yibdalir'''....''hand phone, handset''
*'''tuyab'''....''hand''
*'''tuyaba yex'''....''manual labor''
*'''tuyaba yexut'''....''manual laborer''
*'''tuyaba yibdalir'''....''cell phone, hand phone''
*'''tuyaba'''....''manual''
*'''tuyabaox'''....''handshake''
*'''tuyabaoxen'''....''handshaking''
*'''tuyabaoxer'''....''shake hands''
*'''tuyabar'''....''handle''
*'''tuyabay'''....''manually''
*'''tuyabaypux'''....''handspring''
*'''tuyabbek'''....''manicure''
*'''tuyabbeken'''....''manicuring''
*'''tuyabbektuna'''....''chiropractic''
*'''tuyabbektut'''....''chiropractor''
*'''tuyabbekut'''....''manicurist''
*'''tuyabbekwa'''....''manicured''
*'''tuyabel'''....''delivery''
*'''tuyabelar'''....''briefcase, hand cart, satchel''
*'''tuyabelawa'''....''delivered''
*'''tuyabelen'''....''delivery, hand-carrying''
*'''tuyabeler'''....''deliver, hand-carry''
*'''tuyabelut'''....''deliverer''
*'''tuyabelwa'''....''delivered, hand-carried''
*'''tuyaben'''....''handling''
*'''tuyaber'''....''handle''
*'''tuyabexar'''....''handle, pommel''
*'''tuyabexen'''....''hand-holding, handling, holding hands, manipulating, manipulation''
*'''tuyabexer'''....''clasp, grab onto, handhold, handle, hold hands, manipulate''
*'''tuyabexler'''....''grip hands''
*'''tuyabexlun'''....''handgrip''
*'''tuyabexun'''....''handhold''
*'''tuyabexut'''....''handler, manipulator''
*'''tuyabexwa teabaar'''....''lorgnette''
*'''tuyabexwa'''....''handheld, handled, manipulated''
*'''tuyabexyafwa'''....''manipulable, manipulatable''
*'''tuyabexyafwan'''....''manipulability''
*'''tuyabexyea'''....''manipulative''
*'''tuyabibler'''....''handpick''
*'''tuyabibllawa'''....''hand-picked, handpicked''
*'''tuyabien'''....''grabbing, taking by the hand, taking hold of''
*'''tuyabier'''....''grab, take by the hand, take hold of''
*'''tuyabik'''....''fistful, handful''
*'''tuyabilyeb'''....''flask''
*'''tuyabirar'''....''clamp''
*'''tuyabirea'''....''grasping''
*'''tuyabireay'''....''graspingly''
*'''tuyabiren'''....''clamping, grabbing, grasping, wrestling''
*'''tuyabirer'''....''clamp, grab, grasp''
*'''tuyabirut'''....''grabber, grasper''
*'''tuyabirwa'''....''clamped, grabbed, grasped''
*'''tuyabiryafwa'''....''graspable''
*'''tuyabiwa'''....''grabbed, taken by the hand, taken hold''
*'''tuyabuen'''....''delivery, presentation, handing''
*'''tuyabuer'''....''deliver, hand out, present, hand over''
*'''tuyabugar'''....''handbrake''
*'''tuyabuun'''....''delivery, handout, presentation''
*'''tuyabuut'''....''presenter''
*'''tuyabuwa'''....''delivered, handed out, presented, handed over''
*'''tuyabwa'''....''handled''
*'''tuyabyanx'''....''handclasp, handshake, joining of hands''
*'''tuyabyanxen'''....''handshaking, joining of hands''
*'''tuyabyanxer'''....''join hands, shake hands''
*'''tuyabyaoxen'''....''waving''
*'''tuyabyaoxer av nuxpur'''....''hail a taxi, wave down a taxi''
*'''tuyabyaoxer'''....''wave''
*'''tuyabyas'''....''handstand''
*'''tuyabyexen'''....''ovation, clapping''
*'''tuyabyexer'''....''clap hands, clap''
*'''tuyabyexut'''....''clapper''
*'''tuyabyexwa'''....''clapped''
*'''tuyabyuxen'''....''groping''
*'''tuyabyuxer'''....''grope''
*'''tuyabyuxwa'''....''groped''
*'''tuyabzyun ekem'''....''handball court''
*'''tuyabzyun ifek'''....''game of handball''
*'''tuyabzyun'''....''hand ball, handball''
*'''tuyeb'''....''fist''
*'''tuyebaoxen'''....''shaking one's fist''
*'''tuyebaoxer'''....''shake one's fist''
*'''tuyebepyex'''....''fistfight''
*'''tuyebepyexen'''....''fistfighting, pugilism''
*'''tuyebepyexer'''....''fistfight''
*'''tuyebepyexut'''....''fistfighter, pugilist''
*'''tuyebepyexyea'''....''pugilistic''
*'''tuyebexyea'''....''manipulatory''
*'''tuyebovek'''....''fist fight, fist-fight, fistfight''
*'''tuyeboveken'''....''fist-fighting''
*'''tuyeboveker'''....''box, fist-fight''
*'''tuyebovekut'''....''boxer, fist-fighter, pug''
*'''tuyeboveyk'''....''fisticuff''
*'''tuyeboveyker'''....''fisticuff''
*'''tuyebyujen'''....''clenching one's fist''
*'''tuyebyujer'''....''clench one's fist''
*'''tuyib'''....''palm''
*'''tuyibabax'''....''pat, caress''
*'''tuyibabaxen'''....''patting, caressing''
*'''tuyibabaxer'''....''pat, caress''
*'''tuyibabaxwa'''....''patted, caressed''
*'''tuyibaben'''....''laying palms on, palming''
*'''tuyibaber'''....''lay palms on, palm''
*'''tuyibaiba'''....''metacarpal''
*'''tuyibaibi'''....''metacarpi''
*'''tuyibbyokuar'''....''palmer''
*'''tuyibdyeen'''....''palm reading''
*'''tuyibdyeer'''....''read palms''
*'''tuyibdyeut'''....''palmist, palm reader''
*'''tuyibelwas'''....''palmtop''
*'''tuyibier'''....''palm''
*'''tuyibiwa'''....''palmed''
*'''tuyiblen'''....''palming''
*'''tuyibuen'''....''palming off''
*'''tuyibuer'''....''palm off''
*'''tuyibuwa'''....''palmed off''
*'''tuyob jwobar'''....''wrist watch, wristwatch''
*'''tuyob neyef'''....''wrist band, wristband, wristlet''
*'''tuyob yuvar'''....''manacle''
*'''tuyob'''....''wrist''
*'''tuyoba mup boksiunyan'''....''carpal tunnel syndrome''
*'''tuyoba'''....''carpal''
*'''tuyobbok'''....''psora''
*'''tuyobuz'''....''bracelet''
*'''tuyub milyeb'''....''finger bowl''
*'''tuyub tel'''....''finger food''
*'''tuyub uzyumuv'''....''thumb''
*'''tuyub vyun'''....''fingermark''
*'''tuyub'''....''finger''
*'''tuyuba'''....''digital''
*'''tuyubab'''....''palp''
*'''tuyubaben'''....''palpating, palpation''
*'''tuyubaber'''....''palpate''
*'''tuyubabwa'''....''palpated''
*'''tuyubaib'''....''phalange''
*'''tuyubaosen'''....''finger wagging''
*'''tuyubaoxer'''....''wag one's finger''
*'''tuyubarar'''....''thumbscrew''
*'''tuyubaxen'''....''fiddling, fingering''
*'''tuyubaxer'''....''fiddle, finger''
*'''tuyubaxwa'''....''fiddled, fingered''
*'''tuyubbal'''....''fingerprint''
*'''tuyubbalen'''....''fingerprinting''
*'''tuyubbaler'''....''fingerprint''
*'''tuyubbalun'''....''fingerprint''
*'''tuyubgin'''....''fingertip''
*'''tuyubifxar'''....''tickler''
*'''tuyubifxen'''....''tickling''
*'''tuyubifxer'''....''tickle''
*'''tuyubifxwa'''....''tickled''
*'''tuyubiga'''....''nimble-fingered''
*'''tuyubigek'''....''prestidigitation, magic''
*'''tuyubigeker'''....''prestidigitate''
*'''tuyubigekut'''....''prestidigitator, magician''
*'''tuyubizden'''....''indication''
*'''tuyubizder'''....''indicate''
*'''tuyubizdyea'''....''indicative''
*'''tuyubizeaxen'''....''indicating''
*'''tuyubizeaxer'''....''indicate''
*'''tuyubizeaxwa'''....''indicated''
*'''tuyubuz'''....''ring''
*'''tuyubyex'''....''fillip, rap, strum, tap''
*'''tuyubyexen'''....''rapping, strumming, tapping''
*'''tuyubyexer'''....''rap, strum, tap''
*'''tuyubyexun'''....''rap, tap''
*'''tuyubyexut'''....''rapper, strummer, tapper''
*'''tuyubyexwa'''....''rapped, tapped, strummed''
*'''tuyubyig'''....''corn''
*'''uatuyub'''....''left hand thumb''
*'''uetuyub'''....''left hand index finger''
*'''uituyub'''....''left hand middle finger''
*'''utuyub'''....''ring finger''
*'''uutuyub'''....''left hand ring finger''
*'''uyotuyub'''....''left hand pinkie''
*'''uztuyubeken'''....''twiddling''
*'''uztuyubeker'''....''twiddle''
*'''uztuyubekyafwa'''....''twiddly''
*'''vyotuyabyuxen'''....''groping''
*'''vyotuyabyuxer'''....''grope''
*'''vyotuyabyuxut'''....''groper''
*'''yantuyabexen'''....''clasping hands''
*'''yantuyabexer'''....''clasp hands''
*'''yiba tuyubaib'''....''distal phalange''
*'''yigtuyobuz'''....''bangle''
*'''yijtuyaba'''....''openhanded''
*'''yijtuyaban'''....''openhandedness''
*'''yivtuyaba'''....''freehand''
*'''yivtuyaber'''....''freehand''
*'''yotuyub'''....''pinkie, pinky''
*'''yuba tuyubaib'''....''proximal phalange''
*'''zatuyub'''....''forefinger''
*'''zea tuyub'''....''middle finger''
*'''zea tuyubaib'''....''intermediate phalange''
*'''zituyaba'''....''right-handed''
*'''zituyaban'''....''right-handedness''
*'''zotuyab'''....''backhand''
*'''zotuyaba'''....''backhanded''
*'''zuituyaba'''....''ambidextrous''
*'''zuituyub'''....''right hand ring finger''
*'''zutuyaba'''....''left-handed''
*'''zutuyaban'''....''left-handed''
*'''zutuyabat'''....''southpaw''
</div>
{{small/end}}
==== TYOB (''leg'') Meronyms ====
: The root word '''tyob''' means leg. Some meronyms are as follows:
::* '''tyob'''....''leg''
:::* '''tyoab'''....''hip, haunch''
::::* '''tyoabaib'''....''hip bone''
:::::* '''atyoabaib'''....''ilium''
:::::* '''etyoabaib'''....''ischium''
:::::* '''ityoabaib'''....''pubic''
::::* '''tyoabalab'''....''hip joint, coxa, coxofemoral joint''
::::* '''tyoabaeb'''....''hip muscle''
:::* '''tyoeb'''....''thigh''
::::* '''tyoebaib'''....''femur, thigh bone''
::::* '''tyoebaeb'''....''thigh muscle''
:::::* '''atyoebaeb'''....''adductor''
:::::* '''etyoebaeb'''....''hamstring''
:::::* '''ityoebaeb'''....''extension''
:::* '''tyoib'''....''knee''
::::* '''tyoibab'''....''kneecap, patella''
::::* '''tyoibalab'''....''knee joint''
::::* '''tyoibnyef'''....''bursa''
:::* '''tyoub'''....''shin''
::::* '''tyoubaib'''....''tibia, shin bone''
:::* '''tyoyob'''....''ankle''
::::* '''tyoyobaib'''....''talus, ankle bone''
:::* '''tyoyab'''....''foot''
:::* '''tyoyeb'''....''heel''
::::* '''tyoyebaib'''....''heel bone, calcaneus, metatarsus''
:::::* '''tyoyebaiba'''....''metatarsal''
:::* '''tyoyib'''....''sole, plantar aspect''
::::* '''tyoyiba'''....''plantar''
:::* '''tyoyub'''....''toe''
::::* '''atyoyub'''....''big toe, hallux''
::::* '''etyoyub'''....''index toe, pointer toe''
::::* '''ityoyub'''....''middle toe''
::::* '''utyoyub'''....''fore toe, ring toe''
::::* '''yotyoyub'''....''baby toe, little toe, pinky toe''
:::* '''tyolob'''....''toenail''
: Some common verbs built on these words:
::* '''tyoper'''....''to walk''
::* '''tyoaper'''....''to sit''
::* '''tyoibuzer'''....''to kneel''
::* '''tyoipaser'''....''to crawl on one's knees''
::* '''tyoyeber'''....''to supplant''
::* '''tyoyabarer'''....''to trample''
::* '''tyoyaper'''....''to walk''
::* '''tyoyuper'''....''to tiptoe''
: Here are words derived from '''tyob''' and its sub-elements:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abektun bi tyoyab'''....''foot surgery''
*'''apetyoub'''....''fetlock''
*'''apetyoyab'''....''hoof''
*'''apetyoyaba'''....''ungulate''
*'''atyoyub'''....''big toe''
*'''bay awa yoba tyoab'''....''hipshot''
*'''be tyoyab'''....''on foot, standing''
*'''bey tyoyab'''....''on foot''
*'''buktyolob'''....''hangnail''
*'''entyoyaba'''....''biped, bipedal''
*'''entyoyabat'''....''biped''
*'''epetyoyabwa'''....''hoofed''
*'''euntyoyuba'''....''artiodaktylos, even-toed''
*'''feelktyoyab'''....''cobbler's last''
*'''gipotyoyub'''....''camel toe''
*'''glatyoyaba'''....''multipede''
*'''ibtyoyabaren'''....''stamping out''
*'''ibtyoyabarer'''....''stamp out''
*'''ibtyoyabarwa'''....''stamped out''
*'''iztyoyaba zetif'''....''orthopedic corset''
*'''iztyoyaba'''....''orthopaedic, orthopedic''
*'''iztyoyabtyen'''....''orthopedics''
*'''iztyoyabtyena'''....''orthopaedic, orthopedic''
*'''iztyoyabtyenut'''....''orthopaedist, orthopedist''
*'''kyityoyabaler'''....''tromp''
*'''kyityoyabwa'''....''trodden''
*'''kyotyoyabyex'''....''placekick''
*'''kyuparer bey hyaewa tyoyabi byuxea ha yom'''....''scull''
*'''neaftyoyab'''....''webfoot''
*'''neattyoyaba'''....''webfooted''
*'''olesuntyoyuba'''....''odd-toed, perrisodaktylos''
*'''oyb ota tyoyabi'''....''underfoot''
*'''oybtyolobbak'''....''whitlow''
*'''oybtyoyaba'''....''underfoot''
*'''oyebzyityoyab'''....''splayfoot''
*'''oyebzyityoyaba'''....''splayfooted''
*'''repatyoyab'''....''crowfoot, crowsfoot''
*'''tyoab yanar'''....''hip joint''
*'''tyoab'''....''haunch, hip, huckle''
*'''tyoaba tayib'''....''sciatic nerve''
*'''tyoaba tayibbyok'''....''sciatica''
*'''tyoaba'''....''sciatic''
*'''tyoabaib'''....''hipbone, ilium''
*'''tyoabaibyan'''....''sacroiliac''
*'''tyoaper'''....''move on the hips''
*'''tyoeb'''....''thigh''
*'''tyoebaib'''....''thighbone''
*'''tyoib yanar'''....''knee joint''
*'''tyoib'''....''knee''
*'''tyoibab'''....''kneecap, patella''
*'''tyoibaxen'''....''kneeing''
*'''tyoiben'''....''genuflection''
*'''tyoiber'''....''genuflect''
*'''tyoibsom'''....''kneeler''
*'''tyoibuza'''....''kneeling''
*'''tyoibuzben'''....''squat, squatting''
*'''tyoibuzber'''....''squat''
*'''tyoibuzer'''....''kneel''
*'''tyoibyank'''....''hock''
*'''tyoipasea'''....''crawling on one's knees''
*'''tyoipasen tyoipasea'''....''crawling''
*'''tyoipasen'''....''crawling on one's knees''
*'''tyoipaser'''....''crawl on one's knees''
*'''tyolob goyblar'''....''toenail clipper''
*'''tyolob'''....''toenail''
*'''tyoub'''....''leg, lower leg, tibia''
*'''tyouba'''....''tibial''
*'''tyoubog'''....''fibula''
*'''tyouboga'''....''fibular''
*'''tyoyab abaxlun'''....''foot massage''
*'''tyoyab bolar'''....''foot rest, footrest''
*'''tyoyab buyk'''....''footsore''
*'''tyoyab depat'''....''foot soldier''
*'''tyoyab depatyan'''....''infantry''
*'''tyoyab eysim'''....''footstool''
*'''tyoyab ifonek'''....''footsie''
*'''tyoyab josiyn'''....''footprint, footrace''
*'''tyoyab nog'''....''footstep''
*'''tyoyab poyxar'''....''foot rest''
*'''tyoyab sam'''....''footlocker''
*'''tyoyab sansiyn'''....''footprint''
*'''tyoyab tyod'''....''rank and file''
*'''tyoyab zyin'''....''footplate''
*'''tyoyab'''....''foot, pod''
*'''tyoyaba'''....''foot-related''
*'''tyoyababuz'''....''instep''
*'''tyoyabalen'''....''treading''
*'''tyoyabaler'''....''tread, treadle''
*'''tyoyabamof'''....''muff''
*'''tyoyabar mimpar'''....''pedalo''
*'''tyoyabar'''....''pedal''
*'''tyoyabaren'''....''trampling''
*'''tyoyabarer'''....''stomp, trample, trampled''
*'''tyoyabarut'''....''trampler''
*'''tyoyabbek'''....''pedicure''
*'''tyoyabbektun'''....''chiropody, podiatry''
*'''tyoyabbektuna'''....''podiatric''
*'''tyoyabbektut'''....''chiropodist, foot specialist, podiatrist''
*'''tyoyabbekut'''....''pedicurist''
*'''tyoyabdeput'''....''footman''
*'''tyoyabex'''....''foothold''
*'''tyoyaboya'''....''footless''
*'''tyoyabuka'''....''footless''
*'''tyoyabuzun'''....''foot loop, stirrup''
*'''tyoyabzyun ekun'''....''football match, soccer match''
*'''tyoyabzyun ekut'''....''football player, footballer, soccer player''
*'''tyoyabzyun ifek'''....''game of football, soccer''
*'''tyoyabzyun ifekam'''....''football arena, soccer arena''
*'''tyoyabzyun ifekem'''....''football field, soccer field''
*'''tyoyabzyun'''....''football, soccer ball''
*'''tyoyeb'''....''heel''
*'''tyoyebaeba'''....''sartorial''
*'''tyoyebaib'''....''femur''
*'''tyoyebaiba'''....''femoral, metatarsal''
*'''tyoyebaibi'''....''metatarsi''
*'''tyoyeben'''....''spurn, spurning''
*'''tyoyeber'''....''spurn''
*'''tyoyebwa'''....''spurned''
*'''tyoyib taib'''....''anklebone''
*'''tyoyib yuvar'''....''ankle bracelet, ankle chain''
*'''tyoyib'''....''ankle''
*'''tyoyibaib'''....''talus''
*'''tyoyibaibi'''....''tali''
*'''tyoyob'''....''sole''
*'''tyoyoba'''....''plantar''
*'''tyoyobaren'''....''squashing, stomping''
*'''tyoyobarer'''....''squash, stomp''
*'''tyoyobarwa'''....''squashed, stomped''
*'''tyoyoben'''....''supplanting''
*'''tyoyober'''....''supplant''
*'''tyoyobwa'''....''supplanted''
*'''tyoyub'''....''toe''
*'''tyoyubaib'''....''phalange''
*'''tyoyubaoxen'''....''wiggling one's toe''
*'''tyoyubaoxer'''....''wiggle one's toe''
*'''tyoyubexar'''....''toehold''
*'''tyoyubuken'''....''stubbing one's toe''
*'''tyoyubuker'''....''stub one's toe''
*'''tyoyubyaz'''....''bunion''
*'''tyoyubyex dazen'''....''tap dancing''
*'''tyoyubyex'''....''tap, toe tap''
*'''tyoyubyexen'''....''toe tapping''
*'''tyoyubyexer'''....''tap, toe tap''
*'''tyoyubyexut'''....''toe tapper''
*'''tyoyubyigun'''....''toecap''
*'''tyoyupen'''....''tiptoeing''
*'''tyoyuper'''....''tiptoe''
*'''ugar tyoyabar'''....''brake pedal''
*'''ugtyoyapen'''....''ambling''
*'''ugtyoyaper'''....''amble''
*'''untyoyaba'''....''quadruped, quadrupedal''
*'''untyoyabat'''....''quadruped''
*'''untyoyabnyafxer'''....''hog-tie, hogtie''
*'''uzratyoyabbok'''....''clubfoot''
*'''uzratyoyabboka'''....''clubfooted''
*'''yapetyoyab'''....''pig's foot''
*'''yobkixwa tyoyub'''....''hammertoe''
*'''yobtyoyabwa'''....''downtrodden''
*'''zatyoub beaxar'''....''shinguard''
*'''zatyoub'''....''shin''
*'''zatyoubaib'''....''shinbone''
*'''zatyoyab'''....''forefoot, forehoof''
*'''zatyoyaba pyex'''....''forehand''
*'''zotyoib'''....''calf, hock''
*'''zotyoibof'''....''puttee''
*'''zyatyoyabea'''....''bestridden''
*'''zyatyoyaber'''....''bestride''
*'''zyityoyaba'''....''flatfooted''
*'''zyityoyabat'''....''flatfoot''
</div>
{{small/end}}
==== TOP TAP TEP TYEP TIP TUP ====
: These roots are the non-physical counterparts of '''tob''' (''human being''), '''tab''' (''body''), '''teb''' (''head''), '''tyeb''' (''brain''), and '''tib''' (''trunk of the body''), plus a generalized word for the arm or leg.
::* '''top'''....''soul, animus, spirit''
::* '''tap'''....''physique''
::* '''tep'''....''mind''
:::* '''tyep'''....''intellect''
::* '''tip'''....''emotion, mood, sentiment''
::* '''tup'''....''limb''
: Some words built on '''top''' (''soul'') are the following:
:*'''top'''....''spirit, animus, soul, ghost, geist''
::*'''topa'''....''spiritual''
::*'''agala top'''....''great soul, great spirit''
::*'''dotop'''....''ethos''
:::*'''dotopa'''....''ethical''
:::*'''dotoptun'''....''ethics''
::*'''fitopa'''....''good-hearted, magnanimous''
::*'''fufyetop'''....''puck''
::*'''futop'''....''dybbuk''
::*'''futopoben'''....''exorcism''
:::*'''futopobut'''....''exorcist''
::*'''futopot'''....''hobgoblin''
:::*'''futopyena'''....''puckish''
::*'''fyatop'''....''holy spirit, holy ghost''
::*'''fyefutopog'''....''goblin''
::*'''fyemaltop'''....''sprite''
::*'''fyetop'''....''phantom, ghost, specter''
::*'''fyotop'''....''daemon, ghoul''
::*'''ipya top'''....''departed soul''
::*'''jobtop'''....''zeitgeist''
::*'''otopa'''....''nonspiritual''
::*'''tamfutop'''....''poltergeist''
::*'''tojfyetop'''....''wraith''
::*'''topa'''....''spiritual, unworldly''
::*'''topagala'''....''magnanimous''
::*'''topika'''....''soulful, animated''
::*'''topin'''....''animism, spiritism, spiritualism''
::*'''topotyena'''....''ghostly, spooky''
::*'''topteas'''....''specter''
::*'''topuka'''....''soulless''
::*'''xeusfyetop'''....''poltergeist''
::*'''yivtopat'''....''free-spirit''
::*'''yuftopot'''....''spook''
: Some words built on '''tap''' (''physique'') are the following:
:* '''tap'''....''phsique''
::*'''fitapa'''....''fit''
:::*'''fitapxem'''....''fitness center, gym''
:::*'''fitapxer'''....''to work out''
::*'''maltapa'''....''aerobic''
::*'''mertaptun'''....''geophysics''
::*'''tapaza'''....''brawny, hardy, physically strong, sturdy''
::*'''tapef'''....''libido''
::*'''tapflan'''....''lustfulness, lust''
:::*'''tapfler'''....''lust after''
:::*'''uttapifla'''....''auto-erotic''
::*'''tapifek'''....''sport, sports''
:::*'''intapifek'''....''triathlon''
:::*'''yoontapifek'''....''pentathon''
:::*'''tapifekam'''....''sports arena, stadium''
:::*'''tapifekem'''....''sports field''
:::*'''tapifekim'''....''locker room''
:::*'''tapifektof'''....''sportswear''
:::*'''tapifektyoper'''....''to jog''
:::*'''tapifekun'''....''match, sports game''
:::*'''tapifekut'''....''sports player, athlete''
:::*'''tapifekutyan'''....''sports team''
:::*'''tapifekutyen'''....''sportsmanship''
::*'''tapiga'''....''vivacious''
::*'''tapnag'''....''analog''
::*'''tapoza'''....''feeble, frail, physically weak''
::*'''tapsexut'''....''body-builder''
::*'''taptun'''....''physiology''
::*'''taptyenier'''....''work out, to train physically''
::*'''tapuer'''....''to embody''
::*'''tapuga'''....''lethargic, shiftless, slothful, sluggish''
::*'''tapyaf'''....''physical ability, physical strength''
::*'''tapyen'''....''attitude, bearing, constitution, physical stance, posture, stance''
::*'''tapyexer'''....''to work out, to exercise''
::*'''tapyiga'''....''physically tough''
::*'''tapyof'''....''handicap, physical disability, weakness of body''
::*'''tapyuga'''....''delicate, soft-bodied''
::*'''tejtapa'''....''biophysical''
:::*'''tejtaptut'''....''biophysicist''
::*'''vitapat'''....''hunk''
::*'''yiztapa'''....''metaphysical''
: Some words built on '''tep''' (''mind, psyche'') are the following:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
::*'''antepkyoxwan'''....''monomania''
::*'''antepyena'''....''obstinate, single-minded''
::*'''anyentepat'''....''idiot''
::*'''attep'''....''ego''
::*'''attepzena'''....''egocentric''
::*'''aybattep'''....''superego''
::*'''eotepyex'''....''duel''
::*'''esyen bi tep'''....''state of mind''
::*'''eyntepat'''....''halfwit''
::*'''eynteptija'''....''semi-alert, semi-conscious''
::*'''fiojtepa'''....''bullish''
::*'''fitepa'''....''intelligent, mentally sound, of sound mind, psychologically o.k., sane''
::*'''fitepbak'''....''good mental health, sanity''
::*'''fitepkisea'''....''propitious''
::*'''fitepyen'''....''alacrity, cheer, good disposition, good humor, good mood, good temperament''
::*'''fitepyena'''....''cheerful, in a good humor, in a good mood, upbeat, well-disposed''
::*'''futepyena'''....''foul-tempered, ill-disposed, in a bad mood, in a lousy mood''
::*'''futepyenser'''....''grow angry''
::*'''fyotepa'''....''evilminded''
::*'''geltepa'''....''like-minded''
::*'''gitepa'''....''astute, keen, mentally sharp-witted, shrewd, witty''
::*'''gyatepa'''....''thickheaded''
::*'''gyitepa'''....''tough-minded, tough-spirited''
::*'''ittep'''....''id''
::*'''ivtepyen'''....''cheerful mood''
::*'''jateptijan'''....''foreconscious, preconsciousness''
::*'''javyatepa'''....''prudent''
::*'''jwogtepa'''....''senile''
::*'''kas bi tep'''....''state of mind''
::*'''kotep'''....''subconscious mind''
::*'''kyatepa'''....''flexible-minded, flexible''
::*'''kyatepan'''....''flexibility''
::*'''kyaxer ota tepyen'''....''change one's mind, have change of heart''
::*'''kyetepyena'''....''given to swing moods, volatile''
::*'''kyitepa'''....''earnest, serious-minded, uptight, heavy-hearted''
'''kyos bi tep'''....''state of mind''
::*'''kyotepa'''....''boneheaded, bullheaded, diligent, dogged, lock-headed, mulish, painstaking, stalwart, steadfast, stubborn, tenacious''
::*'''kyutepa'''....''dizzy, dopey, frivolous, lighthearted''
::*'''logitepat'''....''airhead, dullard''
::*'''lojavyatepa'''....''imprudent, unwise''
::*'''maztepa'''....''bright''
::*'''moztepa'''....''dimwitted''
::*'''miap bi tijtep'''....''stream of consciousness''
::*'''oyban tepyen'''....''inferiority complex''
::*'''obostepxea'''....''disquieting, worrisomed, bothersome''
::*'''oker teptijan'''....''lose consciousness''
::*'''okitepa'''....''unbiased''
::*'''otepava'''....''unfavorable''
::*'''otepooxea'''....''troublesome''
::*'''otepooxeay'''....''troublesomely''
::*'''otepooxer'''....''aguish, cause concern''
::*'''otepooxwa'''....''troubled''
::*'''oteppaxwa'''....''shiftless, unmotivated''
::*'''oteppaxwan'''....''shiftlessness''
::*'''oteppaxway'''....''shiftily, shiftlessly''
::*'''otepsinyafwa'''....''unimaginable''
::*'''oteptija'''....''insentient, unalert, unattentive, unconscious''
::*'''otepzexyea'''....''inattentive, unattentive''
::*'''oujteptija'''....''unselfconscious''
::*'''ovyatepa'''....''irrational, unreasonable, unreasoned''
::*'''oybtijtep'''....''subconscious''
::*'''tayibteptun'''....''neuropsychology''
::*'''tep'''....''mind, psyche''
::*'''tepa'''....''mental, psychical''
::*'''tepaga'''....''broad-minded, broadminded''
::*'''tepaxlea'''....''psychoactive''
::*'''tepaza'''....''clever, intelligent, keen, mentally strong, smart''
::*'''tepbaka'''....''mentally sound, of sound mind, psychologically fit, sane''
::*'''tepbek'''....''psychiatric care, psychiatric treatment, psychiatry, psychotherapy''
::*'''tepbekdez'''....''psychodrama''
::*'''tepbektultun'''....''psychopharmacology''
::*'''tepbektun'''....''psychiatry''
::*'''tepbik'''....''heed''
::*'''tepbikea'''....''caring, mindful, paying attention''
::*'''tepbiken'''....''being mindful, heeding, paying attention''
::*'''tepbiker'''....''be concerned, be mindful, care, heed''
::*'''tepbikier'''....''become concerned, become mindful of, become worried, heed''
::*'''tepbikiwa'''....''heeded''
::*'''tepbikuea'''....''concerning''
::*'''tepbikuen'''....''bring attention to''
::*'''tepbikuer'''....''bring attention to, give cause for concern''
::*'''tepbikuka'''....''blithesome, carefree, not worried, unconcerned''
::*'''tepbikukan'''....''carefreeness''
::*'''tepbikuyea'''....''considerate''
::*'''tepbikuyean'''....''considerateness''
::*'''tepbikuyeay'''....''considerately''
::*'''tepbiwa'''....''borne in mind''
::*'''tepbix'''....''mental engagement''
::*'''tepbixea'''....''mentally captivating''
::*'''tepbixen'''....''drawing attention''
::*'''tepbixer'''....''draw attention to, grab attention, mentally attract''
::*'''tepbixwa'''....''mentally captivated''
::*'''tepbixwer'''....''be mentally engaged''
::*'''tepbok'''....''mental illness, psychopathy, psychosis''
::*'''tepboka'''....''crazy, insane, mentally ill, psychopathic, sicko''
::*'''tepbokam'''....''asylum, insane asylum, madhouse, mental hospital, mental institution''
::*'''tepbokan'''....''craziness, insanity, madness, mental illness''
::*'''tepbokay'''....''crazily, insanely, madly''
::*'''tepboksea'''....''becoming mentally ill, going insane''
::*'''tepbokser'''....''become mentally ill, go crazy, go insane, go mad''
::*'''tepboktun'''....''psychopathology''
::*'''tepboktuna'''....''psychopathological''
::*'''tepbokxer'''....''cause to be mentally ill, make crazy''
::*'''tepbokxwa'''....''crazed''
::*'''tepbos'''....''composure''
::*'''tepbosea'''....''seething''
::*'''tepboser'''....''be unconcerned, seethe''
::*'''tepboxer'''....''put at ease, calm''
::*'''tepboxwa'''....''calmed''
::*'''tepbukuen'''....''traumatization''
::*'''tepbukuer'''....''traumatize''
::*'''tepbukuwa'''....''traumatized''
::*'''tepbukuyea'''....''traumatic''
::*'''tepbukuyeay'''....''traumatically''
::*'''tepbyisea'''....''psychogenic''
::*'''tepdinen'''....''dreaming''
::*'''tepdota'''....''psychosocial''
::*'''tepdottun'''....''psychosociology''
::*'''tepdottuna'''....''psychosociological''
::*'''tepdun'''....''mantra''
::*'''tepdyeen'''....''divination, divining, mentalism, mind-reading''
::*'''tepdyeer'''....''divine, read minds''
::*'''tepdyewa'''....''divined''
::*'''tepeaz'''....''vision''
::*'''tepeazen'''....''envisioning''
::*'''tepeazer'''....''envision''
::*'''tepeazwa'''....''envisioned''
::*'''tepebtiyaba'''....''psychosexual''
::*'''tepega'''....''mentally normal, sane''
::*'''tepegan'''....''mental normality, saneness''
::*'''tepegay'''....''sanely''
::*'''tepeja'''....''aware, mentally present''
::*'''tepejan'''....''awareness, presence of mind''
::*'''tepek'''....''gimmick, mind game, mind-game, puzzle''
::*'''tepekaya'''....''wily''
::*'''tepekika'''....''wily''
::*'''tepekyan'''....''gimmickry''
::*'''tepekyena'''....''gimmicky''
::*'''tepelad'''....''chirrup''
::*'''tepeladen'''....''chirping''
::*'''tepelader'''....''chirp, chirrup''
::*'''tepengonxwa'''....''schizoid''
::*'''tepengonxwanbok'''....''schizophrenia''
::*'''tepengonxwanboka'''....''schizophrenic''
::*'''tepex'''....''cognition, functioning of the mind, mental operation''
::*'''tepexa'''....''cognitive''
::*'''tepexen'''....''cognition''
::*'''tepfean'''....''pretending''
::*'''tepfen'''....''pretending, pretense, pretension''
::*'''tepfer'''....''pretend''
::*'''tepfwa'''....''pretended''
::*'''tepfyea'''....''pretentious''
::*'''tepfyean'''....''pretentiousness''
::*'''tepfyeay'''....''pretentiously''
::*'''tepibay'''....''dentally''
::*'''tepibixen'''....''distraction''
::*'''tepibkuway'''....''worriedly''
::*'''tepiboya'''....''toothless''
::*'''tepiboyan'''....''toothlessness''
::*'''tepibuka'''....''toothless''
::*'''tepibukan'''....''toothlessness''
::*'''tepiea van...'''....''considering that...''
::*'''tepiea'''....''considering, bearing in mind, mindful, considerate''
::*'''tepien'''....''consideration, considering, recalling, consideration, bearing in mind''
::*'''tepier'''....''bear in mind, consider, keep in mind, take into account, recall, consider, bear in mind''
::*'''tepiga dun'''....''bon mot''
::*'''tepiga ebdal'''....''repartee''
::*'''tepiga'''....''alert, clever, pert, quick-minded, quick-on-the-draw, quick-witted, sharp-witted, smart, witty''
::*'''tepigan'''....''alertness, cleverness, pertness, quick-wittedness, sharp-wittedness, smartness, wit, wittiness''
::*'''tepigay'''....''cleverly, pertly, quick-mindedly, quick-wittedly, smartly, wittily''
::*'''tepigfud'''....''zing''
::*'''tepika'''....''mindful''
::*'''tepikan'''....''mindfulness''
::*'''tepikay'''....''mindfully''
::*'''tepivxer'''....''cheer up''
::*'''tepiwa van...'''....''considering that...''
::*'''tepiwa'''....''considered, borne in mind, taken into account''
::*'''tepiwa'''....''considered, kept in mind, taken into account, borne in mind''
::*'''tepiyea'''....''considerate, mindful''
::*'''tepiyefwa'''....''worthy of consideration, considerable''
::*'''tepiza'''....''sharp, straight-minded''
::*'''tepizan'''....''straight-mindedness''
::*'''tepizber'''....''steer the mind''
::*'''tepizbyea'''....''mentally focused''
::*'''tepizra'''....''sane''
::*'''tepizran'''....''saneness, sanity''
::*'''tepizraser'''....''regain one's sanity''
::*'''tepizraxer'''....''bring sanity to''
::*'''tepizray'''....''sanely''
::*'''tepizuen'''....''drawing attention''
::*'''tepkis'''....''tendency''
::*'''tepkixea'''....''psychedelic, psychotropic''
::*'''tepkixeay'''....''psychedelically''
::*'''tepkixena'''....''psychedelic''
::*'''tepkixenay'''....''psychedelically''
::*'''tepkixwa'''....''tendentious''
::*'''tepkixwan'''....''tendentiousness''
::*'''tepkixway'''....''tendentiously''
::*'''tepkyaa'''....''distracted''
::*'''tepkyaay'''....''distractedly''
::*'''tepkyax'''....''flip-flop, flipflop, turnabout''
::*'''tepkyaxea'''....''entrancing, mind-altering''
::*'''tepkyaxean'''....''persuasiveness''
::*'''tepkyaxen'''....''blandishment, conversion, distraction, entrancement, entrancing, flip-flopping, persuading, proselytization, proselytizing''
::*'''tepkyaxer'''....''blandish, change minds, convert, distract, flip-flop, flipflop, persuade, proselytize''
::*'''tepkyaxwa'''....''converted, entranced, persuaded, proselytized''
::*'''tepkyaxyea'''....''persuasive''
::*'''tepkyaxyeay'''....''persuasively''
::*'''tepkyaxyen'''....''proselytism''
::*'''tepkyaxyuka'''....''easily proselytizable, easily-convertible''
::*'''tepkyexen'''....''persuasion''
::*'''tepkyinxea. tepkyinxen'''....''considering''
::*'''tepkyinxen'''....''consideration''
::*'''tepkyinxer'''....''consider''
::*'''tepkyinxwa'''....''considered''
::*'''tepkyiun'''....''weight on one's mind''
::*'''tepkyoa'''....''mentally fixed, attentive, focused''
::*'''tepkyox'''....''attention, fixation, mental focus, obsession''
::*'''tepkyoxea'''....''obsessive''
::*'''tepkyoxean'''....''obsessiveness''
::*'''tepkyoxeay'''....''obsessively''
::*'''tepkyoxen'''....''attention, determination, fixation, obsession, paying attention to''
::*'''tepkyoxena'''....''obsessional''
::*'''tepkyoxenay'''....''obsessionally''
::*'''tepkyoxer bu'''....''pay attention to''
::*'''tepkyoxer'''....''fixate, obsess, pay attention''
::*'''tepkyoxwa'''....''attentive, determined, fixated, obsessed, rapt''
::*'''tepkyoxwan'''....''attentiveness, obsession, raptness''
::*'''tepkyoxway'''....''attentively, determinedly, raptly''
::*'''tepkyoxwer'''....''be obsessed''
::*'''tepkyoxyea'''....''attentive''
::*'''tepkyoxyean'''....''attentiveness, obsessiveness''
::*'''tepkyoxyeay'''....''attentively''
::*'''tepmanxen'''....''clearing up''
::*'''tepmanxer'''....''clear up''
::*'''tepnaga'''....''psychometric''
::*'''tepnagdren'''....''psychometrics''
::*'''tepobos'''....''angst, concern''
::*'''tepoboser'''....''be concerned, be ill at ease, become concerned, care, grow anxious, worry''
::*'''tepobosuka'''....''serene''
::*'''tepobosukan'''....''sereneness''
::*'''tepobosukay'''....''serenely''
::*'''tepoboxea'''....''bothersome, concerning''
::*'''tepoboxen'''....''preoccupation, worriment''
::*'''tepoboxer'''....''bother, concern, preoccupy''
::*'''tepoboxwa'''....''bothered, concerned, worried''
::*'''tepoboxway'''....''worriedly''
::*'''tepoboxyea'''....''bothersome, worrisome, worrying''
::*'''tepoegsea'''....''becoming weird''
::*'''tepoga'''....''narrow-minded, petty, silly, small-minded''
::*'''tepogan'''....''cretinism, narrow-mindedness, pettiness, silliness, small-mindedness''
::*'''tepogay'''....''pettily, small-mindedly''
::*'''tepogia'''....''doltish, dull-minded, dull-witted, sottish''
::*'''tepogian'''....''doltishness, dull-wittedness, dullness''
::*'''tepogiat'''....''dullard, dull-witted person''
::*'''tepogiay'''....''doltishly''
::*'''tepoiza'''....''mentally off, not right in the mind''
::*'''tepoizan'''....''mental aberration''
::*'''tepokay'''....''crazily''
::*'''tepokea'''....''losing one’s mind''
::*'''tepoker av'''....''go ape over''
::*'''tepoker'''....''lose one’s mind''
::*'''tepokya'''....''crazy, out of one's mind''
::*'''tepokyan'''....''craziness''
::*'''tepolega'''....''mentally aberrant, mentally abnormal''
::*'''tepolegan'''....''mental aberration, mental abnormality''
::*'''tepolegsea'''....''going insane''
::*'''tepolegser'''....''become weird, go insane''
::*'''tepolegxen'''....''making insane''
::*'''tepolegxer'''....''make insane''
::*'''tepolegxwa'''....''make insane''
::*'''teponap'''....''mania, mental disorder''
::*'''teponapa'''....''crazy, deranged, maniacal, manic, mentally deranged, mentally disordered, psychotic''
::*'''teponapan'''....''craziness, mental disturbance''
::*'''teponapay'''....''crazily, maniacally, psychotically''
::*'''teponapsea'''....''become mentally disturbed, going crazy''
::*'''teponapser'''....''become mentally disturbed, go crazy''
::*'''teponapxen'''....''making crazy, mental disturbance''
::*'''teponapxer'''....''make crazy''
::*'''teponapxwa'''....''crazed, deranged, mentally disturbed''
::*'''tepot'''....''marmoset''
::*'''tepotyan'''....''sloth of bears''
::*'''tepova'''....''con, contrarian, unfavorable''
::*'''tepovan'''....''contrarianism''
::*'''tepovay'''....''unfavorably''
::*'''tepovyida'''....''addled, confused''
::*'''tepovyidxea'''....''befuddling, confusing''
::*'''tepovyidxen'''....''befogging, befuddlement''
::*'''tepovyidxer'''....''addle, befog, befuddle, confuse''
::*'''tepovyidxwa'''....''addled, befogged, befuddled, confused''
::*'''tepoya'''....''air-headed, anserine, empty-headed, fatuous, feather-brained, featherbrained, mindless, moony, rattlebrained, spacy, vapid''
::*'''tepoyan'''....''empty-headedness, fatuity, fatuousness, mindlessness, spaciness, vapidity, vapidness''
::*'''tepoyeba'''....''out of one’s mind, luny''
::*'''tepoyeban'''....''lunacy''
::*'''tepoyza'''....''daft, foolish, silly''
::*'''tepoyzan'''....''daftness, foolishness, silliness''
::*'''tepoyzay'''....''daftly, foolishly''
::*'''tepoza'''....''birdbrained, dull-witted, dumb, feeble-minded, idiotic, klutzy, mentally weak, moronic, muddleheaded, of weak intelligence, stupid''
::*'''tepozan'''....''dull-wittedness, dumbness, feeble-mindedness, klutziness, weak intelligence''
::*'''tepozay'''....''dumbly, idiotically, moronically, stupidly''
::*'''tepozea'''....''wacko, wacky''
::*'''tepozebwa'''....''mentally unbalanced, unhinged''
::*'''tepozebwaser'''....''become mentally unbalanced, become unhinged''
::*'''tepozepa'''....''crazy, mad''
::*'''tepozepan'''....''craziness''
::*'''tepozepay'''....''crazily''
::*'''tepozeta'''....''mentally abnormal, mentally unbalanced, weird''
::*'''tepozetan'''....''mental abnormality, mentally unbalanced state, weirdness''
::*'''tepozetay'''....''weirdly''
::*'''tepozta'''....''bored''
::*'''tepoztan'''....''boredom''
::*'''tepoztaxea'''....''boring''
::*'''tepoztaxer'''....''bore''
::*'''tepoztaxyea'''....''yawny''
::*'''teppaxea'''....''motivating''
::*'''teppaxen'''....''motivation''
::*'''teppaxena'''....''motivational''
::*'''teppaxenay'''....''motivationally''
::*'''teppaxer'''....''motivate''
::*'''teppaxus'''....''motive''
::*'''teppaxusoya'''....''motiveless''
::*'''teppaxusuka'''....''motiveless''
::*'''teppaxwa'''....''motivated''
::*'''teppoos'''....''peace of mind, serenity''
::*'''teppooxer'''....''give peace of mind, quell''
::*'''teppooxwa'''....''relieved, serene''
::*'''teppoys'''....''relief''
::*'''teppoyxen'''....''relieving''
::*'''teppoyxer'''....''relieve''
::*'''teppoyxwa'''....''relieved''
::*'''tepsan'''....''schema, scheme''
::*'''tepsana'''....''schematic''
::*'''tepsanay'''....''schematically''
::*'''tepsani'''....''schemata''
::*'''tepsaxen'''....''devising''
::*'''tepsaxer'''....''devise''
::*'''tepsaxwa'''....''devised''
::*'''tepsin'''....''imagination, mental image''
::*'''tepsina'''....''imaginary''
::*'''tepsinien'''....''imagination, imagining''
::*'''tepsinier'''....''imagine''
::*'''tepsiniwa yuf'''....''bug-a-boo, bugaboo''
::*'''tepsiniwa'''....''imaginary, imagined''
::*'''tepsiniyafwa'''....''imaginable''
::*'''tepsiniyafway'''....''imaginably''
::*'''tepsiniyea'''....''imaginative''
::*'''tepsiniyean'''....''imaginativeness''
::*'''tepsiniyeay'''....''imaginatively''
::*'''tepsiniyofwa'''....''ludicrous, unimaginable''
::*'''tepsiniyofwan'''....''ludicrousness''
::*'''tepsiniyofway'''....''ludicrously, unimaginably''
::*'''tepsinuer'''....''make see in the mind''
::*'''tepsinuka'''....''unimaginative''
::*'''tepsinuyea'''....''lysergic''
::*'''teptaba'''....''psychosomatic''
::*'''teptapa'''....''psycho-physical''
::*'''teptaptun'''....''psychophysics, psychophysiology''
::*'''teptaptuna'''....''psychophysiological''
::*'''teptayosobxea'''....''mind-numbing''
::*'''tepteas'''....''phantasy''
::*'''teptejtun'''....''psychobiology''
::*'''teptija'''....''alert, aware, conscious, mentally alert, wakeful''
::*'''teptijan'''....''alertness, awareness, consciousness, sentience, wakefulness''
::*'''teptijaxen'''....''consciousness-raising''
::*'''teptijay tayotier'''....''sentient''
::*'''teptijay'''....''consciously, wakefully''
::*'''teptijber'''....''bring around to consciousness''
::*'''teptijier'''....''become alerted, become conscious''
::*'''teptijper'''....''come to, regain consciousness''
::*'''teptijuer'''....''alert, call attention to''
::*'''teptoluus'''....''pabulum''
::*'''teptuj'''....''blackout''
::*'''teptuja'''....''insensate, insentient, unconscious''
::*'''teptujan'''....''insentience, unconsciousness''
::*'''teptujay'''....''unconsciously''
::*'''teptujben'''....''k.o., knock-out, knockout''
::*'''teptujber'''....''knock out, render unconscious''
::*'''teptujbwa'''....''knocked out, rendered unconscious''
::*'''teptujpen'''....''fainting''
::*'''teptujper'''....''black out, faint, go unconscious, pass out''
::*'''teptujpoa'''....''faint, about to pass out''
::*'''teptun'''....''psychology''
::*'''teptuna yikon'''....''hang-up, hangup''
::*'''teptuna'''....''psychological''
::*'''teptunay'''....''psychologically''
::*'''teptundal'''....''psychobabble''
::*'''teptut'''....''psychologist, shrink''
::*'''teptuyj'''....''stupor''
::*'''teptuyjea'''....''stuporous''
::*'''tepuen'''....''mentioning''
::*'''tepuer'''....''mention, bring to mind, recall, point out''
::*'''tepuga'''....''dull-minded, dumb, lumpish, mentally slow, moronic, slow of mind, slow-witted, stupid, witless''
::*'''tepugan'''....''dullness, dumbness, mental dullness, slow-wittedness, witlessness''
::*'''tepugay'''....''dumbly, moronically, slow-wittedly, stupidly, witlessly''
::*'''tepuka dal'''....''blarney''
::*'''tepuka'''....''air-headed, anserine, empty-headed, fatuous, feather-brained, featherbrained, mindless, moony, rattlebrained, spacy, vapid''
::*'''tepukan'''....''empty-headedness, fatuity, fatuousness, mindlessness, spaciness, vapidity, vapidness''
::*'''tepukay'''....''fatuously, mindlessly, vapidly''
::*'''tepul'''....''fodder''
::*'''tepuwa'''....''mentioned''
::*'''tepuxen'''....''suasion''
::*'''tepuxlan'''....''impression''
::*'''tepuxlawa'''....''impressed''
::*'''tepuxlen'''....''having an impression, impressing''
::*'''tepuxler'''....''have an impression of, impress, influence intellectually''
::*'''tepuxlyaf'''....''ability to impress, impressiveness''
::*'''tepuxlyafwa'''....''impressible, impressionable, possible to impress''
::*'''tepuxlyafwan'''....''impressibility, impressionableness, impressiveness''
::*'''tepuxlyea'''....''impressive''
::*'''tepuxlyean'''....''impressiveness''
::*'''tepuxlyeay'''....''impressively''
::*'''tepuyefwa'''....''notable, worth mentioning, worth mentioning''
::*'''tepuyefwan'''....''notability''
::*'''tepuyefway'''....''notably''
::*'''tepuz'''....''crank''
::*'''tepuza'''....''cooky, deluded, irrational''
::*'''tepuzan'''....''cookiness, irrationality''
::*'''tepuzasea'''....''going crazy''
::*'''tepuzaser'''....''go crazy''
::*'''tepuzaxer'''....''make crazy''
::*'''tepuzbea'''....''attention-diverting, mind-bending''
::*'''tepuzben'''....''distraction, diversion of attention''
::*'''tepuzber'''....''distract, divert attention''
::*'''tepuzbwa'''....''distracted, distrait''
::*'''tepuzbway'''....''distractedly''
::*'''tepuzbyea'''....''attention-diverting, diversionary''
::*'''tepuzra'''....''barmy, batty, certifiable, crazy, daffy, delirious, demented, gaga, gonzo, kooky, loco, loony, loopy, lunatic, mentally twisted, meshuga, meshugga, nutty, screwball, screwy, wack''
::*'''tepuzram'''....''bedlam''
::*'''tepuzran'''....''craziness, daffiness, deliriousness, delirium, lunacy, madness, mental twistedness, nuttiness, screwiness, wackiness''
::*'''tepuzraser'''....''go bezerk, go crazy, go daffy, go insane, go made, go nuts''
::*'''tepuzratam'''....''mental institution, nuthouse''
::*'''tepuzraxer'''....''drive crazy, make crazy''
::*'''tepuzraxwa'''....''crazed, distraught''
::*'''tepuzray'''....''crazily, deliriously, dementedly, madly, nuttily''
::*'''tepuzrea'''....''woozy''
::*'''tepuzrean'''....''wooziness''
::*'''tepuzreay'''....''woozily''
::*'''tepvyox'''....''con, mind trick, ruse, trick''
::*'''tepvyoxen'''....''conning, fooling, trickery, tricking''
::*'''tepvyoxer'''....''con, fool, play a ruse on, trick''
::*'''tepvyoxwa'''....''conned, fooled, tricked''
::*'''tepvyoxyea'''....''crafty, tricky''
::*'''tepvyoxyean'''....''craftiness, trickiness''
::*'''tepyaf'''....''brainpower, cunning, intelligence, mental ability''
::*'''tepyafa'''....''cunning, intelligence, intelligent, mentally capable, mentally-gifted, smart, witty''
::*'''tepyafan'''....''wittiness''
::*'''tepyafay'''....''cunningly, intelligently, smartly, wittily''
::*'''tepyaga'''....''gaga''
::*'''tepyanpyex'''....''clash of wits''
::*'''tepyansen'''....''communion''
::*'''tepyaza'''....''cavalier, cocksy, cocky, fustian, haughty, huffish, huffy, insolent, pompous, supercilious, swellheaded''
::*'''tepyazan'''....''cavalierness, cockiness, haughtiness, huffiness, insolence, pomposity, pompousness, superciliousness''
::*'''tepyazay'''....''cavalierly, cockily, pompously, superciliously''
::*'''tepyegan'''....''sanity''
::*'''tepyek'''....''enigma, mind-test''
::*'''tepyekier'''....''puzzle over''
::*'''tepyekuer'''....''challenge the mind''
::*'''tepyekuus'''....''puzzle, puzzler''
::*'''tepyekuwa'''....''puzzled''
::*'''tepyekuwan'''....''puzzlement''
::*'''tepyekuyea'''....''enigmatic, puzzling''
::*'''tepyekuyeay'''....''enigmatically''
::*'''tepyen'''....''attitude, frame of mind, mental framework, mentality, mindset, mood, morale, state of mind''
::*'''tepyena'''....''attitudinal''
::*'''tepyenyiga'''....''acerbic''
::*'''tepyenyigan'''....''acerbity''
::*'''tepyenyigay'''....''acerbically''
::*'''tepyeva'''....''even-tempered, fair-minded, judicious, level-headed, levelheaded''
::*'''tepyevan'''....''even temper, fair-mindedness, judiciousness, level-headedness, levelheadedness''
::*'''tepyexer'''....''mull''
::*'''tepyexwa'''....''mulled''
::*'''tepyibixer'''....''draw away attention''
::*'''tepyiga'''....''hard-minded, intolerant, obdurate, severe, stern, strict, stringent, stubborn, tough-minded''
::*'''tepyigan'''....''obduracy, obdurateness, severeness, severity, sternness, strictness, stringency, stubbornness, tough-mindedness''
::*'''tepyigay'''....''obdurately, severely, sternly, stringently''
::*'''tepyigraxlea'''....''raving''
::*'''tepyigraxler'''....''rave''
::*'''tepyija'''....''open-minded, tolerant''
::*'''tepyijan'''....''open-mindedness, tolerance''
::*'''tepyikon'''....''brainteaser, headache, problem''
::*'''tepyikxea'''....''bewildering''
::*'''tepyikxeay'''....''bewilderingly''
::*'''tepyikxen'''....''bewilderment''
::*'''tepyikxer'''....''bewilder''
::*'''tepyikxwa'''....''bewildered''
::*'''tepyiva'''....''free-spirited, liberal-minded, progressive''
::*'''tepyivan'''....''free-spiritedness, liberal-mindedness, liberality, liberalness, progressiveness''
::*'''tepyivay'''....''liberally''
::*'''tepyoban'''....''malaise''
::*'''tepyoden'''....''growling''
::*'''tepyoder'''....''growl''
::*'''tepyof'''....''mental disability, mental incapacity''
::*'''tepyofa'''....''dumb, mentally disabled, stupid''
::*'''tepyofay'''....''stupidly''
::*'''tepyofxen'''....''besotting, stupefaction''
::*'''tepyofxer'''....''besot, gowk, stupefy''
::*'''tepyofxwa'''....''besotted, stupefied''
::*'''tepyokla'''....''dazed, dizzy, scatter-brained, scatterbrained''
::*'''tepyoklan'''....''dizziness''
::*'''tepyoklaxen'''....''confusion''
::*'''tepyoklaxer'''....''confuse, make dizzy''
::*'''tepyoklaxwa'''....''confused, dizzy, rattled''
::*'''tepyoklay'''....''dizzily''
::*'''tepyoklea'''....''dizzying''
::*'''tepyokleay'''....''dizzyingly''
::*'''tepyonpyos'''....''breakdown''
::*'''tepyontixa'''....''psychoanalytic''
::*'''tepyontixen'''....''psychoanalysis''
::*'''tepyontixena'''....''psychoanalytical''
::*'''tepyontixer'''....''psychoanalyze''
::*'''tepyonzyabwa'''....''ditsy''
::*'''tepyopoos'''....''anguish''
::*'''tepyopoosen'''....''anguishing''
::*'''tepyopooxea'''....''anguishing''
::*'''tepyopooxwa'''....''anguished, mentally anguished''
::*'''tepyot'''....''orangutan''
::*'''tepyufonap'''....''paranoia''
::*'''tepyufonapa'''....''paranoid''
::*'''tepyufonapat'''....''paranoiac''
::*'''tepyuga'''....''indulgent, kind, lax, lenient, merciful, soft-hearted, softhearted, tolerant''
::*'''tepyugan'''....''kindness, laxity, laxness, lenience, leniency, lenity, lexness, mercifulness, mercy, soft-heartedness, softheartedness, tolerance''
::*'''tepyugay'''....''kindly, laxly, leniently, mercifully, softheartedly''
::*'''tepyugra'''....''lenient''
::*'''tepyugran'''....''leniency''
::*'''tepyugray'''....''leniently''
::*'''tepyugsea'''....''indulging''
::*'''tepyugser'''....''be lenient, go easy, indulge''
::*'''tepyuja'''....''close-minded, closed-minded, conservative, intolerant''
::*'''tepyujan'''....''close-mindedness, closed-mindedness''
::*'''tepyujatyena'''....''fogyish''
::*'''tepyukla'''....''naive, naïve, simple-minded, simpleminded''
::*'''tepyuklan'''....''naiveness, naivety, naiveté, naïvete, simple-mindedness''
::*'''tepyuklay'''....''naively, naïvely, simple-mindedly''
::*'''tepyuva'''....''close-minded, conservative''
::*'''tepyuvaxea'''....''captivating''
::*'''tepyuvraxea'''....''captivating''
::*'''tepyuvraxwa'''....''captivated''
::*'''tepyuvxer'''....''captivate''
::*'''tepzeta'''....''sane''
::*'''tepzetan'''....''saneness, sanity''
::*'''tepzetay'''....''sanely''
::*'''tepzex'''....''attention, concentration, mental focus''
::*'''tepzexea'''....''attention-focusing, attention-getting, attention-grabbing, concentrating''
::*'''tepzexen'''....''attention, concentrating, concentration, focusing attention''
::*'''tepzexer be'''....''concentrate on, focus attention on, focus on, focus one's mind on, pay attention to''
::*'''tepzexer'''....''be attentive, concentrate, focus attention, focus the mind, pay attention''
::*'''tepzexuen'''....''drawing attention, drawing attention to''
::*'''tepzexuer'''....''draw attention, draw attention to''
::*'''tepzexuyea'''....''flashy''
::*'''tepzexwa'''....''attentive, earnest, mentally focused''
::*'''tepzexwan'''....''attentiveness, earnestness''
::*'''tepzexway'''....''attentively, earnestly''
::*'''tepzexyea'''....''attentive''
::*'''tepzexyean'''....''attentiveness''
::*'''tepzexyeay'''....''attentively''
::*'''tepzyapuxwa'''....''ditsy, ditzy''
::*'''tepzyonzyabwa'''....''ditzy''
::*'''tijtep'''....''conscious mind''
::*'''toftepkyoxwat'''....''clotheshorse''
::*'''tojbea tepruzan'''....''amok''
::*'''tojbea tepuzran'''....''amuck''
::*'''tojtepat'''....''numbskull, numskull''
::*'''tujtep'''....''subconscious mind''
::*'''tujtepa'''....''subconscious''
::*'''tujtepan'''....''oblivion''
::*'''tujtepay'''....''subconsciously''
::*'''uizgoblar tepyek'''....''jigsaw puzzle''
::*'''ujteptija'''....''self-conscious, selfconscious''
::*'''ujteptijan'''....''self-consciousness, selfconsciousness''
::*'''uka tep'''....''blank mind''
::*'''uttepaza'''....''self-willed''
::*'''utvlatep'''....''poise''
::*'''utvlatepa'''....''poised''
::*'''uztepyaf'''....''guile''
::*'''uztepyafa'''....''guileful''
::*'''uztepyafoya'''....''guileless''
::*'''uztepyafoyan'''....''guilelessness''
::*'''uztepyafuka'''....''guileless''
::*'''uztepyafukan'''....''guilelessness''
::*'''uztepyafukay'''....''guilelessly''
::*'''vaktepan'''....''confidence''
::*'''vaktepay'''....''confidently''
::*'''vatepa'''....''positive, upbeat''
::*'''vatepan'''....''positiveness''
::*'''vatepat'''....''positive person''
::*'''vatepin'''....''positivism''
::*'''vatepina'''....''positivist''
::*'''vatepinut'''....''positivist''
::*'''vitep'''....''beautiful mind''
::*'''vitepa dizapyex'''....''lampoon''
::*'''vitepa'''....''witty''
::*'''vitepan'''....''wittiness''
::*'''vitepay'''....''wittily''
::*'''vitepdrez'''....''epigram''
::*'''vitepdreza'''....''epigrammatic''
::*'''vlatepa'''....''certain, sure, surefooted''
::*'''vlatepan'''....''certainty, conviction, sureness''
::*'''votepa'''....''negative-minded''
::*'''votepin'''....''negativism''
::*'''votepina'''....''negativistic''
::*'''votepinut'''....''negativist''
::*'''votepyena'''....''negatively-disposed''
::*'''Voy tepoboxe at.'''....''I don't care., It doesn't bother me.''
::*'''vutepa'''....''wretched''
::*'''vutepan'''....''wretchedness''
::*'''vutepat'''....''wretch''
::*'''vyatep'''....''seat of reason''
::*'''vyatepa'''....''rational''
::*'''vyatepan'''....''rationality, wisdom, wise man''
::*'''vyatepat'''....''rational person, wise person''
::*'''vyatepay'''....''rationally, wisely''
::*'''vyatepser'''....''be reasonable, wise up''
::*'''vyatepxen'''....''rationalization, streamlining, tempering''
::*'''vyatepxer'''....''rationalize, streamline, temper, wizen''
::*'''vyatepxwa'''....''streamlined, tempered, wizened''
::*'''vyatepyena'''....''rational''
::*'''vyatepyenay'''....''rationally''
::*'''vyatepzem'''....''seat of reason''
::*'''vyetepa'''....''subjective''
::*'''vyetepan'''....''subjectivity''
::*'''vyetepay'''....''subjectively''
::*'''vyetepin'''....''subjectivism''
::*'''vyetepina'''....''subjectivistic''
::*'''vyetepinut'''....''subjectivist''
::*'''vyetepxen'''....''subjectification''
::*'''vyetepxer'''....''subjectify''
::*'''vyetepxwa'''....''subjectified''
::*'''vyidtepa'''....''clear-headed, clear-minded, clearheaded, lucid''
::*'''vyidtepan'''....''clarity of mind, clear-mindedness, lucidity, lucidness''
::*'''vyidtepay'''....''lucidly''
::*'''vyifxer ha tep'''....''clear the mind''
::*'''vyitepan'''....''clear-headedness''
::*'''vyoktepa'''....''mistaken, wrong-headed, wrongheaded''
::*'''vyoktepan'''....''wrongheadedness''
::*'''vyoktepay'''....''mistakenly, wrongheadedness, wrongheadedly''
::*'''vyotepa'''....''fallacious, fool-hardy, foolhardy, foolish, hare-brained, harebrained, unwise''
::*'''vyotepan'''....''fallaciousness, folly, foolishness''
::*'''vyotepat'''....''cockamamie, fool''
::*'''vyotepay'''....''foolishly''
::*'''vyotepsin'''....''hallucination, illusion''
::*'''vyotepsina'''....''hallucinatory, illusory''
::*'''vyotepsinen'''....''hallucination''
::*'''vyotepsiner'''....''hallucinate''
::*'''vyotepsinier'''....''imagine wrongly''
::*'''vyotepsinuer'''....''give the illusion''
::*'''vyotepsinwa'''....''hallucinatory, illusory''
::*'''vyotepsinxea'''....''hallucinogenic''
::*'''vyotepsinxul'''....''hallucinogen''
::*'''vyutepa'''....''dirty-minded, foul-minded, smutty''
::*'''vyutepan'''....''dirty-minded, foul-minded, smuttiness''
::*'''vyutepat'''....''foul-minded person''
::*'''yeper tojbea tepruzan'''....''go amok''
::*'''yexer tepzexway'''....''work earnestly''
::*'''yiztepekwa'''....''foxed''
::*'''yoktepkyax'''....''freak''
::*'''yuktepa'''....''easy-minded, forgiving, lenient''
::*'''yuktepan'''....''easy-mindedness, leniency''
::*'''zen bi tepkyox'''....''center of attention''
::*'''zyatepa'''....''broad-minded, broadminded, expansive, mentally expansive, open-minded''
::*'''zyatepan'''....''broad-mindedness, expansiveness''
::*'''zyatepat'''....''broad-minded person''
::*'''zyatepay'''....''broad-mindedly, expansively''
::*'''zyeper tep'''....''run through one's head''
::*'''zyotepa'''....''bigoted, hidebound, narrow-minded, petty''
::*'''zyotepan'''....''bigotry, narrow-mindedness, pettiness''
::*'''zyotepat'''....''bigot, narrow-minded person, petty person''
::*'''zyotepay'''....''narrow-mindedly''
</div>
{{small/end}}
: Some words built on '''tip''' (''emotion, mood'') are the following:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
::*'''agratipa'''....''megamaniacal''
::*'''avtip'''....''goodwill''
::*'''booktipiva'''....''slaphappy''
::*'''boy yantipuv'''....''without pity''
::*'''dofinay tipyuga'''....''latitudinarian''
::*'''ekutyan tip'''....''team spirit''
::*'''epyextip'''....''anger, rage, wrath''
::*'''epyextipa'''....''angry, mad, rageful, wrathful''
::*'''epyextipan'''....''angriness''
::*'''epyextipay'''....''angrily, wrathfully''
::*'''epyextipuea'''....''enraging''
::*'''epyextipuen'''....''angering, enragement''
::*'''epyextipuer'''....''anger, enrage, madden''
::*'''epyextipuwa'''....''angered, enraged''
::*'''epyextipuyea'''....''maddening''
::*'''epyextipuyeay'''....''maddeningly''
::*'''eyntipa'''....''half-hearted, halfhearted''
::*'''eyntipay'''....''halfheartedly''
::*'''eyntipin'''....''halfheartedness''
::*'''fitip'''....''gentleness, good humor, good mood, kindness, mettle''
::*'''fitipa'''....''cheerful, genial, gentle, good-hearted, good-humored, good-natured, goodhearted, in a good mood, kind, kindhearted, nice, well-tempered''
::*'''fitipan'''....''geniality, gentleness, good-heartedness, kindheartedness, kindness, niceness''
::*'''fitipat'''....''generous person, good soul, good-hearted person, good-natured person, kind person, sweetheart''
::*'''fitipay'''....''genially, kindheartedly''
::*'''fitipsen'''....''showing kindness''
::*'''fitipser'''....''show kindness''
::*'''fitipyena'''....''upbeat''
::*'''flutip'''....''choler, ire''
::*'''flutipa'''....''cross, irate, livid''
::*'''flutipan'''....''crossness, irateness, madness''
::*'''flutipat'''....''crosspatch''
::*'''flutipay'''....''crossly, irately, lividly''
::*'''flutipaya'''....''ireful''
::*'''flutipika'''....''ireful''
::*'''flutipser'''....''grow irate''
::*'''fritipa'''....''blithe, cheery, gay, gleeful, merry''
::*'''fritipan'''....''cheeriness, gayness, gleefulness, merriment, merriness''
::*'''fritipay'''....''merrily''
::*'''fritipier'''....''cheer up''
::*'''fritipser'''....''be delighted, become amused, cheer up''
::*'''fritipuer'''....''cheer up''
::*'''fritipxea'''....''cheer''
::*'''fritipxer'''....''cheer up''
::*'''fritipxwa'''....''cheered''
::*'''fruitipa'''....''wroth''
::*'''fruitipaya'''....''rageful, raging''
::*'''fruitipika'''....''rageful, raging''
::*'''fruitipikay'''....''furiously, ragingly''
::*'''frutip'''....''furor, fury, outrage, rage, wrath''
::*'''frutipa'''....''rageful, wrathful''
::*'''frutipay'''....''wrathfully''
::*'''frutipaya'''....''furious, wrathful''
::*'''frutipika'''....''furious, wrathful''
::*'''frutipikay'''....''wrathfully''
::*'''frutipsea'''....''raging''
::*'''frutipser'''....''be enraged, be incensed, be outraged, become enraged, become infuriated, become outraged, get enraged, get infuriated''
::*'''frutipteax'''....''tantrum''
::*'''frutipuea'''....''enraging''
::*'''frutipuen'''....''enragement''
::*'''frutipuer'''....''enrage''
::*'''frutipuwa'''....''enraged''
::*'''frutipxea'''....''infuriating, outrageous''
::*'''frutipxeay'''....''infuriatingly, outrageously''
::*'''frutipxen'''....''infuriation''
::*'''frutipxer'''....''incense, infuriate, outrage''
::*'''frutipxwa'''....''furious, incensed, infuriated, outraged, unraged''
::*'''frutipxway'''....''furiously''
::*'''frutipxyikwa'''....''irascible''
::*'''frutipxyikwan'''....''irascibility''
::*'''frutipxyikway'''....''irascibly''
::*'''fuitipay'''....''moodily''
::*'''futip'''....''bad mood, dudgeon, foul temper, indisposition, lousy mood, snit''
::*'''futipa'''....''cantankerous, crabby, curmudgeonly, foul-tempered, fussy, grumpy, hotheaded, ill-disposed, ill-humored, ill-tempered, in a bad mood, jag, lousy, mad, peevish, pettish, petulant, snotty, splenetic, sullen, surly''
::*'''futipan'''....''bad mood, cantankerousness, crabbiness, foul temper, hotheadedness, ill disposition, lousiness, peevishness, pettishness, petulance, snottiness, sullenness, surliness''
::*'''futipat'''....''curmudgeon, foul-tempered person, grump, hothead, surly person''
::*'''futipay'''....''cantankerously, crabbily, lousily, peevishly, pettishly, petulantly, snottily, sullenly''
::*'''futipayt'''....''shrew''
::*'''futipaytyena'''....''shrewish''
::*'''futipika'''....''grouty, hot-blooded, mad''
::*'''futipixwa'''....''disgruntled, maddened''
::*'''futipsea'''....''becoming angry, getting angry, getting mad''
::*'''futipsen'''....''getting angry, getting mad''
::*'''futipser'''....''be mad, become angry, become ill-tempered, chafe, get angry, get mad, grow angry''
::*'''futipsut'''....''sorehead''
::*'''futipuer'''....''madden''
::*'''futipxea'''....''dispiriting, maddening''
::*'''futipxeay'''....''maddeningly''
::*'''futipxen'''....''disgruntlement''
::*'''futipxer'''....''disgruntle, empurple, exasperate, indispose, make angry, make mad, put in a foul mood''
::*'''futipxwa'''....''dispirited, exasperated, hotblooded, indisposed, pissed''
::*'''futipxwan'''....''dispiritedness''
::*'''futipxway'''....''dispiritedly''
::*'''gayoban tipyen'''....''inferiority complex''
::*'''glatip'''....''exeunt''
::*'''glatipika'''....''exuberant''
::*'''glatipikan'''....''exuberance''
::*'''glatipikay'''....''exuberantly''
::*'''gratip'''....''hokum, hysteria, schmaltz, schmalz''
::*'''gratipa duz'''....''schmaltz''
::*'''gratipa eyntuj'''....''hysterical trance''
::*'''gratipa'''....''bathetic, hysterical, schmaltzy, sentimental''
::*'''gratipan'''....''mawkishness''
::*'''gratipat'''....''mawkish, sentimentalist''
::*'''gratipay'''....''hysterically, mawkishly, sentimentally''
::*'''gratipaya'''....''hokey, overemotional, soppy''
::*'''gratipazta'''....''overenthusiastic''
::*'''gratipdal'''....''treacle''
::*'''gratipdalaya'''....''treacly''
::*'''gratipdalika'''....''treacly''
::*'''gratipika'''....''hokey, overemotional, soppy''
::*'''gratippaax'''....''hysterics''
::*'''gratipyen'''....''sentimentalism, sentimentality''
::*'''iftip'''....''pleasant mood''
::*'''iftipa'''....''in a pleasant mood''
::*'''kyatipa'''....''fickle, moody, volatile''
::*'''kyatipan'''....''fickleness, moodiness, volatility''
::*'''kyatipaxer'''....''volatilize''
::*'''kyatipay'''....''moodily''
::*'''kyetipa'''....''arbitrary, capricious, whimsical''
::*'''kyetipan'''....''arbitrariness, capriciousness, whimsicality, whimsy''
::*'''kyetipas'''....''whim''
::*'''kyetipay'''....''arbitrarily, on a whim, whimsically''
::*'''kyitip'''....''gloom''
::*'''kyitipa'''....''crestfallen, downcast, downhearted, gloomy, heavy-hearted, heavyhearted''
::*'''kyitipan'''....''downheartedness, gloominess, gravity''
::*'''kyitipay'''....''downheartedly, with a heavy heart''
::*'''kyitipxer'''....''dispirit''
::*'''kyiuvtipa'''....''melancholic, melancholy''
::*'''kyiuvtipan'''....''melancholia''
::*'''kyotipa'''....''steadfast, stubborn''
::*'''kyotipan'''....''steadfastness, stubbornness''
::*'''kyotipay'''....''steadfastly''
::*'''kytipser'''....''be dispirited''
::*'''kyutipa'''....''blithe, giddy, goofy, goosy, light-hearted, lighthearted, silly, winsome, frivolous''
::*'''kyutipan'''....''blitheness, giddiness, goofiness, light-heartedness, lightheartedness, silliness, winsomeness''
::*'''kyutipat'''....''flibbertigibbet, goosy''
::*'''kyutipay'''....''blithely, giddily, in a silly fashion, light-heartedly, lightheartedly, winsomely''
::*'''kyutipkyes'''....''idyll''
::*'''kyutipkyesa'''....''idyllic''
::*'''kyutipkyesay'''....''idyllically''
::*'''mep frutip'''....''road rage''
::*'''ofitipa'''....''ungentle''
::*'''okyatipa'''....''nonvolatile''
::*'''otipika'''....''unsentimental''
::*'''otipikan'''....''unsentimentality''
::*'''otipiva'''....''cheerless''
::*'''otipivan'''....''cheerlessness''
::*'''otipivay'''....''cheerlessly''
::*'''otipuva'''....''pitiless''
::*'''otipuvan'''....''pitilessness''
::*'''otipuvay'''....''pitilessly''
::*'''otipyabea'''....''unedifying''
::*'''otipyija'''....''disingenuous''
::*'''ovtipayt'''....''battleax, battleaxe''
::*'''ovuvtipul'''....''antidepressant''
::*'''ovyatipa'''....''backhanded, insincere, unfaithful''
::*'''ovyatipan'''....''insincerity, unfaithfulness''
::*'''ovyatipay'''....''backhandedly, insincerely, unfaithfully''
::*'''ovyatipuwa'''....''untrusted''
::*'''oyantipuviyea'''....''unmerciful''
::*'''oyantipuviyeay'''....''unmercifully''
::*'''ser frutipa'''....''be mad''
::*'''ser frutipxwa'''....''be enraged, be incensed''
::*'''teaxer frutip'''....''have a tantrum''
::*'''tip'''....''fettle, heart, humor, mood, pathos, sentiment, spirit, temper''
::*'''-tip'''....''-pathy''
::*'''tipa byoyk'''....''heartache''
::*'''-tipa'''....''-humored''
::*'''tipa'''....''sentimental, temperamental''
::*'''tipaasaya'''....''delirious''
::*'''tipaasayan'''....''deliriousness, delirium''
::*'''tipaasika'''....''delirious''
::*'''tipaasikan'''....''deliriousness, delirium''
::*'''tipaasikay'''....''deliriously''
::*'''tipaga'''....''big-hearted, bighearted, cordial, generous, genial, greathearted, largehearted, magnanimous''
::*'''tipagan'''....''big-heartedness, bigheartedness, cordiality, generosity, generousness, geniality, magnanimity''
::*'''tipagay'''....''big-heartedly, cordially, generously, magnanimously''
::*'''tipama'''....''hot-blooded, hotblooded''
::*'''tipan'''....''sentimentality''
::*'''tipaser'''....''become sentimental''
::*'''tipava'''....''agreeable, favorable, favorably disposed, favorably-disposed''
::*'''tipavan'''....''agreeableness''
::*'''tipavay'''....''favorably''
::*'''tipaxen'''....''sentimentalization''
::*'''tipaxlawa'''....''thrilled''
::*'''tipaxlea dyes'''....''thriller''
::*'''tipaxlea dyezun'''....''thriller''
::*'''tipaxlea'''....''thrilling, vibrant''
::*'''tipaxlean'''....''vibrancy''
::*'''tipaxleay'''....''thrillingly, vibrantly''
::*'''tipaxlen'''....''thrilling''
::*'''tipaxler'''....''sentimentalize, thrill''
::*'''tipaxlus'''....''thriller''
::*'''tipay'''....''sentimentally, temperamentally''
::*'''tipayan'''....''fieriness''
::*'''tipayma'''....''hearty, warmhearted''
::*'''tipayman'''....''heartiness, warmheartedness''
::*'''tipaymxea'''....''heartwarming''
::*'''tipaz'''....''oomph, zeal''
::*'''tipazan'''....''zealotry, zealousness''
::*'''tipazaxea'''....''heartening''
::*'''tipazaxer'''....''hearten''
::*'''tipazay'''....''zealously''
::*'''tipazaya'''....''fired up, frantic, on edge, wired, zesty''
::*'''tipazdez'''....''melodrama''
::*'''tipazdeza'''....''melodramatic''
::*'''tipazdezaxer'''....''melodramatize''
::*'''tipazdezay'''....''melodramatically''
::*'''tipazier'''....''be moved grow frantic, get excited, get impassioned, run high''
::*'''tipazika'''....''fired up, frantic, on edge, wired, zesty''
::*'''tipazikay'''....''frantically''
::*'''tipazpyex'''....''meltdown''
::*'''tipazraser'''....''grow furious''
::*'''tipazta'''....''enthusiastic, vehement, zestful''
::*'''tipaztan ifgian'''....''zestfulness''
::*'''tipaztan'''....''enthusiasm, vehemence, vehemency, verve, vim, zest''
::*'''tipaztaser'''....''become passionate, get excited''
::*'''tipaztaxer'''....''enthuse''
::*'''tipaztaxwa'''....''enthused''
::*'''tipaztay'''....''enthusiastically, vehemently, zestfully''
::*'''tipazuer'''....''fire up''
::*'''tipazuka'''....''dispassionate, unemotional, unexcited, unpassionate''
::*'''tipazukan'''....''dispassion''
::*'''tipazukay'''....''dispassionately, unemotionally, unexcitedly''
::*'''tipazuwa'''....''atwitter, fired up''
::*'''tipbyok'''....''heartache''
::*'''tipbyokea'''....''heart-broken''
::*'''tipbyoken'''....''feeling heartache''
::*'''tipbyoker'''....''feel heartache''
::*'''tipden'''....''expression of emotion, sentimentalization''
::*'''tipder'''....''express emotion, sentimentalize''
::*'''tipelad'''....''chirr''
::*'''tipelader'''....''chirr''
::*'''tipi'''....''teepee''
::*'''tipif'''....''amiability, kindness''
::*'''tipifa'''....''amiable, frivolous, fun-spirited, gay, jocular, kind''
::*'''tipifan'''....''amiability, frivolity, frivolousness, fun-spiritedness, gayness, kindness''
::*'''tipifay'''....''amiably, frivolously''
::*'''tipiga'''....''snippy''
::*'''tipigan'''....''snippiness''
::*'''tipigay'''....''snippily''
::*'''tipika'''....''fiery, spirited, temperamental''
::*'''tipikan'''....''fieriness''
::*'''tipikay'''....''moodily, spiritedly''
::*'''tipin'''....''sentimentalism''
::*'''tipina'''....''sentimentalist''
::*'''tipiva deup'''....''lilt''
::*'''tipiva'''....''cheerful, cheery, gay, jocund, light-hearted, lighthearted, merry, sprightly''
::*'''tipivan'''....''cheerfulness, cheeriness, gayness, jocundity, light-heartedness, lightheartedness, merriment, merriness, sprightliness''
::*'''tipivay'''....''cheerily, gayly, jocundly, light-heartedly, lightheartedly, merrily''
::*'''tipivxul'''....''depressant''
::*'''tipkyaa'''....''flexible''
::*'''tipkyaan'''....''flexibility''
::*'''tipkyin'''....''albatross''
::*'''tipkyoa'''....''stubborn''
::*'''tipkyoan'''....''stubbornness''
::*'''tipoboxwa'''....''unstrung''
::*'''tipoga'''....''small-minded, stingy''
::*'''tipogan'''....''small-mindedness, stinginess''
::*'''tipot'''....''tamarin''
::*'''tipova'''....''antipathetic, antipathy, contrary, hostile''
::*'''tipovan'''....''animosity, contrariety, contrariness, hostility''
::*'''tipoyxer'''....''moped user''
::*'''tipoza'''....''lackadaisical, weak-hearted''
::*'''tipozan'''....''weak-heartedness''
::*'''tipozay'''....''lackadaisically''
::*'''tipozta'''....''bored, low-key, unenthusiastic, weak-hearted''
::*'''tipoztan'''....''boredom, ennui, lack of enthusiasm, weak-heartedness''
::*'''tipoztaser'''....''grow bored''
::*'''tipoztaxea'''....''boring''
::*'''tipoztaxer'''....''bore''
::*'''tipoztaxwa'''....''bored''
::*'''tippaax'''....''excitement, passion''
::*'''tippaaxien'''....''getting excited, getting riled up, being moved''
::*'''tippaaxier'''....''get excited, get riled up, be moved, get impassioned''
::*'''tippaaxuen'''....''piquing, exciting, impassioning''
::*'''tippaaxuer'''....''pique, excite, impassion''
::*'''tippaaxuwa'''....''piqued, excited, impassioned''
::*'''tippanaya'''....''incendiary''
::*'''tippanika'''....''incendiary''
::*'''tiptyentexen'''....''sentimentalization''
::*'''tiptyentexer'''....''sentimentalize''
::*'''tiptyentexwa'''....''sentimentalized''
::*'''tipuea'''....''inspiriting''
::*'''tipuer'''....''inspirit''
::*'''tipufxer'''....''roil''
::*'''tipuka'''....''empty-hearted, unspirited''
::*'''tipukan'''....''empty-heartedness, unspiritiedness''
::*'''tipukay'''....''empty-heartedly, unspiritedly''
::*'''tipukxer'''....''frazzle''
::*'''tipukxwa'''....''frazzled''
::*'''tipuv'''....''heartbreak, pall, sorrow''
::*'''tipuva'''....''depressed, dour, down, downcast, morose, overcast, pitiful, sad-spirited, solemn, sorrowful, spleeny, somber''
::*'''tipuvan'''....''depression, dourness, heartsickness, languor, mercy, misery, pity, solemnity, sorrow, sorrowfulness, somberness''
::*'''tipuvay'''....''dourly, languorously, pitifully, somberly''
::*'''tipuviea'''....''pitying''
::*'''tipuvieay'''....''pityingly''
::*'''tipuvien'''....''having mercy on, having pity on, taking pity on''
::*'''tipuvier'''....''have mercy on, have pity on, pity, take pity on''
::*'''tipuviyea'''....''merciful''
::*'''tipuvra'''....''miserable''
::*'''tipuvran'''....''miserableness, moroseness''
::*'''tipuvrary'''....''miserably''
::*'''tipuvray'''....''morosely''
::*'''tipuvser'''....''being sorry for, pity, taking mercy on, taking pity on''
::*'''tipuvsyika'''....''depressive''
::*'''tipuvuyea'''....''piteously''
::*'''tipuvuyean'''....''piteousness''
::*'''tipuvxea'''....''arousing pity, depressing, heartbreaking, pitiful''
::*'''tipuvxeay'''....''depressingly''
::*'''tipuvxen'''....''depressing''
::*'''tipuvxer'''....''arouse pity, depress''
::*'''tipuvxwa'''....''heartbroken, woebegone''
::*'''tipuvxyea'''....''depressive''
::*'''tipuwa'''....''inspirited''
::*'''tipuyfa'''....''miffed''
::*'''tipyaba'''....''ebullient, upbeat''
::*'''tipyaban'''....''ebullience''
::*'''tipyabay'''....''ebulliently''
::*'''tipyen'''....''attitude, disposition, temperament, mood, complex''
::*'''tipyena'''....''attitudinal, temperamental''
::*'''tipyenay'''....''sentimentally, temperamentally''
::*'''tipyenxen'''....''sentimenalization''
::*'''tipyenxer'''....''sentimentalize''
::*'''tipyenxwa'''....''sentimentalized''
::*'''tipyifa'''....''brave-hearted, impudent, spunky''
::*'''tipyifan'''....''impudence, spunk, brave-heartedness''
::*'''tipyifay'''....''impudently, brave-heartedly, spunkily''
::*'''tipyiga'''....''callous, flinty, hard-nosed, hardhearted, rigid, severe, stern-hearted, stouthearted, visceral''
::*'''tipyigan'''....''callosity, callousness, flintiness, hardheartedness, stern-heartedness, sternness''
::*'''tipyigay'''....''callously, hardheartedly, stoutly, viscerally''
::*'''tipyigazaxea'''....''galling''
::*'''tipyigla'''....''rude''
::*'''tipyiglan'''....''rudeness''
::*'''tipyiglay'''....''rudely''
::*'''tipyigra'''....''violent-tempered''
::*'''tipyigraser'''....''grow angry, grow enraged, become infuriated''
::*'''tipyigraxen'''....''riling up, enraging, infuriation''
::*'''tipyigraxer'''....''rile up, enrage, infuriate, outrage''
::*'''tipyigraxwa'''....''riled up, enraged, infuriated, outraged''
::*'''tipyigray'''....''in a rough manner, furiently, outrageously''
::*'''tipyigza'''....''acrimonious''
::*'''tipyigzan'''....''acrimoniousness, acrimony''
::*'''tipyigzay'''....''acrimoniously''
::*'''tipyija'''....''liberal, open-minded, openhearted, tolerant''
::*'''tipyijan'''....''liberality, open-mindedness, tolerance''
::*'''tipyiva'''....''liberal-minded, open-minded''
::*'''tipyivan'''....''liberal-mindedness, liberality, liberalness, open-mindedness''
::*'''tipyoba'''....''downbeat''
::*'''tipyos'''....''tailspin''
::*'''tipyot'''....''gorilla''
::*'''tipyotyan'''....''flange''
::*'''tipyuba'''....''intimate''
::*'''tipyuban'''....''intimacy''
::*'''tipyubay'''....''intimately''
::*'''tipyuga'''....''easy-going, easygoing, flexible, gentle, lenient''
::*'''tipyugan'''....''flexibility, gentleness of spirit, lenience''
::*'''tipyugra'''....''gentle, kind, kindhearted, mild-mannered''
::*'''tipyugran'''....''gentleness, kindheartedness, kindliness, kindness''
::*'''tipyugray'''....''gently, kindheartedly, kindly''
::*'''tipyuja'''....''close-minded, intolerant''
::*'''tipyujan'''....''close-mindedness, intolerance''
::*'''tipyuva'''....''conservative''
::*'''tipyuvan'''....''conservativeness''
::*'''tipzen'''....''emotional center, heart and soul''
::*'''tipzyabixobea'''....''cathartic''
::*'''totipyijay'''....''disingenuously''
::*'''uftipyen'''....''complex''
::*'''uttipuvxea'''....''maudlin''
::*'''uvtipa'''....''downbeat''
::*'''vatipa'''....''positive-minded''
::*'''vatipan'''....''positive-minded, positive-mindedness, positivity''
::*'''vatipat'''....''positive person''
::*'''vitipa'''....''blithe, cheery, chipper, in a lovely mood, jaunty, winsome''
::*'''votipa'''....''cynical, negative-minded''
::*'''votipan'''....''negative-mindedness, negativism''
::*'''votipat'''....''cynic, naysayer''
::*'''votipay'''....''cynically''
::*'''votipin'''....''cynicism''
::*'''vutipa'''....''crotchety, frumpy, grouchy, grouty, in a foul mood, mean-spirited, surly''
::*'''vutipan'''....''mean-spiritedness, meanness''
::*'''vutipat'''....''frump, mean person''
::*'''vutipatyena'''....''frumpish''
::*'''vutipay'''....''mean-spiritedly, meanly''
::*'''vyatip'''....''faith, fealty, loyalty, trust''
::*'''vyatipa'''....''faithful, loyal, sincere, true-minded, trusty, underhanded''
::*'''vyatipan'''....''faithfulness, loyalty, sincerity, true-mindedness, trustiness, underhandedness''
::*'''vyatipay'''....''faithfully, sincerely, underhandedly''
::*'''vyatipier'''....''gain the trust of''
::*'''vyatipin'''....''loyalism''
::*'''vyatipinut'''....''loyalist''
::*'''vyatipuer'''....''be loyal to, be true in spirit to, have faith in, trust''
::*'''vyatipuwa'''....''trusted''
::*'''vyotipa'''....''unfaithful''
::*'''vyotipan'''....''unfaithfulness''
::*'''vyoytipika'''....''maudlin''
::*'''xeyn bi fitip'''....''act of kindness''
::*'''yantip'''....''sympathy''
::*'''yantipa'''....''sympathetic''
::*'''yantipan'''....''sympathy''
::*'''yantipat'''....''sympathizer''
::*'''yantipay'''....''sympathetically''
::*'''yantipika'''....''sympathetic''
::*'''yantipikay'''....''sympathetically''
::*'''yantipoya'''....''heartless''
::*'''yantipoyan'''....''heartlessness''
::*'''yantipsea'''....''commiserate, sympathetic''
::*'''yantipsen'''....''commiseration, sympathizing''
::*'''yantipser'''....''commiserate, sympathize''
::*'''yantipsyea'''....''agreeable, commiserative, sympathetical''
::*'''yantipsyeay'''....''agreeably, sympathetically''
::*'''yantiptoj'''....''euthanasia''
::*'''yantiptojben'''....''euthanasia, euthanize''
::*'''yantiptojbwa'''....''euthanized''
::*'''yantipueay'''....''heartrendingly''
::*'''yantipuka'''....''heartless''
::*'''yantipukan'''....''heartlessness''
::*'''yantipukay'''....''heartlessly''
::*'''yantipuv'''....''clemency, mercy, misery, pity, sorrow''
::*'''yantipuvan'''....''sorriness''
::*'''yantipuvien'''....''commiseration, feeling sorry for, having mercy on, having pity on''
::*'''yantipuvier'''....''commiserate, feel sorry for, have mercy on, pity''
::*'''yantipuviwa'''....''pitied''
::*'''yantipuviyea'''....''clement, commiserative, merciful, pitiful''
::*'''yantipuviyeay'''....''clemently''
::*'''yantipuviyefwa'''....''pitiable''
::*'''yantipuviyefway'''....''pitiably''
::*'''yantipuvuer'''....''arouse compassion, arouse mercy, arouse pity''
::*'''yantipuvuyea'''....''miserable, pitiful''
::*'''yantipuvuyean'''....''miserableness''
::*'''yantipuvuyeay'''....''pitifully''
::*'''yantipxyofwa'''....''irreconcilable''
::*'''yantipxyofwan'''....''irreconcilability''
::*'''yantipxyofway'''....''irreconcilably''
::*'''yiztipaz'''....''super excitement''
::*'''yiztipaza'''....''frantic, super-excited''
::*'''yiztipazay'''....''frantically''
::*'''yoka tipa yonpyex'''....''ebullition''
::*'''yokfutipxen'''....''conniption''
::*'''yontipsen'''....''being at odds''
::*'''yontipser'''....''be at odds''
::*'''yontipxea'''....''antagonizing''
::*'''yontipxen'''....''antagonism''
::*'''yontipxer'''....''antagonize''
::*'''yontipxwa'''....''antagonized''
::*'''yontipxyea'''....''antagonistic''
::*'''yonxer vyatip bay'''....''be disloyal to, break faith with''
::*'''yuzemtip'''....''ambiance''
</div>
{{small/end}}
==== TOS, TOOS ====
::* '''tos'''....''feeling, sensation''
::* '''toos'''....''instinct''
: Some words built on '''tos''' are the following:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px;{{column-count|3}};{{column-rule|2px solid blue}}";>
*'''toser'''....''to feel''
*'''fitoser'''....''to feel good''
*'''futoser'''....''to feel bad''
*'''yantoser'''....''to assent''
*'''yontoser'''....''to dissent''
*'''vitos'''....''aesthetics''
*'''vaotosa'''....''ambivalent''
*'''uvtos'''....''grief, sorrow''
*'''uvtosder'''....''to apologize''
*'''vyotos'''....''bathos''
*'''yanivtosder'''....''to congratulate''
*'''yanuvtos'''....''compassion''
*'''yibtosa'''....''aloof''
*'''yizivtos'''....''ecstasy''
*'''yovtos'''....''embarrassment''
*'''zoyuvtoser'''....''to express remorse''
*-----------------
*'''toosa'''....''instinctual''
*'''toosyea'''....''instinctive''
*'''toosa zoyaxlen'''....''gut reaction''
</div>
{{small/end}}
==== Bodily Functions and Gestures ====
: The following chart shows how gestural and bodily movements and functions are derived from body parts:
{{small/top}}
:{| class="wikitable" style="background: lightyellow"
|+ Body Gestures
|-
! BODY PART !! GESTURES, MOVEMENTS, FUNCTIONS
|-
| '''tob'''....''human''<br>'''tobij'''....''embryo''||'''tobser'''....''become human'', '''tobxer'''....''humanize'', '''tobtojber'''....''murder'', '''tobij'''....''embryo '', '''tobijier'''....''conceive'', '''tobijuer'''....''impregnate'', '''tobijer'''....''ovulate'', '''tobijbeler'''....''gestate''
|-
| '''tab'''....''body ''|| '''tabazaxer'''....''work out'', '''tabmelukxer'''....''entomb'', '''tabteaxer'''....''autopsy'', '''dazer'''....''dance'', '''yebtabxer'''...''embody''
|-
| '''tayeb'''....''hair ''|| '''tayebarer'''....''comb'', '''tayeboker'''....''go bald'', '''tayefarer'''....''brush'', '''tayegobler'''....''shave'', '''tayelber'''....''shampoo'', '''tayevarer'''....''mop''
|-
| '''tayib'''....''nerve'' || '''tayixuer'''....''to get on one's nerves''
|-
| '''tayob'''....''skin ''|| '''tayobiler'''....''sweat'', '''tayobober'''....''flay'', '''tayoboser'''....''itch'', '''tayoser'''....''feel like'', '''tayoter'''....''feel'', '''tayoxer'''....''palpate'', '''tayobdriler'''....''tattoo'', '''tayotyofxer'''....''numb''
|-
| '''teb'''....''head''<br>'''tebabun'''....''scalp''<br>'''tebzan'''....''face ''|| '''tebabunober'''....''scalp'', '''tebbaxer'''....''nod'', '''tebober'''....''decapitate'', '''tebzaner'''....''face''
|-
| '''teab'''....''eye''<br>'''teababun'''....''eyelid''<br>'''teabyeb'''....''eyelash''<br>'''abteabyeb'''....''eyebrow''<br>'''teabil'''....''tear''||'''teabyuijer'''....''wink'', '''teabyebaxer'''....''blink'', '''teabiler'''....''tear up'', '''teaser'''....''seem'', '''teater'''....''see'', '''teatyofxer'''....''blind'', '''teaxer'''....''look'', '''jeteaxer'''....''watch'', '''teabexler'''....''guard'', '''teaxuer'''....''show'', '''teazuer'''....''amaze'', '''teabizer'''....''aim'', '''teaper'''....''visit'', '''teazexer'''....''to focus''
|-
| '''teeb'''....''ear ''|| '''teeter'''....''hear'', '''teeser'''....''sound like'', '''teeper'''....''attend'', '''teeder'''....''rumor'', '''teeyofxer'''....''deafen'', '''teexer'''....''listen'', '''teeder'''....''quote'', '''teedrer'''....''report'', '''teebder'''....''whisper'', '''teeper'''....''attend'', '''teetier'''....''get wind of''
|-
| '''teib'''....''nose ''<br>'''teibyeg'''....''nostril''|| '''teiter'''....''smell'', '''teiser'''....''smell like'', '''teitier'''....''take a whiff of'', '''teituer'''....''reek'', '''teixer'''....''smell'', '''teiseuxer'''....''snore'', '''teizber'''....''perfume'', '''teipyuxler'''....''sneeze'', '''teibalier'''....''sniff'', '''teibalegier'''....''sniffle'', '''teibiler'''....''run at the nose'', '''teibukxer'''....''blow the nose'', '''teibyeger'''....''flare''
|-
| '''teub'''....''mouth''<br>'''teubil'''....''saliva''<br>'''teubsin'''....''expression''<br>'''deuz'''....''song''<br>'''seux'''....''sound''<br>'''seuz'''....''tone''<br>'''teuz'''....''voice''<br>'''toleuz'''....''taste ''<br>'''teuv'''....''mask''<br>'''teuf'''....''muzzle''|| '''teubier'''....''swallow'', '''yijteuber'''....''yawn'', '''teuser'''....''taste like'', '''teuter'''....''taste'', '''teutier'''....''sample'', '''teutuer'''....''offer a taste'', '''teuxer'''....''taste'', '''teuder'''....''shout'', '''ivteuder'''....''laugh'', '''uvteuder'''....''groan'', '''ivteuber'''....''smile'', '''uvteuber'''....''frown'','''vyoivteuder'''....''mock'', '''ufteuber'''....''scowl'', '''uvseuxer'''....''grumble'''''teubiler'''....''salivate'', '''teubilier'''....''suck'', '''teubiloker'''....''drool'', '''teubilokeger'''....''dribble'', '''teubiloyeber'''....''expectorate'', '''teubilpuxer'''....''spew'', '''teubiluer'''....''spit'', '''xeustilier'''....''slurp'''''teubsiner'''....''grimace'''''deuzer'''....''sing'', '''yandeuzer'''....''harmonize'', '''yagdeuzer'''....''chant'''''seuxer'''....''ring'', '''seuxder'''.... ''pronounce'', '''voyseuxder'''....''mispronounce'','''zoyteuzer'''....''echo'', '''uvseuxer'''....''sigh'', '''teuzuer'''....''vote'', '''teuzier'''....''poll'', '''teuzibarer'''....''telephone'', '''toleuser'''....''taste like'', '''toleuter'''....''taste'', '''toleuxer'''....''savor'', '''fitoleuser'''....''taste good'', '''futoleuser'''....''taste bad'' '''teuvuer'''....''mask'', '''teufuer'''....''muzzle'', '''bilier'''....''milk''
|-
| '''teubab'''....''tongue ''|| '''teubabyexer'''....''give a tongue lashing'', '''teubaxer'''....''lick''
|-
| '''teubib'''....''gum ''|| '''teubixer'''....''chew'', '''teubixeger'''....''ruminate''
|-
| '''teupib'''....''tooth ''|| '''teupixer'''....''bite'', '''teupixeger'''....''nibble'', '''yebteupixer'''....''crunch''
|-
| '''teubob'''....''lip ''|| '''teuboxer'''....''kiss'', '''teuboxeger'''....''smooch'', '''teubobaxer'''....''smack the lips''
|-
| '''teyob'''....''neck ''|| '''teyobabaxer'''....''neck'', '''teyopixer'''....''collar'', '''teyozyoxrer'''....''choke'' , '''teyopyoxer'''....''hang'', '''teyozyagber'''....''crane one's neck''
|-
| '''tib'''....''trunk''<br>'''zotib'''....''back''<br>'''tibuj'''....''tail''|| '''tibuzer'''....''bow'', '''zotib'''....''back'', '''zotibuzber'''....''turn one's back'', '''tibuj'''....''tail''<br>'''tibuf'''....''train '', '''tibujbaxrer'''....''wag'', '''tibujper'''....''lag''
|-
| '''tieb'''....''lung''<br>'''tiebal'''....''breath''<br>'''tiebbok'''....''cold ''|| '''tiexer'''....''breath'', '''tieyujber'''....''suffocate'', '''tiebukxer'''....''cough''<br>'''tiebalier'''....''inhale'', '''tiebaluer'''....''exhale'', '''tiebaloker'''....''belch, burp''<br>'''tiebbokier'''....''catch a cold ''
|-
| '''tiib'''....''heart''<br>'''tiibil'''....''blood ''||'''tiibiler'''....''bleed'', '''tiibiloker'''....''bleed out'', '''tiibilglalser'''....''clot'', '''tiibilier'''....''suck blood'', '''tiibiluer'''....''let blood''
|-
| '''tikeb'''....''stomach''<br>'''tikebil'''....''chyme ''|| '''tikebier'''....''digest'', '''tikebukxer'''....''vomit''
|-
| '''tikyeb'''....''anus''<br>'''tikyebal'''....''flatulence''<br>'''tikyebil'''....''feces ''||'''tikyebaler'''....''fart'', '''tikyebiler'''....''defecate''
|-
| '''tikyob'''....''bowels ''|| '''tikyobier'''....''ingest'', '''tikyobober'''....''disembowel''
|-
| '''tub'''....''arm ''|| '''yuztubier'''....''embrace'', '''tubaxer'''....''wave'', '''tubyuzyuber'''....''fold one's arms'', '''tubuzraxer'''....''supinate''
|-
| '''tuyab'''....''hand ''|| '''tuyaxer'''....''handle'', '''tuyaber'''....''handle'', '''tuyabaxler'''....''shake hand'', '''tuyabexer'''....''manipulate'', '''tuyabier'''....''grab'', '''tuyabirer'''....''wrestle'', '''tuyasiuner'''....''wave'', '''tuyabuer'''....''hand out'', '''tuyadrer'''....''write out longhand'', '''tuyapixer'''....''clasp'', '''tuyapyexer'''....''clap''
|-
| '''tuyeb'''....''fist ''|| '''tuyepeker'''....''fistfight'', '''tuyebalxer'''....''shake one''''''s'''....''fist'', '''tuyepyexluer'''....''pound'', '''tuyepyexer'''....''box''
|-
| '''tuyib'''....''palm ''|| '''tuyibabaxer'''....''pat'', '''tuyibaber'''....''palm'', '''tuyibuer'''....''palm off'', '''tuyipyexer'''....''slap''
|-
| '''tuyob'''....''wrist ''<br>'''tuyoyuvar'''....''handcuff''|| '''tuyoxer'''....''wave'', '''tuyoyuvarer'''....''handcuff'', '''tuyobier'''....''take by the wrist''
|-
| '''tuyub'''....''finger ''|| '''tuyubaxler'''....''wag one's finger'', '''tuyubifeker'''....''fiddle'', '''tuyubizder'''....''point out'', '''tuyubeaxer'''....''indicate'', '''tuyugiber'''....''poke'', '''tuyupyexer'''....''tap'', '''tuyuxer'''....''palpate''
|-
| '''tulob'''....''fingernail''<br>'''patulob'''....''claw ''|| '''tuloxer'''....''scratch'', '''tuloxefer'''....''itch'''''patuloxer'''....''claw'', '''patulober'''....''grip''
|-
| '''tyoab'''....''hip''|| '''tyoaper'''....''to sit'', '''tyoaber'''....''to seat''
|-
| '''tyoib'''....''knee ''|| '''tyoixer'''....''kneel'', '''tyoiper'''....''crawl''
|-
| '''tyoyab'''....''foot ''|| '''tyoyaper'''....''walk'', '''igtyoyaper'''....''run'', '''tyoyabarer'''....''stomp'', '''tyoyakyeper'''....''hobble'', '''tyoyapyexer'''....''kick'', '''tyoyabaper'''....''stand on one's feet''
|-
| '''tyoyeb'''....''heel ''|| '''tyoyeber'''....''spurn''
|-
| '''tyoyib'''....''sole ''|| '''tyoyiber'''....''supplant''
|-
| '''tyoyub'''....''toe ''|| '''tyoyubaoxer'''....''wiggle one's toe'', '''tyoyuzyuper'''....''pirouette'', '''tyoyuper'''....''tiptoe''
|}
{{small/end}}
=== '''TOD''' ''family'' ===
[[File:Family Concept - Paper Cut Out Against Blue Sky - 48412252331.jpg|thumb|]]
:Stems in this family begin with '''t''' for ''human'' and end in '''d''' for ''society'' and have to do with families and family relationships.
==== Core Words ====
:: Notice that kinship terms are gender-neutral unless there is a '''w''' before the root syllable vowel (indicating male-specific) or a '''y''' following the root syllable vowel (indicating female-specific).
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ T-D Words
|-
! '''tod'''....''family'' !! MALE !! FEMALE
|-
| '''tad'''....''spouse'' || '''twad'''....''husband'' || '''tayd'''....''wife''
|-
| '''ted'''....''parent'' || '''twed'''....''father'' || '''teyd'''....''mother''
|-
| '''tid'''....''sibling'' || '''twid'''....''brother'' || '''tiyd'''....''sister''
|-
| '''tud'''....''child'' || '''twud'''....''son'' || '''tuyd'''....''daughter''
|-
| '''tyod'''....''people'' || ||
|-
| '''tood'''....''race'' || ||
|}
{{small/end}}
==== Genealogical Prefixes ====
: Prefixes or word elements used to modify the above core words:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Genealogical Prefixes
|-
| '''to-'''....''god-'' (as in ''godson'')
|-
| '''ta-'''....''-in-law, through marriage''
|-
| '''te-'''....''father's''
|-
| '''ti-'''....''sibling's''
|-
| '''tu-'''....''child's''
|-
| '''taj-'''....''birth-, real''
|-
| '''otaj-, ifbi-'''....''foster, adopted''
|-
| '''ij-'''....''first, original''
|-
| '''aj-'''....''ex-, former''
|-
| '''ej-'''....''current, step-, half-''
|-
| '''oj-'''....''future, -to-be''
|-
| '''aa'''....''first''
|-
| '''ea'''....''second''
|-
| '''yiba'''....''distant''
|-
| '''aa yiba'''....''first-removed''
|-
| '''ea yiba'''....''second-removed''
|-
| '''ota-'''....''out-of-wedlock, bastard''
|-
| '''oyted-'''....''orphan(ed), without parents''
|-
| '''oytad-'''....''unmarried, without spouse''
|-
| '''oytud-'''....''childless, without child, barren''
|-
| '''tiibil-'''....''blood-''
|}
{{small/end}}
==== Kinship Terms ====
: Kinship Terms Formed from the Above Core Words and Prefixed Elements
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Kinship Terms
|- valign=top
! GENDER-NEUTRAL !! MALE !! FEMALE
|-
| '''tad'''....''spouse''<br>'''ajtad'''....''ex-spouse''<br>'''ijtad'''....''first spouse''<br>'''ejtad'''....''current spouse, step spouse''<br>'''ojtad'''....''spouse-to-be, fiance''<br>'''oytadat'''....''bachelor'' ||'''twad'''....''husband''<br>'''ajtwad'''....''ex-husband''<br>'''ijtwad'''....''first husband''<br>'''ejtwad'''....''current husband, step husband''<br>'''ojtwad'''....''husband-to-be, fiance''<br>'''oytwadat'''....''bachelor'' || '''tayd'''....''wife''<br>'''ajtayd'''....''ex-wife''<br>'''ijtayd'''....''first wife''<br>'''ejtayd'''....''current wife, step-wife''<br>'''ojtayd'''....''wife-to-be, fiancee''<br>'''oytadayt'''....''spinster''
|-
| '''ted'''....''parent''<br>'''tajted'''....''birth parent''<br>'''ejted'''....''step parent, foster parent''<br>'''ojted'''....''parent-to-be''<br>'''teted'''....''grand-parent''<br>'''teteted'''....''great-grandparent''<br>'''tated'''....''parent-in-law''<br>'''toted'''....''godparent''<br>'''oytedat'''....''orphan''<br>'''ifbited'''....''foster parent''|| '''twed'''....''father''<br>'''tajtwed'''....''birth father''<br>'''ejtwed'''....''step-father, foster father''<br>'''ojtwed'''....''father-to-be''<br>'''tetwed'''....''grand-father''<br>'''tetetwed'''....''great-grandfather''<br>'''tatwed'''....''father-in-law''<br>'''totwed'''....''godfather''<br>'''oytwedat'''....''male orphan''<br>'''ifbitwed'''....''foster father''||'''teyd'''....''mother''<br>'''tajteyd'''....''birth mother''<br>'''ejteyd'''....''stepmother, foster mother''<br>'''ojted'''....''mother-to-be''<br>'''teteyd'''....''grandmother''<br>'''teteteyd'''....''great-grandmother''<br>'''tateyd'''....''mother-in-law''<br>'''toteyd'''....''godmother''<br>'''oytedayt'''....''female orphan''<br>'''ifbiteyd'''....''foster mother''
|-
| '''tid'''....''sibling''<br>'''ejtid'''....''step-sibling''<br>'''tatid'''....''sibling-in-law''<br>'''tetid'''....''parent's sibling''<br>'''tetetid'''....''great parent's sibling''<br>'''eontid'''....''twin''||'''twid'''....''brother''<br>'''ejtwid'''....''step-brother''<br>'''tatwid'''....''brother-in-law''<br>'''tetwid'''....''uncle''<br>'''tetetwid'''....''great uncle''<br>'''eontwid'''....''twin brother''|| '''tiyd'''....''sister''<br>'''ejtiyd'''....''stepsister''<br>'''tatiyd'''....''sister-in-law''<br>'''tetiyd'''....''aunt''<br>'''tetetiyd'''....''great aunt''<br>'''eontiyd'''....''twin sister''
|-
| '''tud'''....''child''<br>'''tatud'''....''child-in-law''<br>'''ijtud'''....''first-born child''<br> '''ejtud'''....''stepchild''<br>'''otada tud'''....''bastard child''<br>'''titud'''....''sibling's child''<br>'''totud'''....''godchild''<br>'''tutud'''....''grandchild''<br>'''titutud'''....''sibling's grandchild''<br>'''tetitud'''....''cousin''<br>'''aa tetitud'''....''first cousin''<br>'''ea tetitud'''....''second cousin''<br>'''aa yiba tetitud'''....''cousin first removed''||'''twud'''....''son''<br>'''tatwud'''....''son-in-law''<br>'''ijtwud'''....''first-born son''<br> '''ejtwud'''....''stepson''<br>'''otada twud'''....''bastard son''<br>'''titud'''....''nephew''<br>'''totwud'''....''godson''<br>'''tutwud'''....''grandson''<br>'''titutwud'''....''grandnewphew''<br>'''tetitwud'''....''cousin''<br>'''aa tetitwud'''....''first male cousin''<br>'''ea tetitwud'''....''second male cousin''<br>'''aa yiba tetitwud'''....''male cousin first removed''||'''tuyd'''....''daughter''<br>'''tatuyd'''....''daughter-in-law''<br>'''ijtuyd'''....''first-born-daughter''<br>'''ejtuyd'''....''stepdaughter''<br>'''otada tuyd'''....''bastard daughter''<br>'''tituyd'''....''niece''<br>'''totuyd'''....''goddaughter''<br>'''tutuyd'''....''granddaughter''<br>'''titutuyd'''....''grandniece''<br>'''tetituyd'''....''(female) cousin''<br>'''aa tetituyd'''....''first female cousin''<br>'''ea tetituyd'''....''second female cousin''<br>'''aa yiba tetituyd'''....''female cousin first removed''
|}
{{small/end}}
: Suffixed '''-if''' gives you affectionate equivalents:
::* '''twadif'''....''hubby''
::* '''taydif'''....''darling wife, wifey-poo''
::* '''twedif'''....''daddy, papa''
::* '''teydif'''....''mommy, mama''
::* '''twidif'''....''bro''
::* '''tiydif'''....''sis''
::* '''twudif'''....''sonny, kid''
::* '''tuydif'''....''darling daughter''
==== TOD, TOOD, TYOD, TYOOD Words ====
::* '''tod'''....''family''
:::* '''tood'''....''race''
:::* '''tyod'''....''people''
::::* '''tyoyd'''....''folk''
::::* '''tyood'''....''population''
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''azontod'''....''dynasty''
* '''bapeittoda'''....''cetacean''
* '''doyovtod'''....''crime family, mafia, mob''
* '''doyovtodat'''....''mobster''
* '''doyovtoddat'''....''crony''
* '''doyovtodeb'''....''godfather, mafia boss''
* '''doyovtodin'''....''gangsterism''
* '''doyovtodutyan'''....''gang, mafia gang''
* '''ebtodepyex'''....''vendetta''
* '''getoda'''....''cognate''
* '''glatoda melukbam'''....''mausoleum''
* '''glatoda'''....''multifamily''
* '''iztodnad'''....''lineage''
* '''oybtod'''....''subfamily''
* '''tobtod'''....''mankind''
* '''tod'''....''family''
* '''toda poptam'''....''pension''
* '''todam'''....''household''
* '''todameb'''....''head of the household, master''
* '''todameyb'''....''mistress''
* '''todamut'''....''housekeeper''
* '''todan'''....''kinship''
* '''todana dyun'''....''familiar name, nickname, sobriquet''
* '''todana'''....''familiar''
* '''todat'''....''relative, sib''
* '''todatyan'''....''clan, kindred, kinfolk''
* '''todbyim'''....''homestead''
* '''toddyun'''....''family name, last name, surname''
* '''todepyex'''....''family fued''
* '''todeyb'''....''mater familias''
* '''todgonut'''....''family member''
* '''todim'''....''living room, living-room, parlor, salon, sitting room''
* '''todmempur'''....''station wagon''
* '''todnad'''....''family line''
* '''todnada'''....''genetic''
* '''todnadanyan'''....''genome''
* '''todnadaun'''....''gene''
* '''todnadkyaxus'''....''mutagen''
* '''todnadtun'''....''genetics''
* '''todnam'''....''mom-and-pop store''
* '''todtamyan'''....''homestead''
* '''todtaxyandyes'''....''scrapbook''
* '''todtun'''....''genealogy''
* '''todweb'''....''pater familias''
* '''yebtoda tadxen'''....''incest''
<hr>
* '''antooda'''....''ethnically pure, racially pure''
* '''duhotooda?'''....''of what race?''
* '''ebtooda tadxen'''....''interracial marriage''
* '''ebtooda tadyan'''....''interracial couple''
* '''ebtooda'''....''interracial''
* '''entooda'''....''biracial''
* '''eybtooda'''....''intra-racial''
* '''getooda'''....''ethnically similar, of like race, of the same race''
* '''glatooda'''....''multiracial, of mixed ethnicity, racially mixed''
* '''hyetooda'''....''of any race, of either race, of mixed race, of mixed-race, racially mixed, racially-mixed''
* '''hyitooda'''....''co-racial, of the same race''
* '''hyutooda'''....''of a different race, racially different''
* '''logeltooda'''....''ethnically different, of a different race''
* '''otooda'''....''nonracial''
* '''otoodina'''....''non-racist''
* '''ovtoodina'''....''anti-racist''
* '''tood'''....''ethnic group, race''
* '''tooda'''....''ethnic, racial''
* '''toodaajuntun'''....''ethnoarchaeology''
* '''toodan'''....''ethnicity''
* '''toodat'''....''member of a race''
* '''toodfobtun'''....''ethnobotany''
* '''toodin'''....''racialism, racism''
* '''toodindren'''....''ethnography''
* '''toodinut'''....''racialist, racist''
* '''toodmeltun'''....''ethnogeography''
* '''toodtejtun'''....''ethnobiography''
* '''toodtun'''....''ethnology''
* '''toodzena'''....''ethnocentric''
<hr>
* '''ajtyodyen'''....''tradition''
* '''domtyod'''....''city folk''
* '''doymtyod'''....''townsfolk, townspeople''
* '''ebtyoda'''....''internecine''
* '''eyntyodaba'''....''semi-democratic''
* '''gawtyodxer'''....''repopulate''
* '''gratyodikxer'''....''overpopulate''
* '''grotyodikxer'''....''underpopulate''
* '''ha tyod...'''....''the people...''
* '''igtyodifwas'''....''fad''
* '''kebiwa tyod'''....''chosen people''
* '''lotyodikxer'''....''depopulate''
* '''meimtyod'''....''country folk''
* '''obtyodeb'''....''veep, vice-president, vice president''
* '''onaptyod'''....''mob''
* '''otyodifwa'''....''unpopular''
* '''otyodxwa'''....''unpopulated''
* '''ovtyodaba'''....''anti-democratic, antidemocratic''
* '''tyod'''....''people, population''
* '''tyoda'''....''demotic, gentile, people's''
* '''tyodab'''....''democracy''
* '''tyodabava'''....''pro-democratic''
* '''tyodabova'''....''anti-democratic''
* '''tyodabxer'''....''democratize''
* '''tyodalzyen'''....''vernacular''
* '''tyodaya'''....''populous''
* '''tyodbyen'''....''custom''
* '''tyodbyena'''....''customary''
* '''tyodbyenier'''....''get used to, grow accustomed''
* '''tyodbyenuer'''....''accustomize''
* '''tyoddin'''....''saga''
* '''tyodeb'''....''president of the republic, president''
* '''tyodeber'''....''preside, serve as president''
* '''tyodel'''....''ad, advertisement, publication, publicity''
* '''tyodifwa'''....''popular''
* '''tyodik'''....''population''
* '''tyodika'''....''populous''
* '''tyodikxer'''....''populate''
* '''tyodikxwa'''....''populated''
* '''tyodin'''....''populism''
* '''tyodkebien'''....''plebiscite''
* '''tyodnad'''....''lineage''
* '''tyodob'''....''republic''
* '''tyodobin'''....''republicanism''
* '''tyodpaaxut'''....''demagog, demagogue''
* '''tyodsagdren'''....''demographics, demography''
* '''tyodtojben'''....''genocide, progrom''
* '''tyodufalx'''....''pogrom''
* '''tyoduka'''....''deserted''
* '''tyoduz'''....''pop music''
* '''tyodyen'''....''custom, more''
* '''tyodyeni'''....''mores''
* '''tyodyenxer'''....''customize''
* '''vityod'''....''beautiful people, gentry''
* '''vityodxer'''....''gentrify''
* '''vutyod'''....''commoners, rabble, unwashed masses, scum, vulgus''
* '''vutyodat'''....''commoner, scumbag''
* '''yabtyod'''....''gentry, nobility''
* '''yabtyodat'''....''noble, nobleman''
* '''yobtyod'''....''hoi polloi, plebs''
* '''yobtyodat'''....''commoner, pleb, plebeian''
<hr>
* '''tyood'''....''populace, vulgate, population, populace''
* '''tyooda'''....''common, vulgar''
* '''tyoodat'''....''commoner''
* '''tyoodtun'''....''demographics''
* '''tyoodtuna'''....''demographic''
* '''tyoodtut'''....''demographer''
</div>
{{small/end}}
==== TAD and TAAD Words ====
::* '''tad'''....''spouse''
:::* '''tayd'''....''wife''
:::* '''twad'''....''husband''
:::* '''taad'''....''mate'' (used in many sexual terms)
: Here are some derivations of the above roots:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''aa tad'''....''first husband, first spouse''
* '''ajtad'''....''ex-spouse''
* '''antada'''....''monogamous''
* '''antadan'''....''monogamy''
* '''antaday'''....''monogamously''
* '''antadin'''....''monogamy''
* '''antadina'''....''monogamist''
* '''antadinut'''....''monogamist''
* '''bey tadien'''....''by marriage''
* '''dita tadien'''....''civil marriage''
* '''ebtada'''....''between spouses, marital''
* '''ebtadien'''....''intermarriage''
* '''ebtadier'''....''intermarry''
* '''ebtaduwa'''....''intermarried''
* '''ebtooda tadien'''....''miscegenation''
* '''ebtooda tadxen'''....''interracial marriage''
* '''ebtooda tadyan'''....''interracial couple''
* '''edebtad'''....''consort''
* '''ejnatadpop'''....''honeymoon''
* '''ejnatadpopea'''....''on a honeymoon''
* '''ejnatadpopen'''....''honeymooning''
* '''ejnatadpoper'''....''go on a honeymoon''
* '''ejnatadpoput'''....''honeymooner''
* '''ejtad'''....''current spouse, step-spouse''
* '''entada'''....''bigamous''
* '''entadan'''....''bigamy''
* '''entadin'''....''bigamy''
* '''entadina'''....''bigamist''
* '''entadinut'''....''bigamist''
* '''entadumyank'''....''zygote''
* '''entadumyanka'''....''zygotic''
* '''gatadien'''....''remarriage''
* '''gatadier'''....''get remarried, marry again, re-wed, remarry, rewed''
* '''gatadsen'''....''remarriage''
* '''gatadser'''....''remarry''
* '''gataduwa'''....''re-married, re-wedded, remarried''
* '''gatadxwa'''....''remarried''
* '''genegtadiwayt'''....''peeress''
* '''glatada'''....''polygamous''
* '''glatadan'''....''polygamy''
* '''glatadin'''....''polygamy''
* '''glatadina'''....''polygamist''
* '''glatadinut'''....''polygamist''
* '''gwe taduwa'''....''just married''
* '''gwej taduwa'''....''just married''
* '''hyijatada'''....''consanguine, consanguineous''
* '''hyijatadan'''....''consanguinity''
* '''hyitooba tadan'''....''same-sex marrage''
* '''ijtad'''....''first husband, first spouse, original spouse''
* '''jaga otaduwayt'''....''old maid''
* '''jatad'''....''fiance''
* '''jatadek'''....''courtship''
* '''jatadiena'''....''premarital''
* '''jatadienxela'''....''prenuptial''
* '''jatadsen'''....''engagement''
* '''jatadser'''....''affiance, become betrothed, become engaged''
* '''jatadxen'''....''betrothal''
* '''jatadxer'''....''affiance, betroth''
* '''jatadxwa'''....''affianced, betrothed, engaged''
* '''jay taduwa'''....''already married''
* '''jogtad'''....''newly-wed, newlywed''
* '''jogtaduwa'''....''newly-married, newly-wed''
* '''jogtaduwat'''....''newly-wed groom''
* '''jogtaduwayt'''....''newly-wed bride''
* '''jotadiena'''....''postmarital, postnuptial''
* '''jwaa tadien'''....''shotgun wedding''
* '''jwatadier'''....''marry early''
* '''jwotadier'''....''marry late''
* '''ojtad'''....''fiance, future husband, future spouse''
* '''otad'''....''bachelor, celibate person''
* '''otada'''....''celibate''
* '''otadan'''....''celibacy''
* '''otadier'''....''get divorced''
* '''otadiwa'''....''unmarried''
* '''otadiwat'''....''bachelor, unmarried person''
* '''otadiwayt'''....''spinster, unmarried woman''
* '''otadsat'''....''bachelor, unmarried person''
* '''otadsayt'''....''spinster''
* '''otadsya'''....''unmarried''
* '''otaduwa'''....''unwed''
* '''otadxwa jogayt'''....''colleen''
* '''otadxwayt'''....''unmarried female''
* '''ovyatadwa'''....''unjustified''
* '''oyebebtada'''....''extramarital''
* '''oyeybtadiena'''....''extramarital''
* '''tad'''....''spouse''
* '''tada'''....''spousal''
* '''tadan'''....''marital state, marriage''
* '''tadana'''....''marital''
* '''tadanay'''....''maritally''
* '''tadansum'''....''nuptial bed''
* '''tadat'''....''in-law''
* '''tadayt'''....''female in-law''
* '''tadbuer'''....''endow''
* '''tadbun'''....''dowry, endowment''
* '''tadbuwa'''....''endowed''
* '''taddxut'''....''fornicator''
* '''taddyun'''....''married name''
* '''tadiea'''....''marrying''
* '''tadien tayf'''....''wedding dress''
* '''tadien'''....''espousal, marriage, marrying, matrimony, wedding''
* '''tadiena'''....''matrimonial''
* '''tadienuf'''....''misogamy''
* '''tadienufut'''....''misogamist''
* '''tadienxel'''....''nuptials, wedding''
* '''tadienxela'''....''nuptial''
* '''tadier'''....''espouse, get married, marry, wed''
* '''tadifbuen'''....''dotation''
* '''tadiwa'''....''married, wedded''
* '''tadiwat'''....''married person''
* '''tadkexen'''....''matchmaking''
* '''tadkexut'''....''courter, matchmaker''
* '''tadnadxem'''....''breeding ground''
* '''tadnaxut'''....''breeder''
* '''tadnux'''....''alimony''
* '''tadoken'''....''being widowed, losing a spouse''
* '''tadoker'''....''be widowed, lose a spouse''
* '''tadokya'''....''widowed''
* '''tadokyayt'''....''widow''
* '''tadokyaytan'''....''widowhood''
* '''tadon'''....''marriage''
* '''tadsen'''....''marriage, wedding''
* '''tadsenxel'''....''wedding''
* '''tadser'''....''get married, wed''
* '''tadsya'''....''married, wedded''
* '''tadtayuba'''....''gonadal''
* '''taduen'''....''marriage, marrying''
* '''taduer'''....''give away in marriage, marry off, officiate at a marriage''
* '''taduka'''....''unmarried''
* '''taduut'''....''justice of the peace, marriage official''
* '''taduwa'''....''married''
* '''taduyafa'''....''nubile''
* '''taduyafwa'''....''marriageable''
* '''taduyafwan'''....''marriageability''
* '''tadwat'''....''male in-law''
* '''tadxen'''....''marriage, marrying''
* '''tadxer'''....''marry''
* '''tadxut'''....''marriage officiator''
* '''tadxwa'''....''married''
* '''tadxwan'''....''wedlock''
* '''tadxwena'''....''connubial''
* '''tadyan'''....''couple, husband and wife, married couple''
* '''tadyiv'''....''consortium''
* '''tadyovxea'''....''adulterous''
* '''tadyovxeay'''....''adulterously''
* '''tadyovxen'''....''adultery''
* '''tadyovxut'''....''adulterer''
* '''tadyovxuyt'''....''adulteress''
* '''tadyoxwa'''....''adulterated''
* '''tadyuv'''....''marital bond, wedlock''
* '''tadyuvlaxen'''....''engagement''
* '''tadyuvlaxwa'''....''engaged''
* '''Vyetad'''....''Vietnamese''
* '''xaber be taduen'''....''officiate at a marriage''
* '''xaler tadyovxen'''....''commit adultery''
* '''yagja tad'''....''long-time spouse''
* '''yagtaduwa'''....''long-time married''
* '''yantada teap'''....''conjugal visit''
* '''yantada'''....''conjugal''
* '''yantadan'''....''conjugality''
* '''yantaday'''....''conjugally''
* '''yantadsen'''....''mating''
* '''yantadser'''....''mate''
* '''yantadxen'''....''conjugation, mating''
* '''yantadxer'''....''conjugate, mate''
* '''yantadxwa'''....''conjugated, mated''
* '''yebtoda tadxen'''....''incest''
* '''yontad'''....''divorced person''
* '''yontadsen'''....''divorce, divorcing''
* '''yontadser'''....''break up, break up, break up a marriage, divorce, get divorced''
* '''yontadxen'''....''breaking up, breaking up a marriage, breakup, divorce''
* '''yontadxer'''....''break up, break up a marriage, divorce''
* '''yontadxut'''....''homebreaker''
* '''yontadxwa'''....''divorced''
<hr>
* '''aa tayd'''....''first wife''
* '''ajtayd'''....''ex-wife''
* '''dropek tayd'''....''war bride''
* '''ejtayd'''....''current wife, step-wife''
* '''ijtayd'''....''first wife, original wife''
* '''jatayd'''....''fiancee, foremother''
* '''jogtayd bunyan'''....''trousseau''
* '''jogtayd'''....''bride, newly-wed wife, young wife''
* '''jogtayda'''....''bridal''
* '''kutayd'''....''concubine''
* '''kutaydan'''....''concubinage''
* '''ojtayd'''....''bridesgroom, bridesmaid, fiancee, future wife''
* '''ojtayddwat'''....''bridesman''
* '''ojtayddwet'''....''groomsman''
* '''otayd'''....''unmarried female''
* '''rajahtayd'''....''ranee, rani''
* '''tamtayd'''....''housewife''
* '''tamtayda'''....''housewifely''
* '''tayd'''....''female spouse, wife''
* '''tayda'''....''wifely''
* '''taydan'''....''wifehood''
* '''taydibwasyan'''....''jointure''
* '''taydier'''....''wive''
* '''taydif'''....''darling wife, wifey-poo''
* '''taydoken'''....''becoming a widower, being widowed, losing one's wife''
* '''taydoker'''....''be widowed, become a widower, lose a wife, lose one's wife''
* '''taydokyat'''....''widower''
* '''taydovyayuvan'''....''cuckoldry''
* '''taydoya'''....''wifeless''
* '''taydoyat'''....''bachelor''
* '''taydoyatan'''....''bachelorhood''
* '''taydtojben'''....''uxoricide''
* '''tayduka'''....''wifeless''
* '''taydurer'''....''henpeck''
* '''taydurwa'''....''henpecked''
* '''vitayd'''....''nymph''
* '''vitaydet'''....''nymphet''
* '''yontayd'''....''divorcée''
<hr>
* '''ajtwad'''....''ex-husband''
* '''ejtwad'''....''current husband, step-husband''
* '''glatwada'''....''polyandrous''
* '''glatwadan'''....''polyandry''
* '''jogtwad'''....''newly-wed husband''
* '''ojtwad'''....''bridegroom, groom''
* '''otwad'''....''bachelor''
* '''otwadan'''....''bachelorhood''
* '''oytwadan'''....''spinsterhood''
* '''oytwadayt'''....''spinster''
* '''oytwadaytan'''....''spinsterhood''
* '''oytwadaytyena'''....''spinsterish''
* '''oytwadsen'''....''becoming widowed''
* '''oytwadser'''....''become widowed''
* '''tamtwad'''....''househusband''
* '''twad'''....''husband''
* '''twadif'''....''hubby''
* '''twadokayta joibwas'''....''dower''
* '''twadoken'''....''being widowed''
* '''twadoker'''....''be widowed, lose a husband, lose one's husband''
* '''twadokya'''....''widowed''
* '''vatwaden'''....''saying for sure''
* '''vatwader'''....''say for sure''
* '''vyotexuwa twad'''....''cuckold''
* '''yontwad'''....''divorced man, divorcé, male divorcé''
<hr>
* '''byarer taadxenay'''....''sexually arouse''
* '''ebtaadfa'''....''ruttish, rutty''
* '''ebtaadxen'''....''rutting''
* '''ebtaadxer'''....''rut''
* '''ebtaadxut'''....''fornicator, copulator''
* '''grataadxyea'''....''promiscious''
* '''grataadxyean'''....''promiscuity''
* '''grataadxyeay'''....''promiscuously''
* '''iftaad'''....''playmate''
* '''iftaad'''....''sex mate''
* '''potaadxen'''....''bestiality''
* '''taad'''....''mate, sex partner''
* '''taadebkyaxut'''....''swinger''
* '''taadif'''....''sex, sexual pleasure, eros''
* '''taadifa'''....''sexual, erotic''
* '''taadifan'''....''sexuality, eroticism''
* '''taadifaxen'''....''sexualization, eroticization''
* '''taadifaxer'''....''sexualize, eroticize''
* '''taadifaxwa'''....''sexualized, eroticized''
* '''taadifaya'''....''sexed, sexy''
* '''taadifika'''....''sexed, sexy''
* '''taadifla'''....''horny''
* '''taadiflan'''....''horniness''
* '''taadifler'''....''be horny''
* '''taadifluen'''....''arousal''
* '''taadifluer'''....''arouse''
* '''taadifluwa'''....''aroused''
* '''taadifra'''....''lustful, voluptuous''
* '''taadifran'''....''lustfulness, voluptuousness''
* '''taadifren'''....''lechery, lusting''
* '''taadifrer'''....''lust after''
* '''taadifrut'''....''sexpot, lecher''
* '''taadifxea'''....''sexy''
* '''taadifxen'''....''having sex, copulation, intercourse''
* '''taadifxer'''....''have sex, copulate, have intercourse''
* '''taadkex'''....''courtship''
* '''taadkexen'''....''courting''
* '''taadkexer'''....''court''
* '''taadser'''....''couple, mate''
* '''taadtayub'''....''gonad''
* '''taadxen ekar'''....''sex toy''
* '''taadxen ifek'''....''sex game, sex game, sex play, mating game''
* '''taadxen jeb'''....''mating season''
* '''taadxen mansin'''....''sex photo''
* '''taadxen yebux'''....''sex drive''
* '''taadxen yexut'''....''sex worker''
* '''taadxen'''....''copulation, fornication, love-making, lovemaking, mating, sex, sexuality''
* '''taadxena byaren'''....''sexual arousal''
* '''taadxena if'''....''sexual pleasure''
* '''taadxena'''....''copulative, copulatory, erotic, sexual''
* '''taadxenay byarea'''....''sexually arousing''
* '''taadxenay byarwa'''....''sexually aroused''
* '''taadxenay'''....''sexually''
* '''taadxentun'''....''sexology''
* '''taadxentut'''....''sexologist''
* '''taadxer'''....''copulate, fornicate, have sex, mate''
* '''taadxif'''....''sex, eros''
* '''taadxifa'''....''sexual, erotic''
* '''taadxwa'''....''coupled, mated''
* '''xer taadxif'''....''to have sex''
* '''yabtaadxer'''....''overmatch''
</div>
{{small/end}}
==== TED, TYED Words ====
::* '''ted'''....''parent''
:::* '''teyd'''....''mother''
:::* '''twed'''....''father''
::* '''tyed'''....''relative, kin''
: The above roots are used to form the following words:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''ajted'''....''ancestor, ascendant, ascendent''
* '''ajtedyan'''....''ancestors, ancestry''
* '''ajtedyana'''....''ancestral''
* '''anteda'''....''uniparental''
* '''ejted'''....''step-parent, stepparent''
* '''gaifbiteder'''....''readopt''
* '''ifbited'''....''foster father''
* '''ifbiteden'''....''adoption''
* '''ifbiteder'''....''adopt''
* '''ifbitedut'''....''adopter''
* '''ifbitedwa'''....''adopted''
* '''ifbitedwat'''....''adopted child, foster child''
* '''ifbitedyafwa'''....''adoptable''
* '''ijjated'''....''primogenitor''
* '''ijjatedan'''....''primogeniture''
* '''jated'''....''forebear, forefather, forerunner, progenitor''
* '''jatedyan'''....''forefathers, ancestry''
* '''jatedyana'''....''ancestral''
* '''Morted'''....''God''
* '''morted'''....''god, progenitor of the universe''
* '''morteda'''....''divine''
* '''mortedan'''....''divinity''
* '''morteday'''....''divinely''
* '''ojted'''....''future parent''
* '''ojtedyan'''....''progeny''
* '''otajted'''....''adopting parent''
* '''otajteder'''....''adopt''
* '''otajtedwa'''....''adopted''
* '''syembea ted'''....''founding father''
* '''tajted'''....''birth father, birth parent''
* '''tamted'''....''houseparent''
* '''tated'''....''parent-in-law''
* '''ted'''....''parent, progenitor''
* '''teda'''....''parental''
* '''tedan'''....''parentage, parenthood, progeniture''
* '''tedbikuea'''....''fostering''
* '''tedbikuen'''....''fostering''
* '''tedbikuer'''....''foster''
* '''tedbikuut'''....''foster parent''
* '''tedbikuwa'''....''fostered''
* '''tedeba'''....''patriarchal''
* '''tedeban'''....''patriarchy''
* '''tedebyena'''....''patriarchal''
* '''teden'''....''raising''
* '''teder'''....''raise''
* '''tedi'''....''parents''
* '''tedif'''....''pa''
* '''tedokan'''....''orphanhood''
* '''tedokat'''....''orphan''
* '''tedokatam'''....''orphanage''
* '''tedokayt'''....''female orphan''
* '''tedoken'''....''being orphaned, losing one's parents''
* '''tedoker'''....''be orphaned, lose a parent, lose one's parents''
* '''tedokxen'''....''orphaning''
* '''tedokxer'''....''orphan''
* '''tedokxwa'''....''orphaned''
* '''tedokya'''....''orphan, orphaned''
* '''tedotyeut'''....''founder''
* '''tedoyat'''....''orphan''
* '''tedoyatam'''....''orphanage''
* '''tedoyatan'''....''orphanage''
* '''tedoyayt'''....''female orphan''
* '''tedoywat'''....''male orphan''
* '''tedpet dyes'''....''stud book, studbook''
* '''tedpet'''....''stud''
* '''tedsen'''....''parenting''
* '''tedser'''....''parent''
* '''tedtojben'''....''patricide''
* '''tedtojbena'''....''patricidal''
* '''tedtojbut'''....''patricide''
* '''teduer'''....''sire''
* '''teduwa'''....''sired''
* '''tedwa'''....''parented, raised''
* '''tedyan'''....''mother and father, parents''
* '''tedyanoker'''....''be orphaned''
* '''teted'''....''grandparent''
* '''tetedyan'''....''grandparents''
* '''teteted'''....''great grandparent''
* '''toted'''....''godparent''
* '''yantoted'''....''cosponsor''
<hr>
* '''ajteyd'''....''ancestress, female ancestor''
* '''dibteyd'''....''matron''
* '''dibteydyena'''....''matronly''
* '''ejteyd'''....''step-mother, stepmother''
* '''Fizuu eta twed gel eta teyd.'''....''Honor thy father as they mother.''
* '''ojteyd'''....''expectant mother, future mother''
* '''tajna teyd'''....''natural mother''
* '''tajteyd'''....''birth mother''
* '''tamteyd'''....''housemother''
* '''tateyd'''....''mother-in-law''
* '''teteteyd'''....''great grandmother''
* '''teteyd'''....''grandmother''
* '''teteydif'''....''grandma, grannie, granny''
* '''teteydyena'''....''grandmotherly''
* '''teyd'''....''mother''
* '''teyda'''....''maternal''
* '''teydab'''....''matriarchy''
* '''teydan'''....''maternity, motherhood''
* '''teyday'''....''maternally''
* '''teydeb'''....''matriarch''
* '''teydeba'''....''matriarchal''
* '''teydgibut'''....''motherfucker''
* '''teydif'''....''ma, mama, mom, momma, mommy, mum, old lady''
* '''teydom'''....''metropolis''
* '''teydoma'''....''metropolitan''
* '''teydoya'''....''motherless''
* '''teydoyan'''....''motherlessness''
* '''teydsen'''....''becoming a mother''
* '''teydser'''....''become a mother''
* '''teydsoa'''....''pregnant''
* '''teydsoan'''....''pregnancy''
* '''teydtojben'''....''matricide''
* '''teydtojbena'''....''matricidal''
* '''teydtojbut'''....''matricide, mother-killer''
* '''teyduka'''....''motherless''
* '''teydukan'''....''motherlessness''
* '''teydxen'''....''mothering''
* '''teydxer'''....''mother''
* '''teydxwa'''....''mothered''
* '''teydyena'''....''motherly''
* '''teydyenan'''....''motherliness''
* '''toteyd'''....''godmother''
* '''yakea teyd'''....''expectant mother''
* '''yiga teyd'''....''dura''
* '''yizteydif'''....''supermom''
<hr>
* '''ajtwed'''....''male ancestor''
* '''doyovtwed'''....''godfather, mafia boss''
* '''ejtwed'''....''step-father, stepfather''
* '''Fizuu eta twed gel eta teyd.'''....''Honor thy father as they mother.''
* '''fyaa twed'''....''holy father''
* '''fyatwed'''....''priest''
* '''jatwed'''....''forefather''
* '''jatwedyan'''....''forefathers''
* '''oytweda'''....''fatherless''
* '''oytwedan'''....''fatherlessness''
* '''tajna twed'''....''natural father''
* '''tatwed'''....''father-in-law''
* '''tetetwed'''....''great grandfather''
* '''tetwed'''....''granddad, grandfather''
* '''tetwedif'''....''granddaddy, grandpa''
* '''tetwedyena'''....''grandfatherly''
* '''totwed'''....''godfather''
* '''twed'''....''father, pater''
* '''tweda'''....''paternal''
* '''twedan'''....''fatherhood, paternity''
* '''tweday'''....''paternally''
* '''twedbyixwa'''....''patronymic''
* '''twedbyixway'''....''patronymically''
* '''twedeb'''....''patriarch''
* '''twedeb'''....''patriarch''
* '''twedeba'''....''patriarchal''
* '''twedeban'''....''patriarchy''
* '''twedif'''....''dad, daddy, old man, papa, poppa''
* '''twedin'''....''paternalism''
* '''twedina'''....''paternalistic''
* '''twedinut'''....''paternalistic''
* '''twedoum'''....''patrimony''
* '''twedouma'''....''patrimonial''
* '''twedsen'''....''become a father''
* '''twedser'''....''become a father''
* '''twedtojben'''....''parricide, patricide''
* '''twedtojbena'''....''parricidal, patricidal''
* '''twedtojber'''....''kill one's father''
* '''twedtojbut'''....''parricide, patricide''
* '''twedxen'''....''fathering''
* '''twedxer'''....''father''
* '''twedxwa'''....''fathered''
* '''twedyena'''....''fatherly''
* '''twedyenan'''....''fatherliness''
<hr>
* '''tiibil tyed'''....''blood relation''
* '''tooba tiibilnad tyed'''....''agnate''
* '''tyed'''....''kin, kinsman, related person, relative''
* '''tyeda'''....''kin, kindred, related''
* '''tyedan'''....''affinity, kinship, relatedness, relationship''
* '''tyedser'''....''become related''
* '''tyedxer'''....''bring together as related''
* '''tyedxwa'''....''akin, related''
* '''tyedyan'''....''ethnicity, kin, kindred, kinfolk, kinsfolk, kith, relations''
* '''tyedyana ibvyixen'''....''ethnic cleansing''
* '''yubtyed'''....''next of kin''
</div>
{{small/end}}
==== TID Words ====
::* '''tid'''....''sibling''
:::* '''tiyd'''....''sister'' ♀
:::* '''twid'''....''brother'' ♂
: These roots are used to form the following words:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''ejtid'''....''half sibling''
* '''eontid'''....''twin''
* '''eontwid'''....''twin brother''
* '''eontiyd'''....''twin sister''
* '''fyatid'''....''friar''
* '''fyatidam'''....''friary''
* '''fyatidyan'''....''friary''
* '''glatidat'''....''person with many siblings''
* '''histidiyn'''....''histidine''
* '''kariatid'''....''caryatid''
* '''otidipat'''....''bustard''
* '''tatid'''....''sibling-in-law''
* '''tetetid'''....''great uncle or aunt''
* '''tetid'''....''uncle or aunt''
* '''tid'''....''brother or sister, sibling''
* '''tida dropek'''....''internecine war''
* '''tida'''....''brotherly, fraternal''
* '''tiday'''....''fraternally''
* '''tidif'''....''fraternal love''
* '''tidoyat'''....''person with no siblings''
* '''tidtojben'''....''fratricide''
* '''tidtojbena'''....''fratricidal''
* '''tidtojber'''....''commit fratricide, kill one's sibling''
* '''tidtojbut'''....''fratricide''
* '''tidxer'''....''fraternize''
* '''tidxut'''....''fraternizer''
* '''tidyan'''....''fraternity''
* '''tidzen'''....''fraternization''
* '''xaler tidtojben'''....''commit fratricide''
<hr>
* '''ejtiyd'''....''half sister, stepsister''
* '''fyatiydam'''....''priory''
* '''fyatiydameyb'''....''prioress''
* '''tatiyd'''....''sister-in-law''
* '''tetetiyd'''....''great aunt, great-aunt, great-great-aunt''
* '''tetiyd'''....''aunt, grandaunt, great-aunt''
* '''tetiydif'''....''auntie''
* '''tiyd'''....''sister''
* '''tiyda'''....''sisterly, sororal''
* '''tiydan'''....''sisterliness''
* '''tiydif'''....''sis''
* '''tiydoyat'''....''person with no sisters''
* '''tiydyan'''....''sisterhood, sorority''
* '''tiydyen'''....''sisterliness''
* '''tiydyena'''....''sisterly''
* '''tututiyd'''....''grandniece''
<hr>
* '''ejtwid'''....''half brother, stepbrother''
* '''oytwidat'''....''person with no brothers''
* '''tatwid'''....''brother-in-law''
* '''tetetwid'''....''granduncle, great uncle, great-great-uncle''
* '''tetwid'''....''great-uncle''
* '''tetwida'''....''avuncular''
* '''tetwidyena'''....''avuncular''
* '''tututwid'''....''grandnephew''
* '''twid'''....''brother''
* '''twida'''....''brotherly, fraternal''
* '''twiday'''....''fraternally''
* '''twidi'''....''brethren, brothers''
* '''twidif'''....''bro''
* '''twidyan'''....''brotherhood, fraternity''
* '''twidyena'''....''brotherly''
* '''twidyenan'''....''brotherliness''
* '''yantwid'''....''confrère''
* '''yantwidan'''....''confraternity''
</div>
{{small/end}}
==== TUD Words ====
:* '''tud'''....''child''
:* '''tuyd'''....''daughter''
:* '''twud'''....''son''
: An important diminutive is '''tudet'''....''baby, infant''.
: The above roots are used to generate the following words:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''aa tetitud'''....''first cousin''
* '''aa yiba tetitud'''....''cousin first removed''
* '''Amerinda apetud'''....''cayuse''
* '''apatud'''....''chick, chickadee''
* '''apatuden'''....''cheeping''
* '''apatuder'''....''cheep''
* '''apaytud'''....''chick''
* '''apetud'''....''colt, foal''
* '''apetudog'''....''foal''
* '''apyatud'''....''eaglet''
* '''apyotud'''....''lion cub''
* '''balokxer tudet'''....''burp a baby''
* '''belyafwa tudetsum'''....''carrycot''
* '''ea tetitud'''....''second cousin''
* '''ejtud'''....''stepchild''
* '''ejtudi'''....''stepchildren''
* '''ejtudyan'''....''stepchildren''
* '''eopetud tayof'''....''calfskin''
* '''eopetud'''....''calf, cowling, yeanling''
* '''eopetuda tikib'''....''calf's liver''
* '''eopetudxen'''....''calving''
* '''eopetudxer'''....''calve, yean''
* '''epatud'''....''duckling, baby duck''
* '''epetud'''....''bullock, calf, bullock, veal''
* '''epeytud'''....''heifer''
* '''epyotud'''....''tiger cub, whelp''
* '''epyoytud'''....''tiger cub''
* '''fitajtud'''....''childe''
* '''gapiatud'''....''gosling''
* '''gapotud'''....''baby elephant''
* '''gapyotud'''....''bear cub, bear cub, baby bear''
* '''gepiatud'''....''cygnet''
* '''ijtud'''....''first-born child''
* '''ipatud'''....''chick, poult''
* '''ipetud'''....''ass's foal, donkey, foal, little ass, chick, poult, foal''
* '''ipetudog'''....''burro''
* '''ipyotud'''....''fox cub, fox cub, kit, pup''
* '''jogtudet'''....''new-born baby, newborn baby''
* '''jwatud'''....''love child, lovechild''
* '''kapetud'''....''young mouse''
* '''kapotud'''....''young rat, pup, kitten''
* '''lipitud'''....''fingerling''
* '''magyelwa epetud gyogol'''....''schnitzel''
* '''mamzertud'''....''mamzer''
* '''maolztud'''....''mulatto''
* '''nepiatud'''....''chick, crane chick''
* '''otajtud'''....''adopted child, adopted son''
* '''otatud'''....''bastard, out-of-wedlock child''
* '''otatudan'''....''bastardy''
* '''otatudxen'''....''bastardization''
* '''otatudxer'''....''bastardize''
* '''ovyaba tud'''....''mamzer''
* '''oytuda'''....''childless''
* '''oytudan'''....''childlessness''
* '''patud'''....''chick, poult, squab''
* '''patudel'''....''squab''
* '''petud'''....''chit''
* '''potud'''....''cub, yearling''
* '''potudyan'''....''animal offspring, brood''
* '''tajber yapetudyan'''....''farrow''
* '''tetitud'''....''cousin''
* '''tijber eopetud'''....''calve''
* '''tistam tud'''....''schoolchild''
* '''titud'''....''nephew or niece''
* '''titudi'''....''nephews and nieces''
* '''titudin'''....''nepotism''
* '''titudina'''....''nepotistic''
* '''titudinut'''....''nepotist''
* '''totud'''....''godchild''
* '''tud'''....''child, offspring, scion''
* '''tuda'''....''filial''
* '''tudagxen'''....''raising children''
* '''tudagxer'''....''raise children''
* '''tudal'''....''exposé''
* '''tudalen'''....''expounding''
* '''tudaler'''....''expound''
* '''tudalut'''....''expounder''
* '''tudalwa'''....''expounded''
* '''tudbeka'''....''pediatric''
* '''tudbekut'''....''pediatrician''
* '''tudbikuuyt'''....''nanny''
* '''tudet apaxov'''....''baby wipe''
* '''tudet belar'''....''baby buggy, pram''
* '''tudet dal'''....''baby talk''
* '''tudet dyes'''....''baby book''
* '''tudet dyun'''....''baby name, pet name''
* '''tudet igzyax'''....''baby boom''
* '''tudet igzyaxat'''....''baby-boomer''
* '''tudet ilbiov'''....''baby diaper''
* '''tudet ilyeb'''....''nursing bottle''
* '''tudet sim'''....''high chair''
* '''tudet tel'''....''baby food''
* '''tudet teupib'''....''baby tooth''
* '''tudet tof'''....''baby clothes, baby wear''
* '''tudet tojnag'''....''infant mortality''
* '''tudet tyopas'''....''baby step''
* '''tudet zateb'''....''baby face''
* '''tudet'''....''baby, infant, toddler, tyke''
* '''tudeta bok'''....''infant disease''
* '''tudeta'''....''infantile''
* '''tudetan'''....''infancy, babyhood''
* '''tudetbelea'''....''childbearing''
* '''tudetbik'''....''infant care''
* '''tudetbikam'''....''infant care facility, nursery''
* '''tudetbiken'''....''babysitting''
* '''tudetbiker'''....''babysit''
* '''tudetbikut'''....''baby-sitter, babysitter''
* '''tudetbikuuyt'''....''nursemaid''
* '''tudeten'''....''babying''
* '''tudeter'''....''baby''
* '''tudeteyof'''....''bib''
* '''tudetog'''....''bambino, little baby''
* '''tudetpar'''....''baby buggy, pram''
* '''tudetpixlawa'''....''kidnapped''
* '''tudetpixlen'''....''baby snatching, kidnapping''
* '''tudetpixler'''....''kidnap''
* '''tudetpixlut'''....''baby snatcher, kidnapper''
* '''tudetsim'''....''highchair''
* '''tudetsum'''....''baby bed''
* '''tudettajben'''....''childbirth''
* '''tudettojben'''....''infanticide''
* '''tudettojbena'''....''infanticidal''
* '''tudettojbut'''....''baby-killer, infanticide''
* '''tudetvaka'''....''baby-proof, baby-safe''
* '''tudetwa'''....''babied''
* '''tudetyena'''....''baby-like, babyish, infantile''
* '''tudetyenan'''....''infantility''
* '''tudetyenay'''....''like a baby''
* '''tudi'''....''children''
* '''tudifekem'''....''children’s playground''
* '''tudifon'''....''pederasty''
* '''tudifut'''....''pederast''
* '''tudika'''....''prolific''
* '''tudikay'''....''prolifically''
* '''tudoya'''....''childless''
* '''tudoyan'''....''childlessness''
* '''tudufxut'''....''bogeyman''
* '''tuduka'''....''childless''
* '''tudukan'''....''childlessness''
* '''tudvaka'''....''child-proof, child-safe, childproof''
* '''tudxen'''....''procreation''
* '''tudxena'''....''procreational''
* '''tudxenay'''....''procreationally''
* '''tudxer'''....''procreate''
* '''tudxut'''....''procreator''
* '''tudxwa'''....''procreated''
* '''tudxyea'''....''procreative''
* '''tudyanxyofwa'''....''irreproducible''
* '''tudyanxyofwan'''....''irreproducibility''
* '''tudyena'''....''childish, childlike''
* '''tudyenan'''....''childishness''
* '''tutud'''....''grandchild''
* '''tututud'''....''great grandchild''
* '''tyopyotud'''....''chimp''
* '''umvib tudetsum'''....''bassinet''
* '''upatud'''....''gosling''
* '''upetud'''....''lamb, lambkin''
* '''upetudyena'''....''lamblike''
* '''upyotud'''....''cub, wolf cub, wolf cub, pup''
* '''vapitud'''....''elver''
* '''vapotud'''....''fawn''
* '''vepotud'''....''reindeer calf''
* '''vipotud'''....''fawn''
* '''yapetud'''....''piggy, piglet''
* '''yapetudyan'''....''farrow''
* '''yepetud'''....''pup''
* '''yepetudan'''....''puppydom, puppyhood''
* '''yepetudif'''....''puppy''
* '''yepetudyan'''....''litter of pups''
* '''yipetud'''....''kitten, kitty, pussy cat''
* '''yipetudif'''....''kitty''
* '''yipetudyan'''....''litter of cats''
* '''yipetudyena'''....''kittenish''
* '''yonxwa eopetud'''....''dogie''
* '''yopetud tayob'''....''kidskin''
* '''yopetud'''....''kid''
* '''yuapotud'''....''leveret''
* '''yupetud'''....''bunny, kit''
<hr>
* '''aa tetituyd'''....''first female cousin''
* '''aa yiba tetituyd'''....''cousin first removed''
* '''apetuyd'''....''filly''
* '''ea tetituyd'''....''second cousin''
* '''ejtuyd'''....''stepdaughter''
* '''gapyotuyd'''....''female bear cub''
* '''ijtuyd'''....''first-born daughter''
* '''ipetuyd'''....''jennet''
* '''otajtuyd'''....''adopted daughter''
* '''otatuyd'''....''out-of-wedlock daughter''
* '''tatuyd'''....''daughter-in-law''
* '''tetituyd'''....''cousin, female cousin''
* '''titutuyd'''....''grand niece''
* '''tituyd'''....''niece''
* '''totuyd'''....''goddaughter''
* '''tututuyd'''....''great granddaughter''
* '''tutuyd'''....''granddaughter''
* '''tuyd'''....''daughter''
* '''tuydet'''....''baby girl''
* '''tuydyena'''....''daughterly''
<hr>
* '''aa tetitwud'''....''first male cousin''
* '''aa yiba tetitwud'''....''cousin first removed, male cousin first removed''
* '''edeb atwud'''....''dauphin''
* '''ejtwud'''....''stepson''
* '''gapyotwud'''....''male bear cub''
* '''ijtwud'''....''first-born son''
* '''ipetwud'''....''jackass''
* '''slavedebtwud'''....''czarevitch''
* '''tatwud'''....''son-in-law''
* '''tetitwud'''....''cousin, male cousin''
* '''titutwud'''....''grand nephew''
* '''titwud'''....''nephew''
* '''Tottwud'''....''Son of God''
* '''totwud'''....''godson''
* '''tututwud'''....''great grandson''
* '''tutwud'''....''grandson''
* '''twud'''....''son''
* '''twuda'''....''filial''
* '''twudan'''....''sonhood''
* '''twudet'''....''baby boy''
* '''twudif'''....''sonny''
* '''twudog'''....''little son''
</div>
{{small/end}}
=== '''TOF''' ''clothing'' ===
: The stems in this family of words begin with '''t''' for ''human'' and end in '''f''' or '''v''', which are reminiscent of '''nof'''....''cloth'' and '''nov'''....''lingerie''. The words have to do with clothing. Post-y-gliding the semantic stem vowel produces something that relates to women. Pre-w-gliding the semantic stem vowel produces something that relates specifically to men.
[[File:Clothing store downtown Boston.jpg|thumb|]]
{{small/top}}
{| class="wikitable" style="background:lightyellow"
|+ Forming Words for Clothes
|-
! BODY PART !! CLOTHING ITEM !! FOR WOMEN
|-
| '''tob'''....''human'' || '''tof'''....''outfit'' || '''toyf'''....''female outfit''
|-
| '''tab'''....''body'' || '''taf'''....''suit''<br>'''tav'''....''overalls''<br>'''abtaf'''....''coat'' || '''tayf'''....''dress, robe, gown''<br>'''abtayf'''....''pinafore''<br>'''abtayv'''....''work blouse''
|-
| '''teb'''....''head'' || '''tef'''....''hat''<br>'''tev'''....''headscarf''|| '''teyf'''....''woman's hat''
|-
| '''teyob'''....''neck'' || '''teyof'''....''necktie''|| '''teyoyf'''....''cravate''
|-
| '''tuab'''....''shoulder'' || '''tuaf'''....''shoulder pad''<br>'''tuav'''....''shawl''|| '''tuayv'''....''scarf''
|-
| '''tib'''....''trunk'' || '''tif'''....''vest''||
|-
| '''zetib'''....''waist'' || '''zetif'''....''belt''||
|-
| '''tiab'''....''chest'' || '''tiav'''....''shirt'' || '''tiayv'''....''blouse''
|-
| '''tilab'''....''breast'' || || '''tilayv'''....''bra''
|-
| '''tiub'''....''belly'' || '''tiuv'''....''undershorts'' || '''tiuyf'''....''corset''<br>'''tiuyv'''....''panties''
|-
| '''tuyab'''....''hand'' || '''tuyaf'''....''glove''||
|-
| '''tyob'''....''leg'' || '''tyof'''....''pants'' || '''tyoyf'''....''skirt''
|-
|- '''tyoyab'''....''foot'' || '''tyoyaf'''....''shoe''<br>'''tyoyav'''....''sock''|| '''tyoyayf'''....''slipper, high heel''<br>'''tyoyayv'''....''stockings''
|}
{{small/end}}
==== TOF, TOOF Words ====
: The base word '''tof''' is the top element of a whole hierarchy of clothing terms based on the body part it pertains to.
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abtof'''....''coverall, outerwear''
*'''ansantof'''....''uniform''
*'''diptof'''....''crackerjack''
*'''dopektof'''....''battledress''
*'''ektobetof'''....''moppet''
*'''eynoytofa'''....''halfnaked, semi-nude''
*'''feelktofwa'''....''ironclad''
*'''fitofsyena'''....''fashionable, nicely-dressed, stylishly-dressed''
*'''fitofwa'''....''well-dressed''
*'''fumaalyentof'''....''weatherwear''
*'''futofer'''....''slatter''
*'''futofsyena'''....''poorly-dressed, unfashionable, unstylishly-dressed''
*'''fyatofober'''....''unfrock''
*'''gawtofuer'''....''reclothe''
*'''gedatof'''....''plaid''
*'''jatofuwa'''....''pre-worn, previously-worn''
*'''kotof'''....''disguise''
*'''lotofier'''....''disrobe''
*'''lotofuer'''....''disrobe''
*'''mamiltof'''....''rain gear, rain wear''
*'''obyextof'''....''armature, body armor, protective gear''
*'''otofier'''....''go nude''
*'''otofuer'''....''strip''
*'''oybtof'''....''underclothing''
*'''oytofa'''....''bare, going naked, going nude, in the buff, naked, nude, unclad, unclothed''
*'''oytofdazam'''....''strip club''
*'''oytofdazut'''....''stripper''
*'''oytofin'''....''naturism, nudism''
*'''oytofinut'''....''naturist, nudist''
*'''oytofmilyeper'''....''skinny-dip''
*'''oytofser'''....''get naked, strip naked''
*'''sumtof'''....''bedclothes, pajamas''
*'''tapifektof'''....''sportswear''
*'''teaztof'''....''get-up, getup''
*'''tof'''....''apparel, clothes, clothing, garment, item of clothing''
*'''tofaber'''....''be dressed in, wear, clothe, don, dress, endue, get dressed, put on''
*'''tofabim'''....''dressing room''
*'''tofabyoxar'''....''clothes hanger''
*'''tofbexlim'''....''coat check''
*'''tofbyoxgrun'''....''hanger''
*'''tofgrun'''....''clothing hook, tag''
*'''tofier'''....''dress, get dressed, put on clothes''
*'''tofum'''....''closet, clothes closet''
*'''tofkexer'''....''frisk''
*'''tofkyaxam'''....''clothes alternation shop, tailor shop''
*'''tofkyaxer'''....''alter clothes, tailor''
*'''tofmazaxul'''....''bluing''
*'''tofnam'''....''clothes store''
*'''tofnamut'''....''clothes salesperson''
*'''tofnav'''....''furbelow''
*'''tofnixbuut'''....''clothier''
*'''tofnyeb'''....''clothes hamper, laundry basket''
*'''tofnyif'''....''clothesline''
*'''tofober'''....''denude, disrobe, strip, take off, uncase, unclothe, undress''
*'''tofoper'''....''get undressed, undress''
*'''tofsam'''....''chest of drawers, dresser, wardrobe''
*'''tofsaxam'''....''tailor shop''
*'''tofsaxer'''....''make clothes, tailor''
*'''tofsyen'''....''fashion, style of dress''
*'''toftepkyoxwat'''....''clotheshorse''
*'''toftim'''....''vestry''
*'''tofuer'''....''clothe, dress, put clothes on''
*'''tofyan'''....''clothes, clothing, gear, raiment, set of clothes, wardrobe''
*'''tofyen'''....''garb''
*'''toyb tofabim'''....''boudoir''
*'''uttofaber'''....''dress oneself''
*'''utvitofaber'''....''prink''
*'''vitof'''....''caparison''
*'''vitofaber'''....''dress up''
*'''zoytofaber'''....''put clothes back on, re-dress, reclothe, redress''
*'''zoytofier'''....''get dressed again, put clothes on again, reclothe oneself''
*'''vutofa'''....''frumpish, frumpy''
*'''yextof'''....''work attire, work dress''
*'''yivjobtof'''....''leisurewear''
<hr>
* '''aybtoof'''....''overgarments, tracksuit''
* '''oybtoof'''....''knickers, under gear, underwear''
* '''toof'''....''attire, vestment, vesture, clothes''
* '''toofsam'''....''clothes dresser''
* '''toofum'''....''clothes closet''
* '''toofyan'''....''clothing''
</div>
{{small/end}}
==== TAF, TAV Words ====
: These clothing items refer to the body as a whole. Words where the ordinal vowel is post-y-glided, refer to women.
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abtaf pyoxar'''....''coat hanger''
*'''abtaf tibuj'''....''coattail''
*'''abtaf'''....''coat, overcoat, topcoat''
*'''abtafsom'''....''coat hanger, coat rack, portmanteau''
*'''abtaves'''....''apron, overalls, smock''
*'''angostaf'''....''bodysuit''
*'''antaf'''....''singlet''
*'''bokamtaf'''....''hospital gown''
*'''deztaf'''....''costume''
*'''deztafen'''....''costuming''
*'''deztafut'''....''costumer, costumier''
*'''deztafwa'''....''costumed''
*'''doptaf'''....''armor''
*'''fyuztav'''....''sackcloth''
*'''fyuztava'''....''sackcloth''
*'''gedattaf'''....''kilt''
*'''gratafer'''....''overdress''
*'''gratafwa'''....''overdressed''
*'''gwayagtaf'''....''maxi''
*'''gyoa tavyul'''....''scutter''
*'''gyonaidtaf'''....''pinstripe''
*'''hyutafinoxbier'''....''freeload''
*'''hyutafinoxbiut'''....''freeloader''
*'''Imera yagtaf'''....''caftan''
*'''imtaf'''....''wetsuit''
*'''jipotaf'''....''kimono''
*'''jwamaj taf'''....''housecoat''
*'''kyaabtaf'''....''parka''
*'''kyitaf'''....''cloak, tog''
*'''kyitafim'''....''cloakroom, coat check''
*'''leotard taf'''....''leotard''
*'''malyomtaf'''....''snowsuit''
*'''mamiltaf'''....''mackintosh, raincoat''
*'''mamiltav'''....''poncho''
*'''mapovarea kyuabtaf'''....''parka''
*'''mazutetaf'''....''rochet''
*'''milvaka kyuabtaf'''....''cagoule''
*'''milyep taf'''....''bath robe''
*'''mojtaf'''....''nightwear''
*'''momtaf'''....''space suit, spacesuit''
*'''movientaf'''....''dinner jacket''
*'''mugtaf'''....''hauberk''
*'''oybabtaf'''....''undercoat''
*'''oybtaf'''....''undergarment''
*'''oyebfyaxeltaf'''....''chasuble''
*'''oyepustaf'''....''jumpsuit''
*'''patavyul'''....''birdlime''
*'''pontav'''....''nightshirt''
*'''romataf'''....''toga''
*'''romatafwa'''....''togaed''
*'''sentavo'''....''centavo''
*'''sumtaf'''....''bedgown''
*'''taf bi mojob'''....''dress suit''
*'''taf'''....''outfit, suit''
*'''tafaben'''....''enrobing, suiting up, putting a suit on''
*'''tafaber'''....''enrobe, get suited up''
*'''tafabwa'''....''enrobed, suited up''
*'''tafbexlum'''....''hatcheck''
*'''tafbexlumut'''....''hatcheck employee''
*'''tafen'''....''cladding''
*'''taffi'''....''taffy''
*'''tafien'''....''dressing, suiting up, putting on clothes''
*'''tafier'''....''dress, suit up, put on clothes''
*'''tafiwa'''....''clad, clothed, dressed, suited up''
*'''tafnof'''....''suiting''
*'''tafnyef'''....''portmanteau''
*'''tafoben'''....''unsuiting, taking off a suit, disrobing''
*'''tafober'''....''unsuit, take of a suit, disrobe''
*'''tafobwa'''....''unsuited, disrobed''
*'''tafoybnadar'''....''hemmer''
*'''taftyoyf'''....''pantsuit''
*'''tafuer'''....''enrobe, dress, suit up, clothe, outfit''
*'''tafut'''....''couturier''
*'''tafuwa'''....''outfitted, clothed, enrobed, dressed, suited up, clad''
*'''tafyijun'''....''placket''
*'''tamtaf'''....''housecoat''
*'''tapifek engontaf'''....''sweatsuit''
*'''tav'''....''overalls, smock''
*'''taves'''....''apron''
*'''tayeza abtaf'''....''fur coat''
*'''tettaf'''....''cassock, frock''
*'''tobyentaf'''....''costume''
*'''tobyentafwa'''....''costumed''
*'''totava'''....''pro-god''
*'''tuj taf'''....''dressing-gown''
*'''tujtaf'''....''pajamas, pyjama, sleepwear''
*'''tujtav'''....''nightshirt, undershirt''
*'''tultav'''....''apron''
*'''ulster abtaf'''....''ulster''
*'''utafxen'''....''affording''
*'''utafxer'''....''afford''
*'''utafxyafwa'''....''affordable''
*'''utafxyofwa'''....''unaffordable''
*'''utxw tafnam'''....''outfitter''
*'''utxwa tafut'''....''outfitter''
*'''vitaf'''....''dress suit''
*'''yagtaf'''....''kaftan''
*'''yanotay oytafa igput'''....''streaker''
*'''yiztafaben'''....''outwearing''
*'''yiztafaber'''....''outwear''
*'''yiztafabwa'''....''outworn''
*'''yuxlentaf'''....''uniform''
*'''zeytafin'''....''transvestism''
*'''zeytafut'''....''transvestite''
*'''zuittaf'''....''zoot suit''
<hr>
* '''abtayf'''....''pinafore''
* '''abtayv'''....''work blouse''
* '''alptayf'''....''dirndl''
* '''eynyaga tayf'''....''midi''
* '''kyutayf'''....''mantilla''
* '''milyep tayf'''....''bathrobe''
* '''mojtayf'''....''nightdress, nightgown, nightie''
* '''otufa tayv'''....''halter top''
* '''tadien tayf'''....''wedding dress''
* '''tayf'''....''dress, gown, outfit, robe''
* '''vidaztayf'''....''ballgown''
</div>
{{small/end}}
==== TEF, TEV Words ====
: These clothing items are worn on the head ('''teb'''). The y-glided words '''teyf''' and '''teyv''' refer to women's apparel.
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''aber tef'''....''put on a hat''
*'''atef'''....''baseball cap''
*'''aybtev'''....''headdress, scarf, veil''
*'''balaklava tef'''....''balaclava''
*'''beler tef'''....''wear a hat''
*'''boy tef'''....''bareheaded''
*'''diztef'''....''foolscap''
*'''dotef'''....''coif''
*'''enzyukpor yigtef'''....''motorcycle helmet''
*'''etef'''....''beret''
*'''etefog'''....''biretta''
*'''Feroma dopa tef'''....''kepi''
*'''Feroma tef'''....''chapeau''
*'''feztef'''....''fez''
*'''fyatef'''....''mitre''
*'''fyatefwa'''....''mitred''
*'''gatefuxea'''....''intriguing''
*'''gatefuxeay'''....''intriguingly''
*'''gatefuxwa'''....''intrigued''
*'''gimufyeg tef'''....''cone hat, dunce cap''
*'''gyitef'''....''cassette''
*'''itef'''....''bonnet''
*'''itefbwa'''....''bonneted''
*'''Juda tef'''....''yarmulke''
*'''kotefober'''....''unhood''
*'''koxtef'''....''cowl''
*'''kyapotef'''....''castor''
*'''maartef'''....''sunhat, sunbonnet''
*'''malyomtef'''....''toboggan''
*'''mamiltef'''....''rain hat''
*'''milyep tef'''....''bathing cap''
*'''mukibluta yigtef'''....''miner's hardhat, mining helmet''
*'''noygentef'''....''mortarboard''
*'''ober tef'''....''take off a hat''
*'''otefa'''....''bareheaded''
*'''oteflawa'''....''inadvertent''
*'''oteflawan'''....''inadvertence''
*'''oteflaway'''....''inadvertently''
*'''poteotef jib'''....''rutting season''
*'''puix tef'''....''baseball cap, baseball hat''
*'''purexuta tef'''....''driver's cap''
*'''stetsontef'''....''stetson''
*'''tamtef'''....''tam''
*'''tef byoxar'''....''hat rack, hat stand, hat tree''
*'''tef nivar'''....''hatpin''
*'''tef nyoov'''....''hat band''
*'''tef vyoek'''....''hat trick''
*'''tef yazkunad'''....''hat brim''
*'''tef'''....''hatband''
*'''tefbexar'''....''hat rack''
*'''tefnam'''....''haberdashery, hat shop, hat store''
*'''tefnamut'''....''haberdasher, hat seller, hatter''
*'''tefnyem'''....''hatbox''
*'''tefnyoov'''....''hat''
*'''tefnyov'''....''cockade''
*'''tefober'''....''unhat''
*'''tefobwa'''....''bareheaded''
*'''tefoya'''....''bareheaded, hatless''
*'''tefuka'''....''bareheaded, hatless''
*'''tefyig'''....''casque, hardhat''
*'''tev'''....''headscarf, scarf''
*'''tulxebtef'''....''toque, chef’s hat''
*'''umvib tef'''....''straw hat''
*'''utayeftef'''....''karakul''
*'''utef'''....''top hat, topper''
*'''xakotef'''....''shako''
*'''yabtev'''....''headband''
*'''yabyaga tef'''....''top hat''
*'''yatef'''....''shapka, turban, wimple''
*'''yatefabwa'''....''turbaned''
*'''yetef'''....''kepi, sombrero, toque''
*'''yexutefa'''....''shorthanded''
*'''yeztef'''....''cap''
*'''yigtef'''....''helmet''
*'''yigtefxwa'''....''helmeted''
*'''yitef'''....''trilby''
*'''yobtef'''....''chin bandage, chin brace, shin strap''
*'''yobtev'''....''chinstrap''
*'''yotef'''....''beanie, derby hat''
*'''zapatayebtef'''....''busby''
*'''zotef'''....''hood''
*'''zotefwa'''....''hooded''
*'''zyakuntef'''....''wide-brimmed hat''
<hr>
* '''ateyf'''....''caul''
* '''aybteyv'''....''fichu''
* '''teyf'''....''headpiece, woman's hat''
</div>
{{small/end}}
==== TIF, TIV Words ====
: These clothing items are worn on the trunk of the body ('''tib'''). The words '''tiyf''' and '''tiyv''' refer to women's apparel.
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''adopar zetif'''....''gun belt''
*'''aybzetif'''....''surcingle''
*'''bak zetif'''....''medical belt''
*'''bol zetif'''....''truss''
*'''doparzyunvaka oybtif'''....''bullet-proof vest''
*'''dopek tif'''....''battle jacket''
*'''dopzyunyan zetif'''....''bandileer''
*'''eyntif'''....''plastron''
*'''fyatif'''....''alb''
*'''fyuzetif'''....''shingle''
*'''Gelima tif'''....''anorak''
*'''iztyoyaba zetif'''....''orthopedic corset''
*'''malzfyatif'''....''surplice''
*'''mamiltif'''....''rain jacket, raincoat''
*'''mapebea gyatif'''....''windcheater''
*'''mapebea gyotif'''....''windbreaker''
*'''movienobtif'''....''tux, tuxedo''
*'''nas zetif'''....''money belt''
*'''obtif'''....''cardigan, jacket, vest, waistcoat''
*'''obzatifaof'''....''lapboard''
*'''opyexar zetif'''....''buckler''
*'''puxrun zetif'''....''cartridge belt''
*'''puxrunogvaka oybtif'''....''bullet-proof vest''
*'''puxrunova obtif'''....''flak jacket''
*'''romtif'''....''tunic''
*'''sim zetif'''....''seat belt''
*'''simzetif'''....''seatbelt''
*'''tif'''....''blazer, jacket, suit coat, waist coat''
*'''tifes'''....''jacket, vest''
*'''tifwa'''....''jacketed''
*'''tufuka tif'''....''jerkin''
*'''ulza zetif'''....''green belt''
*'''vak tif'''....''life vest''
*'''vak zetif'''....''life vest, lifebelt, safety belt''
*'''vakan zetif'''....''safety belt''
*'''vyitan zetif'''....''chastity belt''
*'''yagzom mojtif'''....''tailcoat''
*'''yzetif mugnyaf'''....''belt buckle''
*'''zetif'''....''band, belt, corset, girdle, hoop, sash''
*'''zetifben'''....''belting''
*'''zetifber'''....''belt''
*'''zetifbut'''....''hooper''
*'''zetifbwa'''....''belted''
*'''zetifen'''....''banding, girdling, sashing''
*'''zetifer'''....''band, girdle, sash''
*'''zetifober'''....''unbelt, ungird''
*'''zetifwa'''....''banded, girdled, sashed''
*'''zetiv'''....''cummerbund, sash''
*'''zynogyan zetif'''....''bandoleer''
*'''zyoxtif'''....''straitjacket''
*'''zyoxtifaber'''....''straitjacket''
*'''zyunogyan zetif'''....''bandolier''
</div>
{{small/end}}
==== TUF, TUV, TUAF, TUAV, TUYAF, TUYAV, TUYOF, TUYOV Words ====
: These clothing items are word on the arms ('''tub''') and other parts of the arm. If the ordinal vowel ends in a '''y''', then the clothing item refers to a woman.
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''aybtuaf'''....''epaulette, shoulder pad, shoulder strap''
* '''eyntuaf'''....''sash, sling''
* '''eyntuyaf'''....''mit, mitt, mitten''
* '''fyotuyaf'''....''gauntlet''
* '''mamil yagtuaf'''....''raincape''
* '''pixtuyaf'''....''catcher's mitt, pitcher's mitt''
* '''puix tuyaf'''....''baseball glove, baseball mitt''
* '''puxuta tuyaf'''....''pitcher's ''
* '''tuaf'''....''shoulder pad''
* '''tuav'''....''shawl''
* '''tuayv'''....''shawl''
* '''tuf'''....''shirtsleeve, sleeve''
* '''tuyaf'''....''glove''
* '''tuyav'''....''mitten''
* '''tuyepyex tuyaf'''....''boxing glove''
* '''tuyof'''....''cuff''
* '''tuyov'''....''cuff''
* '''tuyuf'''....''fingerstall, thimble''
* '''yagtuayf'''....''cape''
* '''zatuf'''....''foresleeve''
</div>
{{small/end}}
==== TYOF, TYOV, TYOYAF, TYOYAV Words ====
: These clothing items are worn on the legs ('''tyob''') and feet ('''tyoyab'''). Those words ending in '''-v''' refer to softer clothes items (such as ''socks'' instead of ''shoes'').
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''abtyof'''....''overalls, trousers''
*'''abtyoyaf nyives'''....''bootlace''
*'''abtyoyaf zyunyiov'''....''bootstrap''
*'''abtyoyaf'''....''boot, rubber''
*'''apetyoyaf'''....''horse shoe, horseshoe''
*'''apetyoyafeus'''....''clop''
*'''atyoyaf'''....''patent leather shoe''
*'''aybtyoyaf'''....''overshoe''
*'''aza oxford tyoyaf'''....''brogue''
*'''bapeitayob abtyoyaf'''....''mukluk''
*'''depabtyoyaf'''....''jackboot''
*'''eopetaput tyoyaf'''....''buckaroo''
*'''Eskimo abtyoyaf'''....''mukluk''
*'''etyoyaf'''....''tennis shoe''
*'''eyabtyoyaf'''....''buskin''
*'''eynteatyofa'''....''purblind''
*'''eyntyoyav'''....''no show sock, slip on padding, slip sock''
*'''faotyoyaf'''....''clog, sabot, wooden shoe''
*'''feelktyoyaf'''....''skidpan''
*'''gwotyoyf'''....''miniskirt''
*'''gyatyoyav'''....''bootee, bootie''
*'''gyotyoyof'''....''patten''
*'''ityoyaf'''....''sandal''
*'''iztyoyaba zetif'''....''orthopedic corset''
*'''kyia yex tyoyaf'''....''brogan''
*'''kyiabtyoyaf'''....''clodhopper''
*'''kyinayofa tyof'''....''dungaree''
*'''malyomtyoyaf'''....''snowshoe''
*'''mapil abtyoyaf'''....''galosh''
*'''mapil abtyoyafi'''....''galoshes''
*'''maptyoyav'''....''windsock''
*'''nayoftyofi'''....''bluejeans, jeans''
*'''nyifobema tyoyaf'''....''espadrille''
*'''otyoyafa'''....''barefoot, barefooted, shoeless''
*'''oybtyoyf'''....''pantyliner, slip''
*'''tabetyoyaf'''....''bootee, bootie''
*'''taftyoyf'''....''pantsuit''
*'''tamtyoyaf'''....''house slipper''
*'''tayoftyof'''....''leggin''
*'''tufuka tyoyf'''....''gymslip''
*'''tyobnof'''....''legging''
*'''tyoev'''....''hose, thigh-length sock''
*'''tyoevut'''....''hosier''
*'''tyoevyan'''....''hosiery''
*'''tyof'''....''culotte, pants, trouser, trousers''
*'''tyofabyoxar'''....''suspender''
*'''tyofyag'''....''long pants''
*'''tyofyog'''....''bermudas, cutoff, cutoffs, shorts''
*'''tyoif'''....''kneepad''
*'''tyoiv'''....''knee sock''
*'''tyouf'''....''puttee''
*'''tyouv'''....''stocking''
*'''tyouvbexar'''....''garter''
*'''tyouyv nef'''....''stockinet, stockinette''
*'''tyouyv'''....''hose''
*'''tyouyvyan'''....''hosiery''
*'''tyoyabamof'''....''muff''
*'''tyoyaf'''....''shoe''
*'''tyoyafabof'''....''bootee, bootie''
*'''tyoyafaof'''....''footboard''
*'''tyoyafber'''....''shoe''
*'''tyoyafbwa'''....''shod, shodden, shoed''
*'''tyoyafes'''....''flat shoe, walking shoe''
*'''tyoyafeus'''....''clomp''
*'''tyoyafeyub'''....''shoe horn''
*'''tyoyafibaxrawa'''....''scuffed''
*'''tyoyafibaxren'''....''scuffing''
*'''tyoyafibaxrer'''....''scuff''
*'''tyoyafibaxrun'''....''scuff''
*'''tyoyafobwa'''....''barefoot, barefooted, unshod, unshodden''
*'''tyoyafoya'''....''barefoot, barefooted, shoeless''
*'''tyoyafsaxam'''....''shoemaker''
*'''tyoyafsaxem'''....''shoemaking factory''
*'''tyoyafsaxer'''....''cobble''
*'''tyoyafsaxut'''....''cobbler, shoemaker''
*'''tyoyaftilar'''....''shoehorn''
*'''tyoyafub'''....''flipper''
*'''tyoyafuka'''....''barefoot, barefooted, shoeless''
*'''tyoyafut'''....''cobbler, shoemaker''
*'''tyoyafyan'''....''footwear''
*'''tyoyav ektobet'''....''sock puppet''
*'''tyoyav zyeg'''....''spud''
*'''tyoyav'''....''sock''
*'''tyoyayf'''....''slipper''
*'''tyoyayv'''....''stockings''
*'''tyoyayvbexar'''....''garter''
*'''tyoyef'''....''heel, shoe heel, spur, talon''
*'''tyoyefoya'''....''heelless''
*'''tyoyefuka'''....''heelless''
*'''tyoyeyf'''....''high heel''
*'''tyoyf'''....''pantyhose, skirt''
*'''tyoyfes'''....''petticoat, waist petticoat''
*'''tyoyib yuvar'''....''ankle bracelet, ankle chain''
*'''tyoyiv'''....''ankle sock''
*'''tyoyof'''....''platform, shoe sole''
*'''tyoyuvar'''....''gyve''
*'''tyoyv'''....''pantywaist, slip, underskirt, waist petticoat''
*'''ugar tyoyaf'''....''brake shoe''
*'''utyoyaf'''....''brogan, flip-flop, flipflop''
*'''uynyaga tyoyav'''....''quarter length sock''
*'''vidaz tyoyaf'''....''ballet slipper''
*'''vidaz tyoyf'''....''tutu''
*'''vityof'''....''dress slacks''
*'''Wellington yuigof abtyoyaf'''....''gumboot''
*'''yagtyop tyoyafi'''....''hiking boots''
*'''yagtyoyav'''....''knee sock''
*'''yeba tyoyof'''....''innersole''
*'''yebtyoyof'''....''insole''
*'''yugfabwa tyoyaf'''....''slipper''
*'''yuigof abtyoyaf'''....''gumshoe, rubber boot, galoshes''
*'''yuigof tyoyaf'''....''thong''
*'''zatyoyaf'''....''vamp''
*'''zotyoibof'''....''puttee''
*'''zotyoiv'''....''calf length sock''
</div>
{{small/end}}
=== '''TOL''' ''nutrition'' ===
: The stems of the words in this family begin with '''t''' for ''human'' and '''l''' for ''liquid'' or in this case, drinkable or edible substances. The words have to do with food, food preparation, eating and drinking.
[[File:Foods (cropped).jpg|thumb|]]
==== TOL and -OL Words ====
: The base word '''tol''' means ''nutrition''. Many derived words end in a stub form of this word, '''-ol'''.
:* '''tol'''....''nutrition''
::* '''tolnam'''....''grocery store''
::* '''toltun'''....''dietetics''
::* '''tolvyaab'''....''diet''
::* '''toluer'''....''feed''
::* '''tolsam'''....''food buffet''
::* '''toleus'''....''taste''
:::* '''toleusgab'''....''relish''
::* '''tolmek'''....''spice''
::* '''tolsyeb'''....''casserole''
::* '''gafapatol'''....''chicken feed''
::* '''toyl'''....''nutrient''
:::* '''toyluer'''....''nourish''
==== TAOL and -AOL Words ====
: From '''taob''' (''flesh''), we get:
::* '''taol'''....''meat''
:::* '''abtyoyaol'''....''tenderloin''
:::* '''supetaol'''....''pork''
::::* '''supetyol'''....''ham''
:::* '''tiabaol'''....''brisket''
:::* '''tuabaol'''....''chuck''
:::* '''tyoibyozaol'''....''hock''
:::* '''zuikuntaol'''....''flank''
:::* '''bopetaol'''....''beef''
==== TEL, -EL, -YEL, and -EIL Words ====
: The root word '''tel''' means ''food'' and has at least three stub suffixes, '''-el''' for foods/fruit juices, '''-yel''' for viscous edible substances like oils, creams, and syrups, and '''-eil''' for soups.
:* '''tel'''....''food''
::* '''telier'''....''eat''
::* '''teluer'''....''feed''
::* '''telam'''....''restaurant''
::* '''telar'''....''fork''
::* '''telyeb'''....''plate''
::* '''telefa'''....''hungry''
::* '''telifut'''....''gourmet''
::* '''gratelut'''....''glutton''
::* '''teltun'''....''gastronomy''
::* '''oteliwas'''....''leftover''
::* '''igtel'''....''fast food, snack''
:::* '''igtelum'''....''fast food stand''
::* '''kapetel'''....''dogfood''
::* '''pextel'''....''bait''
: The stub '''-el''' is used mostly to form the juices from fruit words, eg:
::* '''sicirufeb'''....''orange''
:::* '''sicirufel'''....''orange juice''
: The stub '''-yel''' is used primarily to form oily, creamy, or syrupy substances, eg:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Some -YEL Words
|-
! SUBSTANCE !! ROOT
|-
|'''abyel'''....''dressing''||'''ab'''....''over''
|-
|'''rewmpolivyel'''....''sorghum''||'''rewmpolivol'''....''rhubarb ''
|-
|'''amaegyel'''....''paraffin''||'''amaeg'''....''anthracite''
|-
|'''appelatyel'''....''beeswax''||'''appelat'''....''bee''
|-
|'''cepeityel'''....''spermaceti''||'''cepeit'''....''whale''
|-
|'''lisovyel'''....''ketchup''||'''lisovol'''....''tomato''
|-
|'''bekyel'''....''ointment''||'''bek'''....''treatment''
|-
|'''kokarfyel'''....''coconut oil''||'''kokarfeb'''....''coconut''
|-
|'''kukuvyel'''....''tzatziki''||'''kukuvol'''....''cucumber''
|-
|'''olfyel'''....''olive oil''||'''olfeb'''....''olive''
|-
|'''dopmavyel'''....''napalm''||'''dop'''....''military'' + '''mav'''...''flame''
|-
|'''jukufyel'''....''turpentine''||'''jukufeb'''....''juniper berry''
|-
|'''katefyel'''....''chocolate''||'''katefeb'''....''cocoa bean''
|-
|'''fabyel'''....''sap''||'''fab'''....''tree''
|-
|'''febyel'''....''jam''||'''feb'''....''fruit''
|-
|'''zepovyel'''....''corn oil''||'''zepovob'''....''corn''
|-
|'''sicirufyel'''....''molasses''||'''sicirufeb'''....''orange''
|-
|'''sakvyel'''....''jelly''||'''sakvob'''....''sugarcane''
|-
|'''acfyel'''....''maple syrup''||'''maple tree'''....''acfab''
|-
|'''maegyel'''....''tar''||'''maeg'''....''coal''
|-
|'''magyel'''....''oil''||'''mag'''....''fire''
|-
|'''megyel'''....''cement''||'''meg'''....''stone''
|-
|'''alcurofyel'''....''blackberry jam''||'''alcurofeyb'''....''blackberry''
|-
|'''satalvyel'''....''aioli''||'''satalvol'''....''garlic''
|-
|'''taibyel'''....''ossein, marrow''||'''taib'''....''bone''
|-
|'''tayefyel'''....''pomade''||'''tayef'''....''bristle''
|-
|'''tayel'''....''shampoo''||'''taye(b)'''....''hair''
|-
|'''tayoyugfyel'''....''dubbin''||'''tayo(f)'''....''leather'' + '''yugf(a)'''...''smooth''
|-
|'''teebyel'''....''ear wax''||'''teeb'''....''ear''
|-
|'''tiebyel'''....''phlegm''||'''tieb'''....''lung''
|-
|'''veebyel'''....''semen''||'''veeb'''....''seed''
|-
|'''vyixyel'''....''soap''||'''vyix(er)'''....''to clean''
|-
|'''glifavyel'''....''soy paste''||'''glifaveel'''....''soybeen''
|-
|'''yomyel'''....''glaze''<sup>*</sup>||'''yom'''....''ice''
|-
|'''cifavyel'''....''humus''||'''cifaveel'''....''chickpea''
|-
|'''arvyel'''....''peanut oil''||'''arveel'''....''peanut''
|-
|'''yugfyel'''....''polish''||'''yugf(a)'''....''smooth''
|-
|'''yugyel'''....''lotion''||'''yug(a)'''....''soft''
|-
|'''arpovyel'''....''oatmeal''||'''yuvob'''....''oat''
|}
:<sup>*</sup> ''Ice cream'' is ''yombiel''.
: The hybrid word '''teil''' means ''soup'' and the stub '''-eil''' suffix is used for soups:
:{| class="wikitable" style="background:lightyellow"
|+ Some -EIL Words
|-
! SUBSTANCE !! ROOT
|-
|'''kapsoveil'''....''chili stew''||'''kapsovol'''....''chili pepper''
|-
|'''pifaveil'''....''pea soup''||'''pifaveel'''....''pea''
|-
|'''gyateil'''....''chowder, bisque'' || '''gyaa'''....''thick''
|-
|'''gyoteil'''....''broth'' || '''gyoa'''....''thin''
|-
|'''piteil'''....''fish soup'' || '''pit'''....''fish''
|-
|'''lisoveil'''....''tomato'' || '''lisovol'''....''tomato''
|-
|'''abmalveil'''....''gumbo'' || '''abmalvol'''....''okra, gumbo''
|-
|'''vyifeil'''....''consommé'' || '''vyifa'''....''clear''
|-
|'''arpoveil'''....''porridge'' || '''arpovob'''....''oats''
|}
{{small/end}}
==== TIL, -IL, and -UIL Words ====
: The root word '''til''' means ''drink, beverage''. The stub suffix '''-il''' is an abbreviation of either '''mil'''....''water'' or '''til'''....''drink''. There are hundreds of words ending in this suffix.
:* '''til-'''....''drink'' || '''tilsem'''....''bar''
::* '''tilier'''....''drink''
::* '''tiluer'''....''to ply with drink''
::* '''tilef'''....''thirst''
::* '''tilgronag'''....''drought''
::* '''gratilut'''....''drunk''
::* '''tilyeb'''....''glass''
::* '''tilar'''....''spoon''
::* '''tilarog'''....''teaspoon''
::* '''tilarag'''....''ladle''
::* '''tilsyeb'''....''c''?
::* '''teilsyeb'''....''soup bowl''
::* '''kyitilsyeb'''....''mug, stein''
: Here are a few words formed by suffixing '''-il''':
::* '''bil'''....''milk''
::* '''fil'''....''alcohol''
::* '''povil'''....''beer''
::* '''vifil'''....''wine''
::* '''teabil'''....''tear''
::* '''tiibil'''....''blood''
: The hybrid suffix '''-uil''' is used to form sauces:
::* '''tuil'''....''sauce''
::* '''pituil'''....''fish sauce''
::* '''tolmekuil'''....''curry''
::* '''ipyeituil'''....''clam sauce''
::* '''lisovuil'''....''ketchup, catsup''
==== TUL Words ====
:* '''tul'''....''dish''
::* '''jatul'''....''appetizer''
::* '''jotul'''....''dessert''
::* '''agtul'''....''main dish, entree''
::* '''ogtul'''....''tapa''
::* '''igtul'''....''snack''
::* '''atulyan'''....''first course''
::* '''etulyan'''....''second course''
::* '''tular'''....''dish''
:::* '''tularsam'''....''china cabinet''
:::* '''tularvyixar'''....''dishwasher''
::* '''tulur'''....''stove''
::* '''tulxer'''....''to cook, to prepare food''
:::* '''tulxut'''....''cook''
:::* '''tulxim'''....''kitchen''
:::* '''tulxeb'''....''chef''
::* '''tuluer'''....''to serve a dish''
:::* '''tuluut'''....''server''
::* '''tultuna'''....''culinary''
::* '''tultav'''....''apron''
::* '''tulim'''....''dining room''
:::* '''tulimag'''....''banquet hall''
::* '''vitultun'''....''gastronomy''
::* '''tuldras'''....''menu''
::* '''tulyuxut'''....''waiter''
::* '''tulyeb'''....''platter''
==== TYAL Words ====
:* '''tyal'''....''meal''
: The meals of the day are numbered:
:* '''atyal'''....''breakfast''
::* '''atyalier'''....''to have breakfast''
:* '''etyal'''....''lunch''
::* '''etyalier'''....''to have lunch''
:* '''aetyal'''....''brunch'' (hybrid)
::* '''aetyalier'''....''to have brunch''
:* '''ityal'''....''dinner''
::* '''ityalier'''....''to have dinner''
:* '''utyal'''....''supper''
::* '''utyalier'''....''to have supper''
:* '''tyalier'''....''to have a meal''
:* '''tyaluer'''....''to serve a meal''
::* '''tyaluut'''....''server, waiter''
:::* '''tyaluuyt'''....''waitress''
:* '''nyem etyal'''....''box lunch''
:* '''tyalag''' or '''vityal'''....''banquet''
:* '''vabemtyal''' or '''oyebtyal'''....''picnic, outdoor meal''
:* '''yomxwa tyal'''....''frozen dinner''
:* '''igtyal''' or '''ebtyal'''....''snack, quick meal''
:* '''utyuxlentyal'''....''buffet, smorgasbord''
:* '''nyuxwa tyal'''....''takeout''
:* '''ivtyal'''....''feast''
:* '''agala tyal'''....''main meal''
:* '''gonuwa tyal'''....''potluck, shared meal''
:* '''telam tyal'''....''restaurant meal''
:* '''uwa tul tyal'''....''four-course meal''
:* '''tammagxwa tyal'''....''home-cooked meal''
=== '''TOM''' ''building'' ===
: Related to '''nom''' is the base word '''tom''' meaning ''building''.
::* '''tom'''....''building, edifice''
:::* '''toom'''....''habitat''
:::* '''toam'''....''apartment building''
:::* '''toem'''....''domicile''
:::* '''yabtom'''....''tower''
::::* '''mamyabtom'''....''skyscraper''
==== TAM, -AM Words ====
:* '''tam'''....''house''
::* '''mef tam'''....''brick house''
::* '''tamag'''....''mansion''
:::* '''vitamag'''....''palace''
::* '''tamaz'''....''castle''
::* '''taam'''....''home''
::* '''taym'''....''cottage''
::* '''tamog'''....''cabin''
:::* '''fauftamog'''....''log cabin''
:::* '''vutamog'''....''hovel''
::* '''tamof'''....''tent''
:::* '''tamofag'''....''pavilion''
::* '''tamoyg'''....''hut''
::* '''akpyatam'''....''eagle's nest''
::* '''fabtam'''....''tree house''
::* '''vutam'''....''shanty, shack''
::* '''saxam'''....''factory''
::* '''zyaubam'''....''broadcast station''
::* '''posam'''....''station''
::* '''telam'''....''restaurant''
:::* '''telamog'''....''diner''
::* '''dezam'''....''theater''
::* '''dyestam'''....''library''
::* '''ekpetam'''....''stable''
::* '''fepyotam'''....''tiger's den''
::* '''zyef tam'''....''glass house''
::* '''viteastam'''....''belvedere''
::* '''ujpontam'''....''funeral home''
::* '''twidyan tam'''....''fraternity house''
::* '''tiydyan tam'''....''sorority''
::* '''pontam'''....''hotel''
::* '''sumtam'''....''boarding house''
::* '''nabtam'''....''rowhouse''
::* '''melyex tam'''....''farm house''
::* '''meimpoptam'''....''lodge''
::* '''malyomtam'''....''igloo''
::* '''memyaztam'''....''chalet''
::* '''manurtam'''....''lighthouse''
::* '''magpoxutam'''....''firehouse''
::* '''nam'''....''store''
:::* '''naym'''....''shop''
:::* '''namag'''....''department store''
:::* '''namog'''....''boutique''
::* '''kyapa tam'''....''mobile home, trailer''
::* '''kapetam'''....''doghouse''
::* '''jeebtam'''....''dacha''
::* '''ibdatam'''....''hostel, inn, guesthouse''
::* '''gafatam'''....''chicken coop''
::* '''domtam'''....''townhouse''
::* '''anlatam'''....''hermitage''
::* '''doptam'''....''barracks''
::* '''filtam'''.....''alehouse, bar''
::* '''anmostam'''....''single-story house, rambler, ranch home, bungalow''
::* '''enmostam'''....''duplex''
::* '''inmostam'''....''triplex''
::* '''eotifnunuam'''....''bordello, brothel''
==== TEM, TYEM, SYEM, -YEM, -EM, -M Words ====
::* '''tem'''....''hall, gallery''
:::* '''sintem'''....''picture gallery''
:::* '''tuztem'''....''art gallery''
::* '''tyem'''....''residence''
::* '''syem'''....''establishment''
:::* '''asyem'''....''foundation''
:::* '''ijsyem'''....''foundation''
:::* '''dosyem'''....''institution''
:::* '''jesyem'''....''institution''
:::* '''nunsyem'''....''company, firm''
::* '''-yem'''....''enclosed space''
:::* '''dezyem'''....''stage''
:::* '''byem'''....''position''
:::* '''nyem'''....''box, case''
:::* '''duzyem'''....''music hall''
:::* '''ekpetyem'''....''corral''
:::* '''taibyem'''....''ossuary''
:::* '''teatunyem'''....''diorama''
:::* '''tuyafyem'''....''pocket''
:::* '''ujponyem'''....''coffin, casket''
:::* '''vabyem'''....''lawn, yard''
:::* '''ujponyem'''....''coffin, casket''
:::* '''vabyem'''....''lawn, yard''
:::* '''yabvakyem'''....''perch''
::* '''-em'''....''open space''
:::* '''vabem'''....''pasture, prairie''
:::* '''yubem'''....''vicinity''
:::* '''yujem'''....''courtyard''
:* '''-m''' (used in deictics of place)
::* '''duhom?'''....''where?''
::* '''hom'''....''where''
::* '''him'''....''here''
::* '''hum'''....''there''
::* '''huim'''....''here and there''
::* '''hem'''....''somewhere''
::* '''hyam'''....''everywhere''
::* '''hyom'''....''nowhere''
::* '''hyem'''....''anywhere, wherever''
::* '''hyim'''....''the same place''
::* '''hyum'''....''elsewhere''
==== TIM, -IM Words ====
::* '''tim'''....''room, chamber''
:::* '''aybtim'''....''attic''
:::* '''eftim'''....''restroom, the "necessary"''
:::* '''oybtim'''....''basement, cellar''
:::* '''zatim'''....''anteroom, front room''
:::* '''pontim'''....''restroom''
:::* '''deztim'''....''theater salon''
:::* '''dyetim'''....''den, reading room''
:::* '''sartim'''....''toolshed''
:::* '''sumtim'''....''bedroom''
:::* '''teetim'''....''auditorium''
:::* '''zyutim'''....''rotunda''
::* '''-im'''....stub for ''room''
:::* '''magelim'''....''kitchen''
:::* '''yexim'''....''office''
:::* '''datim'''....''guest room''
==== TUM, -UM Words ====
::* '''tum'''....''cell, compartment, closet''
:::* '''beaxutum'''....''sentry box, guard post''
:::* '''bopetum'''....''bullpen''
:::* '''dyestum'''....''bookstall''
:::* '''mastum'''....''cabinet''
:::* '''miltum'''....''washroom, water closet''
:::* '''mumtum'''....''dungeon''
:::* '''mustum'''....''stairwell''
:::* '''sumtum'''....''bed bunk, couchette''
:::* '''yontum'''....''compartment''
::* '''-um'''....''(stub) compartment, cell, stall''
:::* '''izbum'''....''cockpit''
:::* '''yibdalirum'''....''telephone booth''
:::* '''yuvbexum'''....''holding cell''
:::* '''yexum'''....''cubicle''
:::* '''tujum'''....''berth, sleeping compartment''
:::* '''telum'''....''food kiosk, food stall''
=== '''TOT''' ''god'' ===
: The base word ''tot'' means ''god''. The one sub-element is:
::* '''tat'''....''angel''
==== TOT Words ====
: The root word '''tot''' means ''god''.
: Some important derivatives:
::* '''totin'''....''religion, theism''
::* '''totmir'''....''heaven''
::* '''totdab'''....''theocracy''
::* '''tottun'''....''theology''
::* '''totsin'''....''idol''
::* '''eyntot'''....''demigod''
::* '''totifram'''....''church, house of worship''
::* '''totxwa'''....''deified''
::* '''ototina'''....''secular''
: Different ''theisms'':
::* '''antotin'''....''monotheism''
::* '''evtotin'''....''atheism''
::* '''glatotin'''....''polytheism''
::* '''hyatotin'''....''pantheism''
::* '''multotin'''....''hylotheism''
::* '''uttotin'''....''authotheism''
: The stub prefix '''to-''' is used to form kinship terms preceded in English with '''god''':
::* '''totwed'''....''godfather''
::* '''totuyd'''....''goddaughter''
==== TAT Words ====
: The root word '''tat''' means ''angel''. There is a hierarchy of angels, as follows:
::* '''Ataat'''....''Seraph''
::* '''Ataet'''....''Cherub''
::* '''Atait'''....''Throne''
::* '''Etaat'''....''Dominion''
::* '''Etaet'''....''Stronghold''
::* '''Etait'''....''Power''
::* '''Itaat'''....''Principality''
::* '''Itaet'''....''Archangel''
::* '''Itait'''....''Angel''
: The devil is the "wicked angel", eg.:
::* '''fyotat'''....''devil, satan''
:::* '''fyotata'''....''diabolical''
:::* '''fyotatmir'''....''hell''
::::* '''fyotatmira'''....''infernal''
=== '''TUZ''' ''art'' ===
: This family includes words having to do with the arts, such as theater, sculpture, music, poetry, etc. Word stems ending in '''-z''' refer to something that is precious or artful. Stems with '''eu''' are mnemonic for '''teub'''....''mouth'' and refer to sound, singing, noises, etc.
[[File:Im Atelier deutsch um 1800.jpg|thumb|]]
: Summary:
{| class="wikitable" style="background:lightyellow; margin-left:1.6em; font-size:smaller;"
|+ Artsy Words
|-
! ART || PIECE || PERSON
|-
| '''tuz'''....''art'' || '''tuzun'''....''art object'' || '''tuzut'''....''artist''
|-
|'''taz'''....''portraiture'' || '''tazun'''....''portrait'' || '''tazut'''....''portrait artist''
|-
|'''tez'''....''culture'' || '''tezun'''....''more'' ||
|-
|'''tyez'''....''magic''<br>'''fyatyez'''....''charm''<br>'''fyotyez'''...''sorcery'' || '''tyezun'''....''magic act''<br>'''fyatyezun'''....''charm''<br>'''fyotyezun'''....''spell'' || '''tyezut'''....''magician''<br>'''fyatyezut'''....''hieromancer''<br>'''fyotyezut'''....''sorcerer''
|-
|'''teyz'''....''cult''<br>'''fyateyz'''....''religion'' || '''teyzun'''....''cult service''<br>'''fyateyzun'''....''religious service'' || '''teyzut'''....''cultist''<br>'''fyateyzut'''....''priest''
|-
|'''tuyz'''....''artisanship'' || '''tuyzun'''....''artisanal piece'' || '''tuyzut'''....''artisan''
|-
|'''tyen'''....''craft, skill'' || '''tyenun'''....''piece of craftsmanship'' || '''tyenut'''....''craftsman''
|-
|'''teaz'''....''spectacle, showmanship''<br>'''fyateaz'''....''miracle-working'' || '''teazun'''....''show''<br>'''fyateazun'''....''miracle'' || '''teazut'''....''showman''<br>'''fyateazut'''....''miracle-worker''
|-
| '''siz'''....''painting'' || '''sizun'''....''a painting'' || '''sizut'''....''painter''
|-
| '''dresiz'''....''engravure'' || '''dresizun'''....''an engraving'' || '''dresizut'''....''engraver''
|-
| '''sin'''....''picture''<br>'''mansin'''....''photo''<br>'''pansin'''...''motion picture'' || || '''sindrut'''....''illustrator''<br>'''mansinut'''....''photographer''<br>'''pansinut'''....''movie-maker''
|-
| '''dresin'''....''design'' || '''dresin'''....''a design'' || '''dresinut'''....''designer''
|-
| '''sindren'''....''drawing'' || '''sindras'''....''a drawing'' || '''sindrut'''....''draftsman''
|-
|'''saz'''....''sculpture'' || '''sazun'''....''piece of sculpture, statue'' || '''sazut'''....''sculptor''
|-
|'''suz'''....''display art'' || '''suzun'''....''artifact'' || '''suzyanamut'''....''museum director''
|-
|'''volz'''....''color'' || ||
|-
| '''daz'''....''dance''|| '''dazun'''....''a dance''|| '''dazut'''....''dancer''
|-
| '''dyaz'''....''ballet'' || '''dyazun'''....''ballet performance'' || '''dyazut'''....''danseur''<br>'''dyazuyt'''....''ballerina''
|-
|'''dez'''....''theater, performance art''<br>'''aztosdez'''....''melodrama''<br>'''vyamdez'''....''drama''<br>'''ivdez'''....''comedy''<br>'''uvdez'''....''tragedy''||'''dezun'''....''play''||'''dezut'''....''actor, performer''
|-
| '''diz'''....''comedy''|| '''dizun'''....''comedy act'' || '''dizut'''....''comedian''
|-
| '''podiz'''....''circus performing'' || '''podizun'''....''circus act'' || '''podizut'''....''clown''
|-
|'''duz'''....''music'' || '''duzun'''....''music piece'' <br>'''duzdin'''....''operetta''<br>'''duzdinag'''....''opera''|| '''duzut'''....''musician''
|-
|'''dyez'''....''cinema''||'''dyezun'''....''movie'' || '''dyezut'''....''film actor''
|-
|'''drez'''....''poetry'' || '''drezun'''....''poem'' || '''drezut'''....''poet''
|-
|'''vidrenyan'''....''literature, belles lettres'' || '''vidras'''....''piece of literature'' ||'''drut'''....''writer''
|-
|'''teuz'''....''voice'' || ||
|-
|'''deuz'''....''singing''||'''deuzun'''....''song'' || '''deuzut'''....''singer''
|-
|'''seux'''....''sound'' || ||
|-
|'''xeus'''....''noise'' || ||
|-
|'''seuz'''....''tone'' || ||
|}
=== '''VOB''' ''crop'' ===
: The baseword '''vob''' is the top-level of a family of words having to do with crops, plants, grains, and flowers.
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Crops
|-
| '''vob'''....''crop''<br>----'''vol'''....''vegetable''<br>----'''vos'''....''flower''
|-
| '''vab'''....''grass''<br>----'''umvab'''....''hay''<br>----'''fuvab'''....''weed''<br>----'''vabij'''....''germ''
|-
| '''veb'''....''tuft, cob, ear, head, spike''<br>----'''veel'''....''bean, legume''<br>----'''veeb'''....''seed''<br>----'''veeyb'''....''grain''
|-
| '''vib'''....''stem''
|-
| '''vub'''....''shoot, blade, twig''<br>----'''vulob'''....''thorn''
|-
| '''vyob'''....''tuber''
|}
{{small/end}}
[[File:New World Domesticated plants.JPG|thumb|]]
==== VOB/VAB/VEB/VIB/VUB/VEEB/VEEYB/VYOB Words ====
: Here is a list of crops with their Linnaean taxonomic designations:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|2}};{{column-rule|2px solid blue}}";>
:'''vob''': ''crop''
:'''mefavob''': ''alfalfa'', spec=''Fabaceae Medicago sativa''
:'''lamvob''': ''sage family plants'', spec=''Lamiaceae''
:*'''basoclamvob''': ''basil'', spec=''Lamiaceae Ocimum basilicum''
:*'''rossallamvob''': ''rosemary'', spec=''Lamiaceae Salvia rosmarinus''
:*'''purlamvob''': ''white dead-nettle'', spec=''Lamiaceae Lamium purpureum''
:'''bravob''': ''mustard plants'', spec=''Brassicaceae''
:*'''nabravob''': ''rutabaga, colza, rape seed, rapeseed'', spec=''Brassicaceae Brassica napus''
:'''agvob''': ''mushroom, champignon, agaric'', spec=''Agaricaceae Agaricus bisporus''
:'''livob''': ''flax, linen, linseed'', spec=''Linaceae Linum usitatissimum''
:'''polivob''': ''buckwheat crops'', spec=''Polygonaceae''
:*'''fapolivob''': ''buckwheat'', spec=''Polygonaceae Fagopyrum esculentum''
:'''nivob''': ''tobacco'', spec=''Solanaceae Nicotiana tabacum''
:'''sakvob''': ''sugarcane'', spec=''Saccharum''
:'''malvob''': ''mallow'', spec=''Malvaceae''
:*'''kormalvob''': ''canvas, jute'', spec=''Malvaceae Corchorus olitorius''
:*'''gosmalvob''': ''cotton'', spec=''Malvaceae Gossypium''
:'''satalvob''': ''garlic'', spec=''Alium sativum''
:'''polvob''': ''fern'', spec=''Polypodiophyta'', old=ryuvob
:'''kanvob''': ''hash, hasheesh, hashish, hemp, cannabis, marijuana, pot'', spec=''Cannabaceae Cannabis sativa''
:*'''celkanvob''': ''hackberry'', spec=''Cannabaceae Celtis''
:*'''hukanvob''': ''hop'', spec=''Cannabaceae Humulus lupulus''
:'''povob''': ''cereal, grain'', spec=''Poaceae ''
:*'''frapovob''': ''reed, thatch'', spec=''Poaceae Phragmites austsralis''
:*'''papovob''': ''millet'', spec=''Poaceae Paniceae''
:*'''sepovob''': ''rye'', spec=''Poacea Secale cereale''
:*'''zepovob''': ''corn, maize, Indian corn'', spec=''Poaceae Zea mays''
:*'''tripovob''': ''wheat'', spec=''Poaceae Triticum aestivum''
:*'''bampovob''': ''bamboo'', spec=''Poaceae Bambuseae''
:*'''bropovob''': ''brome grass'', spec=''Poaceae Bromus''
:*'''orpovob''': ''rice'', spec=''Poaceae Oryza sativa''
:*'''horpovob''': ''barley'', spec=''Poaceae Hordeum vulgare''
:*'''sorpovob''': ''sorghum'', spec=''Poaceae Sorghum''
:*'''avpovob''': ''oat'', spec=''Poaceae Avena sativa''
:'''arvob''': ''goober, peanut'', spec=''Arachis hypogaea''
:'''urvob''': ''nettle, stinging nettle'', spec=''Urticaceae Urtica dioica''
:'''asvob''': ''daisy family'', spec=''Asteraceae''
:*'''helasvob''': ''sunflower'', spec=''Asteraceae Helianthus annuus''
:*'''arasvob''': ''wormwood'', spec=''Asteraceae Artemisia absinthium''
:*'''karasvob''': ''thistle'', spec=''Asteraceae Carduus''
</div>
{{small/end}}
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Crop Derivatives
|-
! CROP !! DERIVATIVES
|-
| '''povob'''....''cereal, grain'' || '''povel'''....''bread''
|-
| '''tripovob'''....''wheat'' || '''tripovol'''....''flour''
|-
| '''sepovob'''....''rye'' || '''sepovel'''....''rye bread''
|-
| '''hukanvob'''....''hop'' || '''hukanvil'''....''beer''
|-
| '''orpovob'''....''rice'' || '''orpovil'''....''sake''
|-
| '''avpovob'''....''oat'' || '''avpoveil'''....''oatmeal''
|-
| '''kanvob'''....''hemp'' || '''kanvol'''....''hashish''
|-
| '''helasvob'''....''sunflower'' || '''helasveeb'''....''sunflower seed''
|-
| '''zepovob'''....''corn, maize'' || '''zevofil'''....''whiskey, bourbon''
|-
| '''nivob'''....''tobacco'' || '''nivol'''....''nicotine''
|-
| '''sakvob'''....''sugarcane''|| '''sakol'''....''sugar''
|-
| '''luvob'''....''reed, thatch''|| '''luvobwa'''....''thatched''
|}
{{small/end}}
=== '''VOL''' ''vegetable'' ===
{{small/top}}
:*'''vol''': ''vegetable''
::*'''kavol''': ''honeysuckle'', spec=''Caprifoliaceae''
:::*'''valkavol''': ''corn salad, lamb's lettuce'', spec=''Caprifoliaceae Valerianella locusta''
::*'''lamvol''': spice spec=Lamiaceae
:::*'''tilamvol''': ''thyme'', spec=''Lamiaceae Thymus vulgarus''
:::*'''soklamvol''': ''basil'', spec=''Lamiaceae Ocimum basilicum''
:::*'''orlamvol''': ''oregano'', spec=''Lamiaceae Origanum vulgare''
:::*'''sallamvol''': ''rosemary'', spec=''Lamiaceae Salvia rosmarinus''
:::*'''ollavol''': ''English pea, garden pea, sweet pea'', spec=''Lathyrus oleraceus''
::*'''aspavol''': ''asparagus'', spec=''Asparagaceae Asparagus officialis''
:::*'''agaspavol''': ''agave'', spec=''Asparagaceae Agave americana''
:::*'''tekagaspavol''': ''blue agave'', spec=''Asparagaceae Agave tequilana''
:::*'''yukaspavol''': ''yucca'', spec=''Asparagaceae Yucca filamentosa''
::*'''bravol''': ''cabbage, mustard, crucifer'', spec=''Brassicaceae''
:::*'''nabravol''': ''rutabaga, turnip'', spec=''Brassica napus''
:::*'''rabravol''': ''turnip'', spec=''Brassica rapa''
:::*'''rafbravol''': ''radish'', spec=''Brassicaceae Raphanus raphanistrum sativus''
:::*'''narabravol''': ''tasoi, tat toi, spoon cabbage, rosette bok choy'', spec=''Brassica Rapa narinosa''
:::*'''olbravol''': ''cabbage, cole'', spec=''Brassica oleracea''
:::*'''sabolbravol''': ''kale, collard greens'', spec=''Brassica oleracea sabellica''
:::*'''gemolbravol''': ''Brussels sprout'', spec=''Brassica oleracea gemmifera''
:::*'''kapolbravol''': ''red cabbage'', spec=''Brassica Oleracea capitata''
:::*'''itolbravol''': ''broccoli'', spec=''Brassica oleracea italica''
:::*'''botolbravol''': ''cauliflower'', spec=''Brassica oleracea botrytis''
:::*'''erbravol''': ''arugula'', spec=''Brassicaceae Eruca vesicaria''
:::*'''nasbravol''': ''watercress'', spec=''Brassicaceae Nasturtium officinale''
:::*'''encivol''': ''escarole, endive, chicory'', spec=''Cichorium endivia''
::*'''divol''': ''yam'', spec=''Dioscoreaceae Dioscorea old''=kavol
::*'''polivol''': ''buckwheat'', spec=''Polygonaceae''
:::*'''rewmpolivol''': ''rhubard'', spec=''Polygonaceae Rheum hybridum''
:::*'''rupolivol''': ''sorrel'', spec=''Polygonaceae Rumex acetosa''
::*'''alvol''': ''scallion, green onion, herb'', spec=''Allium''
:::*'''amalvol''': ''leek'', spec=''Allium ampeloprasum''
:::*'''skoynalvol''': ''chive'', spec=''Allium schoenoprasum''
:::*'''cepalvol''': ''onion'', spec=''Allium cepa''
:::*'''asalvol''': ''shallot'', spec=''Alium ascalonicum''
:::*'''satalvol''': ''garlic'', spec=''Allium sativum''
::*'''abmalvol''': ''okra, gumbo'', spec=''Malvaceae Abelmoschus esculentus''
::*'''amvol''': ''amaranth'', spec=''Amaranthaceae''
:::*'''spinamvol''': ''spinach'', spec=''Amaranthaceae Spinancia oleracea''
:::*'''betamvol''': ''beet'', spec=''Amaranthaceae Beta vulgaris''
::*'''menvol''': ''mint'', spec=''Mentheae''
:::*'''spimenvol''': ''spearmint, garden mint'', spec=''Mentheae Mentha spicata''
::*'''zinvol''': ''ginger'', spec=''Zingiberaceae Zingiber officinale''
:::*'''kurzinvol''': ''turmeric'', spec=''Zingiberaceae Curcuma longa''
::*'''cimpovol''': ''lemongrass'', spec=''Poaceae Cymbopogon''
::*'''sovol''': ''nightshade'', spec=''Solanaceae''
:::*'''mesovol''': ''aubergine, eggplant, brinjal, baigan'', spec=''Solanaceae Solanum melongena''
:::*'''lisovol''': ''tomato'', spec=''Solanaceae Solanum lycopersicum''
:::*'''kapsovol''': ''pepper'', spec=''Solanaceae Capsicum''
:::*'''akapsovol''': ''chili pepper'', spec=''Solanaceae Capsicum annuum''
:::*'''ekapsovol''': ''bell pepper'', spec=''Solanaceae Capsicum annuum''
:::*'''ikapsovol''': ''cayenne pepper'', spec=''Solanaceae Capsicum annuum''
:::*'''ukapsovol''': ''jalapeno'', spec=''Solanaceae Capsicum annuum''
:::*'''frukapsovol''': ''tabasco'', spec=''Solanaceae Capsicum frutescens''
:::*'''tusovol''': ''potato, spud, tater'', spec=''Solanaceae Solanum tuberosum''
::*'''apvol''': ''umbellifer'', spec=''Apiaceae''
:::*'''makonapvol''': ''hemlock'', spec=''Apiaceae Conium maculatum''
:::*'''foynapvol''': ''fennel'', spec=''Apiaceae Foeniculum vulgare''
:::*'''korapvol''': ''coriander, cilantro'', spec=''Apiaceae Coriandrum sativum''
:::*'''pasapvol''': ''parsnip'', spec=''Apiaceae Pastinaca sativa''
:::*'''krispetapvol''': ''parsley'', spec=''Apiaceae Petroselinum crispum''
:::*'''gravapvol''': ''celery'', spec=''Apiaceae Apium graveolens''
:::*'''kadawapvol''': ''carrot'', spec=''Apiaceae Daucus carota''
::*'''kokarvol''': ''heart of palm, swamp cabbage'', spec=''Arecaceae Cocos''
:::*'''eskolaravol''': ''taro'', spec=''Araceae Colocasia esculenta''
::*'''asvol''': ''sunflower, aster, daisy family'', spec=''Asteraceae''
:::*'''lakasvol''': ''lettuce, salad, garden lettuce'', spec=''Asteraceae Lactuta sativa''
:::*'''lonsalakasvol''': ''romaine lettuce'', spec=''Asteraceae Lactuta sativa longifolia''
:::*'''cikasvol''': ''chicory'', spec=''Asteraceae Cichorium intybus''
:::*'''incikasvol''': ''radicchio'', spec=''Asteraceae Cichorium intybus''
:::*'''helasvol''': ''Jerusalem artichoke, sunroot, sunchoke, topinambur'', spec=''Asteraceae Helianthus tuberosus''
:::*'''cinasvol''': ''artichoke'', spec=''Asteraceae Cynara cardunculus''
:::*'''tarasvol''': ''dandelion, mustard greens'', spec=''Asteraceae Taraxacum officinale''
:::*'''brasasvol''': ''cruciferous vegetable'', spec=''Asteraceae Brassica''
:::*'''nabrasasvol''': ''rutabaga'', spec=''Asteraceae Brassica napus''
:::*'''rabrasasvol''': ''turnip'', spec=''Asteraceae Brassica rapa''
:::*'''olbrasasvol''': ''cabbage'', spec=''Asteraceae Brassica oleracea''
:::*'''awaolbrasasvol''': ''cauliflower'', spec=''Asteraceae Brassica oleracea var''. one
:::*'''gonolbrasasvol''': ''kohlrabi, turnip cabbage'', spec=''Asteraceae Brassica oleracea Gongylodes''
:::*'''virolbrasasvol''': ''collard greens'', spec=''Asteraceae Brassica oleracea var''. viridis
:::*'''itolbrasasvol''': ''broccoli'', spec=''Asteraceae Brassica oleracea var''. italica
:::*'''yunbrasasvol''': ''canola,'', spec=''Asteraceae Brassica juncea''
::*'''kuvol''': ''squash, gourd, cucurbit'', spec=''Cucurbitaceae Curcurbita''
:::*'''lakuvol''': ''calabash'', spec=''Cucurbitaceae Lagenaria''
:::*'''makuvol''': ''pumpkin'', spec=''Cucurbitaceae Cucurbita maxima''
:::*'''sakuvol''': ''cucumber'', spec=''Cucurbitaceae Cucumis sativus''
:::*'''bekuvol''': ''wax gourd'', spec=''Cucurbitaceae Curcurbita Benincasa''
:::*'''mekuvol''': ''honeydew, muskmelon, melon'', spec=''Cucurbitaceae Cucumis melom''
:::*'''pekuvol''': ''gourd, squash, pepo'', spec=''Cucurbitaceae Cucurbita pepo''
:::*'''cikuvol''': ''watermelon'', spec=''Cucurbitaceae Citrullus lanatus''
:::*'''praykuvol''': ''Indian squash'', spec=''Cucurbitaceae Curcurbita Praecitrullus''
::*'''lawvol''': ''laurel family'', spec=''Lauraceae''
:::*'''perlawvol''': ''avocado'', spec=''Lauraceae Persea americana''
{{small/end}}
=== '''VEEL''' ''Legume'' ===
{{small/top}}
:*'''veel''': ''legume''
::*'''faveel''': ''bean, legume'', spec=''Fabaceae Phaseolus vulgaris''
::*'''odlafaveel''': ''sweat pea'', spec=''Fabaceae Lathyrus odoratus''
::*'''ollafaveel''': ''pea'', spec=''Fabaceae Lathyrus oleraceus''
::*'''vigfaveel''': ''black-eyed pea'', spec=''Faseolus Vigna unguiculata''
:::*'''ravigfaveel''': ''mung bean, green gram, maash, monggo, pesalu, munggo'', spec=''Fabaceae Vigna radiata'', old=gyeveel
::*'''cifaveel''': ''chickpea'', spec=''Fabaceae Cicer arietinum''
::*'''glifaveel''': ''soybean, soy'', spec=''Fabaceae Glycine max''
::*'''pifaveel''': ''sugar snap pea, snap pea, pea'', spec=''Fabaceae Pisum sativum''
::*'''lupifaveel''': ''lima bean, runner bean'', spec=''Fabaceae Pisum lunatus''
::*'''vifaveel''': ''vetch, broad bean, fava bean, Vicia faba, faba bean'', spec=''Fabaceae Vicia faba''
:::*'''ervifaveel''': ''bitter vetch'', spec=''Fabaceae Vicia ervilia''
::*'''kokfaveel''': ''green bean, string bean, runner bean, butter bean'', spec=''Fabaceae Phaseolus coccineus''
::*'''lensfaveel''': ''lentil'', spec=''Fabaceae Lens culinaris''
::*'''arveel''': ''peanut'', spec=''Arachis hypogaea''
{{small/end}}
=== '''VOS''' ''flower'' ===
: Summary:
==== Flower Parts ====
[[File:Madeira-flowers hg.jpg|thumb|]]
: These are the main parts of a flower:
:* '''vos'''....''flower, blossom, bloom''
::*'''vayeb'''....''petal''
:::*'''bolvayeb'''....''sepal''
:::*'''vayebzyus'''....''whorl''
::::*'''oyebvayebzyus'''....''calyx''
::*'''jwavos'''....''bud, early bloom''
::*'''vosyeb'''....''receptacle''
::*'''vosmek'''...''pollen''
:::*'''vosmekyem'''....''anther''
:::*'''vosmekibar'''....''stigma''
:::*'''vosmek muyfyeg'''....''pollen tube''
:::*'''vosmek veeyb'''....''pollen grain''
::*'''tooybgon'''....''pistil''
::*'''vosij'''....''ovule''
:::*'''vosijyem'''....''ovary''
::*'''twoobgon'''....''stamen''
:::*'''twoobgoniyf'''....''filament''
::*'''vib'''....''peduncle, stem''
==== Flower Words ====
: Some general flower words:
:* '''voses'''....''floweret, floret''
:* '''vosyan'''....''inflorescence, bouquet''
:* '''vosmekuer'''....''to pollinate''
:* '''vosyijer'''....''to bloom, to blossom, to flower, to bud''
:* '''vosuer'''....''to bloom, to effloresce, to bud, to blossom''
:* '''vosber'''....''to deck out with flowers''
:* '''vosdrer'''....''to paraph''
::* '''vosdrun'''....''flourish, paraph, rubric''
:* '''vosnam'''....''florist shop''
::* '''vosnamut'''....''florist''
:* '''vostebuz'''....''wreath''
:* '''vostejben'''....''horticulture, floriculture''
:* '''voszyeb'''....''vase''
:* '''vossyeb'''....''flowerpot''
:* '''vosdeym'''....''flower garden''
:* '''vosyem'''....''flower bed''
==== Types of Flowers ====
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|2}};{{column-rule|2px solid blue}}";>
:'''vos''': ''flower''
:'''favos''': ''pea flower'', spec=''Fabaceae''
:*'''klifavos''': ''clianthus, kakabeak'', spec=''Fabaceae Clianthus''
:*'''mifavos''': ''mimosa'', spec=''Fabaceae Mimosa pudica''
:*'''infavos''': ''indigo flower'', spec=''Fabaceae Indigofera''
:'''lokavos''': ''honeysuckle'', spec=''Caprifoliaceae Lonicera''
:'''lavos''': ''lavender'', spec=''Lamiaceae Lavandula''
:'''anplavos''': ''snapdragon'', spec=''Plantadinaceaa Antirrhinum''
:'''pavos''': ''poppy'', spec=''Papaver''
:*'''sompavos''': ''opium poppy'', spec=''Papaver somniferum''
:'''hiaspavos''': ''bluebell flower'', spec=''Asparagaceae Hyacinthoides''
:'''gevos''': ''geranium'', spec=''Geraniaceae'', Geranium
:'''nevos''': ''lotus'', spec=''Nelumbonaceae Nelumbo''
:'''magvos''': ''magnolia'', spec=''Magnoliaceae Magnolia''
:'''hivos''': ''hydrangea'', spec=''Hydrangeaceae Hydrangea''
:'''livos''': ''lily'', spec=''Liliaceae Lilium''
:*'''tulivos''': ''tulip'', spec=''Liliaceae Tulipa''
:'''privos''': ''primrose'', spec=''Primulaceae Primula''
:'''vivos''': ''viola, violet'', spec=''Violaceae Viola''
:*'''horvivos''': ''pansy'', spec=''Violaceae Viola hortensis''
:'''akvos''': ''acanthus mollis'', spec=''Acanthaceae Acanthus mollis''
:'''balvos''': ''balsam, touch-me-not'', spec=''Balsaminaceae Impatiens balsamina''
:'''himalvos''': ''hibiscus'', spec=''Malvaceae Hibiscus''
:'''sirolvos''': ''lilac'', spec=''Oleaceae Syringa''
:'''amarvos''': ''amaranth'', spec=''Amaranthaceae Amaranthus''
:'''naramvos''': ''daffodil, narcissus, jonquil'', spec=''Amaryllidaceae Narcissus''
:'''nimvos''': ''waterlily'', spec=''Nymphaeaceae''
:'''linvos''': ''flax'', spec=''Linaceae Linum''
:'''mibovos''': ''forget-me-not'', spec=''Boraginaceae Mysotis''
:'''rovos''': ''rose'', spec=''Rosaceae Rosa''
:'''rodovos''': ''rhododendron'', spec=''Ericaceae Rhododendron''
:'''apvos''': ''umbellifer'', spec=''Apiaceae''
:*'''anapvos''': ''angelica'', spec=''Apiaceae Angelica''
:*'''erapvos''': ''sea holly'', spec=''Apiaceae Eryngium maritimum''
:*'''korapvos''': ''coriander'', spec=''Apiaceae Coriandrum''
:*'''kasapovos''': ''yellow oleander'', spec=''Apocynaceae Cascabela thevetia''
:'''arvos''': ''aroid, arum'', spec=''Araceae''
:*'''lemarvos''': ''bayroot'', spec=''Araceae Lemnoideae ''
:*'''potarvos''': ''peace lily'', spec=''Araceae Pothoideae''
:'''kardivos''': ''carnation, clove pink'', spec=''Caryophyillaceae Dianthus caryophyllus''
:'''irvos''': ''iris'', spec=''Irideae Iris''
:*'''krokirvos''': ''crocus, saffron'', spec=''Iridaceae Crocus''
:'''orvos''': ''orchid'', spec=''Orchidaceae Orchis''
:*'''vanorvos''': ''vanilla'', spec=''Orchidaceae Vanilla planifolia'', dyafab
:'''asvos''': ''star-shaped flow'', spec=''Asteraceae''
:*'''dahasvos''': ''dahlia'', spec=''Asteraceae'', Dahlia
:*'''kalasvos''': ''marigold, yellow marigold'', spec=''Asteraceae Calendula''
:*'''pebelasvos''': ''daisy'', spec=''Asteraceae Bellis perennis''
:*'''helasvos''': ''sunflower'', spec=''Asteraceae Helianthus annuus''
:*'''kamasvos''': ''chamomile'', spec=''Asteraceae Chamaemelum nobile''
:*'''cicenasvos''': ''blueberry, cornflower'', spec=''Asteraceae Centaurea cyanus''
:*'''konasvos''': ''lily of the valley'', spec=''Asparagacea Convallaria''
:*'''girasvos''': ''purple passion'', spec=''Asteraceae Gynura aurantiaca''
:*'''krisasvos''': ''chrysanthemum'', spec=''Asteraceae Chrysanthemum''
:'''aspavos''': ''asparagus'', spec=''Asparagaceae''
:*'''danaspavos''': ''laurel'', spec=''Asparagaceae Danae racemosa''
:*'''hiaspavos''': ''hyacinth'', spec=''Asparagaceae Hyancinthus''
:'''oljasvos''': ''jasmine'', spec=''Oleaceae Jasminum''
:'''akisvos''': ''columbine'', spec=''Isopyroideae Aquilegia''
:'''dikruvos''': ''dittany'', spec=''Rutaceae Dictamnus''
:'''karawvos''': ''periwinkle'', spec=''Rauvolfioideae Catharanthus roseus''
:'''payvos''': ''peony'', spec=''Paeoniaceae Paeonia''
</div>
{{small/end}}
=== '''VOLZ''' ''color'', '''-LZ''' ===
: The root word '''volz''' means ''color, hue'' and has a stub form, '''-lz'''.
: The basic colors are based numerically on the natural color spectrum:
:* '''olza'''....''blank - 0''
:* '''alza'''....''red - 1''
:* '''elza'''....''orange - 2''
:* '''ilza'''....''yellow - 3''
:* '''ulza'''....''green - 4''
:* '''yolza'''....''blue - 5''
:* '''yalza'''....''purple - 6''
:* '''yelza'''....''indigo - 7''
: Other important colors are:
:* '''malza'''....''white''
:* '''molza'''....''black''
:* '''maolza'''....''gray''
:* '''melza'''....''brown''
:* '''aolza'''....''pink''
: Some strength-modifying prefixes:
:* '''oz-''' (''light-, pale-, -ish'')
::* '''ozyolza'''....''light blue''
::* '''ozilza'''....''blond, pale yellow''
:* '''az-''' (''dark-'')
::* '''azmelza'''....''dark brown''
:* '''maz-''' (''bright-'')
::* '''mazilza'''....''bright yellow''
:* '''moz-''' (''dim-, dull-'')
::* '''mozmalza'''....''dull-white''
:* '''eyn-''' (''semi-'')
::* '''eynilza'''.... ''semi-yellow''
:* '''gwa-''' or '''ik-''' (''pure, absolutely, as x as can be'')
::* '''gwaulza'''....''pure green''
::* '''ikmalza'''....''pure white''
::* '''ikalza'''....''as red as can be''
::* '''ikmolza'''....''jet black''
:* '''yiz-''' (''ultra'')
::* '''yizuilza'''....''ultramarine''
: Color strengths can also be modified by the prefixes '''-ayna''' (''strong'') or '''-oyna''' (''weak''), or even '''-yena''' (''like, -ish'').
:* '''alz<u>ayna</u>'''....''bright red''
:* '''alz<u>oyna</u>'''....''reddish''
:* '''yulz<u>yena</u>'''....''blueish, blue-like''
: Here are some hybrid colors:
:* '''aolza'''....''pink'' (red + white)
:* '''uilza'''....''marine, blue-green''
:* '''maolza'''....''gray'' (white + black)
: Colors can be modified by prefixed/hyphenated nouns:
:* '''mef-alza'''....''brick red''
:* '''rovos-aolza'''....''rose pink''
:* '''imez-alza'''....''ruby red''
:* '''caulk-yolza'''....''cobalt blue''
: Colors referring to hair, skin complexion, or eyes are prefixed with '''taye(b)-''', '''tayo(b)-''', and '''tea(b)-''', respectively. The final '''b''' is retained before colors beginning with a vowel, but dropped otherwise.
:* '''tayebozilza'''....''blond-haired''
:* '''tayemolza'''....''brunette''
:* '''tayebalza'''....''red-headed''
:* '''tayomelza'''....''brown-skinned''
:* '''tayomalza'''....''white(-skinned)''
:* '''tayomolza'''....''black(-skinned)''
:* '''teayolza'''....''blue-eyed''
:* '''teayulza'''....''green-eyed''
: Colors can be verbalized:
:* '''alzaser'''....''to turn red, to blush''
:* '''molzaxer'''....''to blacken (tr.)''
:* '''Ata tyep olzasa.'''....''My brain went blank.''
:* '''Eta tayob yulzaso.'''....''Your skin will bruise.''
: Keep the following color terms distinct:
:* '''maolza'''....''gray''
:* '''malza-molza'''....''black & white (t.v.)''
:* '''volza'''....''color (t.v.)''
:* '''ovolza'''....''achromatic''
:* '''olza'''....''blank''
: A few other color derivatives:
:* '''anvolza'''....''monochromatic''
:* '''dip-yolza'''....''navy blue''
:* '''drur-aolza'''....''magenta''
:* '''patijilz'''....''egg yolk''
:* '''patijmalz'''....''egg white''
:* '''eynmolza'''....''grizzled''
:* '''dril-molza'''....''ink black''
:* '''duhovolza?'''....''what color?''
:* '''hyevolza'''....''any color''
:* '''gelvolza'''....''homochromatic''
:* '''involza'''....''tricolor''
:* '''omalzat''' (or) '''otayomalzat'''....''non-white (person)''
:* '''tebsinalza'''....''red-faced''
:* '''tayebolzat'''....''albino''
:* '''Malyom-malzayt'''....''Snow White''
:* '''teobalza'''....''flushed, blushing'' (= ''cheek-red'')
:* '''alzaxwa teabi'''....''blood-shot eyes''
:* '''alzmelza'''....''sepia''
:* '''alztiiba'''....''red-blooded''
:* '''alztiibum'''....''red blood cell''
::* '''alztiibumgron'''....''anemia''
::* '''alztiibummul'''....''hemoglobin''
=== '''XOB''' ''organization'' ===
: The word '''xob''' refers to any kind of hierarchical organization that has a staff, departments, and branches.
:* '''xob'''....''organization, company, firm, body''
::* '''xab'''....''staff, management''
::* '''xeb'''....''boss, leader, manager, chief'' (stub = '''-eb''')
::* '''xib'''....''department, bureau, office''
::* '''xub'''....''branch''
::* '''xyob'''....''headquarters, base''
: The church is an organization with the following hierarchy:
:* '''fyaxob'''....''church''
::* '''fyaxab'''....''clergy''
:::* '''fyaxeb'''....''priest''
::::* '''yabfyaxeb'''....''high priest, prelate''
::::* '''afyaxeb'''....''pope''
:::::* '''obafyaxeb'''....''cardinal''
::::* '''efyaxeb'''....''bishop''
:::::* '''abefyaxeb'''....''archbishop''
::::* '''ifyaxeb'''....''parish priest''
:::::* '''abifyaxeb'''....''monseignor''
:::::* '''obifyaxeb'''....''deacon''
==== XAB Words ====
: The word '''xab''' refers to the staff of an organization, eg.:
:* '''fyaxab'''....''clergy''
:* '''pontam xab'''....''hotel staff''
:* '''zyasauna xab'''....''general staff''
:* '''doxab'''....''public office''
:* '''dabxab'''....''government office''
==== XEB Words ====
: The root word '''xeb''' means ''boss, chief, head''. Here are some derived words:
{{small/top}}
:*'''xeb'''....''boss''
::*'''abxeb'''....''foreman''
::*'''afxeb'''....''authority''
::*'''afyaxeb'''....''metropolitan, patriarch, pontiff, pope, primate''
:::*'''afyaxeba'''....''papal''
::*'''beaxeb'''....''head watchman, warden''
::*'''dokexeb'''....''principal investigator''
::*'''efyaxeb'''....''bishop''
:::*'''efyaxeba'''....''episcopal''
::::*'''efyaxeban'''....''episcopate''
::::*'''efyaxebina'''....''episcopalian''
::*'''exeb'''....''chief of operations''
::*'''ifyaxeb'''....''curate, imam, parish priest, parson, preacher, priest, rabbi, vicar''
:::*'''romifyaxeb'''....''monsignor''
:::*'''obifyaxeb'''....''deacon''
:::*'''ifyaxeba'''....''priestly, sacerdotal''
:::*'''ifyaxebam'''....''rectory''
:::*'''ifyaxeban'''....''priesthood''
:::*'''ifyaxebem'''....''parish''
::::*'''ifyaxebema'''....''parochial''
::*'''izonkexeb'''....''scoutmaster''
::*'''koexeb'''....''spymaster''
::*'''obxeb'''....''inferior, sous-chef, sub-officer''
::*'''oybxeb'''....''underling''
::*'''sexeb'''....''master builder''
::*'''tulxeb'''....''chef''
::*'''tulyuxeb'''....''head waiter''
::*'''vafilyuxeb'''....''sommelier, wine steward''
::*'''xeber'''....''boss, run''
::*'''xebyan'''....''officialdom''
::*'''xebyea'''....''bossy''
::*'''yexeb'''....''boss, task master''
::*'''yibnyuxeb'''....''postmaster''
::*'''yufxeber'''....''browbeat''
{{small/end}}
==== XIB Words ====
: The root word '''xib''' means ''department''. Here are some derived words:
{{small/top}}
::*'''xib'''....''department''
:::*'''xiba'''....''departmental, official''
:::*'''xibut'''....''official, officer''
:::*'''ebxiba'''....''interdepartmental''
:::*'''obxib'''....''subdepartment''
{{small/end}}
==== XUB Words ====
: The root word '''xub''' means ''branch, subsidiary''. Here are some derived words:
{{small/top}}
:*'''xub'''....''branch, subsidiary, affiliate''
::*'''xuba'''....''subsidiary, succursal''
::*'''xubser'''....''branch out''
::*'''xubxwa'''....''branched out, affiliated''
::*'''abxub'''....''head office''
::*'''ayba xub'''....''superior department''
::*'''obxub'''....''subbranch, subsidiary''
{{small/end}}
==== XYOB Words ====
: The root word '''xyob''' means ''headquarters, base''.
{{small/top}}
:* '''xyob'''....''headquarters, base''
::* '''xyoba'''....''ground-floor, rank-and-file''
:::* '''xyobat'''....''clerk, rank-and-file''
::* '''xyober'''....''to headquarter, to base''
:::* '''xyobwa'''....''headquartered, based''
{{small/end}}
=== '''A''' ''one'', '''O''' ''zero'' ===
==== A words ====
: The root word '''a''' means ''one''. Here are some derived words:
{{small/top}}
:* '''a'''....''one'' (cardinal number)
:* '''awa'''....''one'' (numeric adjective)
:* '''ajod'''....''once''
:* '''anapa'''....''first''
:* '''anoga'''....''primary''
:* '''aa'''....''first''
::* '''aas'''....''first thing''
::* '''aat'''....''first person''
:* '''an-'''....''mono-, uni-''
::* '''ana'''....''single, lone, only''
:::* '''anay'''....''only''
::* '''angala'''....''simple''
::* '''angon'''....''monomer''
::* '''anyan'''....''series''
::* '''ankuna'''....''unilateral''
::* '''anla'''....''alone''
:::* '''anlat'''....''loner, hermit''
::::* '''anlatam'''....''hermitage''
::* '''anmeg'''....''monolith''
::* '''ansaga'''....''singular''
::* '''ansaun'''....''species''
::* '''anseuza'''....''monotone''
::* '''antada'''....''monogamous''
::* '''anteuza'''....''unanimous''
::* '''andeb'''....''monarch''
::* '''anteabar'''....''monacle''
::* '''antima'''....''unicameral''
::* '''antotin'''....''monotheism''
::* '''anvolza'''....''monochrome''
::* '''anxer'''....''to unite''
::* '''anyan'''....''set, series''
::* '''anyen'''....''quirk, oddity, character''
::* '''anzyukpar'''....''unicycle''
:* '''aot'''....''individual, person''
::* '''aota'''....''personal, individual''
:::* '''aotan'''....''personality, individuality''
:* '''anot'''....''private individual''
::* '''anota'''....''private''
:::* '''anotan'''....''privacy''
:* '''aon'''....''unit, entity''
::* '''aona'''....''unitary''
:* '''aun'''....''component, item, monad''
::* '''aunxer'''....''itemize''
:::* '''aunxwa'''....''itemized''
:* '''ayn'''....''a whole''
::* '''ayna'''....''entire, whole''
:::* '''aynan'''....''entirety, wholeness''
:::* '''aynay'''....''wholly, entirely''
::* '''aynxer'''....''to integrate''
:::* '''aynxen'''....''integration''
:::* '''aynxwa'''....''integrated''
{{small/end}}
==== O Words ====
: The root word '''o''' means ''zero''. Here are some derived words:
{{small/top}}
:* '''o'''....''zero, null''
:* '''o-'''....''not-, un-''
::* '''oa'''....''zeroth''
::* '''onapa'''....''zeroth''
::* '''owa'''....''zero, null''
:* '''oun'''....''nil, nonentity, null''
::* '''ounxer'''....''anihilate, nullify''
:::* '''ounxwa'''....''anihilated, nullified''
{{small/end}}
=== '''YAN''' ''together'', '''YON''' ''apart'' ===
: The base morpheme '''yan''' (''together'') contrasts with '''yon''' (''apart''). The following chart demonstrates this polarity:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YAN vs YON Family
| '''yana'''....''joint'' || '''yona'''....''separate''
|-
| '''yan bi'''....''together with'' || '''yon bi'''....''apart from''
|-
| '''yanxer'''....''to join'' || '''yonxer'''....''to separate''
|-
| '''yanxwa'''....''joint'' || '''yonxwa'''....''separate''
|-
| '''yantadser'''....''to mate'' || '''yontadser'''....''to divorce''
|-
| '''yantos'''....''compassion'' || '''yontos'''....''antipathy''
|-
| '''yanav'''....''party, bloc'' || '''yonav'''....''sect, faction''
|-
| '''yanuzper'''....''to converge'' || '''yonuzper'''....''to diverge''
|-
| '''yanota'''....''communal'' || '''yonota'''....''private''
|-
| '''yansauna'''....''common'' || '''yonsauna'''....''distinct''
|-
| '''yanber'''....''assemble'' || '''yonber'''....''take apart''
|-
| '''yank'''....''link'' || '''yonk'''....''rift''
|}
{{small/end}}
==== Collective Nouns ====
: The suffix '''-yan''' is used to form collective nouns. Here are some examples:
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Collective Nouns with -YAN
|-
! SINGLETON !! COLLECTION
|-
| '''fab'''....''tree'' || '''fabyan'''....''forest''
|-
| '''vyab'''....''rule'' || '''vyabyan'''....''regimen, system''
|-
| '''vos'''....''flower'' || '''vosyan'''....''bouquet''
|-
| '''uzun'''....''ring'' || '''uzunyan'''....''chain''
|-
| '''aot'''....''person'' || '''aotyan'''....''group''
|-
| '''teyen'''....''idea'' || '''teyenyan'''....''ideology''
|-
| '''tyenar'''....''tool of the trade'' || '''tyenyan'''....''technology''
|-
| '''tixut'''....''student'' || '''tixutyan'''....''class''
|-
| '''telar'''....''eating utensil'' || '''telaryan'''....''cutlery''
|-
| '''sir'''....''machine'' || '''siryan'''....''machinery''
|-
| '''pat'''....''bird'' || '''patyan'''....''flock''
|}
{{small/end}}
: An extension of '''yan''' is '''nyan''', meaning ''stack, pile, accumulation, crowd,'' and so is a bit more intensive:
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Collective Nouns with -NYAN
|-
! SINGLETON !! COLLECTION
|-
| '''pet'''....''land animal'' || '''petnyan'''....''herd''
|-
| '''aot'''....''person'' || '''aotnyan'''....''crowd''
|-
| '''dit'''....''citizen'' || '''ditnyan'''....''populace''
|-
| '''taib'''....''bone'' || '''taibnyan'''....''skeleton''
|-
| '''dun'''....''word'' || '''dunnyan'''....''list''
|-
| '''vaob'''....''hay'' || '''vaobnyan'''....''haystack''
|-
| '''mag'''....''fire'' || '''magnyan'''....''pyre''
|-
| '''draf'''....''card'' || '''drafnyan'''....''deck of cards''
|-
| '''ao-'''....''vertical'' || '''aonyan'''....''list''
|-
| '''ovbopet'''....''sheep'' || '''ovbopetnyan'''....''flock of sheep''
|-
| '''taib'''....''bone'' || '''taibnyan'''....''skeleton''
|-
| '''feb'''....''fruit'' || '''febnyan'''....''bunch (of fruit)''
|-
| '''fyus'''....''scrap'' || '''fyusnyan'''....''scrapheap''
|}
{{small/end}}
: The following confusing terms should be kept distinct:
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ Collective Words
|-
! NOUN !! ADJECTIVE
|-
| '''aot'''....''individual, person'' || '''aota'''....''personal''
|-
| '''aut'''....''myself'' || '''auta'''....''my own''
|-
| '''anot'''....''individual'' || '''anota'''....''private''
|-
| '''aotyan'''....''group'' || '''aotyana'''....''collective''
|-
| '''aotnyan'''....''crowd'' ||
|-
| '''tyod'''....''people'' || '''tyoda'''....''popular''
|-
| '''tyodin'''....''populism'' || '''tyodina'''....''populist''
|-
| '''ditdab'''....''republic'' || '''ditdaba'''....''republican''
|-
| '''tyodab'''....''democracy'' || '''tyodaba'''....''democratic''
|-
| '''yaut'''....''ourselves'' || '''yauta'''....''our own''
|-
| '''yanot'''....''constituent, commoner'' || '''yanota'''....''common, collective, public''
|-
| '''yanotyan'''....''community, constituency, public'' || '''yanotyana'''....''communitarian''
|-
| '''yanotnyan'''....''commune, collective'' || '''yanotnyana'''....''communal, collective''
|-
| '''yanotin'''....''communism'' || '''yaotina'''....''communist''
|-
| '''dityan'''....''citizenry'' || '''dityana'''....''of the citizenry''
|-
| '''ditnyan'''....''populace'' || '''ditnyana'''....''popular''
|-
| '''ditnyanin'''....''populism'' || '''ditnyanina'''....''populist''
|-
| '''yanav'''....''party'' (political) || '''yanava'''....''partisan''
|-
| '''yaniv'''....''party'' (fun) || '''yaniva'''....''festive''
|-
| '''yanutyan'''....''partnership'' || '''yanutyana'''....''partnership''
|}
{{small/end}}
: More collectives:
{{small/top}}
::{| class="wikitable" style="background:lightyellow"
|+ More collective Words
|-
! NOUN
|-
| '''detyan'''....''association''
|-
| '''nundetyan'''....''company, firm''
|-
| '''xalutyan'''....''commission, committee''
|-
| '''ekutyan'''....''team''
|-
| '''ublawatyan'''....''delegation''
|-
| '''tyenutyan'''....''guild''
|-
| '''niutyan'''....''clientele''
|-
| '''tuunyan'''....''information''
|-
| '''anyan'''....''series''
|-
| '''tyunyan'''....''ideology''
|}
{{small/end}}
=== '''AB''' ''on'', '''EB''' ''between'', '''OB''' ''off'' ===
: Summary:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ AB-EB-OB Family
|- valign=top
| '''ab'''....''on''<br>'''ayb'''....''over''<br>'''aba'''....''superior''<br>'''abem'''....''top''<br>'''aber'''....''put on''<br>'''aper'''....''get on''<br>'''ayber'''....''to go over'' || '''eb'''....''between''<br>'''eyb'''....''among''<br>'''eba'''....''in-between''<br>'''ebem'''....''interval''<br>'''eber'''....''block''<br>'''eper'''....''intervene'' || '''ob'''....''off''<br>'''oyb'''....''under''<br>'''oba'''....''inferior''<br>'''obem'''....''bottom''<br>'''ober'''....''remove''<br>'''oper'''....''get off''<br>'''oyper'''....''to go under''
|}
{{small/end}}
=== '''YAB''' ''up'', '''YEB''' ''in'', '''YOB''' ''down'', '''OYEB''' ''out'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YAB-YEB-YOB-OYEB Family
|- valign=top
|'''yab'''....''up''<br>'''yaber'''....''raise''<br>'''yaper'''....''rise''<br>'''yabna'''....''superior''<br>'''yaiba'''....''high''<br>'''yabaga'''....''tall''<br>'''yaboga'''....''short''<br>'''yabem'''....''upstairs'' ||'''yeb'''....''in''<br>'''yeber'''....''put in''<br>'''yeper'''....''get in''<br>'''yeba'''....''inner''<br>'''yeiba'''....''deep inside''<br>'''yebna'''....''interior''<br>'''yebem'''....''indoors''<br>'''oyepem'''....''entrance'' || '''yob'''....''down''<br>'''yober'''....''lower''<br>'''yoper'''....''descend''<br>'''yobna'''....''inferior''<br>'''yoba'''....''low''<br>'''youba'''....''shallow''<br>'''yoiba'''....''deep''<br>'''yobem'''....''downstairs''
|-
| ||'''oyeb'''....''out''<br>'''oyeber'''....''put out''<br>'''oyeper'''....''get out''<br>'''oyeba'''....''outer''<br>'''oyebna'''....''exterior''<br>'''oyebem'''....''outdoors''<br>'''oyepem'''....''exit''
|}
{{small/end}}
=== '''AM''' ''heat'', '''OM''' ''cold'', '''IM''' ''wet'', '''UM''' ''dry'' ===
: These root words are all related to thermal conditions. Here are some derivations:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Thermal Conditions
|-
| '''am'''....''heat'' || '''om''' ....''cold''|| '''im'''....''moisture''||'''um'''....''drought''
|-
| '''ama'''....''hot'' || '''oma''' ....''cold''|| '''ima'''....''wet''|| '''uma'''....''dry''
|-
| '''ayma'''....''warm'' || '''oyma''' ....''cool'' ||'''iyma'''....''humid''||'''uyma'''....''a little dry''
|-
| '''amxer'''....''to heat'' || '''omxer''' ....''to cool''|| '''imxer'''....''to wet''|| '''umxer'''....''to dry''
|-
| '''amxar'''....''heater'' || '''omxar''' ....''refrigerator'' ||'''imxar'''....''irrigator''||'''umxar'''....''dryer''
|}
{{small/end}}
: Note these derivatives:
:* '''aoma'''....''lukewarm''
:* '''amana'''....''thermal''
:* '''amnag'''....''temperature''
::* '''amnagar'''....''thermometer''
:* '''amnak'''....''degree of temperature''
=== '''YAM''' ''fire'', '''YOM''' ''ice'', '''YIM'''....''flood'', '''YUM''' ''drought'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Thermal Conditions
|-
| '''yam''' ....''fire'' || '''yom'''....''ice''||'''yim'''....''flood'' ||'''yum'''....''drought''
|-
| '''yama''' ....''fiery'' || '''yoma'''....''frozen'' || '''yima'''....''diluvian'' || '''yuma'''....''drought-ridden''
|-
| '''yayma'''....''cozy'' || '''yoyma'''...''frosty''|| ||
|-
| '''yamxer''' ....''to burn'' || '''yomxer'''....''to freeze'' || '''yimxer'''....''to flood'' || '''yumxer'''....''to cause a drought''
|-
| '''yamxar'''....''burner'' || '''yomxar''' ....''freezer'' || ||
|}
{{small/end}}
: Note these derivative:
: Note also: '''yam''' is a synonym of '''mag''' and '''yim''' is a synonym of '''ilik'''.
=== '''IB''' ''away'', '''UB''' ''toward''===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ IB-UB Family
|- valign=top
|'''ib'''....''away, away from''<br>'''iber'''....''receive''<br>'''iper'''....''leave''<br>'''ibler'''....''reap''<br>'''iblir'''....''reaper''<br>'''datiber'''....''to host''||'''ub'''....''toward''<br>'''uber'''....''send''<br>'''uper'''....''come''<br>'''uber'''....''to send''<br>'''ubun'''....''mission''<br>'''ubwatyan'''....''mission, delegation''
|}
{{small/end}}
=== '''YIB''' ''far'', '''YUB''' ''near'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YIB-YUB Family
|- valign=top
|'''yib'''....''far''<br>'''yiber'''....''remove''<br>'''yiper'''....''go far away''<br>'''yiba'''....''remote''<br>'''yibaja'''....''ancient''<br>'''yibsin'''....''television''<br>'''yibem'''....''distance''|| '''yub'''....''near''<br>'''yuber'''....''bring''<br>'''yuper'''....''approach''<br>'''yuba'''....''distant''<br>'''yubaja'''....''recent''<br>'''yubge'''....''almost''<br>'''yubem'''....''vicinity''
|}
{{small/end}}
=== '''BI''' ''from'', '''BE''' ''at'', '''BU''' ''to'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ BI-BE-BU family Family
|- valign=top
|'''bi'''....''from''<br>'''bier'''....''take''<br>'''biler'''....''obtain''<br>'''birer'''....''to grab''<br>'''bixer'''....''pull''<br>'''bixler'''....''yank''<br>'''bixrer'''....''ravage, rape''<br>'''bim'''....''origin'' ||'''be'''....''at''<br><br>'''beler'''....''carry''<br><br>'''bexer'''....''hold, have''<br>'''bexler'''....''keep''<br>'''bexrer'''....''preserve''<br>'''bem'''....''location''||'''bu'''....''to''<br>'''buer'''....''give''<br>'''buler'''....''grant''<br>'''burer'''....''yield''<br>'''buxer'''....''push''<br>'''buxler'''....''drive''<br>'''buxrer'''....''to pump''<br>'''bum'''....''destination''<br>
|}
{{small/end}}
=== '''BYI''' ''since'', '''BYU''' ''up to'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ BYI-BYU family Family
|- valign=top
|'''byi'''....''from''<br>'''byiser'''....''emanate''<br>'''byixer'''....''derive''<br>'''byiper'''....''originate''<br>'''byin'''....''source'' ||'''byu'''....''up to''<br>'''byuser'''....''come into contact with''<br>'''byuxer'''....''touch''<br>'''byuper'''....''head for''<br>'''byun'''....''target''<br>
|}
{{small/end}}
=== '''FER''' ''to want'' ===
[[File:I want you.jpg|thumb|]]
: The verb '''fer''' means ''to want'' and is following by a noun or pronoun, an infinitive, or an entire clause, eg.:
::* '''At voy <u>fe</u> hyea yux.'''....''I do not <u>want</u> any help.''
::* '''Yat <u>fa</u> iyt poser.'''....''We <u>wanted</u> her to stop.''
::* '''Duven et <u>fe</u> per bay at?'''....''Do you <u>want</u> to go with me?''
::* '''Yit voy <u>fe</u> hos at fe.'''....''They do not <u>want</u> what I want.''
::* '''At <u>fe</u> et iper.'''....''I <u>want</u> you to leave.''
: Use of the verb '''fer''' in the hypothetical mood (conditional) means ''would like'', eg.:
::* '''At <u>fu</u> beser him.'''....''I <u>would like</u> to stay here.''
::* '''Duven et <u>fu</u> til?'''....''<u>Would</u> you <u>like</u> a drink?''
: Two more intense versions of '''fer''' are:
:* '''fler'''....''to desire''
:* '''frer'''....''to crave''
: Other derivatives:
::* '''fon'''....''will, volition''
::* '''fwa'''....''wanted''
::* '''fler'''....''to desire, be fond of''
::* '''flon'''....''desire, fondness''
::* '''frer'''....''to crave, to yearn''
::* '''fron'''....''craving, yearning''
::* '''ojfer'''....''to wish, aspire''
::* '''ojfon'''....''wish''
::* '''vafer'''....''to resolve''
::* '''vaf'''....''resolution''
::* '''fiojfer'''....''to wish well, mean well''
::* '''fiojfoni'''....''well wishes''
::* '''fifon'''....''goodwill, benevolence''
::* '''fuojfer'''....''to wish bad for''
::* '''fufon'''....''ill will, malevolence''
::* '''fuojfon'''....''bad wish''
::* '''fonder'''....''to volunteer''
::* '''grafer'''....''have a craving for, be addicted to''
::* '''graf'''....''addiction, craving''
::* '''gafer'''....''to prefer''
::* '''kofer'''....''to covet''
::* '''kofler'''....''to envy''
::* '''kofrer'''....''to be jealous of''
::* '''tepfer'''....''to pretend''
::* '''dwafer'''....''to mean, intend''
: The verb '''fer''' can be followed by an infinitive or a dependent clause in the hypothetical mood:
::* '''At fe <u>et ser</u> iva.'''....''I want <u>you to be</u> happy.''
::* '''At fe <u>van et su</u> iva.'''....''I want <u>that you be</u> happy.''
=== '''FI''' ''good'', '''FU''' ''bad'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ FI-FU Family
|-
| valign=top|'''fia'''....''good''<br>'''fila'''....''delightful''<br>'''fira'''....''excellent''<br>'''fika'''.....''perfect''<br>'''fiza'''....''honorable''<br>'''fizta'''....''noble''<br>'''fizda'''....''honest''<br>'''flia'''....''superb''<br>'''fria'''....''exquisite'' ||valign=top| '''fua'''....''bad''<br>'''fula'''....''grim''<br>'''fura'''....''rotten''<br>'''fuka'''....''defective''<br>'''fuza'''....''dishonorable''<br>'''fuzta'''....''ignoble''<br>'''fuzda'''....''dishonest''<br>'''flua'''....''terrible''<br>'''frua'''...''atrocious''
|-
| valign=top|'''fin'''....''virtue''<br>'''dofin'''....''morality''<br>'''fiuj'''....''success''||'''fun'''....''vice''<br>'''dofun'''....''crime''<br>'''fuuj'''....''failure''
|-
| valign=top|'''fider'''....''praise''<br>'''fizuer'''....''respect''||'''fuder'''....''malign''<br>'''fuzuer'''....''disrespect''
|}
{{small/end}}
=== '''FYI''' ''useful'', '''FYU''' ''harmful'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ FYI-FYU Family
|-
|valign=top| '''fyia'''....''useful''<br>'''fyin'''....''asset''<br>'''fyiz'''....''award''<br>'''fyiyz'''....''reward''<br>'''fyis'''....''benefit''<br>'''fyixer'''....''utilize''<br>'''fyider'''....''complement''<br>'''fyidaluer'''....''advise'' ||valign=top| '''fyua'''....''harmful''<br>'''fyun'''....''liability''<br>'''fyuz'''....''punishment''<br>'''fyuyz'''....''penalty''<br>'''fyus'''....''waste''<br>'''fyuxer'''....''ruin, abuse''<br>'''fyuder'''....''insult''<br>'''fyudaluer'''....''misadvise''
|}
{{small/end}}
=== '''IF''' ''love'', '''UF''' ''hate'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ IF-UF Family
|-
| valign=top| '''ifer'''....''love''<br>'''iyfer'''....''like''<br>'''ifuer'''....''to please''<br>'''ifler'''....''be affectionate for''<br>'''ifrer'''....''worship''<br>'''ifon'''....''love''<br>'''ifwa'''....''beloved''<br>'''tobifa'''....''humane'' || valign=top|'''ufer'''....''hate''<br>'''uyfer'''....''dislike''<br>'''ufuer'''....''to spite''<br>'''ufler'''...''loath''<br>'''ufrer'''....''despise''<br>'''ufon'''....''hate''<br>'''ufwa'''....''odious''<br>'''tobufa'''....''misanthropic''
|}
{{small/end}}
=== '''YIF''' ''brave'', '''YUF''' ''afraid'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YIF-YUF Family
|-
| valign=top|'''yifa'''....''brave''<br>'''yiflan'''....''valor''<br>'''yifrat'''....''hero''<br>'''yifer'''....''dare''<br>'''yifxer'''....''to encourage''<br>'''jeubyifa'''....''winterhardy'' ||valign=top| '''yufa'''....''afraid''<br>'''yuflan'''....''cowardice''<br>'''yufrat'''....''scaredy-cat''<br>'''yufer'''....''fear''<br>'''yufxer'''....''to frighten''<br>'''milyufa'''....''hydrophobic''
|}
{{small/end}}
: Note that the suffixes '''-if''' and '''-uf''' are used to translate words in English meaning ''-philia'' and ''-phobia'', respectively, eg. '''tiibilif'''....''hemophilia'' and '''hyutuf'''....''xenophobia''. Also, words with the prefix ''miso-'' meaning ''hatred of'' use the Mirad suffix '''-uf''' ('''toybuf'''....''misogyny'').
=== '''AF''' ''permission'', '''EF''' ''need'', '''OF''' ''prohibition'' ===
: Summary:
{{small/top}}
{| class="wikitable" style="background:lightyellow"
|+ AF-EF-OF Family
|- valign=top
! '''af'''....''permission'' !! '''ef'''....''need/necessity'' !! '''of'''....''prohibition''
|-
| '''afer'''....''may''<br>'''afa'''....''allowed''<br>'''afwa'''....''permissable''<br>'''afxer'''....''allow''<br>'''dalafa'''....''authorized to speak'' || '''efer'''....''need''<br>'''efa'''....''in need of''<br>'''efwa'''....''necessary''<br>'''efxer'''....''necessitate''<br>'''telefa'''....''hungry'' || '''ofer'''....''be prohibited''<br>'''ofa'''....''not allowed''<br>'''ofwa'''....''prohibited''<br>'''ofxer'''....''prohibit''<br>'''yepofa'''....''prohibited from entering''
|}
{{small/end}}
As a prefix, '''of''' is used to form verbs relating to prohibited actions:
:* '''bier'''....''to take'' --> '''ofbier'''....''to steal''
:* '''boyxer'''....''to deprive'' --> '''ofboyxer'''....''to rob''
:* '''buier'''....''to exchange'' --> '''ofbuier'''....''to fence''
:* '''fer'''....''to want'' --> '''offer'''....''to covet''
:* '''gelxer'''....''to imitate'' --> '''ofgelxer'''....''to plagiarize''
:* '''nuier'''....''to market'' --> '''ofnuier'''....''to smuggle''
:* '''pier'''....''to leave'' --> '''ofpier'''....''to desert''
:* '''potkexer'''....''to hunt'' --> '''ofpotkexer'''....''to poach''
:* '''teexer'''....''to listen'' --> '''ofteexer'''....''to eavesdrop''
=== '''YAF''' ''ability'', '''YEF''' ''obligation'', '''YOF''' ''inability'' ===
{{small/top}}
{| class="wikitable" style="background:lightyellow"
|+ YAF-YEF-YOF Family
|- valign=top
! '''yaf'''....''ability'' !! '''yef'''....''duty'' !! '''yof'''....''inability''
|-
| '''yafer'''....''can''<br>'''yafa'''....''able''<br>'''yafwa'''....''possible''<br>'''yafxer'''....''enable''<br>'''teatyafwa'''....''visible''<br>'''yafon'''....''power'' || '''yefer'''....''must''<br>'''yefa'''....''obliged''<br>'''yefwa'''....''obligatory''<br>'''yefxer'''....''oblige''<br>'''vatexyefwa'''....''trustworthy''<br>'''yefon'''....''duty'' || '''yofer'''....''cannot''<br>'''yofa'''....''unable''<br>'''yofwa'''....''impossible''<br>'''yofxer'''....''incapacite''<br>'''teatyofwa'''....''invisible''<br>'''yofon'''....''inability''
|}
{{small/end}}
: These words can be suffixed to verb roots to form many modal verbs, adjectives, and nouns:
::* '''teater'''....''to see''
:::* '''teatyofa'''....''blind''
:::* '''teatyofwa'''....''invisible''
::* '''azufer'''....''to detest''
:::* '''azufyefa'''....''detestable''
::* '''doteuder'''....''to vote''
:::* '''doteudafxer'''....''to franchise''
:::* '''doteudofxwati'''....''the disenfranchised''
::* '''tester'''....''to understand''
:::* '''testyafwan'''....''comprehensibility''
::* '''fider'''....''to praise''
:::* '''fidyefwa'''....''praiseworthy''
=== '''FYA''' ''holy'', '''FYE''' ''mythical'', '''FYO''' ''profane''===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ FYA-FYE-FYO Family
|-
| '''fyaa'''....''holy'' || '''fyea'''....''fantastical, mythological, magical'' || '''fyoa'''....''profane, evil''
|-
| '''fyamir'''....''heaven'' || '''fyemir'''....''fantasia'' || '''fyomir'''....''hell''
|-
| '''fyax'''....''sacrament'' || '''fyex'''....''magic'' || '''fyox'''....''sin, sacrilege''
|-
| '''fyaz'''....''grace'' || '''fyez'''....''charm'' || '''fyoz'''....''disgrace''
|-
| '''fyaxin'''....''religion''<br>'''fyatez'''....''cult'' || '''fyexin'''....''sorcery'' || '''fyoxin'''....''witchcraft''
|-
| '''fyaxel'''....''liturgy'' || '''fyexel'''....''ritual'' || '''fyoxel'''....''occult''
|-
| '''fyaxam'''....''church'' || ||
|-
| '''fyaxob'''....''church hierarchy'' || ||
|-
| '''fyaxeb'''....''clergyman'' || '''fyexeb'''....''wizard'' || '''fyoxeb'''....''occult leader''
|-
| '''afyaxeb'''....''pope'' || ||
|-
| '''efyaxeb'''....''cardinal'' || ||
|-
| '''abifyaxeb'''....''archbishop'' || ||
|-
| '''ifyaxeb'''....''bishop'' || ||
|-
| '''ufyaxeb'''....''parish priest'' || ||
|-
| '''obufyadeb'''....''deacon'' || ||
|-
| '''fyatob'''....''saint'' || '''fyetob'''....''fairy'' || '''fyotob'''....''demon''
|-
| '''fyatop'''....''holy spirit'' || '''fyetop'''....''ghost, sprite'' || '''fyotop'''....''ghoul''
|-
| '''fyat'''....''saint'' || '''fyet'''....''elf, pixy'' || '''fyot'''....''gremlin, imp, goblin, troll, ogre''
|-
| '''fyavyad'''....''oath'' || ||
|-
| '''fyavatex'''....''faith'' || ||
|-
| '''fyatyez'''....''hieromancy'' || '''fyetyez'''....''magic'' || '''fyotyez'''....''witchcraft''
|-
| '''fyatyezmuv'''....''miter''|| '''fyetyezmuv'''....''magic wand'' || '''fyetyezmuv'''....''jinx''
|-
| '''fyadresiyn'''....''hieroglyph'' || ||
|-
| '''fyatead'''....''testament'' ||
|-
| '''fyad'''....''blessing''|| '''fyed'''....''incantation'' || '''fyod'''....''curse''
|-
| '''fyasin'''....''icon'' || '''fyesin'''....''charm'' || '''fyosin'''....''pornography''
|-
| '''fyasyun'''....''idol'' || '''fyesyun'''....''talisman'' || '''fyosyun'''....''fetish, taboo''
|-
| '''fyaifrer'''....''worship'' || ||
|-
| '''fyadil'''....''prayer'' || '''fyedil'''....''spell'' || '''fyodil'''....''curse''
|-
| '''fyapop'''....''crusade'' || ||
|-
| '''fyamilber'''....''baptize'' || ||
|-
| '''fyaojdun'''....''prophesy'' || ||'''fyoojdun'''....''ill omen''
|-
| '''fyaxyel'''....''holy unction'' || ||
|-
| '''fyateaz'''....''miracle'' || '''fyeteaz'''....''wonderment'' || '''fyoteaz'''....''pox''
|-
| '''fyasem'''....''altar'' || ||
|-
| '''fyasim'''....''throne''|| ||
|-
| '''fyakosin'''....''mysticism''|| ||
|-
| '''fyakosut'''....''hermit''|| ||
|-
| '''fyajub'''....''feast day''|| ||
|-
| '''fyadyes'''....''bible''|| ||
|-
| '''fyadrenyan'''....''scriptures''|| ||
|-
| '''fyadin'''....''gospel'' || '''fyedin'''....''myth, legend, fairytale'' ||
|-
| '''fyadun'''....''blessing''|| '''fyedun'''....''magic spell''||'''fyodun'''....''curse''
|-
| '''fyadot'''....''religious order''|| '''fyedot'''....''mystical cult'' || '''fyodot'''....''occult society''
|-
| '''fyaantinat'''....''monk''|| ||
|-
| '''fyatwid'''....''friar'' || ||
|-
| '''fyabuler'''....''consecrate''|| ||
|-
| '''fyabyena'''....''moral''|| ||
|-
| '''fyadal'''....''sermon''|| ||
|-
| '''fyadalsem'''....''pulpit''|| ||
|-
| '''fyadalzyabut'''....''evangelist''|| ||
|}
{{small/end}}
=== '''AG''' ''big'', '''EG''' ''normal'', '''OG''' ''small'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ AG-EG-OG Family
|-
| valign= top | '''aga'''....''big''<br>'''agan'''....''size''<br>'''agaxer'''....''magnify''<br>'''agser'''....''grow''<br>'''aaga'''....''main''<br>'''agla'''....''huge''<br>'''agra'''....''gigantic, mega-''<br>'''agsa'''....''adult''<br>'''agta'''....''great''<br>'''agala'''....''major''|| valign=top|'''ega'''....''normal''<br>'''egan'''....''normalcy''<br>'''egaxer'''....''normalize''<br>'''egon'''....''standard''<br>'''egonxer'''....''standardize'' ||valign=top|'''oga'''....''little''<br>'''ogan'''....''smallness''<br>'''ogaxer'''....''minimize''<br>'''ogser'''....''shrink''<br>'''ooga'''....''minor''<br>'''ogla'''....''tiny''<br>'''ogra'''....''microscopic''<br>'''ogala'''...''minor''
|}
{{small/end}}
=== '''YAG''' ''long'' '''YOG''' ''short'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YAG-YOG Family
|-
| valign=top|'''yaga'''....''long''<br>'''yagan'''....''length''<br>'''yagaxer'''....''lengthen''<br>'''yagxer'''....''stretch''<br>'''yagteja'''....''long-lived''
||'''yoga'''....''short''<br>'''yogan'''....''shortness''<br>'''yogaxer'''....''abbreviate''<br>'''yogxer'''....''contract''<br>'''yogteja'''....''short-lived''
|}
{{small/end}}
=== '''GA''' ''more'', '''GE''' ''equal'', '''GO''' ''less'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ GA-GE-GO Family
|-
| valign=top| '''ga'''....''more''<br>'''gay'''....''also''<br>'''gaj'''....''still''<br>'''gaxer'''....''increase''<br>'''gab'''....''plus''<br>'''gal'''....''times, multiplied by''<br>'''gar'''....''to the power of''<br>'''gan'''....''whole'' || '''ge'''....''equal''<br>'''gey'''....''even''<br>'''gel'''....''as''<br>'''gexer'''....''equalize''<br>'''geber'''....''equate''<br>'''gedrer'''....''copy''<br>'''gegon'''....''equity''<br>'''geder'''....''quote''<br>'''gelder'''....''echo''<br>'''gelxer'''....''imitate''<br>'''geltxer'''....''identify''<br>'''geyla'''....''similar'' || valign=top|'''go'''....''less''<br>'''goy'''....''except''<br>'''goj'''....''no longer''<br>'''goxer'''....''decrease''<br>'''gob'''....''minus, subtracted by''<br>'''gol'''....''divided by''<br>'''gor'''....''to the minus power of''<br>'''gon'''....''part''<br>'''gos'''....''piece''<br>'''gobler'''....''cut''
|-
| valign=top |'''gla'''....''much, many, very''<br>'''glan'''....''quantity''<br>'''glagon'''....''plurality''<br>'''glal'''....''cluster''<br>'''glatwa'''....''famous''<br>'''duhogla?'''....''how much?'' ||valign=top| '''gle'''....''some, rather'' ||valign=top| '''glo'''....''little, few, slightly''<br>'''glon'''....''paucity''<br>'''glogon'''....''minority''
|-
| valign=top | '''gra'''....''too much, too''<br>'''gran'''....''excess'' || valign=top|'''gre'''....''enough''<br>'''gren'''....''quorum'' || valign=top|'''gro'''....''too little, not enough''<br>'''gron'''....''shortage''
|-
| valign=top|'''gwa'''....''most''<br>'''gwafua'''....''worst''<br>'''gwaifer'''...''prefer'' ||valign=top| '''gwe'''....''just'' || valign=top|'''gwo'''....''least''<br>'''gwomul'''....''atom''<br>'''gwos'''....''particle''
|}
{{small/end}}
=== '''GI''' ''point'' '''GU''' ''angle'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ GI-GU Family
|-
| valign=top|'''gia'''....''sharp''<br>'''gin'''....''point''<br>'''grin'''....''blade''<br>'''giber'''....''poke''<br>'''ginod'''....''peak''<br>'''ginid'''....''cone''<br>'''gixer'''....''sharpen''<br>'''ogia'''....''dull''<br>'''giseux'''....''shriek''<br>'''gitep'''....''wit''<br>'''giteus'''....''zest''<br>'''gidud'''....''quip''|| valign=top|'''gua'''....''angular''<br>'''gun'''....''angle''<br>'''grun'''....''hook''<br>'''gum'''....''corner''<br>'''ungun'''....''quadrangle''<br>'''ingun'''....''triangle''<br>'''unizgun'''....''rectangle''<br>'''ungekun'''....''square''<br>'''yagunid'''....''cube''<br>'''mepgun'''....''fork in the road''<br>'''gunid'''....''wedge''<br>'''gupnod'''....''turning point, verge''
|}
{{small/end}}
=== '''GYA''' ''fat'', '''GYO''' ''thin'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ GYA-GYO Family
|-
| valign=top|'''gyaa'''....''fat, thick''<br>'''gyaan'''....''girth''<br>'''gyala'''....''massive''<br>'''glata'''....''obese''<br>'''gyaya'''....''pudgy''<br>'''gyagina'''....''blunt''<br>'''gyagoblun'''....''slab''<br>'''gyagol'''....''hunk''<br>'''gyaxer'''....''thicken, fatten'' || valign=top|'''gyoa'''....''thin''<br>'''gyoan'''....''slenderness''<br>'''gyola'''....''fine, sheer''<br>'''gyota'''....''lean''<br>'''gyoya'''....''puny''<br>'''gyofa'''....''gaunt''<br>'''gyogoblun'''....''thin slice''<br>'''gyogol'''....''cutlet''<br>'''gyoxer'''....''streamline''
|}
{{small/end}}
=== '''GYI''' ''solid'', '''GYU''' ''fragile'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ GYI-GYU- Family
|-
| valign=top|'''gyia'''....''solid''<br>'''gyila'''....''firm''<br>'''gyita'''....''robust''<br>'''gyifa'''....''stiff''<br>'''gyitef'''....''helmet''<br>'''gyitepa'''....''tough-minded''<br>'''gyixer'''...''solidify''<br>'''gyifxer'''....''to stiffen''|| valign=top|'''gyua'''....''fragile''<br>'''gyula'''....''supple''<br>'''gyusa'''....''delicate''<br>'''gyufa'''....''flimsy''<br>'''gyuka'''....''scant''<br>'''gyuya'''....''dainty''<br>'''gyuta'''....''frail''<br>'''gyutelam'''....''delicatessen''
|}
{{small/end}}
=== '''IG''' ''fast'', '''UG''' ''slow'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ IG-UG- Family
|-
| '''iga'''....''fast''<br>'''igra'''....''frenetic''<br>'''igar'''....''accelerator''<br>'''igper'''....''run''<br>'''tepiga'''....''quick-witted''<br>'''igxer'''....''to speed up'' || '''uga'''....''slow''<br>'''igra'''....''sluggish''<br>'''ugar'''....''brake''<br>'''ugper'''....''amble''<br>'''tepuga'''....''slow-witted''<br>'''ugxer'''....''to slow down''
|}
{{small/end}}
=== '''YIG''' ''hard'', '''YUG''' ''soft'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YIG-YUG- Family
|-
| '''yiga'''....''hard''<br>'''yigla'''....''rude''<br>'''yigra'''....''violent''<br>'''yigta'''....''tense''<br>'''yigza'''....''sharp, sour''<br>'''yigsa'''....''rigid''<br>'''yigfa'''....''rough''<br>'''yigaza'''....''bitter''<br>'''bilyig'''....''cheese'' || '''yuga'''....''soft''<br>'''yugla'''....''polite''<br>'''yugra'''....''gentle''<br>'''yugta'''....''lax''<br>'''yugza'''....''mild, sweet''<br>'''yugsa'''....''supple, flexible''<br>'''yugfa'''....''smooth''<br>'''yugsra'''....''elastic''<br>'''bilyug'''....''butter''
|}
{{small/end}}
=== '''AJ''' ''past'', '''EJ''' ''present'', '''OJ''' ''future'' ===
{{small/top}}
{| class="wikitable" style="background:lightyellow"
|+ AJ-EJ-OJ Family
|- valign=top
| '''aj'''....''past''<br>'''ajna'''....''old''<br>'''ajyena'''....''old-fashioned''<br>'''yibaj'''....''distant past''<br>'''ajber'''....''to pass'' || '''ej'''....''present''<br>'''ejna'''....''new''<br>'''ejyena'''....''modern''<br>'''yubej'''....''here-and-now''<br>'''ejber'''....''to present'' || '''oj'''....''future''<br>'''ojna'''....''to-be''<br>'''ojyena'''....''futuristic''<br>'''yiboj'''....''distant future''<br>'''ojber'''....''to postpone''
|}
{{small/end}}
=== '''TAJ''' ''birth'', '''TEJ''' ''life'', '''TOJ''' ''death'' ===
{{small/top}}
{| class="wikitable" style="background:lightyellow"
|+ TAJ-TEJ-TOJ Family
|- valign=top
| '''taj'''....''birth''<br>'''tajer'''....''be born''<br>'''tajber'''....''give birth''<br>'''taja'''....''natal''<br>'''bostajya'''....''stillborn'' || '''tej'''....''life''<br>'''tejer'''....''live''<br>'''tejber'''....''bring to life''<br>'''teja'''....''vital''<br>'''tejea'''....''alive'' || '''toj'''....''death''<br>'''tojer'''....''die''<br>'''tojber'''....''kill''<br>'''toja'''....''mortal''<br>'''tojya'''....''dead''
|}
{{small/end}}
=== '''JA''' ''before'', '''JE''' ''during'', '''JO''' ''after'', '''JI''' ''since'', '''JU''' ''until'' ===
{{small/top}}
{| class="wikitable" style="background:lightyellow"
|+ JA-JE-JO-JI-JU Family
|-
| valign=top|'''ja'''....''before''<br>'''jaa'''....''anterior''<br>'''jana'''....''previous''<br>'''jay'''....''already''<br>'''jater'''....''presage''<br>'''japer'''....''precede''<br>'''jader'''....''predict''<br>'''jafyunder'''....''warn''<br>'''jaovber'''....''prevent''<br>'''jaxer'''....''prepare''<br>'''jatuer'''....''train''<br>'''jabikier'''....''take precautions''<br>'''jaexdrer'''....''plan''<br>'''jateaxer'''....''preview''<br>'''jateater'''....''foresee''<br>'''janapder'''....''preordain''<br>'''janap'''....''priority''<br>'''jatex'''....''forethought''<br>'''jatul'''....''antipasto'' || valign=top|'''je'''....''during''<br>'''jea'''....''on-going''<br>'''jena'''....''current, on-going''<br>'''jey'''....''meanwhile''<br>'''jes'''....''course''<br>'''jeper'''....''to keep going''<br>'''jeteaxer'''....''to watch''<br>'''jeser'''....''to continue'' ||valign=top| '''jo'''....''after''<br>'''joa'''....''posterior''<br>'''jona'''....''next''<br>'''joy'''....''then, next, afterwards''<br>'''joxwas'''....''aftermath''<br>'''joper'''....''follow''<br>'''joteaxer'''....''review''<br>'''joiber'''....''inherit''<br>'''joigper'''....''pursue''<br>'''jouper'''....''succeed''<br>'''jois'''....''after-effect''<br>'''jotul'''....''dessert''<br>'''jotej'''....''afterlife''<br>'''jotex'''....''afterthought''<br>||valign=top|'''ji'''....''since''<br>'''ji huj'''....''since then''||valign=top|'''ju'''....''until''<br>'''ju hij'''....''until now''
|}
{{small/end}}
=== '''JWA''' ''early'', '''JWE''' ''on time'', '''JWO''' ''late'' ===
{{small/top}}
{| class="wikitable" style="background:lightyellow"
|+ JWA-JWE-JWO Family
|-
| valign=top|'''jwa'''....''early''<br>'''jwaa'''....''pre-mature''<br>'''jwapuer'''....''arrive early''<br>'''jwaxer'''....''preempt''<br>'''jwaber'''....''prepare''<br>'''jwatuer'''....''warn''<br>'''jwayeker'''....''experiment''<br>'''jwadrer'''....''draft''<br>'''jwayivxer'''....''parole'' ||valign=top| '''jwe'''....''on time''<br>'''jwea'''....''ready, timely, ripe''<br>'''jwepuer'''....''arrive on time''<br>'''jwexer'''....''prepare''<br>'''jweder'''....''prompt'' ||valign=top| '''jwo'''....''late''<br>'''jwoa'''....''tardy, mature, stale''<br>'''jwopuer'''....''arrive late''<br>'''jwoxer'''....''delay''<br>'''jwovosut'''....''late-bloomer''
|}
{{small/end}}
{{small/top}}
{| class="wikitable" style="background:lightyellow"
|+ JWA-JWE-JWO Parallels
|-
| '''jwa'''....''early''|| '''jwe'''....''in time'' || '''jwo'''....''late''
|-
| '''jwata'''....''underaged'' || '''jweta'''....''pubescent'' || '''jwota'''....''mature, adult''
|-
| '''jwafa'''....''green, unripe'' ||'''jwefa'''....''fresh'' || '''jwofa'''....''stale''
|-
| '''jwaja'''....''ancient'' || '''jweja'''....''contemporary'' || '''jwoja'''....''modern, latter-day''
|-
| '''jwasa'''....''premature'' || '''jwesa'''....''new'' || '''jwosa'''....''mature''
|}
{{small/end}}
=== '''IJ''' ''beginning'', '''UJ''' ''end'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow; valign:top"
|+ IJ-UJ Family
|-
| '''ijer'''....''begin''|| '''ujer'''....''end, finish''
|-
|'''ijper'''....''start up''||'''ujper'''....''come to an end''
|-
|'''ijber'''....''start up''|| '''ujber'''....''bring to an end''
|-
|'''ijna'''....''initial'' || '''ujna'''....''final''
|-
|'''ijar'''....''on switch''|| '''ujar'''....''off switch''
|-
|'''ijem'''....''origin''|| '''ujem'''....''endpoint''
|-
|'''vabij'''....''seed'' || '''kyeuj'''....''fate''
|-
|'''tabij'''....''embryo'' || '''dinuj'''....''denouement''
|-
|'''patij'''....''egg'' || '''mepuj'''....''deadend''
|-
|'''texij'''....''concept'' || '''jobuj'''....''eternity''
|-
|'''milij'''....''spring''||'''tibuj'''....''tail''
|-
|'''manij'''....''glimmer''||'''byuuj'''....''goal''
|-
|'''majij'''....''dawn''|| '''fabuj'''....''tree stump''
|-
|'''mojij'''....''dusk'' || '''fiuj'''....''success''
|-
|'''vosij'''....''bud'' ||'''fuuj'''....''failure''
|-
|'''peltij'''....''pupa'' || '''tiavuj'''....''shirttail''
|}
{{small/end}}
=== '''YIJ''' ''open'', '''YUJ''' ''close'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow; valign:top"
|+ YIJ-YUJ Family
|- valign=top
| '''yija'''....''open''<br>'''yijer'''....''open''<br>'''yijper'''....''come open''<br>'''yijber'''....''open up''<br>'''yijlar'''....''key''<br>'''yuijar'''....''valve'''''ebyij'''....''hiatus''<br>'''mimyij'''....''cove'' || '''yuja'''....''closed''<br>'''yujer'''....''close''<br>'''yujper'''....''come to a close''<br>'''yujber'''....''bring to a close''<br>'''yujlar'''....''lock''<br>'''yobyuj'''....''timeout''<br>'''manyujar'''....''dimmer switch''
|}
{{small/end}}
=== '''TIJ''' ''awake'', '''TUJ''' ''asleep'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow; valign:top"
|+ TIJ-TUJ Family
|- valign=top
| '''tija'''....''awake''<br>'''tijer'''....''be awake''<br>'''tijper'''....''wake up''<br>'''tijber'''....''waken''<br>'''tijtepa'''....''conscious''<br>'''iktija'''....''wide awake''<br>'''yoktijer'''....''to wake up suddenly''<br>'''tijyea'''....''vigilent'' ||'''tuja'''....''asleep''<br>'''tujer'''....''sleep''<br>'''tujper'''....''fall asleep''<br>'''tujber'''....''put to sleep''<br>'''tujtepa'''....''unconscious''<br>'''yogtuj'''....''nap''<br>'''eyntuj'''....''trance''<br>'''kyujujer'''....''to snooze''<br>'''tujbok'''....''sleep disorder''<br>'''tujefa'''....''sleepy''<br>'''tujtyoper'''....''sleepwalk''
|}
{{small/end}}
=== '''AK''' ''win'', '''EK''' ''play'', '''OK''' ''lose'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ AK-EK-OK Family
|- valign=top
| valign=top|'''aker'''....''win, gain''<br>'''akut'''....''winner''<br>'''akun'''....''win''<br>'''akler'''....''defeat''<br>'''akrer'''....''triumph''<br>'''akbun'''....''award''<br>'''nasak'''....''windfall''<br>'''aknas'''....''profit''<br>'''ujak'''....''success'' || valign=top|'''eker'''....''play, risk''<br>'''ekut'''....''player''<br>'''ekun'''....''game''<br>'''ifek'''....''play''<br>'''dopek'''....''battle''<br>'''dropek'''....''war''<br>'''tapek'''....''sport''<br>'''nasek'''....''gamble''<br>'''yanek'''....''competition''<br>'''ovek'''....''contest''<br>'''dalovek'''....''debate''<br>'''dunek'''....''pun''<br>'''eksag'''....''score''<br>'''geeksag'''....''tie'' ||valign=top| '''oker'''....''lose''<br>'''okut'''....''loser''<br>'''okun'''....''loss''<br>'''tejok'''....''loss of life''<br>'''nasok'''....''bankrupty''<br>'''oknas'''....''deficit''<br>'''ujok'''....''failure''
|}
{{small/end}}
=== '''YAK''' ''expect'', '''YEK'''....''try'', '''YOK''' ''surprise'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YAK-YEK-YOK Family
|- valign=top
|valign=top|'''yaker'''....''expect''<br>'''fiyak'''....''hope''<br>'''fuyak'''....''despair''<br>'''fiyakuer'''....''inspire''<br>'''fuyakuer'''....''discourage''<br>'''akyakwa'''....''expected to win''<br>'''oyakway'''....''unexpectedly'' || valign=top|'''yeker'''....''try''<br>'''finyeker'''....''test''<br>'''aayeker'''....''experiment''<br>'''yekuer'''....''challenge''<br>'''fuyekuer'''....''tempt''<br>'''yekun'''....''goal''<br>'''doyevyek'''....''trial''<br>'''yanyek'''....''contest''<br>'''yekrer'''....''to struggle'' || valign=top|'''yoker'''....''be surprised''<br>'''yokdun'''....''exclamation''<br>'''yokxeus'''....''sudden noise, boom''<br>'''yoktoj'''....''sudden death''<br>'''yokay'''....''unexpectedly''<br>'''yokyim'''....''flashflood''<br>'''yokay'''....''suddenly''<br>'''yokbas'''....''spasm, jerk''
|}
{{small/end}}
=== '''IK''' ''full'', '''UK''' ''empty'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ IK-UK Family
|-
| valign=top| '''ika'''....''full''||'''uka'''....''empty''
|-
|'''iliker'''....''to flood''||'''to iluker'''....''drain''
|-
|'''ikber'''....''to fill''||'''ukber'''....''to empty''
|-
|'''ikxer'''....''complete''||'''ukxer'''....''to deplete''
|-
|'''melik'''....''dirt pile''|| '''meluk'''....''pit''
|-
|'''ikza'''....''rich''|| '''ukza'''....''poor''
|-
|'''ikra'''....''saturated'' || '''ukla'''....''hollow''
|-
|'''iksag'''....''sum'' || '''uktoser'''....''to miss''
|}
{{small/end}}
: The prefixes '''-ika''' (''-ful'') and '''-uka''' (''-less'') can form many adjectives, such as:
::* '''tejika'''....''lively''
::* '''tuilika'''....''saucy''
::* '''tesika'''....''meaningful''
::* '''tezuka'''....''cultureless''
::* '''tayebuka'''....''hairless''
::* '''maruka'''....''starless''
=== '''YIK''' ''difficult'', '''YUK''' ''easy'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YIK-YUK Family
|-
| '''yika'''....''difficult''<br>'''yikla'''....''complicated''<br>'''yikom'''....''hardship''<br>'''yikson'''....''problem''<br>'''yikun'''....''hindrance'' || '''yuka'''....''easy''<br>'''yukla'''....''simple''<br>'''yukom'''....''comfort''<br>'''yukson'''....''easy matter''<br>'''yukun'''....''convenience''
|}
{{small/end}}
: Forms of '''-yik-''' and '''-yuk-''' can be suffixed to verb stems as a modal meaning ''hard to'' and ''easy to'', respectively:
::* '''testyikwa'''....''hard to understand''
::* '''teetyika'''....''hard of hearing''
::* '''dudyikwa'''....''hard to answer, enigmatic''
::* '''teatyiker'''....''have a hard time seeing''
::* '''pesyuka'''....''patient (easy to wait)''
::* '''vatexyuka'''....''gullible (easy to believe)''
::* '''testyukwa'''....''comprehensible (easy to understand)''
::* '''datxyuker'''....''find it easy to make friends''
=== '''KA''' ''find'', '''KE''' ''search'', '''KO''' ''hide'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ KA-KE-KO Family
|-
|valign=top| '''kaxer'''....''find''<br>'''kaxun'''....''trove''<br>'''kaxon'''....''solution''<br>'''kader'''....''reveal''<br>'''kater'''....''realize''<br>'''kap'''....''adventure''<br>'''ijkaxer'''....''invent''<br>'''kyekaxer'''....''discover, stumble on''<br>'''katepa'''....''conscious''<br>'''kas'''....''status''||valign=top|'''kexer'''....''seek''<br>'''kexun'''....''goal''<br>'''kexon'''....''quest''<br>'''keder'''....''question''<br>'''keter'''....''wonder, be curious about''<br>'''kep'''.....''mission''<br>'''kebier'''....''choose''<br>'''kebider'''....''vote''<br>'''tunkexer'''....''research''<br>'''zyakexer'''....''search''<br>'''keteaxer'''....''scan''<br>'''pokexut'''....''hunter''<br>'''nazkexut'''....''treasure hunter''<br>'''kyeojkexut'''....''fortune-seeker''||valign=top| '''koxer'''....''hide''<br>'''koxun'''....''stash''<br>'''koxon'''....''problem, quandary''<br>'''kod'''....''secret''<br>'''koter'''....''belie''<br>'''kop'''....''going into hiding''<br>'''kobier'''....''steal''<br>'''koem'''....''hideaway''<br>'''koembier'''....''take refuge''<br>'''koembuer'''....''provide shelter''<br>'''kof'''....''cover''<br>'''koexut'''....''spy''<br>'''kodyun'''....''coverword''<br>'''kodin'''....''myth''<br>'''kodrentun'''....''cryptography''<br>'''teabkof'''....''blindfold''<br>'''koxof'''....''cloak''<br>'''koxov'''....''veil''<br>'''koifer'''....''covet''<br>'''kopier'''....''elope''<br>'''kopuer'''....''sneak up to''<br>'''kotepa'''....''subconscious''<br>'''kotofxer'''....''disguise''<br>'''kotes'''....''subtext''<br>'''koteexer'''....''wiretap''<br>'''koteaxer'''....''spy, peep''<br>'''kosag'''....''cipher''
|}
{{small/end}}
=== '''KYA''' ''variable'', '''KYE''' ''random'', '''KYO''' ''fixed'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ KYA-KYE-KYO Family
|-
|valign=top| '''kyaa'''....''variable''<br>'''kyaser'''....''vary''<br>'''kyanaz'''....''variable''<br>'''kyanaztun'''....''algebra''<br>'''kyadun'''....''variable''<br>'''kyasun'''....''variant''<br>'''kyasea'''....''variant''<br>'''kyayukwa'''....''versatile''<br>'''kyaxer'''....''change''<br>'''ebkyaxer'''....''exchange''<br>'''kyaper'''....''fluctuate, slide''<br>'''kyasanier'''....''mutate''<br>'''tepkyaxer'''....''persuade, motivate'' ||valign=top|'''kyea'''....''haphazard''<br>'''kyeser'''....''happen''<br>'''kyenaz'''....''parameter''<br>'''kyes'''....''event, happening, incident''<br>'''kyeoj'''....''fate, destiny''<br>'''kyen'''....''luck, chance''<br>'''fikyen'''....''good luck''<br>'''fukyen'''....''bad luck''<br>'''fukyes'''....''accident''<br>'''kyenek'''....''game of chance''<br>'''kyenekam'''....''casino''<br>'''kyenekar'''....''gaming machine''<br>'''kyeson'''....''circumstance''<br>'''yankyeson'''....''coincidence''<br>'''kyeper'''....''waver''<br>'''kyebuk'''....''danger''<br>'''kyeteater'''....''notice''<br>'''kyeyanuper'''....''happen to meet''<br>'''kyeon'''....''case''<br>'''kyexej'''....''adventure''<br>'''fukyeoj'''....''misfortune''<br>'''fikyeoj'''....''good fortune'' ||valign=top| '''kyoa'''....''fixed, static, still''<br>'''kyoser'''....''stay, stand''<br>'''kyonaz'''....''constant''<br>'''kyos'''....''status, state''<br>'''kyosa'''....''static''<br>'''kyoejea'''....''constant, permanent''<br>'''kyoaxer'''....''stabilize''<br>'''kyoxer'''....''fix, park''<br>'''purkyoxam'''....''parking garage''<br>'''kyoteaxer'''....''stare''<br>'''kyotepier'''....''pay attention''<br>'''kyotexer'''....''obsess''
|}
{{small/end}}
=== '''KI''' ''oblique'', '''KU''' ''lateral'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ KI-KU Family
|-
|valign=top| '''kia'''....''oblique''<br>'''kim'''....''slope''<br>'''kin'''....''slant'' <br>'''kixer'''....''bend''<br>'''kipar'''....''skate''<br>'''kitex'''....''bias''<br>'''kinad'''....''diagonal''<br>'''kisyen'''....''trend''<br>'''kiper'''....''slide''<br>'''texkin'''....''opinion''<br>'''toskin'''....''penchant''<br>'''eynkin'''....''radius''<br>'''yobkiser'''....''to decline''<br>'''jakixwa'''....''predisposed''<br>'''kinadsiyn'''....''slash''<br>'''kined'''....''slope, wedge''<br>'''kinnog'''....''pitch''<br>'''tepkin'''....''bias''<br>'''ovkin'''....''anticline''<br>'''syenkin'''....''trend''<br>'''teaskin'''....''perspective''<br>'''yabkim'''....''upslope''||valign=top| '''kua'''....''lateral''<br>'''kum'''....''side''<br>'''kunad'''....''edge''<br>'''kuber'''....''set aside''<br>'''kumas'''....''embankment''<br>'''kuder'''....''remark''<br>'''kuber'''....''set aside''<br>'''kugon'''....''flank''<br>'''kumep'''....''sidewalk''<br>'''abkun'''....''topside''<br>'''zakun'''....''bow''<br>'''zokun'''....''stern''<br>'''mimkum'''....''coast, seaside''<br>'''ungekun'''....''square''
|}
{{small/end}}
=== '''KYI''' ''heavy'', '''KYU''' ''light'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ KYI-KYU Family
|-
|valign=top| '''kyia'''....''heavy''<br>'''kyiper'''....''gravitate''<br>'''kyisona'''....''grave'' <br>'''kyid'''....''emphasis''<br>'''kyin'''....''weight''<br>'''kyis'''....''freight''<br>'''kyitipa'''....''solemn''<br>'''kyitexer'''....''ponder''<br>'''kyitesa'''....''serious''<br>'''kyibal'''....''stress''<br>'''kyibix'''....''gravity''||valign=top| '''kyua'''....''light''<br>'''kyuper'''....''levitate, float''<br>'''kyusona'''....''trivial''<br>'''kyutipa'''....''silly''<br>'''kyutebseer'''....''swoon''<br>'''kyun'''....''ballast''<br>'''kyutesa'''....''frivolous''<br>'''kyuzyun'''....''balloon''<br>'''kyutujer'''....''doze''<br>'''kyubaser'''....''glide''<br>'''kyuar'''....''buoy''
|}
{{small/end}}
=== '''VA''' ''yes'', '''VE''' ''maybe'', '''VO''' ''no'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ VA-VE-VO Family
|-
| '''va'''....''yes'' || '''ve'''....''maybe'' || '''vo'''....''no''
|-
| '''vaa'''....''affirmative'' || '''vea'''....''possible'' || '''voa'''....''negative''
|-
| '''vay'''....''indeed'' || '''vey'''....''possibly'' || '''voy'''....''not''
|-
| '''vlaa'''....''certain'' || '''vlea'''....''probable'' || '''vloa'''....''uncertain''
|-
| '''van'''....''that'' || '''ven'''....''whether, if'' || '''von'''....''don't''
|-
| '''vaka'''....''safe'' || '''veka'''....''at risk'' || '''voka'''....''in danger''
|}
{{small/end}}
==== Factive Adverbs ====
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Factive Adverbs
|-
! FACTIVE ADVERB !! EXAMPLE
|-
|'''vay'''....''indeed, really, do/does ''||'''Aat <u>vay</u> tide et.'''....''We <u>really do</u> understand you.'' <br>'''<u>Vay</u> upu gajod.'''....''<u>Do</u> come again.''
|-
|'''vlay'''....''certainly''||'''At <u>vlay</u> zoypo hum.'''....''I will <u>certainly</u> go back there.''
|-
|'''vey'''....''may, maybe, perhaps, might ''||'''<u>Vey</u> mamilo.'''....''It <u>may</u> rain.''
|-
|'''vley'''....''probably, likely'' || '''Et se <u>vley</u> vyaka.'''....''You are <u>probably</u> right.''
|-
|'''voy'''....''not''||'''Et <u>voy</u> se ata xeb.'''....''You are <u>not</u> my boss.''
|-
|'''vloy'''....''most assuredly not'' || '''Iyt <u>vloy</u> yiztejo.'''....''She <u>most assuredly</u> will <u>not</u> survive.''
|}
{{small/end}}
==== Factive Responses ====
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Factive Responses
|-
! FACTIVE RESPONSE !! EXAMPLE
|-
|'''va'''....''yes''||'''<u>Va</u>, at tide.'''....''<u>Yes</u>, I understand.''
|-
|'''vla'''....''certainly'' ||'''Duven et upo? <u>Vla</u>!'''....''Will you come? <u>Certainly</u>!''
|-
|'''ve'''....''maybe, perhaps''||'''<u>Ve</u>. At voy te.'''....''<u>Maybe</u>, I don't know.''
|-
|'''vle'''....''probably'' ||'''Duven sa fukyes? <u>Vle</u>.'''....''Was it an accident. <u>Probably</u>.''
|-
|'''vo'''....''no''||'''<u>Vo.</u> Et yofe ayser has.'''....''<u>No</u>. You can't have it.''
|-
|'''vlo'''....''absolutely not'' || '''Buu eta nas. <u>Vlo</u>!'''....''Give me your money. Absolutely <u>not</u>!''
|-
|'''vao'''....''yes or no''||'''Et se tadxwa, vao?''''....''You are married, <u>yes or no</u>?''
|}
{{small/end}}
==== Complementizers ====
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Complementizers
|-
! COMPLEMENTIZER !! EXAMPLE
|-
|'''van'''....''that''||'''At ta <u>van</u> et upo.'''....''I knew (<u>that</u>) you would come.''<br>'''<u>Van</u> yat fyadilu.'''....''<u>Let's</u> pray.''
|-
|'''ven'''....''if, whether''||'''<u>Ven</u> et peso, at pio.'''....''<u>If</u> you stay, I will leave.''<br>'''<u>Ven</u> at su et, at peso.'''....''If I were you, I'd stay.''<br>'''At voy te <u>ve</u>n mamilo.'''....''I don't know <u>whether</u> it will rain.''
|-
|'''von'''....''lest, that...not, don't''|| '''At yufa <u>von</u> it toju.'''....''I feared <u>lest</u> he die.''<br>'''At ojfe <u>von</u> et piu.'''....''I wish you wouldn't (=<u>that</u> you <u>not</u>)go.''<br>'''<u>Von</u> su huyen!'''....''<u>Don't</u> be that way!''
|-
|'''duven'''....''Do...?, Say whether...?''||'''<u>Duven</u> et tre huyt?'''....''<u>Do</u> you know her?''
|}
{{small/end}}
==== Correlative Conjunctions ====
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Correlative Conjunctions
|-
! CONJUNCTION !! EXAMPLE
|-
|'''ay'''....''and ''||'''Et <u>ay</u> at po hum.'''....''You <u>and</u> I will go there.''
|-
|'''ey'''....''or ''||'''Yat yake mamil <u>ey</u> mamyoym.'''....''We expect rain <u>or</u> snow.''
|-
|'''oy'''....''but ''||'''At po <u>oy</u> at voy beso glaj.'''....''I will go <u>but</u> I won't stay long.''
|-
|'''ay/ey'''....''and/or''||'''Ha duzun yebio X <u>ay/ey</u> Y.'''....''The concert will include X <u>and/or</u> Y.''
|-
|'''hyaewa...ay'''....''both...and ''||'''<u>Hyaewa</u> et <u>ay</u> at voduda.'''....''<u>Both</u> you <u>and</u> I answered no.''<br>'''<u>Hyaewati</u> voduda.'''....''Both answered no.''
|-
|'''Hyeawa...ey'''....''either...or ''||'''<u>Hyeawa</u> et <u>ey</u> at ako.'''....''<u>Either</u> you <u>or</u> I will win.''<br>'''<u>Hyeawat</u> ako.'''....''Either will win.''
|-
|'''Hyoewa...ey'''....''neither...nor ''||'''Hyoewa et <u>ey</u> at ako.'''....''<u>Neither</u> you <u>nor</u> I will win.''<br>'''<u>Hyoewat</u> (bi ha ewati) ako.'''....''<u>Neither</u> (of the two) will win.''
|}
{{small/end}}
=== '''VYA''' ''true'', '''VYE''' ''relative'', '''VYO''' ''false'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ VYA-VYE-VYO Family
|-
| '''vyaa'''....''true''<br>'''vyan'''....''truth''<br>'''vyaama'''....''virtual''<br>'''vyaba'''....''regular''<br>'''vyadea'''....''honest''<br>'''vyafa'''....''precise''<br>'''vyala'''....''authentic''<br>'''vyalma'''....''objective''<br>'''vyalva'''....''proper''<br>'''vyama'''....''real''<br>'''vyamsa'''....''substantial''<br>'''vyaka'''....''correct''<br>'''vyava'''....''exact''<br>'''vyayaba'''....''systematic''<br>'''vyasauna'''....''genuine''<br>'''vyasma'''....''concrete''<br>'''vyayma'''....''effective''<br>'''vyayuxea'''....''faithful''<br>'''vyatepa'''....''rational''<br>'''vyatesa'''....''reasonable''<br>'''vyatexa'''....''logical''<br>'''vyatina'''....''orthodox''<br>'''vyatipa'''....''loyal''<br>'''vyanaba'''....''adjusted''<br>'''vyaotea'''....''wise''<br>'''vyantina'''....''dogmatic''<br>'''vyayuva'''....''trusty''<br>'''vyankexer'''....''investigate''<br>'''vyanyeker'''....''prove''<br>'''vyantixer'''....''research''<br>'''vyatexer'''....''believe''<br>'''vyayab'''....''system''<br>'''dovyab'''....''law''<br>'''vyavader'''....''determine''<br>'''vyatisika'''....''sagacious''<br>'''vyateja'''....''true-to-life''<br>'''vyao'''...''right or wrong'' ||valign=top| '''vyea'''....''relative''<br>'''vyean'''....''relativity''<br>'''vyenaz'''....''coefficient''<br>'''vyenxer'''...''relate''<br>'''vyesag'''....''ratio''<br>'''vyeson'''....''subject''<br>'''vyel'''....''relative to, than''<br>'''vyesun'''....''object''<br>'''vyet'''...''kin''<br>'''vyetepa'''....''subjective''<br>'''vyetexer'''....''consider''<br>'''vyexeon'''....''circumstance''<br>'''vyexer'''....''relate''<br>'''vyeder'''....''to relate''<br>'''vyedrer'''....''to correspond''<br>'''vyel'''....''than, as, relative to''<br>'''vyegedun'''....''analogy''<br>'''vyegelser'''....''to match''<br>'''vyegexer'''....''to compare''<br>'''vyegon'''....''proportion, quota''<br>'''vyein'''....''relativism''<br>'''vyen'''....''relation''||valign=top| '''vyoa'''....''false''<br>'''vyoka'''....''wrong''<br>'''vyom'''....''fiction''<br>'''vyomdin'''....''fairy tale''<br>'''vyomeper'''....''err''<br>'''vyomepxer'''....''misroute''<br>'''vyomsin'''....''illusion''<br>'''vyomvatex'''....''superstition''<br>'''vyon'''...''fault''<br>'''vyonap'''...''disorder''<br>'''vyonder'''....''lie''<br>'''vyonober'''....''excuse''<br>'''vyons'''....''failure''<br>'''vyonxer'''...''transgress''<br>'''vyosauna'''....''counterfeit''<br>'''vyosyen'''....''artifice''<br>'''vyotepa'''....''foolish''<br>'''vyotesier'''....''misinterpret''<br>'''vyotester'''....''misunderstand''<br>'''vyotex'''....''fallacy''<br>'''vyotipan'''....''treason''<br>'''vyoxler'''....''traffic''<br>'''vyoyeker'''...''debunk''<br>'''vyoyixler'''....''betray''
|}
{{small/end}}
=== '''AV''' ''for'', '''EV''' ''neutral'', '''OV''' ''against'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ AV/EV/OV Family
|-
| valign=top|'''av'''....''for''<br>'''ava'''....''favorable''<br>'''avan'''....''behalf, behest''<br>'''avon'''....''asset, advantage''<br>'''avun'''....''favor, benefit''<br>'''avder'''....''advocate''<br>'''avejter'''....''represent''<br>'''yanav'''....''party''<br>'''avson'''....''sake''<br>'''av duhos?'''....''why, what for?''<br>'''avaxler'''....''represent''<br>'''avdalut'''....''advocate''<br>'''avdopekut'''....''champion''<br>'''avunkexer'''....''fawn over'' || valign=top|'''eva'''....''neutral''<br>'''evan'''....''neutrality''<br>'''evder'''....''equivocate''<br>'''evxer'''....''neutralize''<br>'''evdofina'''....''amoral''<br>'''eveotifa'''....''asexual''<br>'''evkuma'''....''impartial''<br>'''evtooba'''....''gender-neutral''<br>'''evtos'''....''apathy''<br>'''evtotina'''....''atheist'' || valign=top|'''ov'''....''against''<br>'''ova'''....''contrary''<br>'''ovon'''....''liability, handicap, disadvantage''<br>'''ovun'''....''obstacle''<br>'''yanov'''....''opposition''<br>'''ovar'''....''shield''<br>'''ovaxler'''...''counteract, defy''<br>'''ovber'''...''to block''<br>'''ovbyaser'''....''to resist''<br>'''ovbyekul'''....''antidote''<br>'''ovdaler'''....''protest''<br>'''ovdat'''....''enemy''
|}
{{small/end}}
=== '''YAV''' ''innocent'', '''YEV''' ''just'', '''YOV''' ''guilty'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YAV/YEV/YOV Family
|-
| valign=top|'''yava'''....''innocent''<br>'''yavder'''....''acquit''<br>'''yavla'''....''proud''<br>'''yavra'''....''arrogant''<br>'''yavandier'''....''to plead innocent''<br>'''yavankexut'''....''defense attorney''<br>'''yavdeler'''...''to exonerate''<br>'''yavkaxer'''....''to find innocent''<br>'''yavlader'''....''boast, flaunt''<br>'''yavlanyober'''...''to humiliate''<br>'''yavalatyoper'''....''strut''<br>'''yavluer'''....''to instill pride in'' || valign=top|'''yeva'''....''fair''<br>'''yevder'''....''judge''<br>'''doyevan'''....''justice''<br>'''doyevdut'''....''judge''<br>'''doyevon'''....''court case''<br>'''doyevam'''....''court''<br>'''finyevut'''....''critic'' || valign=top|'''yova'''....''guilty''<br>'''yovder'''....''indict, accuse''<br>'''yovla'''....''ashamed''<br>'''yovra'''....''mortified''<br>'''vayovder'''....''convict''<br>'''doyov'''....''crime''<br>'''yovbyok'''....''penalty''<br>'''yovbyokam'''....''prison''<br>'''yovober'''....''pardon''
|}
{{small/end}}
=== '''VI''' ''beautiful'', '''VU''' ''ugly'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ VI-VU Family
|-
| '''via'''....''beautiful'' || '''vua'''....''ugly''
|-
| '''viya'''....''pretty'' || '''vuya'''....''nasty''
|-
| '''vila'''....''magnificent'' || '''vudal'''....''foul language''
|-
| '''vira'''....''marvelous'' ||'''vudun'''....''swear word''
|-
| '''vria'''....''glamorous'' ||'''vukaxer'''....''to revile''
|-
| '''vifa'''....''elegant'' || '''vufa'''....''vulgar''
|-
| '''vita'''....''classy'' || '''vuta'''....''wretched''
|-
| '''vioga'''....''cute'' ||
|-
| '''viaga'''....''sumptuous'' ||
|}
{{small/end}}
=== '''VYI''' ''clean'', '''VYU''' ''dirty'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ VYI-VYU Family
|-
| '''vyia'''....''clean'' || '''vyua'''....''dirty''
|-
| '''vyida'''....''clear'' || '''vyuda'''....''muddled''
|-
| '''vyina'''....''pure'' || '''vyuna'''....''stained''
|-
| '''vyita'''....''chaste'' || '''vyuta'''....''sleazy''
|-
| '''vyiya'''....''neat'' || '''vyuya'''....''foul''
|}
{{small/end}}
=== '''IV''' ''happy'', '''UV''' ''sad'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ IV-UV Family
|- valign=top
| '''iva'''....''happy''<br>'''ivla'''....''glad, content''<br>'''ivra'''....''excited, thrilled''<br>'''iv'''....''fun''<br>'''ivtax'''....''gratitude''<br>'''ivder'''....''cheer''<br>'''ivteuber'''....''smile''<br>'''ivdeuxer'''....''laugh''<br>'''ivseuz'''....''sigh of relief''<br>'''yaniv'''....''party''<br>'''yanivtosder'''....''congratulate''<br>'''ivek'''....''game, play''<br>'''ivuj'''....''happy ending''||'''uva'''....''sad''<br>'''uvla'''....''disappointed''<br>'''uvra'''....''morose, dejected''<br>'''uv'''....''sorrow''<br>'''uvtax'''....''regret''<br>'''uvder'''....''complain''<br>'''uvteuber'''....''frown''<br>'''uvdeuxer'''....''moan''<br>'''uvseuz'''....''sigh of sorrow''<br>'''yanuv'''....''dirge''<br>'''yanuvtosder'''....''commiserate''<br>'''uvdin'''....''tragedy''<br>'''uvuj'''....''sad ending''
|}
{{small/end}}
=== '''YIV''' ''free'', '''YUV''' ''bound'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YIV-YUV Family
|-
| valign=top |'''yiva'''....''free''<br>'''yivla'''....''loose''<br>'''yivina'''....''liberal''<br>'''yivtexa'''....''libertarian''<br>'''doyiv'''....''right''<br>'''yivdras'''....''license''<br>'''yivxer'''....''liberate'' ||valign=top| '''yuva'''....''bound, captive''<br>'''yuvla'''....''subject, dependent''<br>'''yuvrat'''....''slave''<br>'''loyuvratxen'''....''emancipation''<br>'''doyuv'''....''duty''<br>'''yuv'''....''bond, lien''<br>'''yuvdraf'''....''bond''<br>'''nasyuv'''....''debt''<br>'''oyuvlan'''....''independence''<br>'''yuvar'''....''chain''
|}
{{small/end}}
=== '''AZ''' ''strong'', '''EZ''' ''moderate'', '''OZ''' ''weak'' ===
: Summary:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ AZ-EZ-OZ Family
|-
| valign=top |'''aza'''....''strong''<br>'''azla'''....''intense''<br>'''azra'''....''violent''<br>'''azaxer'''....''strenghten''<br>'''azon'''....''power''<br>'''aztob'''....''strongman''<br>'''bakaza'''....''hardy''<br>'''fonaza'''....''resolute'' || valign=top| '''eza'''....''moderate''<br>'''ezaxer'''....''moderate''<br>'''ezama'''....''temperate, moderately hot''<br>'''eztilea'''....''temperate (in drinking)''<br>'''ezaga'''....''moderate-sized''<br>'''ezyen'''....''modesty'' ||valign=top| '''oza'''....''weak''<br>'''ozta'''....''tired''<br>'''ozaxer'''....''weaken''<br>'''ozbaxler'''....''jiggle''<br>'''ozdaler'''....''mutter, mumble''<br>'''ozduer'''....''hint''<br>'''ozder'''....''whisper''<br>'''fonoza'''....''weak-willed''
|}
{{small/end}}
=== '''YAZ''' ''convex'', '''YEZ''' ''flush'', '''YOZ''' ''concave'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YAZ-YEZ-YOZ Family
|-
| valign=top |'''yaza'''....''convex''<br>'''yaz'''....''mound''<br>'''memyaz'''...''mountain''<br>'''mimyaz'''....''surf''<br>'''milyaz'''....''wave''<br>'''mimolyaz'''....''saltdome''<br>'''nedyaz'''....''bump''<br>'''yagyaz'''....''ridge''<br>'''tayeyaz'''....''pimple''<br>'''melyaz'''....''tomb''<br>'''tayobyaz'''....''tumor'' || valign=top|'''yeza'''....''flush''<br>'''yez'''....''along, flush with''<br>'''memyez'''....''plain''<br>'''mimolyez'''....''salt flat''<br>'''obyez'''....''platform'' ||valign=top|'''yoza'''....''concave''<br> '''yoz'''....''depression''<br>'''memyoz'''....''valley''<br>'''nedyoz'''....''dip''<br>'''yagyoz'''....''groove''<br>'''kuyoz'''....''cave''<br>'''melyoz'''....''pit''
|}
{{small/end}}
=== '''IZ''' ''straight'', '''UZ''' ''curve'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ IZ-UZ Family
|-
| valign=top|'''iza'''....''straight''<br>'''izber'''....''direct, steer''<br>'''izper'''....''go straight, head for''<br>'''izmep'''....''straight shot, beeline''<br>'''izon'''....''direction''<br>'''iznad'''....''vector, straight line''<br>'''iznod'''....''target''<br>'''izteser'''....''denote'' <br>'''iztex'''....''logic''<br>'''iztesten'''....''intuition''<br>'''izgun'''....''right angle''<br>'''izeaxer'''....''indicate, point out''<br>'''izbyen'''....''maneuver''<br>'''iztin'''....''orthodoxy''<br>'''izbeb'''....''pilot, driver''<br>'''izbex'''....''control''<br>'''izbus'''....''index, guide''<br>'''izdalea'''....''forthright''<br>'''izdar'''....''indicator, pointer''<br>'''izdin'''....''prose''<br>'''izduer'''....''prompt''<br>'''izeaxer'''....''to point out''<br>'''izfin'''....''rectitude''<br>'''izhij'''....''just now''<br>'''izjuba'''....''adjacent''<br>'''izmagaler'''....''sear''||valign=top| '''uza'''....''curved, crooked''<br>'''uzber'''....''turn''<br>'''uzper'''....''deviate, curve''<br>'''uzmep'''....''detour''<br>'''uznad'''....''curve''<br>'''uznod'''....''turning point''<br>'''uzteser'''....''connote''<br>'''uztex'''....''irrationality''<br>'''uzun'''....''ring''<br>'''uzyus'''....''spriral, coil''<br>'''uzabmas'''....''arch''<br>'''uzmem'''....''bay''<br>'''ulz'''....''twist''<br>'''mapulz'''....''tornado''<br>'''uzmuv'''....''screw''<br>'''tuyobuz'''....''bracelet''<br>'''tuyubuz'''....''ring''<br>'''teebuz'''....''earing''<br>'''teibuz'''....''nosering''<br>'''teyobuz'''....''necklace''<br>'''tiabuz'''....''broche''<br>'''tilabuz'''....''tit ring, nipple ring''<br>'''ebtuabuz'''....''epaulette''<br>'''mamiluz'''....''rainbow ''<br>'''dopuz'''....''bow, arch, bow-and-arrow''<br>'''tepuzra'''....''crazy''
|}
{{small/end}}
=== '''YIZ''' ''beyond'', '''YUZ''' ''around'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ YIZ-YUZ Family
|-
| valign=top|'''yiz'''....''beyond''<br>'''yiza'''....''ulterior''<br>'''yizper'''....''surpass''<br>'''yiznod'''....''extremity''<br>'''yiztapa'''....''metaphysical''<br>'''yizmola'''....''supernatural''<br>'''yizoga'''....''ultra-small''<br>'''yizyivyalza'''....''ultraviolet''<br>'''yiztoba'''....''superhuman''<br>'''yizimera'''....''extra-terrestrial'' ||valign=top| '''yuz'''....''around''<br>'''yuza'''....''circular''<br>'''yuzper'''....''circulate''<br>'''yuzmep'''....''periphery''<br>'''sinyuz'''....''frame''<br>'''nidyuz'''....''envelope''<br>'''yuznad'''....''border''<br>'''yuzmas'''....''fence''<br>'''yuznag'''....''girth''<br>'''yuzmimper'''....''circumnavigate''<br>'''yuzkof'''....''blanket, wrap''<br>'''yuznof'''....''bandage''<br>'''yuzdom'''....''suburb''<br>'''yuzem'''....''environment''<br>'''yuzbexer'''....''hug''
|}
{{small/end}}
=== '''ZI''' ''right'', '''ZU''' ''left'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ ZI-ZU Family
|-
| valign=top|'''zia'''....''right''<br>'''ziinut'''....''rightist''<br>'''zikum'''....''right side''<br>'''zimera'''....''east''<br>'''ziper'''....''to turn right''
| valign=top|'''zua'''....''left''<br>'''zuinut'''....''leftist''<br>'''zukum'''....''left side''<br>'''zumera'''....''west''<br>'''zuper'''....''to turn left''
|}
{{small/end}}
=== '''ZYI''' ''flat'', '''ZYU''' ''round'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ ZYI-ZYU Family
|-
| valign=top|'''zyia'''....''flat''<br>'''zyida'''....''platitudinous, trite''<br>'''zyifa'''....''smooth, even''<br>'''zyima'''....''level, even''<br>'''zyina'''....''level, even''<br>'''zyiaxer'''....''flatten''<br>'''zyiber'''....''lay''<br>'''zyiper'''....''lie, lie flat'' <br>'''zyiem'''....''plaza''<br>'''zyifar'''....''file''<br>'''zyifir'''....''plane''<br>'''zyifub'''....''paddle''<br>'''zyigos'''....''flake''<br>'''zyim'''....''plane''<br>'''zyimem'''....''plain''<br>'''zyin'''....''plate''<br>'''zyined'''....''platform''<br>'''zyiun'''....''plaque''<br>'''zyisemes'''....''platter''<br>'''zyipovol'''....''flatbread, pizza, pita''<br>'''novzyiar'''....''iron''<br>'''zyityoyaba'''....''flat-footed''<br>'''zyigiar'''....''sword''<br>'''zyipyexer'''....''smack, slap''<br>'''zyipyoser'''...''to fall flat''<br>'''zyimelyaz'''....''plateau''<br>'''zyimipar'''....''flatboat''
||'''zyua'''....''round''<br>'''zyuabtamas'''....''dome''<br>'''zyub'''....''spindle''<br>'''zyuber'''....''to rotate, to turn''<br>'''zyubler'''....''spin, twirl, twist''<br>'''zyubmagyelwa'''...''stir-fried''<br>'''zyubolnod'''....''hinge, pivot''<br>'''zyubrar'''....''turbine''<br>'''zyubrea'''....''turbulent''<br>'''zyudaz'''....''waltz''<br>'''zyudezam'''....''theater in the round''<br>'''zyues'''....''ring''<br>'''zyufub'''....''rudder''<br>'''zyug'''....''tire''<br>'''zyuipea'''....''swirling''<br>'''zuisa'''...''elliptical, oval''<br>'''zyuj'''....''round, turn''<br>'''zyujer'''....''to cycle''<br>'''zyuk'''....''wheel''<br>'''zyukmuf'''....''axle''<br>'''zyuktam'''....''mobile home''<br>'''zyul'''....''drop''<br>'''zyum'''....''sphere''<br>'''zyun'''....''ball''<br>'''zyunes'''....''bead, pellet, pill, buller''<br>'''zyus'''....''circle''<br>'''zyuyk'''....''reel''<br>'''zyuyoz'''....''cup, cupola''
|}
{{small/end}}
==== How ZYU, YUZ, and UZ Differ ====
: The following three root morphemes can be confused:
:* the root '''zyu-''' refers to ''roundness'', ''round objects'' and ''rotation/rolling''.
:* the root '''yuz-''' refers to ''around'', ''circling'', and ''surrounding''
:* the root '''uz-''' refers to ''curves'', ''arcs'', ''bows'', and ''bends''.
=== '''ZA''' ''front'', '''ZE''' ''middle'', '''ZO''' ''back'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ ZA- ZE- ZO- Family
|-
| valign=top|'''za'''....''in front of''<br>'''zaa'''....''front''<br>'''zam'''....''front''<br>'''zabun'''....''prefix''<br>'''zajab'''....''next year''<br>'''zaper'''....''to lead''
| valign=top|'''ze'''....''in the middle of''<br>'''zea'''....''middle''<br>'''zem'''....''middle''<br>'''zebun'''....''infix''<br>'''zejab'''....''mid-year''<br>'''zeper'''....''to balance oneself''
| valign=top|'''zo'''....''behind''<br>'''zoa'''....''rear''<br>'''zom'''....''back''<br>'''zobun'''....''suffix''<br>'''zojab'''....''last year''<br>'''zoper'''....''to lag''
|}
{{small/end}}
=== '''ZYA''' ''wide'', '''ZYE''' ''through'', '''ZYO''' ''narrow'' ===
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ ZYA- ZYE- ZYO- Family
|-
| valign=top|'''zyaa'''....''wide''<br>'''zyan'''....''span''<br>'''zyaxer'''....''to broaden''<br>'''zyaber'''....''to spread''<br>'''zyabuer'''....''to distribute''<br>'''zyabixer'''....''stretch, strain''<br>'''zyadaler'''....''preach''<br>'''zyader'''....''announce, broadcast''<br>'''zyadin'''....''report''<br>'''zyadrer'''....''post, report''<br>'''zyaguna'''....''obtuse, wide-angle''<br>'''zyagofler'''....''slash''<br>'''zyagosber'''....''sprinkle''<br>'''zyaija'''....''wide-open''<br>'''zyama'''....''vast''<br>'''zyakexer'''....''to scan''<br>'''zyanig'''....''expanse''
|valign=top|'''zye'''....''through''<br>'''zyeper'''....''to go through''<br>'''zyemep'''....''thoroughfare''<br>'''zyebuxer'''....''push through, ram''<br>'''zyedyeer'''....''peruse''<br>'''zyega'''....''hollow''<br>'''zyeg'''....''hole''<br>'''zyegar'''....''drill''<br>'''zyegir'''....''derrick''<br>'''zyeglar'''....''spear''<br>'''zyegoblar'''....''dagger''<br>'''zyeguna'''....''diagonal''<br>'''zyegxer'''....''to puncture''<br>'''zyegur'''....''excavator''<br>'''zyeilber'''....''to soak''<br>'''zyeimber'''....''imbue''<br>'''zyel'''....''enamel, glaze''
|valign=top|'''zyoa'''....''narrow''<br>'''zyoxer'''....''narrow, constrict''<br>'''zyoafxer'''....''restrict''<br>'''zyoapexlar'''....''squeegee''<br>'''zyobaler'''....''squeeze''<br>'''zyobar'''....''filter''<br>'''zyobexer'''....''clutch''<br>'''zyobexar'''....''wrench''<br>'''zyobixer'''....''strain''<br>'''zyoebmem'''....''isthmus''<br>'''zyogofler'''....''to slice thinly''<br>'''zyogun'''....''acute angle''<br>'''zyoilpuxer'''....''squirt''<br>'''zyoiluar'''....''funnel''<br>'''zyokebier'''....''to single out''<br>'''zyom'''....''confines''<br>'''zyomelyoz'''....''furrow''
|}
: The root morpheme '''zye''' means ''through, trans-, per-'' and is at the base of many words. The following key words have to do with transparency and piercing:
::* '''zyef'''....''pane of glass''
::* '''zyev'''....''glass''
::* '''zyeb'''....''bottle''
::* '''zyeg'''....''hole'' (and the stub suffix '''-yeg''')
::* '''zyek'''....''pore''
::* '''zyel'''....''glaze, enamel''
{{small/end}}
=== '''HO''' ''which'' ===
: The root morpheme '''ho-''' and its scalar variants are prefixes that categorize deictic determiner adjectives, substantives, or adverbs.
::* '''duho-'''....''what?, which?'' (interrogative)
::* '''ho-'''....''which'' (relative)
::* '''ha-'''....''the'' (definite)
::* '''he-'''....''some'' (indefinite)
::* '''hi-'''....''this'' (proximate)
::* '''hii-'''....''the following'' (post-proximate)
::* '''hu-'''....''that'' (remote)
::* '''huu-'''....''such a'' (emphatic)
::* '''hyo-'''....''no'' (negative)
::* '''hya-'''....''all, every'' (universal)
::* '''hye-'''....''any, whatever'' (indeterminate)
::* '''hyi-'''....''the same'' (identical)
::* '''hyu-'''....''the other'' (non-identical)
: Both '''ho''' and '''ha''' can act as independent words; all the others are always prefixes. Eg.:
:* '''Ha toyb ho at tadia.'''....''The woman that I married.''
==== HO Words ====
: The prefixes '''ho''' and '''duho''' are used to form relative and interrogative determiners, respectively. Here are the most common ones:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''ho-'''....''which''
* '''ho'''....''which, who, whom, that''
* '''hoa'''....''which''
* '''hogi'''....''hoagie, hoagy''
* '''hogla'''....''how much, how much/many''
* '''hoglas'''....''how much''
* '''hoglasi'''....''how many''
* '''hoglati'''....''how many (people)''
* '''hoj'''....''the time that, the time when''
* '''hojaga'''....''how old, of the age that''
* '''hojagat'''....''person of what age''
* '''hojagati'''....''people of what age''
* '''hom'''....''the place that, the place where''
* '''honog'''....''to the degree that''
* '''hos'''....''that which, the thing that, what''
* '''hosav'''....''why, because''
* '''hosi'''....''what things''
* '''hot'''....''he who, the person who, who, whom''
* '''hota'''....''whose''
* '''hotan'''....''identity''
* '''hotander'''....''i.d.''
* '''hotandier'''....''card, i.d.''
* '''hotandraf'''....''i.d., identification badge, identification card''
* '''hotantuen'''....''identification, identifying''
* '''hotantuus'''....''identifier''
* '''hotantuwa'''....''identified''
* '''hotantuyafwa'''....''identifiable''
* '''hotantuyafwan'''....''identifiability''
* '''hotantuyafway'''....''identifiably''
* '''hotas'''....''whose''
* '''hotasi'''....''whose things''
* '''hoti'''....''who, whom''
* '''hoxag'''....''how often''
* '''hoxaga'''....''how frequent''
* '''hoyen'''....''as, how, which way, which kind''
* '''hoyena'''....''of the kind that, what kind of''
* '''hoyenas'''....''what kind of thing''
* '''hoyenasi'''....''what kind of things''
* '''hoyenat'''....''what kind of person''
* '''hoyenati'''....''what kind of people''
* '''hoyuxun'''....''which means''
<br>
* '''duho'''....''what''
* '''duho?'''....''which?''
* '''duhoawa?'''....''which one?''
* '''duhoawas?'''....''which one?''
* '''duhoawat?'''....''which one?''
* '''duhobyen'''....''how something is''
* '''duhoetdyuehas'''....''whatchamacallit''
* '''duhoewa?'''....''which two?''
* '''duhoewasi?'''....''which two things?''
* '''duhoewati?'''....''which two people?''
* '''duhogel'''....''like what''
* '''duhogel?'''....''what kind?''
* '''duhogela?'''....''what kind of?, what manner of?''
* '''duhogelas?'''....''what kind of thing?, what sort of thing?''
* '''duhogelasi?'''....''what kind of things?, what sort of things?''
* '''duhogelat?'''....''what kind of person?''
* '''duhogelati?'''....''what kind of people?''
* '''duhogelayt?'''....''what kind of girl?''
* '''duhogelayti?'''....''what kind of girls?''
* '''duhogelwat?'''....''what kind of guy?''
* '''duhogelwati?'''....''what kind of guys?''
* '''duhogla job'''....''as much time as, how long''
* '''duhogla jodi'''....''how frequently, how many times, how often''
* '''duhogla'''....''how many, how much how, to no extent''
* '''duhoglajodi'''....''on how many occasions''
* '''duhoglani'''....''quanta''
* '''duhoglas'''....''how much''
* '''duhoglasi'''....''how many things''
* '''duhoglati'''....''how many people''
* '''duhogyugela?'''....''what other kind of?''
* '''duhohyua?'''....''what other?''
* '''duhohyuj?'''....''when else?''
* '''duhohyum?'''....''where else?''
* '''duhohyus?'''....''what else?''
* '''duhohyusauna?'''....''what other kind of?''
* '''duhohyusav?'''....''why else?''
* '''duhohyut?'''....''who else?''
* '''duhohyuyen'''....''how else''
* '''duhohyuyena?'''....''what other kind of?''
* '''duhoizon?'''....''which way?''
* '''duhoj?'''....''when...?, when?''
* '''duhojag?'''....''what age?''
* '''duhojaga'''....''how old''
* '''duhojagati'''....''people of what age?''
* '''duhojob?'''....''when...?, when?''
* '''duhojod'''....''at what point, on what occasion, on which occasion''
* '''duhojod?'''....''which time?''
* '''duhojodi'''....''at which times, on what occasions, on which occasions''
* '''duhojuab?'''....''which Monday?''
* '''duhojub?'''....''which day?''
* '''duhojwap'''....''at what moment''
* '''duhom'''....''whereabouts''
* '''duhomep?'''....''which way?, which way?''
* '''duhomi'''....''at what places''
* '''duhonog'''....''how, to what extent, to what degree, to what extent''
* '''duhoowa?'''....''which single?''
* '''duhos?'''....''what thing?, what?''
* '''duhosag'''....''how many''
* '''duhosan'''....''quiddity''
* '''duhosaun?'''....''what kind?''
* '''duhosauna?'''....''what kind of?, what manner of?''
* '''duhosaunas?'''....''what kind of thing?, what sort of thing?''
* '''duhosaunasi?'''....''what kind of things?, what sort of things?''
* '''duhosaunat?'''....''what kind of person?''
* '''duhosaunati?'''....''what kind of people?''
* '''duhosaunayt?'''....''what kind of girl?''
* '''duhosaunayti?'''....''what kind of girls?''
* '''duhosaunwat?'''....''what kind of guy?''
* '''duhosaunwati?'''....''what kind of guys?''
* '''duhosav?'''....''why?, for what reason?, wherefore?''
* '''duhosi?'''....''what things?, what?''
* '''duhosun?'''....''what thing?, what?''
* '''duhosuni?'''....''what things?, what?''
* '''duhot'''....''who?''
* '''duhot?'''....''what person?, whom''
* '''duhota?'''....''whose?''
* '''duhotandien'''....''carding, i.d.'ing''
* '''duhotandiwa'''....''carded, i.d.'ed''
* '''duhotandraf'''....''identity card''
* '''duhotantuea'''....''identifying''
* '''duhotantuer'''....''identify''
* '''duhotas?'''....''whose thing?''
* '''duhotasi?'''....''whose things?''
* '''duhotayovolza?'''....''of what skin color?''
* '''duhoteyovolza?'''....''of what hair color?''
* '''duhoti'''....''who?''
* '''duhoti?'''....''what persons?, who all?, whom''
* '''duhotob'''....''who?''
* '''duhotob?'''....''what person?, whom''
* '''duhotobi?'''....''what persons?''
* '''duhotooba?'''....''of what gender?''
* '''duhotooda?'''....''of what race?''
* '''duhotxahas '''....''whodunit''
* '''duhotxahas'''....''whodunnit''
* '''duhovolza?'''....''of what color?, what color?''
* '''duhoxag?'''....''how frequently?, how often?''
* '''duhoyen'''....''in what manner, in what way, like what''
* '''duhoyen?'''....''what kind?, what way?''
* '''duhoyena?'''....''like what?, what kind of?, what manner of?''
* '''duhoyenas?'''....''what kind of thing?, what sort of thing?''
* '''duhoyenasi?'''....''what kind of things?, what sort of things?''
* '''duhoyenat?'''....''what kind of person?''
* '''duhoyenati?'''....''what kind of people?''
* '''duhoyenayt?'''....''what kind of girl?''
* '''duhoyenayti?'''....''what kind of girls?''
* '''duhoyeni?'''....''which ways?''
* '''duhoyenwat?'''....''what kind of guy?''
* '''duhoyenwati?'''....''what kind of guys?''
* '''duhoyt'''....''who?''
* '''duhoyt?'''....''which girl?, whom''
* '''duhoyta?'''....''which girl's?, whose?''
* '''duhoytas?'''....''which girl's?, whose thing?''
* '''duhoytasi?'''....''which girl's?, whose things?''
* '''duhoyti'''....''who?''
* '''duhoyti?'''....''which girls?, whom''
* '''duhoyuxun'''....''by what means''
* '''duhoyuxun?'''....''with what means?''
* '''duhozeyen?'''....''by what means?''
</div>
{{small/end}}
==== HA Words ====
:: This deictic prefix can be joined to other elements to form the definite determiners. Also, as a shortened form of the adjective '''haa''', it can act as the definite article ''the''. Here a list of '''ha-''' determiners:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''ha'''....''the''
* '''habyen'''....''how, the kind, the manner, the way''
* '''habyeni'''....''ho the kinds of, the ways that''
* '''hagan'''....''as much, the amount''
* '''hagela'''....''the kind of''
* '''hagla'''....''as many, as much, to the degree, of the amount''
* '''haglas'''....''how much, the amount''
* '''haglasi'''....''how many, the number of things''
* '''haglati'''....''how many (people), the number of people''
* '''haglayti'''....''the number of women''
* '''hahyia'''....''the same''
* '''hahyij'''....''the same time''
* '''hahyis'''....''the same thing''
* '''hahyisi'''....''the same things''
* '''hahyit'''....''the same person''
* '''hahyita'''....''the same person's''
* '''hahyiti'''....''the same people''
* '''hahyua'''....''the other''
* '''hahyuas'''....''the other one''
* '''hahyuat'''....''the other one, the other person''
* '''hahyuj'''....''the other time''
* '''hahyum'''....''that other place, the same place''
* '''hahyus'''....''the other thing''
* '''hahyusauna'''....''the other kind of, this same kind of''
* '''hahyut'''....''the other person''
* '''hahyuyen'''....''the other way, the same way''
* '''haj'''....''the time''
* '''hajaga'''....''of the age''
* '''hajagat'''....''person of the age''
* '''hajagati'''....''people of what age''
* '''hajob'''....''the time''
* '''hajod'''....''on the occasion''
* '''hajodi'''....''at the times, at the times that, on the occasions''
* '''ham'''....''the place''
* '''hami'''....''the places''
* '''hanog'''....''to the degr''
* '''has'''....''it, the thing, what''
* '''hasa'''....''its, the thing's''
* '''hasag'''....''as many, how many, the number of...that''
* '''hasauna'''....''the kind of''
* '''hasaunas'''....''the kind of thing''
* '''hasaunasi'''....''the kinds of things''
* '''hasaunat'''....''the kind of person''
* '''hasaunati'''....''the kind of people''
* '''hasaunayti'''....''the kind of women''
* '''hasaunwat'''....''the kind of man''
* '''hasaunwati'''....''the kind of men''
* '''hasav'''....''for the reason, the reason''
* '''hasi'''....''the things, them, they, what (things)''
* '''hason'''....''it, the matter, the thing''
* '''hasoni'''....''the matters, the things, them, they''
* '''hasun'''....''it, the thing''
* '''hasuni'''....''the things, them, they''
* '''hat'''....''he, him, the person, who(m)/who''
* '''hata'''....''his, the person's''
* '''hatas'''....''his, the person's thing, the persons, whose''
* '''hatasi'''....''his, the person's things, whose (things)''
* '''hati'''....''the ones, the people, them, they, who, whom''
* '''hawa'''....''the one, the only, the single''
* '''hawajod'''....''the only time''
* '''hawam'''....''the only place''
* '''hawas'''....''the only one, the only thing''
* '''hawasi'''....''the only ones, the only things''
* '''hawat'''....''the only one, the only person''
* '''hawatas'''....''the only one's, the only one's thing''
* '''hawatasi'''....''the only one's, the only one's things''
* '''hawati'''....''the only ones, the only people''
* '''haway'''....''only''
* '''hawayen'''....''the only way''
* '''hawayt'''....''the only female person''
* '''hawayti'''....''that only females, the only ones''
* '''haxag'''....''the frequency''
* '''haxaga'''....''of the frequency''
* '''hayen'''....''the kind, the manner, the way, the way''
* '''hayena'''....''how, the kind of, the manner of, the way of the kind''
* '''hayenas'''....''the kind of thing''
* '''hayenasi'''....''the kind of things''
* '''hayenat'''....''the kind of person, what kind of person''
* '''hayenati'''....''the kind of people, what kind of people''
* '''hayenayt'''....''the kind of woman''
* '''hayenayti'''....''the kind of women''
* '''hayeni'''....''in ways that, the kinds that''
* '''hayenwat'''....''the kind of guy''
* '''hayenwati'''....''the kind of men''
* '''hayt'''....''her, she, the girl''
* '''hayta'''....''her, the girl's''
* '''haytas'''....''hers, the girl's''
* '''haytasi'''....''her things, hers, the girl's''
* '''hayti'''....''the girls, them, they''
</div>
{{small/end}}
==== HE Words ====
: This prefix is used to form indefinite determiners meaning ''some, a certain''. Here are the most common:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''hea'''....''a certain, an, some''
* '''heawa'''....''a certain''
* '''heawas'''....''a certain thing''
* '''heawat'''....''a certain person, someone''
* '''hegan'''....''a certain amount, a certain amount, some''
* '''hegla'''....''how much/many, somewhat, to a certain extent, to some degree, to what extent''
* '''heglas'''....''a certain amount, some of it, some (amount)''
* '''heglasi'''....''certain things, some things, some things''
* '''heglati'''....''certain people, some people, some people''
* '''hehyua'''....''some other''
* '''hehyuas'''....''some other one''
* '''hehyuj'''....''some other time''
* '''hehyum'''....''somewhere else''
* '''hehyus'''....''some other thing''
* '''hehyusauna'''....''some other kind of''
* '''hehyut'''....''some other person, someone else''
* '''hehyuyen'''....''somehow other''
* '''hej'''....''at a certain time, sometime, when''
* '''hejaga'''....''how old''
* '''hejagat'''....''person of some age''
* '''hejagati'''....''people of the following age, people of this age''
* '''heji'''....''at certain times, at times, sometimes''
* '''hejob'''....''at a certain time, sometime''
* '''hejod'''....''at a certain time, at some point, on some occasion, sometime''
* '''hejoday'''....''occasionally''
* '''hejodi'''....''at some points, at times, on occasion, on some occasions''
* '''hejuab'''....''some Monday''
* '''hejub'''....''some day, someday''
* '''hejwapi'''....''at certain moments''
* '''hem'''....''somewhere, where''
* '''hemi'''....''some places''
* '''hemules'''....''higgs particle''
* '''henog'''....''somewhat, to a certain extent, to some degree''
* '''heoja'''....''eventual''
* '''heojan'''....''eventuality''
* '''heojay'''....''eventually''
* '''hes'''....''something''
* '''hesag'''....''a certain number, some''
* '''hesana'''....''a certain form of, some form of''
* '''hesauna'''....''a certain kind of, some kind of, some type of''
* '''hesav'''....''for some reason, why''
* '''hesi'''....''certain things, some things, some things''
* '''hesun'''....''something''
* '''hesuni'''....''some things''
* '''het'''....''a certain person, somebody, someone''
* '''heta'''....''a certain person's, somebody's, someone's, whose''
* '''hetas'''....''some persons, somebody's, someone's thing''
* '''hetasi'''....''someboyd's, someone's thing, someones (things)''
* '''heti'''....''certain people, some people, some people''
* '''hetob'''....''a certain person, somebody, someone''
* '''hetoba'''....''a certain person's, somebody's, someone's''
* '''hetobas'''....''somebody's thing, someone's''
* '''hetobasi'''....''somebody's things, someone's''
* '''hetobi'''....''some people''
* '''hetoyb'''....''some woman''
* '''hetoyba'''....''some woman's''
* '''hetoybas'''....''some woman's''
* '''hetoybasi'''....''some woman's things''
* '''hetoybi'''....''some women''
* '''hetwob'''....''some guy, some man''
* '''hetwoba'''....''some man's''
* '''hetwobas'''....''some man's''
* '''hetwobasi'''....''some man's things''
* '''hetwobi'''....''some men''
* '''hexag'''....''how often, sometimes, with some frequency''
* '''hexaga'''....''how frequent''
* '''heyen'''....''how, in some fashion, in some way, somehow, someway''
* '''heyena'''....''a certain kind of, some kind of, what kind of''
* '''heyenas'''....''some kind of thing''
* '''heyenasi'''....''some kind of things, some kinds of things''
* '''heyenat'''....''some kind of person''
* '''heyenata'''....''some kind of person's''
* '''heyenati'''....''some kind of people, some kinds of people''
* '''heyenayt'''....''some kind of girl''
* '''heyenayta'''....''some kind of girl's''
* '''heyenayti'''....''some kinds of girls''
* '''heyeni'''....''in certain ways, in some ways''
* '''heyenwat'''....''some kind of guy''
* '''heyenwata'''....''some kind of guy's''
* '''heyenwati'''....''some kinds of guys''
* '''heyt'''....''a certain female, some girl, someone''
* '''heyta'''....''a certain female's, some girl's, someone's''
* '''heytas'''....''some girl's, someone's thing''
* '''heytasi'''....''some girl's, someone's someone's thing''
* '''heyti'''....''some females, some girls''
* '''heytia'''....''some females''
* '''heytias'''....''some female's thing''
* '''heytiasi'''....''some female's things''
</div>
{{small/end}}
==== HI, HII, and HIY Words ====
::* '''hi-'''....''this''
::* '''hii-'''....''the following''
::* '''hiy'''....''here is, voici''
: The deictic prefix '''hi-''' is used to form proximal demonstratives with the meaning ''this''. The variant '''hii-''' is used to form demonstratives meaning ''the following''. The word '''hiy''' means ''here is, voici''.
: Here is a list of the most common words with these deictic roots:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''hia'''....''these, this''
* '''hias'''....''this one''
* '''hiat'''....''the one over here, this one, this person''
* '''hiati'''....''the people over here, these''
* '''hiawa'''....''this one, this particular''
* '''hiawas'''....''this one, this one thing''
* '''hiawat'''....''this particular person''
* '''hiayt'''....''this female''
* '''hiayta'''....''this female's''
* '''hiayti'''....''these females''
* '''hiewa'''....''these two''
* '''hiewasi'''....''these two things''
* '''hiewati'''....''these two people''
* '''higel'''....''like this way''
* '''higela'''....''this kind of''
* '''higla'''....''this many, this much, this much, to this degree''
* '''higlas'''....''this much''
* '''higlasi'''....''this many''
* '''higlati'''....''this many people''
* '''hihyia'''....''this same''
* '''hihyij'''....''this same time''
* '''hihyis'''....''this same thing''
* '''hihyisi'''....''this same things''
* '''hihyit'''....''this same person''
* '''hihyita'''....''this same person's''
* '''hihyiti'''....''this same people''
* '''hihyua'''....''this other, this other person''
* '''hihyuj'''....''this other time''
* '''hihyum'''....''this other place, this same place''
* '''hihyus'''....''this other thing''
* '''hihyusauna'''....''that other kind of, this same kind of''
* '''hihyusav'''....''for this other reason''
* '''hihyusi'''....''these other things''
* '''hihyuti'''....''these other people''
* '''hihyuyen'''....''this other way, this same way''
* '''hiia'''....''foregoing, forthcoming, the following, the following''
* '''hiigela'''....''the following kind of''
* '''hiigla'''....''to the following degree, to this degree''
* '''hiiglas'''....''the following amount''
* '''hiiglasi'''....''the following number of things''
* '''hiiglati'''....''the following number of people''
* '''hiijaga'''....''of the following age''
* '''hiijagat'''....''person of the following age''
* '''hiimep'''....''the following way''
* '''hiis'''....''the following''
* '''hiisav'''....''for the following reason, for this reason''
* '''hiisi'''....''the following (things)''
* '''hiit'''....''the following person''
* '''hiita'''....''the follow person's, the following person's''
* '''hiitas'''....''the following person's, the following person's''
* '''hiitasi'''....''the following person's things, the following person's''
* '''hiiti'''....''the following people''
* '''hiixag'''....''this often''
* '''hiixaga'''....''of the following frequency''
* '''hiiyen'''....''in the following way, as follows, like the following, the following way''
* '''hiiyena'''....''the following kind of''
* '''hiiyenas'''....''the following kind of thing''
* '''hiiyenasi'''....''the following kinds of things''
* '''hiiyenat'''....''the following kind of person''
* '''hiiyenati'''....''the following kind of people''
* '''hiiyt'''....''the following girl''
* '''hiiyta'''....''the following girl's''
* '''hiiytas'''....''the following girl's''
* '''hiiytasi'''....''the following girl's''
* '''hiiyti'''....''the following guys''
* '''hiizon'''....''this way, this direction''
* '''hij'''....''at this time, now, presently, now''
* '''hijab'''....''this year''
* '''hijaga'''....''this old''
* '''hijagat'''....''person of this age''
* '''hiji'''....''nowadays''
* '''hijob'''....''at this time, now''
* '''hijoba'''....''current''
* '''hijobi'''....''nowadays, these days''
* '''hijod'''....''this time''
* '''hijodi'''....''at these times, on these occasions''
* '''hijuab'''....''this Monday''
* '''hijub'''....''today''
* '''hijuba'''....''today's''
* '''him'''....''here, hither, this place''
* '''himem'''....''the homeland, this country''
* '''himep'''....''this way''
* '''himi'''....''hereabouts, these parts, these places''
* '''himirat'''....''worldling''
* '''himoj'''....''tonight''
* '''hinog'''....''so, this, to this degree, to this extent''
* '''hipi'''....''hippie, hippy''
* '''his'''....''it, this thing, this''
* '''hisauanasi'''....''such things, these kind of things''
* '''hisaun'''....''this kind''
* '''hisauna'''....''such, this kind of''
* '''hisaunas'''....''such a thing, this kind of thing''
* '''hisaunat'''....''such a person, this kind of person''
* '''hisaunati'''....''such people, these kind of people''
* '''hisaunayt'''....''this kind of girl''
* '''hisaunayti'''....''these kinds of girls''
* '''hisaunwat'''....''this kind of guy''
* '''hisaunwati'''....''these kinds of guys''
* '''hisav'''....''for this reason, for this reason, therefore''
* '''hisi'''....''them, these things, they, these (things)''
* '''hison'''....''this issue''
* '''hisun'''....''it, this thing''
* '''hisuni'''....''these things''
* '''hit'''....''he, him, this person, this person''
* '''hita'''....''his, this person's, this persons''
* '''hitas'''....''his, this person's, this persons''
* '''hitasi'''....''his, this person's things, this persons things''
* '''hiti'''....''them, these people, they, these people''
* '''hitia'''....''their''
* '''hitob'''....''this person''
* '''hitoba'''....''this person's''
* '''hitobi'''....''these people''
* '''hitooba'''....''this gender''
* '''hitoyb'''....''this woman''
* '''hitoyba'''....''this woman's''
* '''hitoybi'''....''these women''
* '''hitwob'''....''this man''
* '''hitwoba'''....''this man's''
* '''hitwobi'''....''these men''
* '''hiusauna'''....''this or that kind of, various kinds of''
* '''hivolza'''....''of this color, this color of''
* '''hixag'''....''this often''
* '''hixaga'''....''this often''
* '''hiy'''....''ecce, here is, see here, voici, behold''
* '''hiyen'''....''herewith, like this, so, this way, thus, this way''
* '''hiyena'''....''like this, such, this kind of, this kind of''
* '''hiyenas'''....''such a thing, this kind of thing, this kind of thing''
* '''hiyenasi'''....''these kinds of things''
* '''hiyenat'''....''such a person, this kind of person, this kind of person''
* '''hiyenati'''....''such people, these kinds of people, these kind of people''
* '''hiyenayt'''....''this kind of woman''
* '''hiyenayta'''....''this kind of woman's''
* '''hiyenayti'''....''these kinds of women''
* '''hiyenwat'''....''this kind of man''
* '''hiyenwata'''....''this kind of man's''
* '''hiyenwati'''....''these kinds of men''
* '''hiyt'''....''her, she, this girl''
* '''hiyta'''....''her, this girl's''
* '''hiytas'''....''her thing, hers, this girl's''
* '''hiytasi'''....''her things, hers, this girl's''
* '''hiyti'''....''them, these girls, they''
* '''hiyuxun'''....''this way, with this means''
</div>
{{small/end}}
==== HU, HUU, HUY, HUI- Words ====
::* '''hu-'''....''that''
::* '''huu-'''....''such a, the foregoing''
::* '''huy'''....''voilà, there is, see there''
::* '''hui-'''....''this and that''
: Here are the most common words using the above roots:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''hua'''....''that, yon, yonder''
* '''huati'''....''those people''
* '''huawa'''....''that one, that particular''
* '''huawas'''....''that one, that one thing''
* '''huawat'''....''that particular person''
* '''huawayt'''....''that particular girl''
* '''huewa'''....''those two''
* '''huewasi'''....''those two things''
* '''huewati'''....''those two people''
* '''huewayti'''....''those two girls''
* '''hugel'''....''like that way''
* '''hugela'''....''that kind of''
* '''hugla'''....''that many, that much, that much/many, to that extent''
* '''huglas'''....''how much, that much, that much of it''
* '''huglasi'''....''how many, that many, that many things''
* '''huglati'''....''that many, that many, that many people''
* '''huglayti'''....''that many girls''
* '''huhyia'''....''that same''
* '''huhyij'''....''that same time''
* '''huhyis'''....''that same thing''
* '''huhyisi'''....''that same things''
* '''huhyit'''....''that same person''
* '''huhyita'''....''that same person's''
* '''huhyiti'''....''that same people''
* '''huhyiyen'''....''that same way''
* '''huhyua'''....''that other''
* '''huhyuj'''....''that other time''
* '''huhyum'''....''that other place, that same place''
* '''huhyus'''....''that other thing''
* '''huhyusauna'''....''that other kind of, that same kind of''
* '''huhyusi'''....''those other things''
* '''huhyut'''....''that other person''
* '''huhyuta'''....''that other person's''
* '''huhyuti'''....''those other people''
* '''huhyuyen'''....''that other way''
* '''huij'''....''now and then''
* '''huijoda'''....''sporadic''
* '''huijoday'''....''sporadically''
* '''huim'''....''here and there, passim''
* '''huimigper'''....''run about, run here and there''
* '''huimkexer'''....''search high and low''
* '''huimpaper'''....''fly here and there''
* '''huimpea'''....''going here-and-there, rambling, wandering''
* '''huimpen'''....''going here-and-there, rambling, wandering''
* '''huimper'''....''go here-and-there, ramble, wander''
* '''huimpoper'''....''travel about, travel here-and-yon''
* '''huimput'''....''gadabout, rambler, wanderer''
* '''huimtyopea'''....''ambulant''
* '''huimtyopen'''....''ambulation''
* '''huimtyoper'''....''ambulate''
* '''huis'''....''this-and-that, whatnot''
* '''huisder'''....''mutter something, say this-and-that''
* '''huisyexer'''....''do odd jobs, work this-and-that job''
* '''huittojben'''....''murder-suicide''
* '''huizon'''....''that direction, that way''
* '''huj'''....''then''
* '''huja'''....''quondam''
* '''hujab'''....''that year''
* '''hujaga'''....''of that age, that old''
* '''hujagat'''....''person of that age''
* '''hujagati'''....''people of that age''
* '''hujob'''....''at that time, then''
* '''hujobi'''....''in those days, in those times''
* '''hujod'''....''on that occasion, that time''
* '''hujodi'''....''at those times, on those occasions''
* '''hujuab'''....''that Monday''
* '''hujub'''....''that day''
* '''hulazyukxut'''....''hooper''
* '''hum'''....''at that place, yonder, there''
* '''humep'''....''that way''
* '''humi'''....''those places''
* '''hunog'''....''so, that, to that degree, to that extent''
* '''hus'''....''that thing, that''
* '''husaun'''....''that kind''
* '''husauna'''....''such, that kind of''
* '''husaunas'''....''such a thing, that kind of thing''
* '''husaunasi'''....''such things, those kinds of things''
* '''husaunat'''....''such a person, that kind of person''
* '''husaunati'''....''those kind of people''
* '''husav'''....''for that reason, for that reason, thence, therefore, thus''
* '''husi'''....''those (things), those things''
* '''hut'''....''he, him, that person, that person''
* '''huta'''....''his, that person's, that person's''
* '''hutas'''....''his, that person's, that person's''
* '''hutasi'''....''that persons''
* '''huti'''....''them, they, those people, those people''
* '''hutia'''....''their, those people's''
* '''hutias'''....''theirs''
* '''hutiasi'''....''their things, theirs''
* '''hutooba'''....''that gender''
* '''huua'''....''such a, such a, the foregoing, the latter''
* '''huugel'''....''in such a way, like so''
* '''huugela'''....''such a''
* '''huugla'''....''so many, so much, so very, so much/many, to such an extent/so''
* '''huuglas'''....''so much''
* '''huuglasi'''....''so many, so many (things)''
* '''huuglati'''....''so many (people), so many, so many people''
* '''huuj'''....''at such a time, such a time''
* '''huujab'''....''such a year''
* '''huujag'''....''at such an age''
* '''huujaga'''....''of such an age''
* '''huujagat'''....''person of such an age''
* '''huujagati'''....''people of such an age''
* '''huujob'''....''at such a time''
* '''huujod'''....''at such a time''
* '''huujodi'''....''at such times''
* '''huujub'''....''such a day''
* '''huujubi'''....''in such days''
* '''huum'''....''at such a place, such a place''
* '''huumep'''....''such a way''
* '''huumi'''....''at such places''
* '''huunog'''....''so, to such a degree, to such an extent''
* '''huus'''....''such (a thing), such a thing, the former''
* '''huusauna'''....''such a, such a kind of''
* '''huusav'''....''for such a reason, for such a reason, for the former reason''
* '''huusi'''....''such things, such things, the former things''
* '''huut'''....''such a person, such a person, the former, the former person''
* '''huuta'''....''such a persons, such a person's, the former's''
* '''huutas'''....''such a persons, such a person's''
* '''huutasi'''....''such a persons, such a person's''
* '''huuti'''....''such a people, the former, such people''
* '''huuvolza'''....''of such a color''
* '''huuxag'''....''so often''
* '''huuxaga'''....''so often''
* '''huuyen'''....''in such a manner, in such a way, like so, thus, thusly, such a way''
* '''huuyena'''....''like so, such a, such a kind of, such kind of''
* '''huuyenas'''....''such kind of thing''
* '''huuyenasi'''....''such kinds of things''
* '''huuyenat'''....''such a person''
* '''huuyenati'''....''such kinds of people''
* '''huuyenjo'''....''et cetera, etc.''
* '''huuyensu'''....''amen''
* '''huuyt'''....''such a girl''
* '''huuyta'''....''such a girl's''
* '''huuytas'''....''such a girl's''
* '''huuytasi'''....''such a girl's''
* '''huuyti'''....''such a guys''
* '''huvolza'''....''of that color''
* '''huxag'''....''that frequently, that often, that often''
* '''huy'''....''ecce, presto, see there, there is, voila''
* '''huyen'''....''in that manner, like that, so, that way, thus, that way''
* '''huyena'''....''like that, such, that kind of, that kind of''
* '''huyenam'''....''such a place''
* '''huyenami'''....''in such places''
* '''huyenas'''....''such a thing, that kind of thing, that kind of thing''
* '''huyenasi'''....''those kinds of things''
* '''huyenat'''....''such a person, that kind of person, that kind of person''
* '''huyenati'''....''such people, those kinds of people, those kind of people''
* '''huyengla'''....''so many, so much''
* '''huyenglas'''....''so much''
* '''huyenglasi'''....''so many''
* '''huyenglati'''....''so many people''
* '''huyeni'''....''in such ways, in those ways''
* '''huyenjo'''....''etc.''
* '''huyenjob'''....''at a time like that, at such a time''
* '''huyenjobi'''....''at such times, at times like those''
* '''huyenjod'''....''at such a time, on such an occasion''
* '''huyenjodi'''....''at such times, on such occasions''
* '''huyennog'''....''so, to a degree like that''
* '''huyenxag'''....''so often''
* '''huyt'''....''her, she, that female person, that girl''
* '''huyta'''....''her, that female person's, that female's, that girl's''
* '''huytas'''....''her thing, hers, that female person's, that girl's''
* '''huytasi'''....''her things, hers, that girl's''
* '''huyti'''....''they, those girls''
* '''huytia'''....''their, those females'''
* '''huytias'''....''their thing, theirs, those females'''
* '''huytiasi'''....''their things, theirs, those females'''
* '''huyuxun'''....''that way, with that means''
</div>
{{small/end}}
==== HYO Words ====
: The deictic prefix '''hyo-''' forms determiners that begin with ''no-''. Here are the most common:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''hyo ea job'''....''nevermore''
* '''hyo ea jod'''....''never again''
* '''hyo-'''....''no-, not''
* '''hyoa yovtos vyel'''....''no qualms about''
* '''hyoa'''....''nary, no, not a, not a single, no, not a single''
* '''hyoawa jod'''....''never, not a single time, not one time, on no occasion''
* '''hyoawa'''....''not a, not a single''
* '''hyoawas'''....''not a single one, not a single thing''
* '''hyoawat'''....''not a single person''
* '''hyoawata'''....''not a single person's''
* '''hyoema'''....''utopian''
* '''hyoeman'''....''utopia''
* '''hyogel'''....''how, in no way''
* '''hyogela'''....''no kind of''
* '''hyogla job'''....''never, no amount of time, no time''
* '''hyogla jodi'''....''as often as, never, zero times''
* '''hyogla'''....''hardly, no amount/number of, no, not any, not at all, not at all, not at all, no''
* '''hyoglas'''....''none at all, not any whatever, none of it, not any''
* '''hyoglasi'''....''how many, none''
* '''hyoglat'''....''nobody at all''
* '''hyoglati'''....''how many, no people, none of them, no people at all, none''
* '''hyohyua'''....''no other''
* '''hyohyuj'''....''no other time''
* '''hyohyum'''....''nowhere else''
* '''hyohyus'''....''nothing else''
* '''hyohyut'''....''nobody else''
* '''hyohyuyen'''....''no other way''
* '''hyohyuyena'''....''no other kind of''
* '''hyoj'''....''at no time, ever, never, never at all''
* '''hyojaga'''....''of no age''
* '''hyojagat'''....''person of no age''
* '''hyojagati'''....''people of no age''
* '''hyojebdalwa'''....''never-discussed''
* '''hyojeser'''....''last no time''
* '''hyojkyesya'''....''never-before-happened, unprecedented''
* '''hyojob'''....''at no time, never''
* '''hyojod'''....''at no point in time, at no time, never, not once''
* '''hyojodi'''....''at no times, never, not ever''
* '''hyojtofbwa'''....''never-worn''
* '''hyom'''....''nowhere at all''
* '''hyomep'''....''no way''
* '''hyomi'''....''in no places''
* '''hyonixea'''....''zero-earning''
* '''hyonog'''....''in no way, in no wise, to no extent, not at all, not at all''
* '''hyos'''....''anything, naught, nothing whatsoever, nought, zilch, zip, nothing at all''
* '''hyosaser'''....''fizzle''
* '''hyosaun'''....''no kind''
* '''hyosauna'''....''no kind of''
* '''hyosaunas'''....''no kind of thing''
* '''hyosaunasi'''....''no kind of things''
* '''hyosav'''....''for no reason, for no reason whatever''
* '''hyosaxwa'''....''fizzled''
* '''hyosbexea'''....''destitute''
* '''hyosbexean'''....''destitution''
* '''hyoshotoser'''....''experience apathy''
* '''hyosi'''....''no things, no things, nothing''
* '''hyoskadea'''....''tight-lipped''
* '''hyosnazat'''....''good-for-nothing person''
* '''hyoson'''....''nil, nothing, zilch''
* '''hyostayotea'''....''feeling nothing, numb''
* '''hyostea'''....''ignorant''
* '''hyostean'''....''ignorance''
* '''hyosteat'''....''nitwit''
* '''hyosteser'''....''matter not, mean nothing''
* '''hyostosen'''....''experiencing apathy''
* '''hyosun'''....''nihil, nothing''
* '''hyosunxen'''....''annihilation''
* '''hyosunxer'''....''annihilate, nix, raze''
* '''hyosunxwa'''....''annihilated''
* '''hyot'''....''nobody at all''
* '''hyota'''....''nobody's''
* '''hyotas'''....''nobody's''
* '''hyotasi'''....''nobody's''
* '''hyotesea'''....''meaning nothing''
* '''hyoti'''....''no people, those who''
* '''hyotooba'''....''genderless, of no gender, ungendered''
* '''hyotoobat'''....''person of no gender''
* '''hyotoobifa'''....''asexual''
* '''hyotoobifan'''....''asexuality''
* '''hyotoobifay'''....''asexually''
* '''hyovolza'''....''blank, of no color''
* '''hyoxag'''....''never''
* '''hyoxaga'''....''of zero frequency''
* '''hyoxen'''....''abolishing, abolishment''
* '''hyoxer'''....''abolish''
* '''hyoxier'''....''come to naught''
* '''hyoxut'''....''abolisher''
* '''hyoxwa'''....''abolished''
* '''hyoyen'''....''in no way whatever, in no wise''
* '''hyoyena'''....''how, no kind of, no such, no kind of''
* '''hyoyenas'''....''no kind of thing, no kind of thing, no such thing''
* '''hyoyenasi'''....''no kind of things, no such things, no kinds of things''
* '''hyoyenat'''....''no kind of person, no kind of person, no such person''
* '''hyoyenati'''....''no kind of people, no kind of people, no such people''
* '''hyoyt'''....''no girl, nobody''
* '''hyoyta'''....''no girl's, nobody's''
* '''hyoytas'''....''no girl's, nobody's thing''
* '''hyoytasi'''....''no girl's, nobody's things''
</div>
{{small/end}}
==== HYA Words ====
: The deitic prefix '''hya-''' forms determiners and other words that begin with ''every, all''. Here are the most common:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''hya ea juab'''....''every other Monday, every second Monday''
* '''hya ea'''....''every other, every second''
* '''hya elu jwobi'''....''around the clock''
* '''hya juyeb'''....''every Sunday''
* '''hya oy'''....''all but, almost''
* '''hya yea jab'''....''septennial''
* '''hya zyag'''....''all along''
* '''hya'''....''all, every''
* '''hya-'''....''all-, holo-, omni-, pan-, tot-''
* '''hya'''....''every''
* '''hyaa'''....''livelong, total''
* '''hyabelus'''....''holdall''
* '''hyadoiba'''....''countywide''
* '''hyadoma'''....''citywide''
* '''hyadooba'''....''pan-national''
* '''hyadoobay'''....''pan-nationally''
* '''hyadoobin'''....''pan-nationalism''
* '''hyadoobina'''....''pan-nationalist''
* '''hyadoobinut'''....''pan-nationalist''
* '''hyaekundrawa'''....''opisthographic''
* '''hyaesea'''....''omnipresent''
* '''hyaesen'''....''omnipresence''
* '''hyaewa jodi'''....''all two times, both times, on both instances''
* '''hyaewa...ay'''....''both...and''
* '''hyaewa-'''....''ambi-''
* '''hyaewa'''....''both''
* '''hyaewasi'''....''both of them, both things''
* '''hyaewatesa'''....''ambiguous''
* '''hyaewatesan'''....''ambiguity''
* '''hyaewatesay'''....''ambiguously''
* '''hyaewati'''....''both of them, both people, both persons''
* '''hyaewatooba'''....''ambigendered''
* '''hyaewatoobifa'''....''ambi-sexual''
* '''hyaewayafwan'''....''toss-up, tossup''
* '''hyaewayti'''....''both girls, both of them''
* '''hyafua'''....''abject''
* '''hyafuay'''....''abjectly''
* '''hyagekunsan'''....''rhomboid, rhombus''
* '''hyagekunsana'''....''rhomboidal''
* '''hyagel'''....''in every way''
* '''hyagela'''....''every kind of''
* '''hyagla job'''....''all the time''
* '''hyagla jodi'''....''all the time, always, at all times''
* '''hyagla'''....''all of, totally, wholly''
* '''hyaglan'''....''totality''
* '''hyaglas'''....''all of it, all of it, the whole thing''
* '''hyaglasi'''....''all of them, every one of them''
* '''hyaglati'''....''all of them''
* '''hyaglayti'''....''all of the women, all of them''
* '''hyagonuta yanup'''....''plenum''
* '''hyaha jub'''....''all day, all the day, the entire day, the whole day''
* '''hyaha mep'''....''all the way, the entire way, the whole way''
* '''hyaha mir'''....''all the world, the entire world, the whole world''
* '''hyaha pati'''....''all the birds''
* '''hyaha'''....''all the entire, the whole, all the''
* '''hyahyua'''....''all other, every other''
* '''hyahyuj'''....''every other time''
* '''hyahyum'''....''every over place''
* '''hyahyus'''....''everything else''
* '''hyahyut'''....''everybody else''
* '''hyaika'''....''integral, whole''
* '''hyaikan'''....''integrality, integrity, wholeness''
* '''hyaikay'''....''integrally, wholly''
* '''hyaikser'''....''integrate''
* '''hyaikxen'''....''integration''
* '''hyaikxer'''....''integrate''
* '''hyaikxwa'''....''integrated''
* '''hyaiwa'''....''all three''
* '''hyaiwasi'''....''all three of them, all three things''
* '''hyaiwati'''....''all three of them, all three people''
* '''hyaiwayti'''....''all these women, all three of them''
* '''hyaizon'''....''in every direction''
* '''hyaizona'''....''omnidirectional''
* '''hyaj vyayuva'''....''semper fi''
* '''hyaj'''....''all the time, always, evermore, always''
* '''hyaja taxrunloxus'''....''all-time record, all-time record-breaker''
* '''hyajab'''....''every year''
* '''hyajaba'''....''perennial''
* '''hyajabay'''....''perennially''
* '''hyajaga'''....''of every age''
* '''hyajagat'''....''person of every age''
* '''hyajagati'''....''people of every age''
* '''hyaje ho'''....''as long as''
* '''hyaje'''....''all during, all through, throughout''
* '''hyajesea okon'''....''headcrash''
* '''hyajesea'''....''everlasting, permanent, sempiternal''
* '''hyajeseaa'''....''lasting''
* '''hyajesean'''....''permanence, permanency''
* '''hyajeseay'''....''everlastingly, permanently''
* '''hyajeyay'''....''forever''
* '''hyaji'''....''always, at all times''
* '''hyajib'''....''monthly''
* '''hyajob'''....''all the time, always, eternity, forever''
* '''hyajoba'''....''eternal''
* '''hyajoban'''....''eternalness''
* '''hyajobay'''....''eternally''
* '''hyajobi'''....''always, at all times, forever''
* '''hyajod'''....''always, at every instance, each time, every time''
* '''hyajodi'''....''all the time, always, at all times, in all cases, on all occasions''
* '''hyajpopea'''....''peripatetic''
* '''hyajuab'''....''Mondays, every Monday''
* '''hyajub'''....''every day''
* '''hyajuba'''....''daily, everyday, mundane, quotidian''
* '''hyajubay'''....''daily''
* '''hyajubyena'''....''workaday''
* '''hyam'''....''allover, everyplace, everywhere''
* '''hyama'''....''rife''
* '''hyaman'''....''rifeness, ubiquity''
* '''hyamay'''....''ubiquitously''
* '''hyamema'''....''country-wide, countrywide''
* '''hyamep'''....''all along, every way, the whole way''
* '''hyamerbok'''....''pandemic''
* '''hyamesea'''....''prevailing, prevalent''
* '''hyameseay'''....''prevalently''
* '''hyamesen'''....''prevalence''
* '''hyameser'''....''prevail''
* '''hyami'''....''all over, everywhere, in all places''
* '''hyamira bokzyab'''....''pandemic''
* '''hyamira'''....''ecumenical, global, world-wide, worldwide''
* '''hyamiray'''....''ecumenically''
* '''hyamirin'''....''ecumenicism, ecumenism''
* '''hyamkexer'''....''scour, search high and low, ransack''
* '''hyamojdaz'''....''rave''
* '''hyamojdazer'''....''rave''
* '''hyamojdazut'''....''raver''
* '''hyamtayopelper'''....''itch all over''
* '''hyamtujer'''....''whore''
* '''hyamtujut'''....''whore''
* '''hyamtujutyan'''....''whoredom''
* '''hyamtujyea'''....''whoreish, whorish''
* '''hyamzyapea'''....''pervading''
* '''hyamzyapen'''....''pervading, pervasion''
* '''hyamzyaper'''....''pervade''
* '''hyamzyapya'''....''pervaded''
* '''hyamzyapyea'''....''pervasive''
* '''hyamzyapyean'''....''pervasiveness''
* '''hyanaxgob'''....''closeout''
* '''hyanog'''....''completely, totally''
* '''hyaoyutyan'''....''claque''
* '''hyas oy'''....''everything except''
* '''hyas-'''....''all-, omni-, pan-, panto-''
* '''hyas'''....''everything''
* '''hyasauna'''....''every kind of, generic''
* '''hyasav'''....''for every reason''
* '''hyasbelar'''....''carryall, catch-all, catchall, hodgepodge''
* '''hyasbiut'''....''gadfly''
* '''hyasbyekul'''....''elixir, nostrum''
* '''hyasi'''....''all things''
* '''hyaskader'''....''reveal everything, tell all''
* '''hyasnyef'''....''ragbag''
* '''hyaSoliada'''....''pan-Slavic''
* '''hyastea'''....''all-knowing, omniscient''
* '''hyastean'''....''omniscience''
* '''hyasteat'''....''omniscient person''
* '''hyasteaxuea'''....''hardcore''
* '''hyasteay'''....''omnisciently''
* '''hyastelea'''....''omnivore''
* '''hyastelean'''....''omnivorousness''
* '''hyasteleay'''....''omnivorously''
* '''hyaster'''....''be omniscient, know everything''
* '''hyastoxut'''....''scatterbrain''
* '''hyastoxyea'''....''scatter-brained, scatterbrained''
* '''hyastundyes'''....''encyclopedia''
* '''hyastundyesa'''....''encyclopedic''
* '''hyastut'''....''wiseacre''
* '''hyasufa'''....''splenetic''
* '''hyasun'''....''everything''
* '''hyasuni'''....''all things''
* '''hyasunxut'''....''factotum''
* '''hyasyafla'''....''almighty''
* '''hyasyebexea'''....''comprehensive''
* '''hyasyebexean'''....''comprehensiveness''
* '''hyasyebexeay'''....''comprehensively''
* '''hyat goy et'''....''everyone except you''
* '''hyat ho'''....''everyone that, everyone who''
* '''hyat ovabiwa et'''....''everyone except you''
* '''hyat oy et'''....''everyone except you''
* '''hyat'''....''everyone''
* '''hyata'''....''everybody's, everybody's, everyone's''
* '''hyata-'''....''panto-''
* '''hyatama nunuut'''....''door-to-door salesman, doorstep salesman''
* '''hyatama'''....''door-to-door''
* '''hyatas'''....''everyboyd's''
* '''hyatasi'''....''everybody's''
* '''hyatayovollzati'''....''people of all ''
* '''hyateja dat'''....''life-long friend''
* '''hyateja'''....''life-long, lifelong''
* '''hyatepyex'''....''free-for-all''
* '''hyati!'''....''All aboard!''
* '''hyati'''....''all (people), all of them, all people''
* '''hyatob'''....''every man, every person, everybody''
* '''hyatobi'''....''all men, all people''
* '''hyatooba'''....''omni-sexual, pan-sexual''
* '''hyatoobifa'''....''pan-sexual''
* '''hyatoobifan'''....''pan-sexuality''
* '''hyatoobifut'''....''pan-sexual''
* '''hyatotin'''....''pantheism''
* '''hyatotina'''....''pantheistic''
* '''hyatotinut'''....''pantheist''
* '''hyatotyan'''....''pantheon''
* '''hyatoyb'''....''every woman''
* '''hyatoyba'''....''every woman's''
* '''hyatoybas'''....''every woman's''
* '''hyatoybasi'''....''every woman's things''
* '''hyatoybi'''....''all women''
* '''hyatrawadut'''....''name-dropper''
* '''hyattojben'''....''holocaust''
* '''hyattrawaden'''....''name-dropping, namedropping''
* '''hyattrawader'''....''name-drop, namedrop''
* '''hyatwob'''....''every man''
* '''hyatwoba'''....''every man's''
* '''hyatwobas'''....''every man's''
* '''hyatwobasi'''....''every man's things''
* '''hyatwobi'''....''all men''
* '''hyavolza'''....''of every color, panchromatic''
* '''hyawa jod ho'''....''each time that, every time''
* '''hyawa jod'''....''each time, every time, on each occasion''
* '''hyawa jwap'''....''at each moment''
* '''hyawa'''....''each single, every, each''
* '''hyawas'''....''each one, each thing''
* '''hyawat'''....''each one, each person''
* '''hyawata'''....''each one's, each person's''
* '''hyawatas'''....''each one's''
* '''hyawatasi'''....''each one's things''
* '''hyawayt'''....''each woman''
* '''hyawayta'''....''each woman's''
* '''hyawaytas'''....''each woman's''
* '''hyawaytasi'''....''each woman's things''
* '''hyaxag'''....''always''
* '''hyaxaga'''....''always''
* '''hyayafa'''....''all-powerful, omnipotent''
* '''hyayafan'''....''all-powerfulness, omnipotence''
* '''hyayafat'''....''omnipotent one''
* '''hyayebexea'''....''overall''
* '''hyayegsaxen'''....''overhauling''
* '''hyayegsaxer'''....''overhaul''
* '''hyayen'''....''completely, everyway, in every way, in every way''
* '''hyayena'''....''every kind of, every kind of every type''
* '''hyayenas'''....''every kind of thing''
* '''hyayenasi'''....''all kinds of things, all types of things''
* '''hyayenat'''....''every kind of person, everybodys''
* '''hyayenati'''....''all kinds of people''
* '''hyayeni'''....''in all ways''
* '''hyayivyenat'''....''everything-goes-person''
* '''hyaysiyn'''....''high-five''
* '''hyayt'''....''every girl''
* '''hyayta'''....''every girl's everyone's''
* '''hyaytas'''....''every girl's, everyone's thing''
* '''hyaytasi'''....''every girl's, everyone's things''
* '''hyayti'''....''all girls, all of them''
* '''hyayubay'''....''mundanely''
* '''hyayzyun'''....''pompom, pompon''
* '''hyazbyekus'''....''panacea''
* '''hyazye ota tej'''....''throughout ones life''
* '''hyazye'''....''throughout''
</div>
{{small/end}}
==== HYE Words ====
: The deictic prefix '''hye-''' is used to form indeterminate determiners that begin '''any-, whichever-'''. Here are the most common:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''hye-'''....''-ever, any, whatever, whichever''
* '''hyea'''....''any, whatever, whichever/any''
* '''hyeas'''....''whichsoever''
* '''hyeawa...ey'''....''either...or''
* '''hyeawa'''....''any one, either, whichever''
* '''hyeawas'''....''any one, either one, either thing, whichever one''
* '''hyeawat'''....''either one, either person, whichever one person''
* '''hyeawata'''....''either ones, either persons''
* '''hyeawatas'''....''not a single person's''
* '''hyeawatasi'''....''not a single person's things''
* '''hyeawayt'''....''either woman''
* '''hyeawayta'''....''either woman's''
* '''hyeawaytas'''....''either woman's''
* '''hyeawaytasi'''....''either woman's things''
* '''hyeewa'''....''any two, whichever two''
* '''hyeewasi'''....''any two, any two things, whichever two''
* '''hyeewati'''....''any two, any two people, whichever two''
* '''hyeewayti'''....''whichever two women''
* '''hyegel'''....''however, whatever kind''
* '''hyegela'''....''any kind of, whatever kind of''
* '''hyegla job'''....''for whatever amount of time, however long''
* '''hyegla jodi'''....''any number of times, however often, on any number of occasions''
* '''hyegla'''....''any, however many, however much, umpteen, however much/many, to whatever extent''
* '''hyeglas'''....''any of it, however much, however much''
* '''hyeglasi'''....''any of them, however many, however many''
* '''hyeglati'''....''any of them, however many, however many (people)''
* '''hyehyua'''....''any other, whatever other''
* '''hyehyuj'''....''any other time''
* '''hyehyum'''....''any other place''
* '''hyehyus'''....''anything else, whatever else''
* '''hyehyusauna'''....''any other kind of''
* '''hyehyuyen'''....''any other way''
* '''hyeizon'''....''any way, any which way, in any direction, in whatever direction, whatever direction''
* '''hyej ho'''....''at whatever time, whenever''
* '''hyej'''....''any time, anytime, ever''
* '''hyejaga'''....''however old''
* '''hyejagat'''....''person of whatever age''
* '''hyejagati'''....''people of whatever age''
* '''hyejob ho'''....''anytime that, whenever''
* '''hyejob'''....''any time, anytime, at whatever time''
* '''hyejod ho'''....''any time that, anytime that, on any occasion when, whenever''
* '''hyejod'''....''any time, anytime, at any point, on any occasion, on whatever occasion''
* '''hyejodi'''....''any time, at whatever times, on any occasions, whenever''
* '''hyejuab'''....''any Monday''
* '''hyejub'''....''any day, whatever day''
* '''hyejwap'''....''at any moment''
* '''hyem ho'''....''anywhere that, wherever''
* '''hyem'''....''anyplace, anywhere, someplace, wherever'||''
* '''hyemep'''....''any way, any which way''
* '''hyemi'''....''anywhere, at whatever places''
* '''hyempea'''....''erratic''
* '''hyempeay'''....''erratically''
* '''hyenapa'''....''umpteenth''
* '''hyenog ho'''....''to any extent that, to whatever degree''
* '''hyenog'''....''however, in any degree, to any extent, to whatever extent''
* '''hyeowa...oey'''....''neither...nor''
* '''hyeowa'''....''neither''
* '''hyeowas'''....''neither thing''
* '''hyeowat'''....''neither one, neither person''
* '''hyes ho'''....''anything that, whatever''
* '''hyes'''....''any, anything, whatever/anything''
* '''hyesaun'''....''any kind, genre, whatever kind''
* '''hyesauna'''....''any kind of, whatever kind of''
* '''hyesaunas'''....''any kind of thing, whatever kind of thing''
* '''hyesaunasi'''....''whatever kinds of things''
* '''hyesaunat'''....''any kind of person, whatever kind of person''
* '''hyesaunati'''....''any kind of people, whatever kind of people, whatever kinds of people''
* '''hyesaunayt'''....''any kind of woman''
* '''hyesaunayta'''....''any kind of woman's''
* '''hyesaunayti'''....''whatever kind of women''
* '''hyesaunwat'''....''any kind of man''
* '''hyesaunwata'''....''any kind of man's''
* '''hyesaunwati'''....''whatever kind of men''
* '''hyesav ho'''....''for whatever reason that''
* '''hyesav van'''....''for whatever reason that''
* '''hyesav'''....''for whatever/any reason''
* '''hyesi'''....''any, whatever things, whatever (things)''
* '''hyesun ho'''....''anything that''
* '''hyesun'''....''anything, whatever''
* '''hyesundraf'''....''wildcard''
* '''hyesuni'''....''any, whatever things''
* '''hyet ho'''....''anybody that, anybody who, anyone that, anyone who, whoever, whomever, whomsoever, whosesoever, whosoever''
* '''hyet'''....''anybody, anyone, whoever/anybody''
* '''hyeta'''....''whoever's, whosever''
* '''hyetas'''....''whoever's, whosoever's thing, whosevers''
* '''hyetasi'''....''whoever's, whosoever's things, whosoevers (things)''
* '''hyetayolza'''....''of any skin-color''
* '''hyetebtabifayt'''....''demimondaine''
* '''hyetesa dref'''....''wild card''
* '''hyeti ho'''....''any people that, whoever, whomever''
* '''hyeti'''....''any people, whoever (pl.)''
* '''hyetooba'''....''any gender-fluid, of any gender, of whatever gender, whatever gender''
* '''hyetoobat'''....''person of whatever gender''
* '''hyetooda'''....''of any race, of either race, of mixed race, of mixed-race, racially mixed, racially-mixed''
* '''hyetoodat'''....''mulatto, person of mixed-race''
* '''hyevolza'''....''of any color, of whatever color''
* '''hyexag ho'''....''however often''
* '''hyexag'''....''how everoften''
* '''hyexaga'''....''however frequent''
* '''hyeyen ho'''....''anyway that''
* '''hyeyen'''....''any which way, anyhow, anyway, anywise, however, in any manner, in whatever way, like whatever, no matter how, whatever kind, however''
* '''hyeyena'''....''any kind of, like whatever kind of, whatever/any kind of''
* '''hyeyenas'''....''any kind of thing, any kind, whatever kind of thing''
* '''hyeyenasi'''....''any kinds of things, whatever kinds of things''
* '''hyeyenat'''....''any kind of person, whatever kind of person, whatever kind of person''
* '''hyeyenati'''....''any kind of people, any kinds of people, whatever kind of people, whatever kinds of people''
* '''hyeyenayti'''....''whatever kind of women''
* '''hyeyeni ho'''....''in any ways that''
* '''hyeyeni'''....''however, in whatever ways''
* '''hyeyenwati'''....''whatever kind of men''
* '''hyeyt ho'''....''any woman who, whichever woman''
* '''hyeyt'''....''any woman, whoever, whomever''
* '''hyeyta'''....''any girl's, whosever''
* '''hyeytas'''....''any girl's, whosoever's thing''
* '''hyeytasi'''....''any girl's, whosoever's things''
* '''hyeyti'''....''any girls, whatever girls, whoever, whomever''
</div>
{{small/end}}
==== HYI Words ====
: The deictic prefix '''hyi-''' forms identical determiners that begin with '''(the) same'''. Here are the most common:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''hyi-'''....''homo-, like-''
* '''hyia'''....''selfsame, the same, the very, the same''
* '''hyias'''....''the same one''
* '''hyiasi'''....''the same ones''
* '''hyiat ho'''....''that same one who''
* '''hyiat'''....''the same one, the same person''
* '''hyiati ho'''....''that same ones who''
* '''hyiati'''....''the same ones, the same people''
* '''hyiawa'''....''the same one''
* '''hyiawas'''....''the same one''
* '''hyiawat'''....''the same one''
* '''hyidyunat'''....''namesake''
* '''hyiema'''....''endemic''
* '''hyiemay'''....''endemically''
* '''hyiewa'''....''the same two''
* '''hyiewasi'''....''the same two things''
* '''hyiewati'''....''the same two people''
* '''hyigel'''....''in the same way as''
* '''hyigela'''....''the same kind of''
* '''hyigla jodi vyel'''....''as many times as''
* '''hyigla jodi'''....''as often, the same number of times''
* '''hyigla x vyel y'''....''as x as y''
* '''hyigla'''....''as many, as much, the same amount of, the same number of, just as, to the same extent''
* '''hyiglas'''....''as much, the same amount, just as much''
* '''hyiglasi ho'''....''as many as''
* '''hyiglasi'''....''as many, as many things, the same number of things''
* '''hyiglati ho'''....''as many as''
* '''hyiglati'''....''as many, as many people, the same number of people, just as many people''
* '''hyigloti vyel'''....''as many people as''
* '''hyihyut'''....''one another''
* '''hyiizon'''....''the same direction, the same way''
* '''hyij ho'''....''at the same time that''
* '''hyij'''....''at the same time, at the very time, at the same time''
* '''hyijaga'''....''chronologically the same, of the same age, just as old''
* '''hyijagat'''....''person of the same age''
* '''hyijagati'''....''people of the same age''
* '''hyijatada'''....''consanguine, consanguineous''
* '''hyijatadan'''....''consanguinity''
* '''hyijob ho'''....''at the same time that''
* '''hyijob'''....''at the same time''
* '''hyijoba'''....''contemporaneous''
* '''hyijoban'''....''contemporaneity, contemporaneously''
* '''hyijod'''....''at the same time, on the same occasion''
* '''hyijodi'''....''at the same times, on the same occasions''
* '''hyijuab'''....''the same Monday''
* '''hyijub'''....''the same day''
* '''hyikan'''....''altogether''
* '''hyi-m gel-'''....''semel-''
* '''hyim ho'''....''at the same place that''
* '''hyim'''....''at the same place, ibid, ibidem, the same place''
* '''hyimema'''....''home-grown, internal''
* '''hyimematser'''....''get naturalized''
* '''hyimematxen'''....''naturalization''
* '''hyimematxer'''....''naturalize''
* '''hyimematxwa dit'''....''naturalized citizen''
* '''hyimematxwa'''....''naturalized''
* '''hyimemut'''....''countryman''
* '''hyimep'''....''the same way''
* '''hyimer'''....''our own planet, this planet''
* '''hyimera'''....''of our own planet''
* '''hyimerat'''....''person of our planet''
* '''hyimi'''....''at the same places''
* '''hyinema'''....''homotopic''
* '''hyinog ho'''....''as much as, just as, to the same degree that''
* '''hyinog'''....''as, to the same degree, to the same extent''
* '''hyis'''....''idem, itself, the same, the same thing, the same thing''
* '''hyisag ho'''....''as many as''
* '''hyisandyofwa'''....''unidentifiable''
* '''hyisaun'''....''the same kind''
* '''hyisauna'''....''homogeneous, the same kind of''
* '''hyisaunan'''....''homogeneity, homogeneousness''
* '''hyisaunay'''....''homogeneously''
* '''hyisaunxen'''....''homogenization''
* '''hyisaunxer'''....''homogenize''
* '''hyisaunxwa'''....''homogenized''
* '''hyisav ho'''....''for the same reason that''
* '''hyisav van'''....''for the same reason that''
* '''hyisav'''....''for the same reason''
* '''hyisi'''....''the same things''
* '''hyisun'''....''the same, the same thing''
* '''hyisuni'''....''the same things''
* '''hyisunxen'''....''copying''
* '''hyisunxwa'''....''copied''
* '''hyit'''....''oneself, self, the same one, the same person, the very same, the same person''
* '''hyita'''....''one's own, the same persons''
* '''hyitas'''....''one's own, one's own thing, the same persons''
* '''hyitasi'''....''the same persons''
* '''hyitbukifa'''....''masochistic''
* '''hyitbukifan'''....''masochism''
* '''hyitbukifat'''....''masochist''
* '''hyitbukifay'''....''masochistically''
* '''hyitepa'''....''like-minded''
* '''hyitepan'''....''like-mindedness''
* '''hyiteser'''....''mean the same''
* '''hyiti'''....''selves, the same ones, the same people, the very same ones, the same people''
* '''hyitooba tadan'''....''same-sex marrage''
* '''hyitooba'''....''same gender''
* '''hyitoobifa'''....''homophile, homosexual, same-sex''
* '''hyitoobifan'''....''homosexuality''
* '''hyitoobifayt'''....''lesbian''
* '''hyitoobifaytan'''....''lesbianism''
* '''hyitoobifaytin'''....''lesbianism''
* '''hyitoobifinut'''....''homophile''
* '''hyitoobifut'''....''fag, faggot, homosexual''
* '''hyitooda'''....''co-racial, of the same race''
* '''hyitoodat'''....''co-racial, person of the same race''
* '''hyitoodin'''....''co-racialism''
* '''hyitoodina'''....''co-racialistic''
* '''hyitoodinut'''....''co-racialist''
* '''hyitooodat'''....''co-racial''
* '''hyitos'''....''sense of connectedness''
* '''hyivolza'''....''of the same color''
* '''hyixag vyel'''....''as many times as''
* '''hyixag'''....''as often, just as often''
* '''hyixaga'''....''just as often''
* '''hyiyen ho'''....''in the same way that, just as''
* '''hyiyen'''....''as, in the same way, likewise, so, likewise''
* '''hyiyena'''....''like-mannered, such, the same kind of, the same kind of''
* '''hyiyenas'''....''the same kind of thing''
* '''hyiyenasi'''....''the same kinds of things''
* '''hyiyenat'''....''the same kind of person''
* '''hyiyenati'''....''the same kind of people''
* '''hyiyt'''....''herself, the same girl, the same one, this very person''
* '''hyiyta'''....''the same girl's, the same one's''
* '''hyiytas'''....''the same girl's, the same one's things''
* '''hyiyti'''....''the same girls, the same ones''
* '''hyizena'''....''homocentric''
</div>
{{small/end}}
==== HYU and HYUI Words ====
: The deictic prefix '''hyu-''' is used to form non-identical determiners beginning with ''(the) other''. The hybrid prefix '''hyui-''' is used to form words referring to reciprocity (''one another''). Here are the most common:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''hyu vyel'''....''other than''
* '''hyu-'''....''alter-, hetero-, other-, xeno-''
* '''hyua job'''....''the other time, some other time, another time''
* '''hyua jodi'''....''on other occasions''
* '''hyua'''....''another, other, alternate, the other''
* '''hyuawa job'''....''another time, some other time''
* '''hyuawa jod'''....''one more time, again''
* '''hyuawa juab'''....''another Monday, some other Monday''
* '''hyuawa'''....''another''
* '''hyuawas'''....''another one''
* '''hyuawat'''....''another person, someone else''
* '''hyuawata'''....''another person's, another's, someone else's''
* '''hyuawatas'''....''another's''
* '''hyuawatasi'''....''another's things''
* '''hyuaxen'''....''alienation''
* '''hyuaxer'''....''alienate''
* '''hyuaxwa'''....''alienated''
* '''hyuay'''....''differently, otherwise''
* '''hyudalzeynxen'''....''translating, translation''
* '''hyudalzeynxer'''....''translate''
* '''hyudalzeynxut'''....''translator''
* '''hyudalzeynxwa'''....''translated''
* '''hyudyuen'''....''aliasing''
* '''hyudyun'''....''alias, allonym, alternate name, by-name, handle''
* '''hyudyuna'''....''allonymous''
* '''hyudyundrawa'''....''ghostwritten''
* '''hyudyundrer'''....''ghostwrite''
* '''hyudyundrut'''....''ghostwriter''
* '''hyudyuwa'''....''a.k.a., aliased, otherwise known as''
* '''hyuewa'''....''the other two''
* '''hyuewasi'''....''the other two things''
* '''hyuewati'''....''the other two people''
* '''hyugel'''....''in a different way than, otherwise''
* '''hyugela'''....''a different kind of''
* '''hyugla jodi'''....''a different number of times''
* '''hyugla'''....''a different amount of, a different number of, not as, not as much/many, to another degree''
* '''hyuglas'''....''a different amount, some other amount of, not as much''
* '''hyuglasi'''....''a different number, some other number of things, not as many''
* '''hyuglati'''....''a different number of people, some other number of people, not as many people''
* '''hyuha'''....''the other''
* '''hyuhas'''....''the other thing''
* '''hyuhasi'''....''the others''
* '''hyuhat'''....''the other person''
* '''hyuhata'''....''the other's''
* '''hyuhati'''....''the others, the other people''
* '''hyuhatia'''....''the others', the other people's''
* '''hyuis-'''....''cross-, mutual, one thing and another, reciprocal''
* '''hyuisa'''....''between one thing and another, mutual''
* '''hyuit-'''....''cross-, inter-, mutual, one another, reciprocal''
* '''hyuit'''....''one to another''
* '''hyuita oyebyujbean'''....''mutual exclusivity''
* '''hyuita'''....''between one person and another, mutual, one another's, reciprocal, respective''
* '''hyuitan'''....''mutuality, reciprocity''
* '''hyuitas'''....''one another's''
* '''hyuitasi'''....''one another's, one another's things''
* '''hyuitay oyebiyea'''....''mutually exclusive''
* '''hyuitay'''....''mutually, reciprocally, respectively''
* '''hyuitbuina'''....''sadomasochistic''
* '''hyuitbukuin'''....''sadomasochism''
* '''hyuitbukuinut'''....''sadomasochist''
* '''hyuitdal'''....''conversation, dialog, dialogue''
* '''hyuitdala'''....''conversational''
* '''hyuitdalay'''....''conversationally''
* '''hyuitdalen'''....''dialoguing''
* '''hyuitdaler'''....''converse, dialog, talk to one another''
* '''hyuitder'''....''say to one another''
* '''hyuitfizuen'''....''mutual respect''
* '''hyuitflizuer'''....''respect one another''
* '''hyuitif'''....''mutual love''
* '''hyuitifer'''....''love one another''
* '''hyuitteaxer'''....''look at one another''
* '''hyuittojber'''....''kill one another''
* '''hyuitvekek'''....''parimutuel''
* '''hyuitvikaxen'''....''mutual admiration''
* '''hyuitxen'''....''reciprocating, reciprocation''
* '''hyuitxer'''....''reciprocate''
* '''hyuitxwa'''....''reciprocated''
* '''hyuityegteater'''....''see one another again''
* '''hyuixen'''....''reciprocating, reciprocation''
* '''hyuixer'''....''reciprocate''
* '''hyuixwa'''....''reciprocated''
* '''hyuizon'''....''a different direction, alternate course''
* '''hyuj'''....''another time, another time, at another time, some other time, some other time, at a different time''
* '''hyujaga'''....''of another age, of different ages''
* '''hyujagat'''....''person of a different age''
* '''hyujagati'''....''people of a different age''
* '''hyuji'''....''other times''
* '''hyujod drurunes'''....''rain check''
* '''hyujod'''....''again, another time''
* '''hyujoeba'''....''anachronistic''
* '''hyujoeban'''....''anachronism''
* '''hyujoebay'''....''anachronistically''
* '''hyujub'''....''another day, some other day, the other day''
* '''hyukum'''....''opposition, other side''
* '''hyukuma ekutyan'''....''opposite team, opposition team''
* '''hyukuma yanav'''....''opposition party''
* '''hyukuma'''....''opposite''
* '''hyukuman'''....''oppositeness''
* '''hyukumay'''....''oppositely, on the other hand''
* '''hyukumpea'''....''opposing''
* '''hyukumpen'''....''opposing''
* '''hyukumper'''....''oppose''
* '''hyukumxe'''....''opposing''
* '''hyukumxen'''....''opposing, opposition''
* '''hyukumxer'''....''oppose''
* '''hyukumxwa'''....''opposed''
* '''hyum'''....''elsewhere, somewhere else''
* '''hyumat'''....''stranger''
* '''hyumdin'''....''alibi''
* '''hyumeg'''....''xenolith''
* '''hyumem'''....''abroad, alien land''
* '''hyumema'''....''alien''
* '''hyumemat'''....''alien, person from another country''
* '''hyumemif'''....''xenophilia''
* '''hyumemifa'''....''xenophile, xenophilic''
* '''hyumemifut'''....''xenophile''
* '''hyumemuben'''....''repatriation, sending abroad''
* '''hyumemuber'''....''repatriate, send abroad''
* '''hyumemubwa'''....''repatriated, sent abroad''
* '''hyumemubwat'''....''repatriate''
* '''hyumemuf'''....''xenophobia''
* '''hyumemufa'''....''xenophobic''
* '''hyumemufut'''....''xenophobe''
* '''hyumep'''....''a different way, runaround''
* '''hyumer'''....''alien planet''
* '''hyumera'''....''alien, extra-terrestrial, from another planet''
* '''hyumerat'''....''alien, extra-terrestrial, person from another planet''
* '''hyumertejtun'''....''exobiology''
* '''hyumi'''....''at other places, elsewhere, other places''
* '''hyumira'''....''unworldly''
* '''hyumiran'''....''unworldliness''
* '''hyumiryena'''....''exotic, otherworldly''
* '''hyumiryenan'''....''exoticism''
* '''hyumiryenay'''....''exotically''
* '''hyumyefdyuen'''....''secondment''
* '''hyunaga'''....''differently-sized''
* '''hyunog'''....''to a different degree, to a different extent''
* '''hyuowa'''....''no other''
* '''hyuowas'''....''no other's''
* '''hyuowat'''....''nobody else''
* '''hyuowata'''....''nobody else's''
* '''hyuowatas'''....''nobody else's''
* '''hyuowatasi'''....''nobody else's things''
* '''hyus'''....''alternate, another thing, something else, the other thing, something else''
* '''hyusan'''....''allomorph''
* '''hyusana'''....''allomorphic''
* '''hyusanxer'''....''estrange''
* '''hyusanxwa'''....''estranged''
* '''hyusanxwen'''....''estrangement''
* '''hyusaun'''....''another kind''
* '''hyusauna'''....''a different kind of, allogenic, another kind of, heterogeneous, strange''
* '''hyusaunan'''....''heterogeneity, heterogeneousness, strangeness''
* '''hyusaunas'''....''strange thing''
* '''hyusaunat'''....''stranger''
* '''hyusaunay'''....''curiously, heterogeneously, strangely''
* '''hyusaunxen'''....''making heterogeneous, variegation''
* '''hyusaunxer'''....''make heterogeneous, variegate''
* '''hyusaunxwa'''....''made to be heterogeneous, variegated''
* '''hyusav'''....''for a different reason, for some other reason, for another reason''
* '''hyuseux'''....''allophone''
* '''hyuseuxa'''....''allophonic''
* '''hyusi'''....''alia, cetera, other things, the other things, other things''
* '''hyusun'''....''alternate, another thing, something else''
* '''hyusuna'''....''alternate, alternative''
* '''hyusunay'''....''alternately, alternatively''
* '''hyut'''....''alien, another, different person, someone else, stranger, the other, the other person, someone else''
* '''hyuta'''....''alien, alternate, another's, other, some else's, the other's, someone else's''
* '''hyutafinoxbier'''....''freeload''
* '''hyutafinoxbiut'''....''freeloader''
* '''hyutakovtos'''....''jealousy''
* '''hyutan'''....''alienness, difference, otherness''
* '''hyutas'''....''someone else's''
* '''hyutasbier'''....''mooch''
* '''hyutasbiut'''....''moocher''
* '''hyutasi'''....''someone else's (things)''
* '''hyutbukuin'''....''sadism''
* '''hyutbukuina'''....''sadistic''
* '''hyutbukuinay'''....''sadistically''
* '''hyutbukuinut'''....''sadist''
* '''hyuteasea'''....''different-looking''
* '''hyuteaser'''....''look different''
* '''hyutesdin'''....''allegory''
* '''hyutesdina'''....''allegoric, allegorical''
* '''hyutesdinay'''....''allegorically''
* '''hyutesdinut'''....''allegorist''
* '''hyutesea'''....''meaning something different''
* '''hyuteser'''....''mean something different''
* '''hyutesyob'''....''alibi''
* '''hyutexea'''....''on a different wavelength''
* '''hyutexen'''....''thinking differently''
* '''hyutexer'''....''think differently''
* '''hyuti'''....''other people, others, the others''
* '''hyutibuja'''....''heterocercal''
* '''hyutifa'''....''altruistic''
* '''hyutifan'''....''altruism''
* '''hyutifin'''....''altruism''
* '''hyutifina'''....''altruistic''
* '''hyutifinay'''....''altruistically''
* '''hyutifinut'''....''altruist''
* '''hyutifut'''....''altruist''
* '''hyutin'''....''heterodoxy''
* '''hyutina'''....''heterodox''
* '''hyutoob'''....''alternative gender''
* '''hyutooba'''....''alternatively gendered, different-gendered''
* '''hyutoobifa'''....''heterosexual, straight''
* '''hyutoobifan'''....''heterosexuality, straightness''
* '''hyutoobifut'''....''heterosexual, straight person''
* '''hyutooda'''....''of a different race, racially different''
* '''hyutoodat'''....''person of a different race''
* '''hyutos'''....''alienation''
* '''hyutosea'''....''alienated''
* '''hyutoser'''....''feel alienated''
* '''hyutosuen'''....''alienation''
* '''hyutosuer'''....''alienate''
* '''hyutosuwa'''....''alienated''
* '''hyutosuyea'''....''alienating''
* '''hyutoyb'''....''minx''
* '''hyuttejwa'''....''vicarious''
* '''hyuttejwan'''....''vicariousness''
* '''hyuttejway'''....''vicariously''
* '''hyutuf'''....''xenophobia''
* '''hyutufa'''....''xenophobic''
* '''hyutufut'''....''xenophobe''
* '''hyutxen'''....''alienation''
* '''hyutxer'''....''alienate''
* '''hyutxwa'''....''alienated''
* '''hyuvolza'''....''different-colored, of a different color''
* '''hyuxag'''....''at some other frequency, not as frequently, not so often, not as often''
* '''hyuxaga'''....''not as often''
* '''hyuyen'''....''elsewise, in another manner, otherwise, some other way, somehow other, strangely''
* '''hyuyena'''....''a different sort of, alien, another kind of, another sort of, different, fey, of another kind, queer, some other kind of, strange, another kind of''
* '''hyuyenan'''....''queerness, strangeness''
* '''hyuyenas'''....''a different sort of thing, a strange thing, some other kind of thing, another kind of thing''
* '''hyuyenasi'''....''other kinds of things''
* '''hyuyenat'''....''a different sort of person, alien, some other kind of person, stranger, another kind of person''
* '''hyuyenati'''....''aliens, other kinds of people, other kinds of people''
* '''hyuyenay'''....''queerly, strangely''
* '''hyuyeni'''....''in alternate ways, in other ways''
* '''hyuyt'''....''some other female''
* '''hyuyta'''....''some other female's''
* '''hyuytas'''....''some other female's thing''
* '''hyuytasi'''....''some other female's things''
</div>
{{small/end}}
=== '''HAY''' ''hello'', '''HEY''' ''hey'', '''HOY''' ''goodbye'' ===
::* '''hay'''....''hello, hi''
::* '''hey'''....''hey, o''
::* '''hoy'''....''goodbye''
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ HAY HEY HOY Family
|-
| valign=top|'''hay'''....''hello''<br>'''hayder'''....''to say hi''<br>'''hayd'''....''greeting''
| valign=top|'''hey'''....''hey''<br>'''heyder'''....''to address''<br>'''heyd'''....''address''
| valign=top|'''hoy'''....''goodbye''<br>'''hoyder'''....''to say farewell''<br>'''hoyd'''....''farewell''
|}
{{small/end}}
=== '''HYAY''' ''thank-you'', '''HYEY''' ''please'', '''HYOY''' ''sorry'' ===
::* '''hyay'''....''thank-you''
::* '''hyey'''....''please''
::* '''hyoy'''....''sorry''
: These roots are used to form exclamatory words of politeness.
==== HYAY Words ====
: Here are examples of '''hyay''', which refer to exclamations of thanks, appreciation, etc.:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''hyay bu'''....''thanks to''
*'''hyay hyay!'''....''Thank-you very much!, Thanks a lot!''
*'''hyay!'''....''thanks!, thank-you!''
*'''hyayd'''....''a thank-you, a word of thanks''
*'''hyaydres'''....''thank-you note''
*'''hyayden'''....''thanking, thanksgiving''
*'''hyayder'''....''thank, say thank-you, express gratitude''
*'''hyaydraf'''....''thank-you card''
*'''hyayduka'''....''thankless''
*'''hyaydukay'''....''thanklessly''
*'''hyayduken'''....''thanklessness''
*'''hyaydwa'''....''thanked''
*'''hyaydyea'''....''thankful''
*'''hyaydyean'''....''thankfulness''
*'''hyaydyeay'''....''thankfully''
</div>
{{small/end}}
==== HYEY Words ====
: The word '''hyey''', which means ''please'', only has one derived word: '''hyeyder'''....''to say please''.
==== HYOY Words ====
: The word '''hyoy''' means ''sorry, excuse me'' and is used in the following expressions:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
*'''hyoy'''....''sorry, excuse me, woops, woe is me, alas''
*'''hyoyd'''....''excuse, apology''
*'''hyoydea'''....''apologetic''
*'''hyoyden'''....''apologizing, saying sorry, apology''
*'''hyoyder'''....''apologize, be sorry, boo, excuse oneself, express woe''
*'''hyoydraf'''....''sympathy card''
*'''hyoydres'''....''apology note, sympathy note''
*'''hyoydyea'''....''apologetic''
*'''hyoydyeay'''....''apologetically''
</div>
{{small/end}}
=== '''HWAY''' ''bravo'', '''HWEY''' ''good luck'', '''HWOY''' ''boo''===
::* '''hway'''....''bravo, congratulations, cheers'' (pronounced like English ''why'')
::* '''hwey'''....''good luck'' (pronounced like English ''whey'')
::* '''hwoy'''....''boo, down with, what a shame''
==== HWAY Words ====
: This exclamatory word means ''bravo!, congratulations!, cheers!, well done!'' and has the following derivations:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|2}};{{column-rule|2px solid blue}}";>
*'''hway!'''....''alleluia!, bravo!, cheerio!, cheers!, congratulations!, goodie!, hooray!, hurrah!, kudo!, rah!, right on!, skoal!, whoopee!, great!, way to go!''
*'''hway!'''....''Thank-you!, Thanks!''
*'''hwayd'''....''congratulations, cheer, toast''
*'''hwayden'''....''congratulation, cheering, toasting''
*'''hwayder'''....''congratulate, cheer on, express kudos, say bravo, toast, root for''
*'''hwaydeux'''....''applause, cheer''
*'''hwaydeuxen'''....''applauding, applause, cheering, ovation''
*'''hwaydeuxer'''....''applaud, cheer''
*'''hwaydeuxut'''....''applauder, cheerer''
*'''hwaydeuxwa'''....''applauded, cheerer''
*'''hwaydraf'''....''congratulations card''
*'''hwaydut'''....''cheerleader, fan, rooter, whooper''
*'''hwaydutyan'''....''cheering squad, cheerleading team, fan base''
*'''hwaydwa'''....''congratulated, cheered on, toasted''
*'''hwaydwa'''....''thanked''
*'''hwaydyea'''....''thankful, grateful''
*'''hwaydyefwa'''....''applause-worthy''
*'''hwaydyefwan'''....''applause-worthiness''
*'''hwaysiyn'''....''high-five''
</div>
{{small/end}}
==== HWEY Words ====
: This exclamatory word means ''good luck!'' and has the following derivatives:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|2}};{{column-rule|2px solid blue}}";>
*'''hweyd'''....''ackowledgement''
*'''hweyder'''....''wish luck, express best wishes''
*'''hweydraf'''....''best wishes card''
</div>
{{small/end}}
==== HWOY Words ====
: This exclamatory word means ''boo!, hiss!, for shame!'' and has the following derivatives:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|2}};{{column-rule|2px solid blue}}";>
*'''hwoy'''....''boo, bah, bummer, down with, too bad, what a pity''
*'''hwoyd'''....''boo, heckle, expression of shame''
*'''hwoyden'''....''booing, heckling, shaming''
*'''hwoyder'''....''boo, heckle, shame''
*'''hwoydeux'''....''hiss, heckle''
*'''hwoydeuxen'''....''hissing, heckling''
*'''hwoydeuxer'''....''hiss, heckle''
*'''hwoydeuxut'''....''hisser, heckler''
*'''hwoydeuxwa'''....''hissed, heckled''
*'''hwoydut'''....''booer, heckler''
*'''hwoydwa'''....''booed''
*'''hwoyteaxer'''....''look at with pity, regard with shame''
</div>
{{small/end}}
=== '''HIHI''' ''ha ha'', '''HUHU''' ''boo hoo'' ===
: The morpheme '''hihi''' is used to form words having to do with laughing, while the opposite morpheme '''huhu''' is used for words referring to crying. Here are some '''hihi''' examples:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|3}};{{column-rule|2px solid blue}}";>
* '''hihi'''....''haha, teehee''
* '''hihid'''....''laugh''
* '''hihiden'''....''laughing, laughter, ridiculing, teeheeing''
* '''hihider'''....''laugh, ridicule, teehee''
* '''hihidez'''....''comedy''
* '''hihidezen'''....''performing comedy, doing comedy''
* '''hihidezer'''....''do comedy, perform comedy''
* '''hihidezun'''....''comedy act''
* '''hihidezut'''....''comedian''
* '''hihidier'''....''amuse oneself''
* '''hihidin yekun'''....''butt of a joke''
* '''hihidin'''....''farce, joke''
* '''hihidina'''....''farcical, jocular''
* '''hihidinay'''....''farcically, jocularly''
* '''hihidinen'''....''joke-telling, joking''
* '''hihidiner'''....''joke''
* '''hihidinut'''....''joke-teller, joker, jokester, comedian, comic''
* '''hihidinyea'''....''joky''
* '''hihidinyeay'''....''jokingly''
* '''hihidog'''....''giggle''
* '''hihidrasin drev'''....''cartoon page''
* '''hihidrasin'''....''cartoon''
* '''hihidrasinut'''....''cartoonist''
* '''hihidrasinyena'''....''cartoonish''
* '''hihiduea'''....''laugh-provoking''
* '''hihiduen'''....''amusement, hilarity, making laugh, tickling''
* '''hihiduer'''....''amuse, make laugh, tickle''
* '''hihiduut'''....''joker, entertainer''
* '''hihiduwa'''....''amused, tickled''
* '''hihiduyea'''....''amusing, funny, hilarious''
* '''hihiduyean'''....''hilariousness''
* '''hihiduyeay'''....''amusingly, hilariously''
* '''hihidwa'''....''ridiculed''
* '''hihidwat'''....''bozo, laughingstock''
* '''hihidxeay'''....''teasingly, ticklingly''
* '''hihidxen'''....''teasing, tickling''
* '''hihidxer'''....''tease, tickle''
* '''hihidxut'''....''teaser, tickler''
* '''hihidxwa'''....''teased, tickled''
* '''hihidyeay'''....''laughingly''
* '''hihidyefwa'''....''laughable, ridiculous, risible, funny''
* '''hihidyefwan'''....''ridiculousness, risibility, funniness''
* '''hihidyefway'''....''laughably, ridiculously, funnily''
* '''hihidyezun'''....''cartoon, flicker''
* '''hihisin'''....''caricature, comic, cartoon''
* '''hihisinut'''....''caricaturist, cartoonist''
* '''hihisinxen'''....''caricaturing''
* '''hihisinxer'''....''caricature''
* '''hihisinxwa'''....''caricatured''
</div>
{{small/end}}
: Here are some '''huhu''' examples:
{{small/top}}
<div style="background: lightyellow; border: solid blue 2px; {{column-count|2}};{{column-rule|2px solid blue}}";>
* '''huhu'''....''boo hoo''
* '''huhud'''....''boo hoo, booboo, boohoo, cry, whimper, whine''
* '''huhudea'''....''boo-hooing, crying, chining''
* '''huhuden'''....''boo-hooing, whimpering, crying''
* '''huhuder'''....''booboo, boohoo, cry, whimper, whine''
* '''huhudut'''....''booer, cry-baby, crybaby, whimperer, whiner''
</div>
{{small/end}}
== Charts of Words Showing Mnemonic Parallelism ==
: The words in the following charts share some commonality, which is evident in their similar phonetics:
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ Mnemonic Parallels
|-
! '''tob''' !! '''tab''' !! '''teb''' !! '''tib''' !! '''tub''' !! '''tyob''' !! '''tayob''' !! '''tayeb'''
|-
| ''man'' || body || ''head'' || ''trunk (of body)'' || ''arm'' || ''leg'' || ''skin'' || ''hair''
|-
! '''fob''' !! '''fab''' !! '''feb''' !! '''fib''' !! '''fub''' !! '''fyob''' !! '''fayob''' !! '''fayeb'''
|-
| ''plant'' || ''tree'' || ''fruit'' || ''trunk (of tree)'' || ''branch'' || ''root'' || ''bark'' || ''leaf''
|-
! '''vob''' !! '''vab''' !! '''veb''' !! '''vib''' !! '''vub''' !! '''vyob''' !! '''vayob''' !! '''vayeb'''
|-
| ''crop'' || ''grass'' || ''tuft'' || ''stem'' || ''twig'' || ''root'' || ''peel'' || ''petal''
|-
! '''pat''' !! !! !! !! '''patub''' !! !! !! '''patayeb'''
|-
| ''bird'' || || || || ''wing'' || || || ''feather''
|-
! '''pit''' !! !! '''piteb''' !! !! '''pitub''' !! !!'''pitayob''' !! '''pitayeb'''
|-
| ''fish'' || || ''fishhead'' || || ''fin'' || || ''shell''|| ''scale''
|-
! '''dob''' !! '''dab''' !! '''deb''' !! '''dib''' !! '''dub''' !! !! !!
|-
| ''state'' || ''government'' || ''leader'' || ''administration'' || ''minister'' || || ||
|-
! '''xob''' || '''xab''' !! '''xeb''' !!'''xib''' !! '''xub''' !! '''xyob''' || ||
|-
|''organization'' || ''staff'' ||''boss'' || ''department''|| ''subdidiary'' || ''base'' || ||
|}
{{small/end}}
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ -eu- Mnemonic Parallels
|-
! teub !! teus !! teud !! seux !! xeus !! deuz !! seuz !! xeuz
|-
| ''mouth'' || ''voice'' || ''shout'' || ''sound'' || ''noise'' || ''song'' || ''tone'' || ''tune''
|}
{{small/end}}
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ -ayo- Mnemonic Parallels
|-
! tayob !! fayob !! vayob !! tayof !!
|-
| ''skin'' || ''bark'' || ''peel'' || ''leather''
|}
{{small/end}}
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ -ub/-uf Mnemonic Parallels
|-
|-
! tub !! fub !! vub !! sub !! xub !! semub !! mifub !! mub !! muf !! tiibuf !! gimuf !! manuf !! fauf
|-
| arm || branch || twig || protuberance || subsidiary || flap || oar || promontory || rod || artery || skewer || candle || log
|}
{{small/end}}
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ -ea- Mnemonic Parallels
|-
! '''teab''' !! ''eye''
|-
| '''teater''' || ''see''
|-
| '''teaxer''' || ''look''
|-
| '''jeteaxer''' || ''watch''
|-
| '''teaser''' || ''seem''
|-
| '''teaper''' || ''visit''
|-
| '''gawteaper''' || ''revisit''
|-
| '''teader''' || ''witness''
|-
| '''teatier''' || ''perceive''
|-
| '''teatuer''' || ''show''
|-
| '''beaxer''' || ''watch''
|-
| '''neaxer''' || ''aim''
|-
| '''vyateaxer''' || ''examine''
|-
| '''vyabeaxer''' || ''inspect''
|-
| '''vyaleaxer''' || ''check''
|-
| '''izteader''' || ''indicate''
|-
| '''izteatuer''' || ''point out''
|-
| '''izteaxer''' || ''focus''
|-
| '''abteaxer''' || ''survey''
|-
| '''yagteaxer''' || ''stare''
|-
| '''igteaxer''' || ''glance''
|-
| '''gawteaser''' || ''reappear''
|-
| '''yozteatuer''' || ''display, expose''
|-
| '''jateater''' || ''foresee''
|-
| '''jeteaxer''' || ''watch''
|-
| '''yonteater''' || ''distinguish''
|-
| '''oteaser''' || ''disappear''
|-
| '''vyateatuer''' || ''prove''
|-
| '''ofteaxer''' || ''peek''
|-
| '''zyoteaxer''' || ''peer''
|-
| '''ugteaxer''' || ''gaze''
|-
| '''yuzteaxer''' || ''look around''
|-
| '''yubteaxer''' || ''scrutinize''
|-
| '''kyoteaxer''' || ''glare''
|-
| '''yogteaxer''' || ''glimpse''
|-
| '''joteaxer''' || ''review''
|-
| '''zoyteaxer''' || ''look back''
|-
| '''zayteaxer''' || ''look ahead''
|-
| '''ojteader''' || ''warn''
|-
| '''tepteatier''' || ''consider''
|-
| '''kuteaxer''' || ''observe''
|-
| '''ejeatuer''' || ''present''
|-
| '''ejeaser''' || ''show up, appear''
|-
| '''utejeaser''' || ''represent''
|-
| '''ajteaxer''' || ''review''
|-
| '''ojteaxer''' || ''envisage''
|-
| '''yoveater''' || ''suspect''
|-
| '''kiteaxer''' || ''look askance''
|-
| '''yizteaxer''' || ''look beyond''
|-
| '''zeyteaxer''' || ''look across''
|-
| '''fyateater''' || ''respect''
|-
| '''vyoteas''' || ''illusion''
|-
| '''vyamteaser''' || ''seem true''
|-
| '''koteaxer''' || ''peek, spy on''
|-
| '''ziteaxer''' || ''look right''
|-
| '''zuteaxer''' || ''look left''
|-
| '''eynteaxer''' || ''squint''
|-
| '''zyateaxer''' || ''peruse, scan''
|-
| '''fateaber''' || ''blink''
|-
| '''teabigyujer''' || ''wink''
|-
| '''teabiler''' || ''weep, tear up''
|-
| '''teazexer''' || ''focus''
|}
{{small/end}}
{{small/top}}
:{| class="wikitable" style="background:lightyellow"
|+ -z Mnemonic Parallels"
|-
! nas !! teb !! tuyub !! tilab !! tuyob !! tun !! tab !! teub !! sin !! teeb !! nas !! teib !! vos !! drer !! ten
|-
| ''money'' || ''head'' || ''finger'' || ''breast'' || ''wrist'' || ''science'' || ''body'' || ''mouth'' || ''image'' || ''ear'' || ''money'' || ''nose'' || ''flower'' || ''write'' || ''knowledge''
|-
! noz !! tebuz !! tuyuz !! tilaz !! tuyoz !! tuz !! taz !! deuz !! siz !! teebuz !! naz!! teiz !! voz !! drez !! tez
|-
| ''jewel'' || ''crown'' || ''ring'' || ''broche'' || ''bracelet'' || ''art'' || ''statue'' || ''song'' || ''painting'' || ''earring'' || ''value'' || ''perfume'' || ''color'' || ''poetry'' || ''culture''
|}
{{small/end}}
== Words Ending in '''-yen''' (''manner'') ==
: The ending '''-yen''' is a stub for '''byen''', meaning ''way, manner'' and is used to form many different words, as the following chart shows. The basic words are:
::* '''byen'''....''manner''
::* '''syen'''....''style''
::* '''tyen'''....''technique, skill''
::* '''hoyen'''....''how, condition''
::* '''pyen'''....''pace, allure''
::* '''xyen'''....''behavior''
::* '''zeyen'''....''means''
::* '''yukyen'''....''amenity''
::* '''dotyen'''....''manners''
::* '''dyen'''....''expression''
::* '''visyen'''....''fashion''
::* '''vidyen'''....''euphemism''
::* '''uzdyen'''....''paraphrase''
::* '''tyodyen'''....''custom''
::* '''tuzyen'''....''artistry''
::* '''twobyen'''....''machismo''
::* '''tosyen'''....''mood''
::* '''texyen'''....''attitude''
::* '''tejyen'''....''way of life''
::* '''tezyen'''....''more''
::* '''tepyen'''....''frame of mind''
::* '''teazyen'''....''showmanship''
::* '''teatyen'''....''outlook''
::* '''teasyen'''....''aspect''
::* '''sexyen'''....''structure''
::* '''nasyen'''....''currency''
::* '''esyen'''....''state''
::* '''kyayen'''....''version''
::* '''jobyen'''....''tense''
::* '''jagyen'''....''senility''
::* '''izbyen'''....''maneuver''
::* '''exlyen'''....''process''
::* '''driryen'''....''type face''
::* '''kyasyen'''....''dynamics''
::* '''dibyen'''....''governance''
::* '''deuzyen'''....''tonality''
::* '''deuxyen'''....''intonation''
::* '''dalyen'''....''idiom''
::* '''datyen'''....''bonhomie''
::* '''balzeyen'''....''leverage''
::* '''axlyen'''....''behavior''
::* '''anyen'''....''quirk''
::* '''akpasyen'''....''stategy''
::* '''dreyen'''....''writing system''
::* '''napyen'''....''discipline''
::* '''kisyen'''....''trend''
::* '''dodalyen'''....''rhetoric''
::* '''jubyen'''....''habit''
::* '''maalyen'''....''weather''
::* '''aotyen'''....''personality, character''
== Words Ending in '''-z''' (''something precious'')==
: Words ending in '''-z''' refer to something '''''precious''''' or '''''refined,''''' as this chart shows:
{{small/top}}
:{| class="wikitable sortable" style="background:lightyellow"
|+ -Z Words
|-
! Normal Word !! Refined Word
|-
| '''fi-'''....''good'' || '''fiz'''....''honor'', '''utfiz'''....''dignity'', '''firz'''....''ideal'', '''fiyz'''....''respect'', '''agfiz'''....''glory'', '''fiiz'''....''deference''
|-
| '''fu-'''....''bad'' || '''fuz'''....''shame'', '''agfuz'''....''infamy'', '''fuyz'''....''disrespect'', '''utfuz'''....''indignity''
|-
| '''fya-'''....''holy'' || '''fyaz'''....''grace'', '''kofyaz'''....''magic'', '''fyamaz'''....''halo'', '''fyatyez'''....''hieromancy'', '''fyatez'''....''religion'', '''fyateyz'''....''cult''
|-
| '''fyo-'''....''profane, evil'' || '''fyoz'''....''disgrace'' , '''kofyoz'''....''occult'', '''fyotez'''...''black magic''
|-
| '''fyi-'''....''useful''|| '''fyiz'''....''reward''
|-
| '''fyu-'''....''harmful''||'''fyuz'''....''punishment'', '''fyuyz'''....''penance, penalty''
|-
| '''meg'''....''stone'' || '''mez'''....''crystal'', '''yonmez'''....''ice crystal'', '''amez'''....''diamond'', '''emez'''....''topaz'', '''imez'''....''ruby'', '''umez'''....''emerald'', etc.
|-
| '''nas'''....''money'' || '''naz'''....''value'', '''noz'''....''gem, jewel'', '''finaz'''....''merit'', '''nyaz'''....''wealth''
|-
| '''d-'''....''communicate'' || '''daz'''....''dance'', '''dyaz'''....''ballet'', '''dez'''....''theatre'', '''adez'''....''burlesque'', '''diz'''....''comedy'', '''duz'''....''music'', '''dyuz'''....''opera'', '''deuz'''....''song'', '''ajdreuz'''....''ballad'', '''drez'''....''poetry'', '''dyez'''....''cinema'', '''dauz'''....''dance music'', '''druz'''....''lyric'', '''yokdez/yokdiz'''....''improv''
|-
| '''tab'''....''body'' || '''taz'''....''statuary''
|-
| '''san'''....''shape'' || '''saz'''....''sculpture''
|-
| '''sin'''....''picture'' || '''siz'''....''painting'', '''finsiz'''....''medal'', '''dresiz'''....''engraving''
|-
| '''ty-'''....''know how''||'''tyez'''....''magic'', '''kotyez'''....''occult'', '''fyotyez'''....''sorcery, witchcraft'', '''fyatyez'''....''hieromancy'', '''tuyutyez'''....''legerdemain, chiromancy'','''tojatyez''' ....''necromancy''
|-
| '''teb'''....''head'' || '''tebuz'''....''crown'', '''eyntebuz'''....''diadem''
|-
| '''teas'''....''view'' || '''teaz'''....''spectacle'', '''fyateaz'''....''miracle''
|-
| '''teis'''....''smell'' || '''teiz'''....''perfume''
|-
| '''tiab'''....''breast'' || '''tiabuz'''....''broche''
|-
| '''tilab'''....''nipple'' || '''tilabuz'''....''nipple ring''
|-
| '''teyob'''....''neck'' || '''teyobuz'''....''necklace''
|-
| '''teubob'''....''lip'' || '''teuboz'''....''lip ring''
|-
| '''zetiub'''....''navel'' || '''zetiubuz'''....''belly button ring''
|-
| '''tun'''....''science'' || '''tuz'''....''art'', '''vituz'''....''fine art'', '''daltuz'''....''rhetoric'', '''sextuz'''....''architecture'', '''teltuz'''....''gastronomy'', '''tuyatuz'''....''handicraft'', '''drefgobluntuz'''....''découpage''
|-
| '''toleus'''....''taste'' || '''toleuz'''....''refined taste''
|-
| '''ten'''....''knowledge'' || '''tez'''....''culture'', '''yobtez'''....''subculture'', '''ajtez'''....''lore'', '''aulktez'''....''alchemy'', '''oybtez'''....''subculture'', '''ovtez'''....''counterculture'', '''vitez'''....''high culture'', '''fyatez'''....''religion'', '''fyotez'''...''occult''
|-
| '''teub'''....''mouth'' || '''deuz'''....''song'', '''fadeuz'''....''hymn'', '''yegdeuz'''....''refrain'', '''seuz'''....''tone'', '''teuz'''....''voice'', '''zoyteuz'''....''echo'', '''teuboz'''....''smile'', '''videuz'''....''melody'', '''yandeuz'''....''harmony'', '''uvdeuz'''....''dirge'', '''ajdeuz'''....''ballad'', '''dudeuz'''....''antiphon'', '''ivdeuz'''....''carol'', '''yogdeuz'''....''ditty'', '''awatdeuz'''....''solo'', '''ewatdeuz'''....''duet'', '''fizdeuz'''....''anthem''
|-
| '''tuab'''....''arm'' || '''eytuabuz'''....''epaulette''
|-
| '''tuyub'''....''finger'' || '''tuyubuz'''....''ring''
|-
| '''vos'''....''flower'' || '''volz'''....''color'', '''voolz'''....''tint'', '''voylz'''....''shade of color'', '''tayolz'''....''facial/hair color'', '''alz'''....''red'', '''feelkalz'''....''rust'', '''yolz'''....''blue'', '''yelz'''....''pink'', '''caoyolz'''....''cobalt''
|}
{{small/end}}
<noinclude>{{Chapter navigation with TOC|Vocabulary Formation|Syntax}}</noinclude>
jwb6c64r2ze02099p46me2p7599v5cf
User:Oliveoilandgarlic/sandbox
2
420403
4674830
4592998
2026-10-07T09:20:05Z
Jcb
90773
4674830
wikitext
text/x-wiki
This is my sandbox! '''Here''' I <u>play</u> with ''Wikicode'' and write things before they're ready to go elsewhere.
===structured by disciplines===
Dementia group of related symptoms associated with a gradual decline in brain functioning <nhs website>. There is currently considerable concern about it's exponentially increasing prevelence in due to the ageing population. <science direct from talk intro> The euthanasia of dementia patients is a peticularly contencious issue as it brings up issues
== Ethics ==
Given the declining role of religion as a supplier and upholder of moral values in western society, medicine and law have been given increasingly more responsibilities in building society-wide value systems {ref from mcgill study} and upholding the strong enough societal consensus on which healthcare and a trustworthy medical law can be built. The case of euthanasia or physician assisted suicide, medical ethicists have had to increasingly approach the issue secularly and provide arguments that reconcile the continually conflicting values of the right to life, self-determination, dignity, and the power of the state. As it is practiced wholly theoretically, and is not bounded by overarching codes or goals, an ethical exploration is able to subsume the biases that could impair an approach by medics or legal scholars. As such, the ethical arguments for and against euthanasia reach only for the four axioms of formal Ethics[gensler] and for the basic values of the ethicist and those who share them. While lending the discipline apparent [ref] impartiality, Ethics’ lack of a uniform approach has done little to attack the underlying dilemma since the 19th century, though our understanding of the practical and moral consequences of each of the values, once agreed upon, has been well developed [ref]. As many ethical arguments (and popular movements advocating) for euthanasia in general stipulate terminal illness as a necessary condition, many progressive debilitating conditions, like dementia are excluded. Thus, dementia patients, who are very often unable to make legally competent decisions, also excluding them from the necessary condition of informed, competent consent, are left out by ethicists ‘strong’ arguments. Legally, even in countries most permissive of physician assisted suicide in particular The Netherlands, many dementia patients would have no recourse but clauses such as the proposed, but not legalised, “Over 70 and Tired of Life” petition [ref].
Practically, the ethical approach to dementia patients who are believed to want to die, whether or not such a desire is recognised legally, has been reduced to
In Ethics, patients of dementia who are believed to want to die, whether or not such a desire is recognised legally, have been excluded from arguments based on long prognoses, infirm mental capacities, and in proposed laws, by not being old enough. Practically it can be argued that medicine has been more effective in
ethics is bad at dealing with dementia and euthanasia because of the fact that d3mentia patients cant give competent consent and are not terminally ill. more practically medicine is able to deal with these patients because many doctors are already practicing it because they are 'double dosing' and using the doctrine of double effect to practice euthanasia. Ethics is limited by its lack of grounding (only axioms are personal values) and so is unable to crystalline a consensus that a healthcare or legal system can be based on.
== Medicine ==
==== Medicine as a Discipline ====
“Medicine is the science or practice of the diagnosis, treatment, and prevention of disease”<ref>Oliver, C., 2020. Guide To Studying Medicine. [online] Thecompleteuniversityguide.co.uk. Available at: <https://www.thecompleteuniversityguide.co.uk/subject-guide/medicine#:~:text=Medical%20practice%20is%20generally%20defined,%2C%20nurses%2C%20surgeons%20and%20physicians.> [Accessed 1 December 2020].</ref>. It primarily draws upon quantitative evidence, such as randomised controlled trials (RCTs) and systematic review, which are designed to remove any forms of bias<ref>Lachin JM, Matts JP, Wei LJ (Dec 1988). "Randomization in Clinical Trials: Conclusions and Recommendations". Controlled Clinical Trials 9 (4): 365-74. {{PMID|3203526}}.</ref>. This objectivity, coupled with medicine's inherent focus on saving and prolonging life<ref>Brülde, B., 2001. The Goals Of Medicine. Towards A Unified Theory.. [online] Available at: <https://link.springer.com/article/10.1023/A:1011385310274> [Accessed 2 December 2020].</ref>, makes its empirical approach to euthanasia and dementia one that often meets tension with other disciplines that are more holistic, or grounded in axiology.<ref>Boudreau, J. and Somerville, M., 2013. Euthanasia is not medical treatment. British Medical Bulletin, 106(1), pp.45-66.</ref>
==== QALY ====
Quality Adjusted Life Years (QALY) "is routinely used as a summary measure of health outcome for economic evaluation, which incorporates the impact on both the quantity and quality of life."(5) It is a large, useful part of medical economics that allows for the objective comparison of diseases, populations and programs(6), and guides the distribution of healthcare resources. Due to the objective, quantitative nature of its evidence, QALY inevitably favours those in a better position to benefit, and is often criticised by other disciplines for its systematic discrimination against the ageing and disabled. (7)(8) This is especially true in dementia patients, who then face both the stigmatisation of their condition, and financial pressures to carry out their "special duty to die".(9)(10) We must also consider whether the experience of life can be adequately represented by numerical evidence.
==== The Biomedicalisation of Dementia ====
The medical diagnosis of dementia involves cognitive and neuropsychological tests, lab tests, brain scans, psychiatric evaluation, and genetic tests (11). These procedures generate the quantitative evidence that medicine's highly biomedical focus is grounded in. Medicine pays little attention to social or psychological factors, viewing what was once a natural part of ageing as a medical problem, rather than the group of symptoms that dementia is.(12)(13) This biomedicalisation of dementia has led to pressures for timely diagnosis and rapid transition into care programs (14)- programs that are undoubtedly important, but that create a sense of fatalism around the condition, perhaps contributing to many people's decisions to request for euthanasia.
==== Interdisciplinary Tensions ====
Where medicine is a discipline largely centred on objective evidence, ethics draws from qualitative, subjective evidence. This creates inevitable interdisciplinary tension when it comes to the euthanasia of dementia patients. Medicine centres around the culture of "[dedication] completely to life under all circumstances.”(15), as shown in Rurup et al's study that found that physicians were far less likely to demonstrate tolerant behaviour towards life terminating attitudes (16%) in comparison to nurses (57%) and relatives (90%). (16) This tension plays out in the quality of life debate.
The quality-of-life approach to euthanasia believes that a person with dementia should be granted euthanasia when they feel their life is not worth living. Evidence for quality of life is purely subjective, varying from person to person, leaving vulnerable dementia patients at risk of having different values projected onto them by the people around them. In line with this ethical perspective, and in contrast to that of medicine, our palliative care should focus not so much on the protection of life, but of the autonomy of the patient.(16)
== Sociology ==
Sociology is the science of society; the study of the collective aspects of human behaviour and the dynamics of the groups and organisations that make it up.<ref name=":4">{{Cite journal|last1=Brooks|first1=John I.|year=1996|title=THE DEFINITION OF SOCIOLOGY AND THE SOCIOLOGY OF DEFINITION: DURKHEIM’S RULES OF SOCIOLOGICAL METHOD AND HIGH SCHOOL PHILOSOPHY IN FRANCE|url=https://onlinelibrary.wiley.com/doi/pdf/10.1002/%28SICI%291520-6696%28199610%2932%3A4%3C379%3A%3AAID-JHBS4%3E3.0.CO%3B2-M|journal=Journal of the History of the Behavioral Sciences|volume=32|issue=4|accessdate=December 05, 2020}}</ref><ref name=":02">{{Cite encyclopedia|last1=Form|last2=Faris|first1=William|first2=Robert E.L.|date=May 06, 2020|title=Sociology|url=https://www.britannica.com/topic/sociology|publisher=Encyclopædia Britannica|accessdate=December 05, 2020}}</ref> It's demographic, relational, and experiential focus and the complexity of the systems it investigates lead to a greater focus on qualitative data and the use of hypothetical frameworks than many of the other disciplines addressing dementia and euthanasia.<ref name=":02" /><ref name=":5">{{Cite journal|last1=Lieberson|first1=Stanley|title=Einstein, Renoir, and Greeley: Some Thoughts About Evidence in Sociology|url=https://search.proquest.com/scholarly-journals/einstein-renoir-greeley-some-thoughts-about/docview/218813913/se-2?accountid=14511|journal=American Sociological Review|volume=57|issue=1|accessdate=December 05, 2020}}</ref> There are two major branches that generate tension with other disciplines in the sociological work on dementia and euthanasia.
====== The Experience of the Community ======
First, there is a tension between the perspective of individualist ethicists and a significant portion of the sociological literature adressing this issue. This can be understood in terms of ethics drawing on the evidence of subjective experience that suggests that decisions are autonomous and should therefore be respected, paying less attention to the influences on their decisions than sociology.{{Citation needed}} By definition sociology finds the comonalites between the behaviour and experience of individuals based on their demographic groups, and is therefore concerned with the influences on decision making and the effects of those decisions associated with a group as a whole. <ref name=":02" /><ref name=":4" /><ref name=":5" />
Although many of the relevant studies are published in medical journals, the value of their sociological approach in adding to the medical and ethical discussion is evident. In these studies some important conclusions are drawn which contrast with the individualist ethical naratives. Several studies explore the effects of euthanasia and dementia on the experiences of family members, suggesting that euthanasia may decrease the levels of grief, trauma and depression experienced.<ref>{{Cite journal|last1=Swarte|last2=van der Lee|last3=van der Bom|last4=van den Bout|last5=Heintz|first1=Nikkie B|first2=Marije L|first3=Johanna G|first4=Jan|first5=A Peter M|year=2003|title=Effects of euthanasia on the bereaved family and friends: a cross sectional study|url=https://doi.org/10.1136/bmj.327.7408.189|journal=BMJ|volume=327|number=189|accessdate=Dec 10, 2020}}</ref><ref>{{Cite journal|last1=Ganzini|last2=Goy|last3=Dobscha|last4=Prigerson|first1=Linda|first2=Elizabeth R|first3=Steven K|first4=Holly|year=2009|title=Mental Health Outcomes of Family Members of Oregonians Who Request Physician Aid in Dying|url=https://doi.org/10.1016/j.jpainsymman.2009.04.026|journal=Journal of Pain and Symptom Management|volume=38|issue=6}}</ref><ref name=":1">{{Cite journal|last1=Watson|last2=Tatangelo|last3=McCabe|first1=Brittany|first2=Gemma|first3=Marita|year=2019|title=Depression and Anxiety Among Partner and Offspring Carers of People With Dementia: A Systematic Review|url=https://doi.org/10.1093/geront/gny049|journal=The Gerontologist|volume=59|issue=5|accessdate=Dec 06, 2020}}</ref> Roest (2019) conducted a study which found that despite the legal, ethical and medical narratives suggesting otherwise, family relations and values played a key role in both physician and patient decisions regarding assisted suicide, especially relevantly it is suggested that the suffering that may be experienced by the patients family should be considered, questioning the individualist narrative of autonomy and the primacy of the individual.<ref name=":0">{{Cite journal|last1=Roest|last2=Trappenburg|last3=Leget|first1=Bernadette|first2=Margo|first3=Carlo|year=2019|title=The involvement of family in the Dutch practice of euthanasia and physician assisted suicide: a systematic mixed studies review|url=https://doi.org/10.1186/s12910-019-0361-2|journal=BMC Medical Ethics|volume=20|number=23}}</ref>{{Citation needed}}
====== Social Construction ======
The second branch explores the issue through a social constructionist framework, looking at the cultural, social and demographic factors that impact the prevelence and perception of the disease. This approach leads to a view of dementia very much at odds with the prevailing medical view by studying the experience of living with dementia as an intersection of demographic class and the concept and symptoms of dementia itself.<ref>{{Cite journal|author1=Resende EDPF|author2=Llibre Guerra JJ|author3=Miller BL|year=2019|title=Health and Socioeconomic Inequities as Contributors to Brain Health|url=https://doi.org/10.1001/jamaneurol.2019.0362|journal=Jama Neurology|volume=76|issue=6}}</ref><ref name=":2">{{Cite journal|last1=Sutin|last2=Stephan|last3=Robinson|last4=Daly|last5=Terracciano|first1=Angelina R.|first2=Yannick|first3=Eric|first4=Micheal|first5=Antonio|year=2019|title=Perceived weight discrimination and risk of incident dementia|url=https://doi.org/10.1038/s41366-018-0211-1|journal=International Journal of Obesity|volume=43}}</ref><ref name=":0" /> Due to this wider evidential pool and understanding dementia as socially constructed by medical classifications and media presentation, Johnstone (2013) and others argue that the stigma and fear around the ageing process has been generated by the biomedicalisation of dementia leads to the depersonalisation of patients.<ref>{{Cite book|title=Alzhiemer's Disease, Media Representations and the Politics of Euthanasia: Constructing Risk and Selling Death in an Ageing Society|last=Johnstone|first=Megan-Jane|url=https://books.google.co.uk/books?hl=en&lr=&id=byEGDAAAQBAJ&oi=fnd&pg=PP1&dq=personhood+dementia+euthanasia+medicalization+sociology+fate+worse+than+death&ots=JiFSW-91qI&sig=weCme471RQ-vpSn01k2IVVHUZMA&redir_esc=y#v=onepage&q&f=false|publisher=Ashgate|isbn=9781409451921|access-date=2020-12-10|year=2013}}</ref><ref name=":3">{{Cite journal|last1=Beard|first1=Renée L|year=2017|title=Dementia and the privilege of growing old|url=https://doi.org/10.1177%2F1471301217709661|journal=Dementia|volume=16|issue=6|accessdate=Dec 10, 2020}}</ref><ref>{{Cite journal|last1=shakespeare|last2=Zeilig|last3=Mittler|first1=Tom|first2=Hannah|first3=Peter|year=2019|title=Rights in Mind: Thinking Differently About Dementia and Disability|url=https://doi.org/10.1177/1471301217701506|journal=Dementia|volume=18|issue=3|access-date=Dec 10, 2020}}</ref> This combined with the literature showing how dementia prevelence and the suffering of patients is increased by low economic status and experiences of descrimination has lead to considerable concern that allowing the euthanasia of dementia patients would become discriminatory.<ref name=":2" /><ref>{{Cite journal|last1=Gale|last2=Barak|first1=Chris|first2=Yoram|year=2019|title=Euthanasia, medically assisted dying or assisted suicide: time for psychiatrists to say no|url=https://doi.org/10.1177%2F1039856219878645|journal=Australasian Psychiatry|volume=28|issue=2|access-date=Dec 10, 2020}}</ref><ref name=":6">{{Cite journal|authors=Plassman B.L. · Langa K.M. · Fisher G.G. · Heeringa S.G. · Weir D.R. · Ofstedal M.B. · Burke J.R. · Hurd M.D. · Potter G.G. · Rodgers W.L. · Steffens D.C. · Willis R.J. · Wallace R.B.|title=Prevalence of Dementia in the United States: The Aging, Demographics, and Memory Study|url=https://doi.org/10.1159/000109998|volume=29|number=1-2|journal=Neuroepidemiology|year=2007|accessdate=Dec 10, 2020}}</ref><ref name=":7">{{Cite journal|author=Zhang M.|year=1990|title=Prevalence study on dementia and Alzheimer disease|url=https://europepmc.org/article/med/2174278|journal=Zhonghua yi xue za zhi|volume=70|issue=8|accessdate=Dec 10, 2020}}</ref>
Beard (2017) encapsulates the tensions between this view and that of the medical community as an unresolved dichotomy between the medical view of dementia as a pesemistic 'black hole of aging', drawing paralells to the living dead archetype, in contrast to the sociological literature presenting the possibity of living and ageing well despite the disease. They also critisise the neglect of research into the social factors and management of the disease in preference of finding a cure.<ref name=":3" /> This tension is the result of the different forms of evidence the two disciplines are exposed to and value. Sociology studies individuals with dementia across the course of the disease and by dividing them by demographics and gathering qualititive evidence sees the affects of thier position in society and subjective experience on the course of the disease and the wider benefits and risks of allowing them euthanasia.<ref name=":2" /><ref name=":6" /><ref name=":7" /> Medicine on the other hand focuses on the quantitively measurable indicators of the disease and physical causes proposing corresponding interventions that may extend the life of a patient, often focussing on the later stages of the disease with little regard for their personal experience or social situation. There is, however, an encouraging movement towards holistic care and incorperation of sociological methods and evidence throughout the medical journals studying dementia and euthanasia as can be seen in many of the citations in this section.
<ref>{{Cite journal|last1=Ryan|first5=Christine|issue=7|volume=26|journal=Palliative Medicine|url=https://doi.org/10.1177/0269216311423443|title=Barriers and facilitators to the receipt of palliative care for people with dementia: The views of medical and nursing staff|year=2011|first4=Merryn|last2=Gardiner|first3=Gary|first2=Clare|first1=Tony|last5=Ingleton|last4=Gott|last3=Bellamy|accessdate=December 06, 2020}}</ref>
== References ==
=== Sociological Perspective ===
Sociology is the science of society, the study of the collective aspects of human behavior and the dynamics of the groups and organisations that make it up. It's collective, relational and experiential focus and the complexity of the systems it investigates leads to a greater focus on qualititive data and the use of hypothetical frameworks than many of the other disciplines adressing dementia and euthanasia.
The sociological work on dementia tends to explore
experience of carers and family and how this interacts with the experience of patients
https://academic.oup.com/gerontologist/article/59/5/e597/5033595
the affects of race and class on dementia prevelance, experience and treatement
https://journals.sagepub.com/doi/full/10.1177/1039856219878645
the affectiveness of care from an experiencial perspective
https://journals.sagepub.com/doi/full/10.1177/0269216311423443
https://journals.sagepub.com/doi/pdf/10.1191/0969733002ne554oa
there is also a considerable amount of literature critisizing the 'biomedicalization' of humans and their incorperation into the economy in reference to the allocation of medical resources and euthanasia
(oliveoilandgarlic)
==== Topic Sentance ====
Sociology is the science of society: the study of the collective aspects of human behavior and the dynamics of the groups and organisations that make it up. https://onlinelibrary.wiley.com/doi/pdf/10.1002/%28SICI%291520-6696%28199610%2932%3A4%3C379%3A%3AAID-JHBS4%3E3.0.CO%3B2-M https://www.britannica.com/topic/sociology It's collective and relational focus, as well as its interest in human experience focus and the complexity of the systems and causal relationships it studies leads to a greater focus on qualititive data and the use of hypothetical frameworks than other disciplines. https://www.jstor.org/stable/2096141?seq=1 https://www.britannica.com/topic/sociology
DONE
'''What is the consensus stance on euthanasia and dementia in sociology?'''
https://academic.oup.com/gerontologist/article/59/5/e597/5033595 meta analysis of 26 studies on the experience of carers of people with dementia, found that up to 80% of carer's experience depression. but that the literature is unclear as to a causal relationship. this highlights the sociological focus on human experience and relations etc
'''what is the DALY measure for dementia? are DALY's more the work of sociology, economics or medicine?'''
what is the distribution of dementia acrosses the divisions between groups sociology draws?
https://jamanetwork.com/journals/jamaneurology/article-abstract/2729093 economic status as well of health are greater predictors of dementia than race or culture. This is thought to be due to access to education and nutrition as well as healthcare.
https://journals.sagepub.com/doi/full/10.1177/0269216311423443 meta analysis of qualitive research conducted in the uk into the transition into paliative care (the closest thing to euthanasia that exists in the uk) for dementia patients, highlights the lack of the 'long view' in the medical community, also a failure to except that dementia might be a cause of death in it's own right was noted, as patients usually die from complications or accidents caused by the disease rather than the disease itself.
'''How is sociology defined?''' DONE
Google definition:
:-the study of the development, structure, and functioning of human society.
:-the study of social problems.
Encyclopedia Britannica https://www.britannica.com/topic/sociology
:-studies the dynamics of society by looking at its organisations and drawing division within it, looking at the interactions between these parts.
:-studies the "collective aspects of human behaviour" especially looking at the way an individual's group influences their behaviour
==== Methods and Evidence ====
'''What types of evidence are prioritised in sociology and how are they wieghted?''' DONE
Encyclopedia Britannica https://www.britannica.com/topic/sociology :
:-ecological patterning - the way groups, behaviour, wealth, industry and land value change over time and relate to one another
:Experimental methods - observing social interactions in controlled enviroments,
https://www.jstor.org/stable/2096141?seq=1 an analysis of the uncertainties around this issue and the confusion interaction between theory and evidence in the evidence's interpretation, mentions as a side point the importance of statistical methods and computing in sociology.
'''What theoretical frameworks and axiomatic assumptions are used to interpret this data? especially in reference to euthanasia in dementia.'''
==== How do tensions form? ====
Differences in evidence, assumptions and interpretation? - maybe best summerised once we have the methods and evidence section for all the disciplines
https://journals.sagepub.com/doi/pdf/10.1191/0969733002ne554oa this study interviewing carers at one hospital found that carer's understoon dementia patients decision to starve but thier moral and ethical beliefs hampered them in respecting patients autonomy.
==== Examples of direct clashes or contrasting quotes ====
'''note: assess how sociological these papers and articles actually are'''
points, there is a considerable push back against the 'biomedicalization' of human being in the sociological literature
https://onlinelibrary.wiley.com/doi/full/10.1111/1467-9566.12152 more sociological literature on the dehumanisation of dementia patients by the media, and how this leads to increased use of euthanasia
https://journals.sagepub.com/doi/full/10.1177/1471301217709661 critisizing the 'hegemony of american allopathic medicine' due to is depersonalization of people with dementia using fairly strong language. It argues that the combination of medical attitudes and media presentation conflate dementia with it's final stages (loss of agency, contact with reality and finally life). It critisises the dichotomy between positive and negative aging, and claims that this medical view eclipses the diversity between aging processes and the effects of race, culture and sex on these processes. It argues that is 'a social construct created by people and within social institutions'. 'it says 'If forgetfulness in seniors continues to be medicalised, then we might well find that we have destroyed the precious little space within which we as modern humans can age meaningfully'. criticises the medical perspective as 'oversimplifying the lived experience'- this is a clear example of the clash between empirical scientific evidence and sociology's qualitive more experience focussed aproach
https://rgs-ibg.onlinelibrary.wiley.com/doi/full/10.1111/tran.12055 a critique of the DALY (disability adjusted life year) a common measure used in medicine to evaluate treatment efficiency and make decisions on it's distribution due to it's assumption that the life of someone with a disibility is less valuable than the life of someone without it, it argues this is due to the blurring of the line between the human biological being, and the economy and political sphere. It also speaks of how the DALY measurement leaves out the poorest classes due to thier lack of access to medical care leading to a lack of generation of data. this is a direct tension between the medical and economic perspectives and the ethical and sociological perspectives. although it does not mention dementia specifically it is highly revavent due to the increasing importance of the DALY and QALY in medical decisions.
https://journals.sagepub.com/doi/full/10.1177/1039856219878645 in oregon over 50% of people requesting euthanaisa claim 'being a burden to their families' as the main reason for the decision, this article argues that poverty and old age contribute largely to these decisions, creating a class discrepancy.
https://www.researchgate.net/profile/Bernadette_Roest/publication/332237833_The_involvement_of_family_in_the_Dutch_practice_of_euthanasia_and_physician_assisted_suicide_a_systematic_mixed_studies_review/links/5caaebc5299bf118c4ba88be/The-involvement-of-family-in-the-Dutch-practice-of-euthanasia-and-physician-assisted-suicide-a-systematic-mixed-studies-review.pdf doctors struggled to empathise with patients citing existential reasons for thier request for euthanasia, and psychological suffering was given less consideration than physical symptoms. the more sociological aspects of the paper reveal the importance of family relations and 'being a burden' in decision making, doctors are resistant to consider the suffering of the family as a whole due to the medical focus on the experience, especially the physical experience, of thier single patient over wider more sociological considerations of the suffering of the family unit as a whole and the impacts of the implimentation or non implementation of euthanasia at these different levels.
== Influences of Philosophy and Scientific Theory on Psychology through the 19th and 20th centuries ==
==== Introduction ====
There is an ardent debate as to how facts should be determined and the way the models of [[Subject:Philosophy|philosophy]] and [[Department:Science|science]] can be mapped onto reality, both within and between both disciplines, [[Subject:Psychology|psychology]] has had a fruitful interplay with both of these areas.<ref>Hamilton, V. (1993). Truth and Reality in Psychoanalytic Discourse. Int. J. Psycho-Anal., 74:63-79.</ref><ref>{{Cite book|title=The philosophy of quantum mechanics|last=Jammer|first=Max|isbn=0-471-439|publisher=Wiley-Interscience|year=1974}}</ref>
The roots of psychology reach deep into the philosophical tradition. In the late 18th century Immanuel Kant hypothesized the first dimensional model of personality, paving the way for a huge variety of personality models as well as statistical psychology.<ref>Kant, I. (1798). Anthropology from a pragmatic point of view. trans. (Mary Gregor). The Hague: Martinus Nijhoff, 1974 (VII).</ref> Friedrich Nietzsche, although now thought of as a philosopher, often referred to himself as a psychologist and criticized much of the preceding philosophical tradition as overly introspective and self-indulgent.<ref>{{Cite book|title=Götzen-Dämmerung|last=Nietzche|first=Friedrich|isbn=978-0140445145|publisher=Penguin Classics|year=1990|1st edition=1889}}</ref><ref>{{Cite book|title=Nietzsche: Philosopher, Psychologist, Antichrist|last=Kaufmann|first=Walter|isbn=9780691160269|publisher=Princeton University Press|year=1950|url=https://books.google.co.uk/books?hl=en&lr=&id=VVezAAAAQBAJ&oi=fnd&pg=PP1&dq=nietzsche%27s+contribution+to+psychology&ots=TinoSVaLeD&sig=7uXMrT2fF2d-vdlSOIldPplrjVA#v=onepage&q&f=false}}</ref> This foreshadowed the rift that formed over the coming century between the psychologist-philosophers and the institutions of psychology.
==== The Rift ====
This rift was largely due to the rapid progress was made in understanding the brain and human behavior and the desire of psychology departments to establish themselves as equals to the already established natural sciences.<ref name=":02">{{Cite book|title=SCIENCE: CONJECTURES AND REFUTATIONS|last=Popper|first=Karl|isbn=0-471-439|publisher=Routledge|year=1963}}</ref><ref name=":52">Paul Whittle (1999) Experimental Psychology and Psychoanalysis: What We Can Learn from a Century of Misunderstanding, Neuropsychoanalysis, 1:2, 233-245, DOI: 10.1080/15294145.1999.10773264</ref> Psychology suceeded in this through the use of empirical and statistical methods and rigorous scientific methodology and experimental protocols in conjunction with technologies such as magnetic resonance imaging and advances in biochemistry that were facilitated by quantum mechanics.<ref>{{Cite book|title=(NAS Colloquium) Neuroimaging of Human Brain Function|isbn=0-309-06027-3|publisher=National Academies Press|year=1998|Auther=Proceedings of the National Academy of Sciences}}</ref><ref>{{Cite book|title=In Search of Schrodinger's Cat: Quantum Physics and Reality|last=Gribbin|first=John|isbn=9780552125550|publisher=Bantam Books|origyear=1984}}</ref><ref>E. L. Hahn (1950) Nuclear Induction Due to Free Larmor Precession, Physical Review</ref> However, this materialistic focus led to a loss of confidence in the utility of psychoanalytic theories and widespread criticism of the psycho-philosophers that claimed knowledge or predictions about human behavior individually and societally based on introspective experiences or enumerative inductivism (the repeated observation instances which fit a framework or hypothesis). <ref name=":02" /><ref name=":12">{{Cite book|title=Decline & fall of the Freudian Empire|last=Eysenck|first=Hans J.|isbn=0-7658-0945-1|publisher=Transaction Publishers|year=2004|1st edition=1889}}</ref><ref name=":22">Crews, F. (1996) ‘The Verdict on Freud’, Psychological Science, 7(2), pp. 63–68. doi: 10.1111/j.1467-9280.1996.tb00331.x.</ref><ref name=":32">Coan, R. W. (1987). Theoretical orientation in psychology and the traditions of Freud, Jung, and Adler. ''Professional Psychology: Research and Practice, 18''(2), 134–139. <nowiki>https://doi.org/10.1037/0735-7028.18.2.134</nowiki></ref><ref name=":42">Peter Fonagy (2000) On the Relationship of Experimental Psychology and Psychoanalysis: Commentary by Peter Fonagy (London), Neuropsychoanalysis, 2:2, 222-232, DOI: 10.1080/15294145.2000.10773311</ref>
==== Conclusion ====
Freud, Jung, and Addler, for example, thought of themselves as psychologists and scientists.<ref name=":32" /><ref>{{Cite book|title=A Critical Dictionary of Jungian Analysis|last=Samuels|first=Andrew|isbn=9780415059107|publisher=Routledge|date=1986|url=https://books.google.co.uk/books?id=ozJiZrCTlRsC&printsec=frontcover&dq=isbn:9780415059107&hl=en&sa=X&ved=2ahUKEwi6_cPC5r7sAhWvShUIHTftCj0Q6AEwAHoECAAQAg#v=onepage&q=empirical&f=false|access-date=18.10.2020|last2=Shorter|first2=Bani|last3=Plaut|first3=Alfred}}</ref> However, by the end of the twentieth century their work was respected and taught more in fringe institutions, [[Subject:Humanities|humanities]], and [[Subject:Social sciences|social science]] departments.<ref>{{Cite web|title=What Uni search for Psychoanalysis|url=https://www.whatuni.com/degree-courses/search?q=psychoanalysis|accessdate=19/10/2020}}</ref><ref name=":52" /> In psychology departments, if taught, these thinker's work is usually in the context of a historical artifact rather than a working theory.<ref>{{Cite book|title=Freud and Philosophy: An Essay on Interpretation|last=Ricœur|first=Paul|isbn=0-300-02189-5|publisher=New Haven: Yale University Press|date=1970|url=|access-date=}}</ref><ref name=":12" /><ref name=":32" /><ref name=":22" /> The discussion that lead to this view of psychoanalytical work helped separate psychology, based on empirical evidence and methods of experimentation developed in the [[wikibooks:Natural_sciences_department|natural sciences]], from the multitude of observation, interpretation, introspection and enumerative inductivism based hypotheses developed by early 'psychologists', both turned psychology into a true science and advanced the scientific method as a whole as well as producing some fascinating, important and useful philosophies and interpretive models.<ref name=":52" /><ref name=":02" /><ref>{{Cite book|title=Maps of Meaning|last=Peterson|first=Jordan B.|isbn=0415922216|publisher=Routledge|url=https://books.google.co.uk/books?hl=en&lr=&id=8Siqb_pbg0MC&oi=fnd&pg=PR11&dq=maps+of+meaning+peterson&ots=570sf6Q1ZB&sig=Bs57oHiWLvxMNgF_s1DyYMTIIgM#v=onepage&q=maps%20of%20meaning%20peterson&f=false|access-date=2020-10-19|origyear=1999}}</ref> However, the psychoanalitic discipline has been left in disarray by its dissociation from academic institutions, which still considerably hampers it's developement despite it's continueing importance in theraputic settings and culture.<ref name=":42" /><ref name=":52" />
==== References ====
<references group=""></references>
== Issues and evidence in the prescription of pharmaceutical drugs ==
==== Introduction ====
The process of prescribing Pharmaceuticals is a complex and difficult to manage process, easily influenced by a multitude of biases.<ref name=":17">{{Cite journal|authors=Helen Prosser, Solomon Almond, Tom Walley|publication-date=1/02/2003|title=Influences on GPs’ decision to prescribe new drugs—the importance of who says what|url=https://academic.oup.com/fampra/article/20/1/61/498919|journal=Oxford Academic Family Practice|access-date=23/10/2020}}</ref><ref name=":53">{{Cite journal|author1=Joel Lexchin|author2=Barbara Mintzes|publication-date=1/09/2002|title=Direct-to-Consumer Advertising of Prescription Drugs: The Evidence Says No|url=https://journals.sagepub.com/doi/full/10.1509/jppm.21.2.194.17595|journal=Sage Journals|access-date=23/10/2020}}</ref><ref name=":9">{{Cite journal|author1=Julie M. Donohue, Ph.D.|author2=Marisa Cevasco, B.A.|author3=Meredith B. Rosenthal, Ph.D.|publication-date=16/08/2007|title=A Decade of Direct-to-Consumer Advertising of Prescription Drugs|url=https://www.nejm.org/doi/full/10.1056/NEJMsa070502|journal=The New England Journal of Medicine|access-date=23/10/2020}}</ref><ref name=":13">{{Cite journal|author1=Robin Gregory|author2=Ellen Peters|author3=Paul Slovic|date=05/01/2010|publication-date=27/05/2011|title=Making decisions about prescription drugs: A study of doctor–patient communication|url=https://www.tandfonline.com/doi/full/10.1080/13698575.2011.575455|journal=Health, Risk & Society|access-date=24/10/2020}}</ref> There are several strands that collide in the prescription process. Firstly, the information received by the consumer, through advertising and other sources.<ref name=":43">{{Cite journal|author1=Graber, Mark A.|author2=Weckmann, Michelle|publication-date=29/08/2012|title=Pharmaceutical Company Internet Sites As Sources of Information About Antidepressant Medications|url=https://link.springer.com/article/10.2165/00023210-200216060-00005#citeas|journal=CNS Drugs|accessdate=23/10/2020}}</ref><ref name=":53" /> Secondly the experiments and trials through which the drugs are produced, the efficacy, risks and benefits assessed, and uses determined.<ref name=":11">{{Cite journal|author1=Gail A. Van Norman|publication-date=25/04/16|title=Drugs, Devices, and the FDA: Part 1 An Overview of Approval Processes for Drugs|url=https://basictranslational.onlinejacc.org/content/1/3/170.full|journal=JACC Journals|accessdate=23/10/2020}}</ref> And thirdly, the experience, training, and expertise of the doctors.<ref name=":19">{{Cite journal|author1=Gregory, Robin|author2=Peters, Ellen|author3=Slovic, Paul|publication-date=27/05/2011|title=Making decisions about prescription drugs: A study of doctor–patient communication|url=https://www.tandfonline.com/doi/full/10.1080/13698575.2011.575455|journal=Taylor & Francis|accessdate=23/10/2020}}</ref>
==== Consumer information ====
The advertising of prescription medication is a highly contentious issue.<ref name=":10">{{Cite journal|author1=Michael Sinkinson|author2=Amanda Starc|publication-date=March 2019|title=Ask Your Doctor? Direct-to-Consumer Advertising of Pharmaceuticals|url=https://academic.oup.com/restud/article/86/2/836/4817061|journal=https://academic.oup.com/restud/article/86/2/836/4817061|accessdate=23/10/2020}}</ref><ref>{{Cite journal|author1=Julie Donohue|publication-date=December 2006|title=A History of Drug Advertising: The Evolving Roles of Consumers and Consumer Protection|url=https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2690298/|journal=The Milbank Quarterly|accessdate=23/10/2020}}</ref> In the United Kingdom direct-to-consumer advertising (DTCA) of prescription medication is outlawed.<ref>{{Cite web|author=Medicines and Healthcare products Regulatory Agency|title=GOV.UK: Guidance: Advertise your medicines|url=https://www.gov.uk/guidance/advertise-your-medicines#:~:text=about%20an%20advert-,Overview,medicines%2C%20to%20the%20general%20public.&text=You%20can't%20advertise%20any,the%20legal%20requirements%20when%20advertising.|accessdate=23/10/2020}}</ref> However, since late 1997 DTCA of prescription medication has been leniently regulated in the United States. Between 1996 and 2004 there was a 500% increase in DTCA spending for drug promotion.<ref>{{Cite journal|author1=Ziad F. Gellad MD|author2=Kenneth W. Lyles MD|publication-date=30/09/2007|title=Direct-to-Consumer Advertising of Pharmaceuticals|url=https://www.sciencedirect.com/science/article/pii/S0002934306012654#bib10|journal=The American Journal of Medicine|access-date=23/10/2020}}</ref><ref name=":53" /> This spending appears to be highly effective, in 2019 80% of the money spent on prescription and over the counter drugs went to branded products rather than their generic counterparts.<ref name=":23">{{Cite web|author=Matej Mikulic|date=18/08/2020|title=Proportion of branded versus generic prescription drug revenues in the United States from 2005 to 2019|url=https://www.statista.com/statistics/205036/proportion-of-brand-to-generic-prescription-sales/|publisher=Statista|accessdate=24/10/2020}}</ref>
Some studies support the use of DTCA, citing the fear that if consumers do not know about the drugs then they may not get the treatments they need.<ref name=":8">{{Cite journal|author1=Peter J. Neumann|author2=Eileen A. Sandberg|author3=Chaim M. Bell|author4=Patricia W. Stone|author5=Richard H. Chapman|publication-date=April 2000|title=Are Pharmaceuticals Cost-Effective? A Review Of The Evidence|url=https://www.healthaffairs.org/doi/full/10.1377/hlthaff.19.2.92|journal=Health Affairs|accessdate=23/10/2020}}</ref><ref name=":9" /><ref name=":10" /> However, according to an article published in Sage Journals, 75% of doctors take issue with the quality of information contained in the DTCA of medical products.<ref name=":62">{{Cite journal|author1=Michael Friedman|author2=James Gould|publication-date=01/01/2007|title=Physicians' Attitudes toward Direct-to-Consumer Prescription Drug Marketing|url=https://journals.sagepub.com/doi/abs/10.1057/palgrave.jmm.5050063|journal=Sage Journals}}</ref> Studies have found that much of the information easily availiable to consumers through advertising and search engines is emotive or anecdotal. Furthermore, the information is reported to be misrepresentative of the risk benefit relationship and frequently fails to mention alternative treatments and medications.<ref name=":53" /><ref name=":62" /><ref>{{Cite journal|author1=ROBERT A. BELL|author2=MICHAEL S. WILKES|author3=RICHARD L. KRAVITZ|publication-date=Dec 2000|title=The Educational Value of Consumer-Targeted Prescription Drug Print Advertising|url=https://go.gale.com/ps/anonymous?id=GALE%7CA68913016&sid=googleScholar&v=2.1&it=r&linkaccess=abs&issn=00943509&p=AONE&sw=w|journal=Journal of Family Practice|access-date=23/10/2020}}</ref><ref name=":7">{{Cite journal|author1=David Spurgeon|publication-date=20/11/1999|title=Doctors feel pressurised by direct to consumer advertising|url=https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1117069/|journal=BMJ|accessdate=23/10/2020}}</ref><ref name=":43" />
==== Drug assessment process ====
It takes an average of twelve years and in excess of a billion dollars in the USA to take a drug from the lab to the general public.<ref name=":11" /> There are five main stages in the drug development process that have to be successfully completed in sequence<ref name="fda">{{cite web|title=Step 3: Clinical Research|url=https://www.fda.gov/patients/drug-development-process/step-3-clinical-research|website=FDA|accessdate=30/10/2020}}</ref>. The animal testing phase (pre-clinical research) tests drug toxicity and identifies key information about dosage before moving to human trials. In vivo experimentation is also used to investigate a drugs long term affects using animals with a short life-span (often mice). <ref>{{Cite journal|author1=Richard D. Storer|author2=Frank D. Sistare|author3=M. Vijayaraj Reddy|author4=Joseph J. Degeorge|publication-date=5/09/2009|title=An Industry Perspective on the Utility of Short-Term Carcinogenicity Testing in Transgenic Mice in Pharmaceutical Development|url=https://journals.sagepub.com/doi/abs/10.1177/0192623309351718|journal=Sage Journals|accessdate=23/10/2020}}</ref><ref name=":122">{{Cite journal|author1=Bret S. Weinstein|author2=Deborah Ciszek|publication-date=29/01/2002|title=The reserve-capacity hypothesis: evolutionary origins and modern implications of the trade-off between tumor-suppression and tissue-repair|url=https://www.sciencedirect.com/science/article/pii/S0531556502000128#BIB43|journal=Science Direct|accessdate=23/10/2020}}</ref> After animal testing, research moves to clinical trials which consist of phased testing on incrementally larger human cohorts. The drugs are monitored for dosage, safety and efficacy before being released to the general public.<ref name=":11" />
There are some interesting issues emerging from the use of mice for gathering data on drug toxicity and side effects. In comparison to humans and their wild counterparts, laboratory mice have been shown to have excessively long telomeres. This endows them with unrepresentative abilities to repair from body and cell damage.<ref name=":122" /><ref>{{Cite journal|author1=M T Hemann|author2=C W Greider|publication-date=01/11/2000|title=Wild-derived inbred mouse strains have short telomeres.|url=https://europepmc.org/article/pmc/113886|journal=Europe PMC|access-date=23/10/2020}}</ref><ref>{{Cite journal|author1=David Kipling|author2=Howard J. Cooke|publication-date=27/09/1990|title=Hypervariable ultra-long telomeres in mice|url=https://www.nature.com/articles/347400a0|journal=Nature|accessdate=23/10/2020}}</ref> This is one example of how evidence could be misrepresentative in drug testing. Another is implied by a review of studies analysing the dollars per quality assessed life year (QALY) gained. Large variations were found in the median reported cost-effectiveness dependent on the source of funding for the study. Industry-funded studies weighed in at $6000 per QALY, less than half the median value reported by non-industry funded analyses.<ref name=":8" />
Faults such as these in drug assessment can have detrimental effects. In the year 1997-1998 five drugs prescribed to 19.8 million patients were withdrawn from the market due to concern over their side effects. In the case of the diet drug fen-phen, a study found that 30% of people taking the drug had developed specific heart problems only present in 1% of the wider population. <ref>{{Cite journal|author1=Alastair J. J. Wood, MD|publication-date=12/05/1999|title=The Safety of New Medicines The Importance of Asking the Right Questions|url=https://jamanetwork.com/journals/jama/fullarticle/189774|journal=JAMA Network|accessdate=23/10/2020}}</ref><ref>{{Cite journal|author1=Michael A. Friedman, MD|author2=Janet Woodcock, MD|author3=Murray M. Lumpkin, MD|publication-date=12/05/1999|title=The Safety of Newly Approved Medicines Do Recent Market Removals Mean There Is a Problem?|url=https://jamanetwork.com/journals/jama/article-abstract/189872|journal=JAMA Network|access-date=23/10/2020}}</ref> Faults in the assessment process aside, the quantity of research into the affects of pharmaceuticles presents an arguably much larger problem for the prescription process.<ref name=":20">{{Cite journal|authors=Sarah Kleijnen, Elisabeth George, Scott Goulden, Anned Andon, Pauline Vitré, Boguslawa Osińska, Rafal Rdzany, Steffen Thirstrup, Belen Corbacho, Bence Z. Nagy, Hubert G. Leufkens, Anthoniusde Boer, Wim G. Goettsch|publication-date=20/06/2012|title=Relative Effectiveness Assessment of Pharmaceuticals: Similarities and Differences in 29 Jurisdictions|url=https://www.sciencedirect.com/science/article/pii/S1098301512016099|journal=Value in Health|accessdate=24/10/2020}}</ref><ref name=":21">{{Cite journal|author1=C Salisbury|author2=N Bosanquet|author3=E Wilkinson|author4=A Bosanquet|author5=J Hasler|publication-date=Dec 1998|title=The implementation of evidence-based medicine in general practice prescribing.|url=https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1313292/|journal=British Journal of General Practice|accessdate=24/10/2020}}</ref><ref name=":222">{{Cite journal|author1=Muhammad Mamdani|author2=Andrew Ching|author3=Brian Golden|author4=Magda Melo|author5=Ulrich Menzefricke|publication-date=May 2008|title=Challenges to Evidence-Based Prescribing in Clinical Practice|url=https://journals.sagepub.com/doi/pdf/10.1345/aph.1K283|journal=The Annals of Pharmacotherapy|access-date=24/10/2020}}</ref>
==== Prescription process ====
Doctors make difficult decisions when medicating patients, caught between their care for the patient's wellbeing and potential sanctions or lawsuits for under or over-prescription.<ref>{{Cite journal|author=Jacob B. Nist|date=2002|publication-date=10/11/2010|title=LIABILITY FOR OVERPRESCRIPTION OF CONTROLLED SUBSTANCES: CAN IT BE JUSTIFIED IN LIGHT OF THE CURRENT PRACTICE OF UNDERTREATING PAIN?|url=https://www.tandfonline.com/doi/pdf/10.1080/019476402317276687|journal=The Journal of Legal Medicine|accessdate=24/10/2020}}</ref><ref name=":13" /> An interview based study of GP decision making processes found that decisions were affected more by the doctors and their peers anecdotal or qualititive experience, and patients requests than the doctors training or research, it was also found that the doctors often simplified options and risk benefit analysis so as not to overwhelm their patients.<ref name=":13" /><ref name=":7" /><ref name=":16">{{Cite journal|author1=Helen Prosser|author2=Tom Walley|publication-date=30/09//2005|title=New drug prescribing by hospital doctors: The nature and meaning of knowledge|url=https://www.sciencedirect.com/science/article/pii/S0277953605004557|journal=Science Direct|accessdate=24/10/2020}}</ref>
Evidence based prescribing is the use of clinical studies and research by doctors to make decisions in prescription, this is a possible solution to the web of less reliable influences that affect the medication prescribed to patients.<ref name=":14">{{Cite journal|author1=Simon R J Maxwell|publication-date=28/07/2005|title=Evidence based prescribing|url=https://www.bmj.com/content/331/7511/247.short|journal=BMJ|access-date=23/10/2020}}</ref><ref name=":15">{{Cite journal|author1=Titus J. Bradley|author2=MBChB, Alison P. Round|author3=MBChB|author4=MFPHM|author5=Marilyn Ramsden|author6=BPharm|author7=MRPharmS|publication-date=1/07/2000|title=The success of an evidence-based rational prescribing intervention: a retrospective study|url=https://www.pharmaceutical-journal.com/the-success-of-an-evidence-based-rational-prescribing-intervention-a-retrospective-study/20002075.article?firstPass=false|journal=The Pharmaceutical Journal|access-date=23/10/2020}}</ref><ref name=":16" /> However, there is critisism of this method, that physicians lack the time required to explore the vast quantity of information availiable to assess the merits of medications and Kahneman argues that intuitive thinking is an important part of complex decision making, especially under time constraints.<ref name=":21" /><ref name=":222" /><ref>{{Cite conference|author=DANIEL KAHNEMAN|date=08/12/2002|conference=Nobel Prize Lecture|title=MAPS OF BOUNDED RATIONALITY: A PERSPECTIVE ON INTUITIVE JUDGMENT AND CHOICE|url=https://valuewalkpremium.com/wp-content/uploads/2014/06/kahnemann-lecture.pdf|accessdate=24/10/2020}}</ref><ref name=":20" />
==== Conclusion ====
The evidence used to assess pharmaceutical prescription is, on the side of the consumer overly simplified and often misrepresentative, and in the scientific literature overwhelming and sometimes conflicting leading to anecdotal, social and qualitative influences largely taking precedence.<ref name=":17" /><ref name=":19" /><ref name=":16" /><ref name=":7" /><ref name=":18">{{Cite journal|author1=Liat Vidal|author2=Maya Shavit|author3=Abigail Fraser|author4=Mical Paul|author5=Leonard Leibovici|publication-date=28/07/2005|title=Systematic comparison of four sources of drug information regarding adjustment of dose for renal function|url=https://www.bmj.com/content/331/7511/263|journal=BMJ|accessdate=23/10/2020}}</ref> Movements to address this have been partially successful.<ref name=":15" /><ref name=":14" /> However, with time constraints on consultations and doctor time and the complexity, quantity and variability of scientific and empirical evidence available limited progress has been made improving the process, even with the implementation of computer systems to aid decision making.<ref name=":18" /><ref name=":14" /><ref name=":15" /><ref>{{Cite journal|author1=Lindsey Yourman|author2=John Concato|author3=Joseph V. Agostini|publication-date=1/08/2008|title=Use of computer decision support interventions to improve medication prescribing in older adults: A systematic review|url=https://www.sciencedirect.com/science/article/abs/pii/S1543594608000214|journal=The American Journal of Geriatric Pharmacotherapy|access-date=24/10/2020}}</ref> With more time for consultations, better organised clinical records and computer systems, and more representative information supplied to consumers, it may be possible to move towards a more empirically based and scientific process for medicating patients, however it is not in the interest of the pharmaceutical industry to make these changes, as the premium they can charge for new and or branded drugs is a large source of income.<ref name=":23" />
==== References ====
<references group=""></references>
== Power in the Discipline of Physics ==
==== Introduction ====
==== Generational Issues ====
Planck's principle, as well as similar ideas presented by Dawin and Lavoisier, state that new idea's do not come to dominate by converting the proponants of the theories it is overturning but by their death and the next generation learning the ideas as given.<ref>{{Cite journal|author1=Sharon G. Levin|author2=Paula E. Stephan|author3=Mary Beth Walker|publication-date=01/05/1995|title=Planck's Principle Revisited: A Note|url=https://journals.sagepub.com/doi/abs/10.1177/030631295025002003|journal=Social Studies of Science}}</ref><ref>{{Cite book|title=In Search of Schrodinger's Cat|last=Gribbin|first=John|publisher=Transworld Publishers|isbn=9780552125550|access-date=2020-11-09}}</ref><ref name=":1">{{Cite book|title=Youth and Scientific Innovation: The Role of Young Scientists in the Development of a New Field|url=https://link.springer.com/content/pdf/10.1007/BF01096169.pdf|publisher=MINERVA (LONDON).|access-date=2020-11-09|author2=MICHAEL RAPPA|author3=KOENRAAD DEBACKERE|origyear=1993}}</ref> This is likely to be a result of the power imbalance between the young and old in the universities as it takes a long time to climb to the top of these institutions as older people including scientists are generally less reseptive to new ideas.<ref>{{Cite journal|author1=David Smith|author2=Jean Bocock|author3=Catherine Bargh|title=Higher education management|url=https://www.oecd.org/education/imhe/37446807.pdf#page=108|journal=JOURNAL OF THE PROGRAMME ON INSTITUTIONAL MANAGEMENT IN HIGHER EDUCATION|volume=11|number=2|page=118|chapter=New Leaders at the Top? The Educational and Career Paths of UK University Vice-chancellors (1960-1996)}}</ref><ref name=":1" /><ref>Schwaba, T., Luhmann, M., Denissen, J. J. A., Chung, J. M., & Bleidorn, W. (2018). Openness to experience and culture-openness transactions across the lifespan. Journal of Personality and Social Psychology, 115(1), 118–136. https://doi.org/10.1037/pspp0000150</ref> Research into age discrimination within academia also provides evidence for the presence of power dynamics in academic progression; implying that age and 'time surved' plays large part in decisions regarding promotion as well as competance and experience.<ref name=":0">{{Cite book|title=Ageism in Work and Employment|last=Rodham|first=Karen|url=https://books.google.co.uk/books?hl=en&lr=&id=JR8uDwAAQBAJ&oi=fnd&pg=PT206&dq=ageism+in+academia&ots=wbdboSsDhX&sig=3xOzISJho0aDR3eccvUE-AYwoso#v=onepage&q=academia&f=false|publisher=Ashgate Publishing|isbn=9781138736399|access-date=2020-11-09|origyear=2001|chapter=Ageism, young academics and the buffalo stance}}</ref> This is an example of institutional power, younger people are simply not considered for higher positions in departements due to the observation that most of those with the skills for these positions are older.<ref name=":0" /> Overall the issue of idea's and individuals making their way up the academic ladder is a intersection of institutional power and individual's unconcious biases against idea's that they are unfamiliar with.
==== Gender Issues ====
In the united states only 20% of physics degrees and PHDs are earned by Women, and similar figures are reflected around the world.<ref>{{Cite journal|authors=Robin Bjorkquist, Abigail M. Bogdan, Nicole L. Campbell, Mary Chessey, Geraldine L. Cochran, Beth Cunningham, ...|publication-date=03/06/2019|title=Women in Physics in the United States: Reaching Toward Equity and Inclusion|url=https://aip.scitation.org/doi/pdf/10.1063/1.5110114|journal=AIP Conferance Proceedings|accessdate=09/11/2020}}</ref><ref>{{Cite journal|authors=Rohini M. Godbole, Neelima Gupte, Pratibha Jolly, Shobhana Narasimhan, and Sumathi Rao|publication-date=31/10/2005|title=Women in Physics in India, 2005|url=https://aip.scitation.org/doi/pdf/10.1063/1.2128297#:~:text=In%20physics%2C%20women%20constitute%2030,the%20PhD%20level%20in%20physics.|journal=AIP Conference Procedings|volume=795|number=123|accessdate=09/11/2020}}</ref> The lack of representation of multiple issues of power as well as sex differences in traits. The power issues between genders in physics departments mostly constist of preconceptional biases perpatrated by physics being primerily dominated by men and overrepresented in textbooks and other physics.<ref>{{Cite journal|author1=Ramón S. Barthelemy|author2=Melinda McCormick|author3=Charles Henderson|publication-date=01/08/2016|title=Gender discrimination in physics and astronomy: Graduate student experiences of sexism and gender microaggressions|url=https://journals.aps.org/prper/pdf/10.1103/PhysRevPhysEducRes.12.020119|journal=PHYSICAL REVIEW PHYSICS EDUCATION RESEARCH|volume=12|access-date=09/11/2020}}</ref> This is one cause that contributes to most women not considering a career in physics from an early age.<ref name=":2">{{Cite journal|author=Peter Whiteley|year=1996|title=The gender balance of physics textbooks: Caribbean and British books, 1985-91|url=https://iopscience.iop.org/article/10.1088/0031-9120/31/3/018/pdf|journal=Physics Education|volume=31|number=169}}</ref>
Other power issues contributing to fewer women reaching higher positions in physics include difficulty fitting into a male dominated workplace and the decision making processes affecting career progression.<ref name=":4">{{Cite journal|author=Sherry Towers|publication-date=19/04/2008|title=A Case Study of Gender Bias at the Postdoctoral Level in Physics, and its Resulting Impact on the Academic Career Advancement of Females|url=https://arxiv.org/pdf/0804.2026.pdf|journal=Physics and Society|accessdate=09/11/2020}}</ref><ref>{{Cite journal|author1=Helen Peterson|year=2010|title=The Gendered Construction of Technical SelfConfidence: Women’s Negotiated Positions in Maledominated, Technical Work Settings|url=http://genderandset.open.ac.uk/index.php/genderandset/article/view/61|journal=International Journal of Gender, Science and Technology|volume=2|number=1}}</ref> Some factors that contribute to this are; men being likely more to overestimate their skills and women being more likely to underestimate, women being more to feel excluded from making connections across and up the hierachy and expectations of female steriotypes playing out in microagressions and the decision making process.<ref name=":4" /><ref>{{Cite journal|author=Sylvia Beyer|year=1990|title=Gender Differences in the Accuracy of Self-Evaluations of Performance|url=https://www.researchgate.net/profile/Sylvia_Beyer/publication/232546479_Gender_Differences_in_the_Accuracy_of_Self-Evaluations_of_Performance/links/55e0c63008ae2fac471cb8fe.pdf|journal=Journal of Personality and Social Psychology|volume=59|number=5}}</ref><ref>{{Cite journal|author=Geoff Brumfiel|publication-date=23/04/2008|title=Data show extent of sexism in physics|url=https://www.nature.com/news/2008/080423/full/452918a.html|journal=Nature|accessdate=09/11/2020}}</ref> These create an intersectional power imbalance between men and women in physics leading to an inneficient hierachy which is likely to hamper scientific progress by excluding potentially innovative women.
However, it is unlikely that power imbalances and descriminatory biases within physics account for all of the gender discrepancy in the discipline. One factor that explains part of the underrepresentation of women in physics is differences in interests and priorities between men and women. Especially that women are, on average, more likely than men to prioritise 'balance and relationships' over material success and have a considerable statistical tendancy towards an interest in people (in the broadest sence refering to arts, humanities, care, etcetera) in contrast to the male tendancy towards interest in things (again in a very broad sense; STEM, data, construction, etcetera).<ref>{{Cite journal|author1=Lorraine S. Dyke|author2=Steven A. Murphy|publication-date=21/09/2006|title=How We Define Success: A Qualitative Study of What Matters Most to Women and Men|url=https://link.springer.com/article/10.1007%252Fs11199-006-9091-2|journal=Sex Roles|volume=55}}</ref> Some more possible factor is the female bias towards verbal intelligence as opposed to the male average tending towards spacial intelligence and maternity (especially in the high status and income positions that require a long and constant career path to reach).<ref name=":3">{{Cite journal|author=Helmuth Nyborg|publication-date=August 2005|title=Sex-related differences in general intelligence g, brain size, and social status|url=https://www.sciencedirect.com/science/article/pii/S019188690400385X|journal=Personality and Individual Differences|volume=39|issue=3}}</ref><ref name=":5">{{Cite journal|author=Anna T. Danielsson|title=Exploring woman university physics students ‘doing gender’ and ‘doing physics’|url=https://www.tandfonline.com/doi/full/10.1080/09540253.2011.565040|journal=Gender and Education|volume=24|issue=1|accessdate=09/11/2020}}</ref>
Some argue that the difference is due to the width of the male general intelligence distribution increasing the male to female ratio at the extremes.<ref name=":3" /><ref>{{Cite journal|authors=Sebastian Bergold, Heike Wendt, Daniel Kasper, and Ricarda Steinmayr|year=2017|title=Academic Competencies: Their Interrelatedness and Gender Differences at Their High End|url=https://www.gwern.net/docs/psychology/2017-bergold.pdf|journal=Journal of Educational Psychology|volume=109|number=3}}</ref> However, measuring mean gender differences is extremely difficult due to the huge overlap in distrabution and the time and energy required on the part of the respondants to collect good psychometric data and many of the studies contradict oneanother.<ref name=":3" /><ref name=":5" />
==== Conclusion ====
Generational issues of power in physics and other sciences may well hamper scientific progress. Gender issues of power represent a portion of the reasons for the underepresentation of women in physics but it is unlikely that by eliminating the power issues the outcome would be equal representation due to the statistical differences in interests and traits.<ref name=":6">{{Cite journal|author1=Adrian Madsen|author2=Sarah B. McKagan|author3=Eleanor C. Sayre|title=Gender gap on concept inventories in physics: What is consistent, what is inconsistent, and what factors influence the gap?|url=https://journals.aps.org/prper/abstract/10.1103/PhysRevSTPER.9.020121|journal=Physical Review Physics and Education Research|volume=9|issue=2}}</ref>
It remains unclear in the literature how the power issues can be adressed as a whole.<ref>{{Cite journal|author=Suzette Caleo|author2=Madeline E. Heilman|publication-date=2019|title=What Could Go Wrong? Some Unintended Consequences of Gender Bias Interventions|url=https://psycnet.apa.org/fulltext/2019-71045-001.html|journal=Archives of Scientific Psychology|volume=7|issue=1}}</ref><ref name=":6" /> However, there is evidence that diversity cognative learning and reactions training had small but significant and lasting effects in combating unconcious biases.<ref>Bezrukova, K., Spell, C. S., Perry, J. L., & Jehn, K. A. (2016). A meta-analytical integration of over 40 years of research on diversity training evaluation. Psychological Bulletin, 142(11), 1227–1274. https://doi.org/10.1037/bul0000067</ref> It is also suggested that increasing the representation of women in physics related content would increase the number of women enroling in physics courses.<ref name=":6" /><ref name=":5" /> This is likely to increase the number progressing onto PHD level and academic posts, diluting the male dominated culture and increasing the likelyhood of innovation by a greater proportion of humanities best minds working in the field of study. <ref name=":2" />
==== References ====
14zk6mgfoffb2gwj81adi95ktvtakkj
Autistic Survival Guide/Co-occurring Conditions
0
450907
4674737
4608146
2026-10-06T15:16:27Z
~2026-53729-04
3627743
Added Arthritis as it's more common to deal with autoimmune diseases with autistic people
4674737
wikitext
text/x-wiki
{{Nav}}
72% of autistic people also struggle with a mental illness<ref>[[wikipedia:Chloé Hayden|Chloé Hayden]]'s book, page 95/266 Quote: "Seventy-two per cent of autistic people also struggle with a comorid mental illness" ''her'' reference was: [https://pubmed.ncbi.nlm.nih.gov/18188442]</ref> so try not to get one and get help when needed.
== Bipolar Disorder ==
* Bipolar Disorder is a mood disorder that can ruin the lives of even non-autistic people.
* Autistic spectrum people are much more likely than non-autists to have it.
* It is a progressive disorder with a genetic basis that is usually first triggered by traumatic experiences. It may then progress from amplified mood swings that become wilder, to spontaneous mood swings which come closer and closer together.
* Stress and commitment usually makes the disorder progress.
* Like autism, it can have its creativity benefits.
* Like autism, there is no cure, and treatment has its health risks and occasionally makes things worse.
* Like autism, it is said that the best way to treat it is to understand it.
* Like autism, progress has been made in recent years that many practitioners have not caught up with yet.
* If you think that you might be bipolar, it is much better to address it sooner than later, because this disorder does not regress.
* This section does not constitute medical advice. Not only are there medical and medicinal treatments but support groups, books and plenty of researched information on the web to help.
== Attention Deficit Hyperactivity Disorder ==
* Like autism [[Introduction to Psychology/Psychological Disorders#ADHD|ADHD]] is not a mental disorder, it's a neurodevelopmental disorder.
* It is very common for autistic people to have ADHD. In fact, there is even a name for it: '''[[wiktionary:AuDHD|AuDHD]]'''.<ref>{{cite web |last1=Newberry |first1=Laura |title=Autism and ADHD often go hand-in-hand. What's it like to have 'AuDHD'? |url=https://www.latimes.com/california/newsletter/2023-04-25/adhd-and-autism-group-therapy |website=Los Angeles Times |date=25 April 2023 |access-date=18 February 2024 |archive-date=2024-04-05 |archive-url=https://web.archive.org/web/20240405234700/https://www.latimes.com/california/newsletter/2023-04-25/adhd-and-autism-group-therapy |url-status=live }}</ref>
* Like autism it can also have benefits, like [[w:hyperfocus|hyperfocus]].
* People with ADHD (or [[wiktionary:ADHD-ers|ADHD-ers]] if you want to use [[w:identity first language|identity first language]]) [[Autism/Characteristics/Stimming|stim]] but differently to—or less than—autistic people do.
* Like autism ADHD does not go away and that's fine, just don't sit next to windows you might get distracted.
{{BookCat}}
<references />
== Arthritis ==
* Arthritis can also co exist in Autistic people as early as childhood, though do to sensory issues we may have trouble noticing symptoms like pain and swelling.
gy3ahfnj7vtoqv6ih0tirmn0r9yefxz
Axis & Allies/Classic
0
456461
4674843
4300341
2026-10-07T09:38:25Z
Sammy2012
3074780
Starting work to finish this page
4674843
wikitext
text/x-wiki
{{WIP}}
'''''Axis & Allies Classic''''' is the original version of Axis and Allies. Released in 1984 by Milton Bradley as the first game of its ''Gamemaster'' series, the game laid down many of the conventions of the ''Axis & Allies'' series, which later games would expand and revise on. ''Classic'' would also receive a computer game adaptation in 1998.
== Objective ==
''Axis & Allies Classic'' can be thought of as a more complex version of ''Risk''. Set against the backdrop of World War II (more specifically spring 1942), the game is played with between two and five players, each of whom assumes command of the five major players of the war - the Soviet Union, Nazi Germany, the United Kingdom, Imperial Japan and the United States. The nations are split between two alliances - the '''Axis''' consist of Germany and Japan, whilst the '''Allies''' consist of the Soviet Union, the UK and the US.
There are three different ways to win the game:
* For the Allies to win the game they must control both of the Axis capital cities - Berlin and Tokyo.
* For the Axis to win, they must achieve one of two objectives - either they must capture two of the three Allied capitals of London, Moscow and Washington D.C. for a military victory, or they must capture enough territories that their combined IPC value reaches or exceeds 84 (we will learn more about this later) for an economic victory.
== Game Equipment ==
''Axis & Allies Classic'' comes with the following equipment:
* The board.
* 299 plastic playing pieces. These include 55 coloured military units for each player and 24 non-coloured units nor directly owned by any power.
* 12 dice.
* A battle board, which all combat is resolved on.
* The National Production Chart. This chart is used to track the incomes of the five powers as well as weapons research.
* Five reference charts, one for each power. These detail how that power's units are set up at game start and provide basic instructions for gameplay.
* A set of plastic chips, used to denote more than one of a unit on a given territory.
* A money deck of Industrial Production Certificates (I.P.C.s), the game's currency. The deck includes 1,5 and 10 bills.
* 12 dice.
* 6 game trays - one for each power and one for the non-colour coded units.
== Setup & Board Anatomy ==
As already stated ''Axis & Allies Classic'' is played with between two and five players. Before the game begins each player must decide which power they want to control, as follows:
* In a two-player game, one player controls the Axis and the other player controls the Allies.
* In a three-player game, the first player controls all three Allies, the second player controls Germany and the third player controls Japan.
* In a four-player game, the first player controls the Soviet Union and the United States, the second player controls the United Kingdom, the third player controls Germany and the fourth player controls Japan.
* In a five-player game, each player controls one power.
To set up the game, each player is given a reference chart, which details how their units are set up at game start and basic instructions for gameplay. Then using each reference chart as a guide, each player's units are set up on the board.
Before we can learn how to play the game, it is worth taking a look at the board. The board of ''Axis and Allies Classic'' depicts a (somewhat warped) map of the world, centred on the Old World. The board is divided into areas of land and sea, which are further divided into land territories and sea zones.
Each of the land territories is given a colour denoting who owns that territory at game start:
* The Soviet Union is red-orange,
* Germany is grey,
* the United Kingdom is tan,
* Japan is yellow,
* and the United States is green.
Each of the land territories has its name written on it or somewhere nearby, and most non-neutral territories also have a number assigned to them. This number represents the territory's value in Industrial Production Certificates (IPCs), which are the currency of the game. The IPC number is higher for industrialised territories than for more rural ones - for example, the Germany territory is worth 10 IPCs, whilst Evenki National Okrug in the Soviet Union is only worth 2 IPCs.
There are also a number of territories coloured in cream - these territories are neutral, are not controlled by any player and do not have an IPC value. Moving military units into these territories will incur a one-time penalty of 3 IPCs on the player that violated the territory's neutrality. Once a neutral territory has been violated for the first time it is no longer considered neutral and will be treated like any other non-neutral territory henceforth.
Along the top edge of the board, and at the bottom-right corner, one can find a number of zoomed-in views of specific territories on the board. These are used to reduce clutter by providing additional room to place units.
== Basic Gameplay ==
A game of ''Axis & Allies Classic'' is split into rounds. In each round the five countries will each take a turn to move their military units, attack their opponents' territories and defend their own territories. The five countries take turns in a strict turn order - first the Soviets, then Germany, then the UK, then Japan and finally the US. Each turn is divided into six phases:
# Roll for research / Purchase units
# Combat moves
# Conduct combat
# Non-combat moves
# Mobilise new units
# Collect income
== Types of Units ==
The military units in ''Axis and Allies Classic'' come in ten different types, which are split into four groupings - land units, naval units, air units and industrial complexes. Each unit (aside from the industrial complexes) is assigned an attack, defence and movement number that will affect how the units can move and perform in combat.
{| class="wikitable"
|+Types of units:
!Unit type
!IPC cost
!Attack
!Defence
!Movement
|-
| colspan="5" |''Land units''
|-
|'''Infantry'''
|3
|1
|2
|1
|-
|'''Armour'''
|5
|3
|2
|2
|-
|'''Antiaircraft artillery'''
|5
|0
|1
|1
|-
| colspan="5" |''Naval units''
|-
|'''Battleship'''
|24
|4
|4
|2
|-
|'''Aircraft carrier'''
|18
|1
|3
|2
|-
|'''Submarine'''
|8
|2
|2
|2
|-
|'''Transport'''
|8
|0
|1
|2
|-
| colspan="5" |''Air units''
|-
|'''Fighter'''
|12
|3
|4
|4
|-
|'''Bomber'''
|15
|4
|1
|4
|-
| colspan="5" |
|-
|'''Industrial complex'''
|12
| colspan="3" |N/A
|}
An ''Axis & Allies Classic'' set also comes with chips, small plastic tokens that can be used to denote more than one of a given unit. They come in two colours - grey and red - and with a unit placed on top, a grey chip denotes one additional unit and a red chip five additional units.
== Unit Types in Detail ==
=== Infantry ===
'''IPC cost: 3'''
'''Attacks on: 1'''
'''Defends on: 2'''
'''Can move: 1 territory'''
Infantry are the cheapest unit in the game. They aren't very good attackers, but masses of them can be devastating if used correctly.
=== Armor ===
'''IPC cost: 5'''
'''Attacks on: 3'''
'''Defends on: 2'''
'''Can move: 2 territories'''
Armor are powerful attacking units that have the ability to blitz through unoccupied territories.
=== Antiaircraft artillery ===
'''IPC cost: 5'''
'''Attacks on: 0'''
'''Defends on: 1'''
'''Can move: 1 territory'''
Antiaircraft artillery have the ability to fire at attacking aircraft during battle and bombing raids. Keep in mind there can only be one antiaircraft gun per territory.
=== Battleships ===
'''IPC cost: 24'''
'''Attacks on: 4'''
'''Defends on: 4'''
'''Can move: 2 sea zones'''
Battleships are the most expensive unit so far, but their attack and defense are the best of all units.
=== Aircraft carriers ===
'''IPC cost: 18'''
'''Attacks on: 1'''
'''Defends on: 3'''
'''Can move: 2 sea zones'''
Aircraft carries are ships with special decks from which aircraft can take off and land.
=== Submarines ===
'''IPC cost: 8'''
'''Attacks on: 2'''
'''Defends on: 2'''
'''Can move: 2 sea zones'''
Submarines are the wolves of the sea - they have access to two powerful abilities when attacking than can be used to surprise the enemy.
=== Transports ===
'''IPC cost: 8'''
'''Attacks on: 0'''
'''Defends on: 1'''
'''Can move: 2 sea zones'''
Transports are ships that have the ability to carry land units across oceans. Each transport has two cargo slots which can be occupied by up to two infantry or an infantry and armor unit.
=== Fighters ===
'''IPC cost: 12'''
'''Attacks on: 3'''
'''Defends on: 4'''
'''Can move: 4 territories or sea zones'''
Fighters are air units that can give the edge to any attacking force - land or naval.
=== Bombers ===
'''IPC cost: 15'''
'''Attacks on: 4'''
'''Defends on: 1'''
'''Can move: 4 territories or sea zones'''
Bombers are air units that can conduct bombing raids on enemy industry to destroy enemy IPCs.
=== Industrial complexes ===
'''IPC cost: 12'''
Industrial complexes are special units that serve as the point of entry for all units purchased during a player's turn. Unlike most other units they do not take part in any form of combat, but they can be damaged by bombing raids.
== Gameplay in Detail ==
As already stated, each player's turn is divided into seven phases:
=== Phase One: Roll for Research / Purchase Units ===
In this phase the player will be allowed to spend the IPCs they have on hand to attempt to research new technologies. If a player wants to attempt research they must purchase dice to do so - each research die costs 5 IPCs. Once the IPCs have been spent each research die is rolled - if a 6 is rolled that player's country makes a technological breakthrough. Otherwise the player has failed in their research and must wait until their next turn to try again. After the research dice are rolled any dice that rolled 6 are rolled again - this determines what new technology the player acquires (these will be explained later):
{| class="wikitable"
|+
!Number
!Technology
|-
|1
|Jet power
|-
|2
|Rockets
|-
|3
|Super submarines
|-
|4
|Long range aircraft
|-
|5
|Industrial technology
|-
|6
|Heavy bombers
|}
If when rolling to determine the technology acquired a number comes up for an already-researched technology, the die is rolled again. Once a technology is acquired it will remain in the player's possession for the remainder of the game. Also researched technologies are an individual benefit and players cannot share technologies with their allies.
The player will then use the remaining IPCs they have on hand to purchase new units for their military. The player is allowed to spend these IPCs any way they like, and they do not necessarily have to spend all of their IPCs. Once the units have been purchased the IPCs are returned to the bank and the purchased units are placed just off the board, to be placed on the board later.
=== Phase Two: Combat Moves ===
In the second phase the player will move their military forces into hostile territories to engage in combat. The player may move as many units as they like, paying attention to to that unit type's movement number, which determines how many territories that unit may move per turn.
=== Phase Three: Conduct Combat ===
In the third phase the player will fight all of the battles they have initiated. The details behind combat will be explained later.
=== Phase Four: Non-Combat Moves ===
In the fourth phase the player will move military units in non-combat ways to reinforce their hold on their empire. They may only move units that have not already been moved in that player's turn, and units may only be moved onto friendly territories. In addition, any air units that took part in combat will need to be landed during this turns by moving them to a friendly territory or aircraft carrier.
=== Phase Five: Mobilise New Units ===
In the fifth phase the player will place all the units they purchased in turn one on the board. Land and air units may only be placed on territories with an industrial complex, and sea units may only be place don a sea zone adjacent to a territory with an industrial complex.
=== Phase Six: Collect Income ===
In the sixth phase the player will collect IPC income form their territories. Once this phase is complete the player's turn is over and the next player takes their turn.
== Combat in Detail ==
=== Land Combat ===
=== Naval Combat ===
=== Amphibious Assaults ===
=== Strategic Bombing Raids ===
== Other Rules ==
=== Technology Effects ===
=== Capturing Enemy Capitals ===
{{BookCat}}
2ibnq0vzl4emq7jlf3boraemkupkx0f
Chess Opening Theory/1. g4/1...g5/2. f4/2...f5
0
463321
4674742
4640822
2026-10-06T15:59:12Z
~2026-54078-52
3627747
Fix it's/its grammar issues
4674742
wikitext
text/x-wiki
{{Chess Position|Pepsi Countergambit|eco=[[Chess/ECOA|A00]]|parent=[[../|Grob's Attack, Coca-Cola Gambit]]|responses=<br>
* [[/3. e4|3. e4 - Sprite Countergambit]]|
|rd|nd|bd|qd|kd|bd|nd|rd|pd|pd|pd|pd|pd| | |pd| | | | | | | | | | | | | |pd|pd| | | | | | |pl|pl| | | | | | | | | |pl|pl|pl|pl|pl| | |pl|rl|nl|bl|ql|kl|bl|nl|rl}}
== Pepsi Countergambit ==
This Pepsi Countergambit is a rare "meme" opening which mirrors its parent, the [[Chess Opening Theory/1. g4/1...g5/2. f4|Coca-Cola Gambit]], in its boldness and aggression:
'''1.g4 g5 2.f4? f5?'''
Although its technical value is dubious at best and it hasn't been seen in any formal 'over the board' high level tournaments, it has been played online, with its popularity highest in bullet chess.
Its doubled mirrored pawn structure is similar to the [[Chess Opening Theory/1. e4/1...e5/2. d4/2...d5|Beyer Gambit of the Centre Game]] or the [[Chess Opening Theory/1. d4/1...d5/1. c4/1...c5|Austrian Defence to the Queen's Gambit]].
=== History ===
Like the Coca-Cola Gambit, the origins of the name 'Pepsi Countergambit' are uncertain, with one of the first online mentions of its name on a chess.com forum post from 2017<ref>{{Cite web |title=Weird opening names - Chess Forums |url=https://www.chess.com/forum/view/fun-with-chess/weird-opening-names |archive-url=https://web.archive.org/web/20260329023143/https://www.chess.com/forum/view/fun-with-chess/weird-opening-names |archive-date=2026-03-29 |access-date=2026-03-29 |website=Chess.com |language=en-US}}</ref> and later mentions in various spheres of chess fandom.<ref>{{Cite web |title=Pepsi Countergambit |url=https://chess.fandom.com/wiki/Pepsi_Countergambit |access-date=2026-03-29 |website=Chess Wiki |language=en|archive-url=https://web.archive.org/web/20260329025023/https://chess.fandom.com/wiki/Pepsi_Countergambit|archive-date=2026-03-29}}</ref>
== References ==
<references />
kjytqpz6agyb12afkm6yvzh50s4nrkp
Foundations of the Ontology of Emergent Complexity
0
476838
4674777
4673311
2026-10-06T19:34:06Z
DavidCota64
3507033
Refresh the cover thumbnail after replacing the cover image.
4674777
wikitext
text/x-wiki
[[File:Foundations of the Ontology of Emergent Complexity Cover.png|center|frameless|900px]]
== Contents ==
[[/Preface/|Preface]]
[[/Introduction/|Introduction]]
== [[/Philosophical Commitments/|1. Philosophical Commitments]] ==
* [[/Philosophical Commitments/Refusal of Metaphysical Dualism/|1.1 – Refusal of Metaphysical Dualism]]
* [[/Philosophical Commitments/Against the Invention of Two Worlds/|1.2 – Against the Invention of Two Worlds]]
* [[/Philosophical Commitments/Matter Thinks — But Not Like a Subject/|1.3 – Matter Thinks — But Not Like a Subject]]
* [[/Philosophical Commitments/The Symbol Is Not Transcendent/|1.4 – The Symbol Is Not Transcendent]]
* [[/Philosophical Commitments/No Ground, No Soul, No Plan/|1.5 – No Ground, No Soul, No Plan]]
* [[/Philosophical Commitments/Matter as the Only Substrate/|1.6 – Matter as the Only Substrate]]
* [[/Philosophical Commitments/Instability as a Condition, not a Problem/|1.7 – Instability as a Condition, Not a Problem]]
== 2. Method and Style ==
* [[/Method and Style/Thought as Singular Response/|2.1 – Thought as Singular Response]]
* [[/Method and Style/Listening as Ontological Exposure/|2.2 – Listening as Ontological Exposure]]
* [[/Method and Style/No Redemption, No Teleology/|2.3 – No Redemption, No Teleology]]
== 3. Core Concepts ==
=== 3.1 Complexity, Relation, Excess ===
* [[/Complexity, Relation, Excess/I - The Refusal of Linear Complexity|3.1.1 – The Refusal of Linear Complexity]]
* [[/Complexity, Relation, Excess/II - Relational Tension as Ontological Principle|3.1.2 – Relational Tension as Ontological Principle]]
* [[/Complexity, Relation, Excess/III - Stability Is Not Continuity|3.1.3 – Stability Is Not Continuity]]
=== 3.2 Emergence Without Origin ===
This sequence examines how emergence can be described without treating a later form as the fulfilment of an origin, a hidden plan, or a completed possibility already waiting to unfold.
* [[/Emergence Without Origin/I - The Regime of Precedence|3.2.1 – The Regime of Precedence]]
* [[/Emergence Without Origin/II - The Classical Substrate: Substance and Necessity|3.2.2 – The Classical Substrate: Substance and Necessity]]
* [[/Emergence Without Origin/III - Modernity’s Continuation: Foundation and Structure|3.2.3 – Modernity’s Continuation: Foundation and Structure]]
* [[/Emergence Without Origin/IV - Critical Displacement without Abandonment|3.2.4 – Critical Displacement without Abandonment]]
* [[/Emergence Without Origin/V - The Irruption Without Ground|3.2.5 – The Irruption Without Ground]]
* [[/Emergence Without Origin/VI - Language and Logic as Prison of Sequence|3.2.6 – Language and Logic as Prison of Sequence]]
* [[/Emergence Without Origin/VII - Affirmation: From Precedence to Insistence|3.2.7 – Affirmation: From Precedence to Insistence]]
=== 3.3 Order as Local Effect ===
* [[/Order as Local Effect/I - Against Order as Principle|3.3.1 – Against Order as Principle]]
* [[/Order as Local Effect/II - The Emergence of Order as an Ephemeral Torsion of the Unstable Field|3.3.2 – The Emergence of Order as an Ephemeral Torsion of the Unstable Field]]
* [[/Order as Local Effect/III - Order as an Effect of Functional Coupling|3.3.3 – Order as an Effect of Material Coupling]]
* [[/Order as Local Effect/IV - The Retrospective Illusion of Origin: Order as Post-Nomination|3.3.4 – The Retrospective Illusion of Origin: Order as Post-Nomination]]
* [[/Order as Local Effect/V - Order as a Symbolic Gesture Without an Author|3.3.5 – Order as a Symbolic Gesture Without an Author]]
* [[/Order as Local Effect/VI - Unthinkability of Absolute Order: The Real as a Field of Variation|3.3.6 – Unthinkability of Absolute Order: The Real as a Field of Variation]]
* [[/Order as Local Effect/VII - Ontological and Ethical Consequences|3.3.7 – Ontological and Ethical Consequences]]
== 4. Ethical and Political Implications ==
* [[/4.1 Vulnerability Without Center/|4.1 – Vulnerability Without a Centre]]
* [[/4.2 Ethics as Symbolic Reorganization/|4.2 – Ethics as Symbolic Reorganisation]]
* [[/4.3 Politics Beyond the Subject/|4.3 – Politics Beyond the Subject]]
== 5. Critical Dialogues with Tradition ==
* [[/5.1 Displacement of Classical Ontologies/|5.1 – Displacement of Classical Ontologies]]
* [[/5.2 Limits of Modern Rationalism/|5.2 – Limits of Modern Rationalism]]
* [[/5.3 Ambiguities of Post-Structuralism/|5.3 – Ambiguities of Post-Structuralism]]
== 6. Lexicon and Variations ==
* [[/6.1 – Key Terms of the OEC/|6.1 – Key Terms of the OEC]]
* [[/6.2 – Ontological Variations/|6.2 – Ontological Variations]]
* [[/6.3 – How to Read the Lexicon/|6.3 – How to Read the Lexicon]]
== Conclusion ==
* [[/Conclusion/|Conclusion — Results, Limits, and Open Questions]]
== 7. Bibliography and Influences ==
* [[/7.1 – Philosophical Interlocutors/|7.1 – Philosophical Interlocutors]]
* [[/7.2 – Conceptual Sources/|7.2 – Conceptual Sources]]
* [[/References/|7.3 – References]]
* [[/7.4 – Further Readings and Connections/|7.4 – Further Readings and Connections]]
== Supplementary material ==
* [[/Theoretical Appendix/|Theoretical Appendix]]
----
''Written by David Cota. Information about the author and the wider project: [https://travessia.online/ travessia.online].''
--------------------------------------------------------------
{{BookCat}}
__INDEX__
__NEWSECTIONLINK__
mktw08q21p224jg82ygxbqzchnunxzc
4674780
4674777
2026-10-06T19:53:20Z
DavidCota64
3507033
Use the new cover file with the author’s name and a cache-independent address.
4674780
wikitext
text/x-wiki
[[File:Foundations of the Ontology of Emergent Complexity Cover - David Cota.png|center|frameless|900px]]
== Contents ==
[[/Preface/|Preface]]
[[/Introduction/|Introduction]]
== [[/Philosophical Commitments/|1. Philosophical Commitments]] ==
* [[/Philosophical Commitments/Refusal of Metaphysical Dualism/|1.1 – Refusal of Metaphysical Dualism]]
* [[/Philosophical Commitments/Against the Invention of Two Worlds/|1.2 – Against the Invention of Two Worlds]]
* [[/Philosophical Commitments/Matter Thinks — But Not Like a Subject/|1.3 – Matter Thinks — But Not Like a Subject]]
* [[/Philosophical Commitments/The Symbol Is Not Transcendent/|1.4 – The Symbol Is Not Transcendent]]
* [[/Philosophical Commitments/No Ground, No Soul, No Plan/|1.5 – No Ground, No Soul, No Plan]]
* [[/Philosophical Commitments/Matter as the Only Substrate/|1.6 – Matter as the Only Substrate]]
* [[/Philosophical Commitments/Instability as a Condition, not a Problem/|1.7 – Instability as a Condition, Not a Problem]]
== 2. Method and Style ==
* [[/Method and Style/Thought as Singular Response/|2.1 – Thought as Singular Response]]
* [[/Method and Style/Listening as Ontological Exposure/|2.2 – Listening as Ontological Exposure]]
* [[/Method and Style/No Redemption, No Teleology/|2.3 – No Redemption, No Teleology]]
== 3. Core Concepts ==
=== 3.1 Complexity, Relation, Excess ===
* [[/Complexity, Relation, Excess/I - The Refusal of Linear Complexity|3.1.1 – The Refusal of Linear Complexity]]
* [[/Complexity, Relation, Excess/II - Relational Tension as Ontological Principle|3.1.2 – Relational Tension as Ontological Principle]]
* [[/Complexity, Relation, Excess/III - Stability Is Not Continuity|3.1.3 – Stability Is Not Continuity]]
=== 3.2 Emergence Without Origin ===
This sequence examines how emergence can be described without treating a later form as the fulfilment of an origin, a hidden plan, or a completed possibility already waiting to unfold.
* [[/Emergence Without Origin/I - The Regime of Precedence|3.2.1 – The Regime of Precedence]]
* [[/Emergence Without Origin/II - The Classical Substrate: Substance and Necessity|3.2.2 – The Classical Substrate: Substance and Necessity]]
* [[/Emergence Without Origin/III - Modernity’s Continuation: Foundation and Structure|3.2.3 – Modernity’s Continuation: Foundation and Structure]]
* [[/Emergence Without Origin/IV - Critical Displacement without Abandonment|3.2.4 – Critical Displacement without Abandonment]]
* [[/Emergence Without Origin/V - The Irruption Without Ground|3.2.5 – The Irruption Without Ground]]
* [[/Emergence Without Origin/VI - Language and Logic as Prison of Sequence|3.2.6 – Language and Logic as Prison of Sequence]]
* [[/Emergence Without Origin/VII - Affirmation: From Precedence to Insistence|3.2.7 – Affirmation: From Precedence to Insistence]]
=== 3.3 Order as Local Effect ===
* [[/Order as Local Effect/I - Against Order as Principle|3.3.1 – Against Order as Principle]]
* [[/Order as Local Effect/II - The Emergence of Order as an Ephemeral Torsion of the Unstable Field|3.3.2 – The Emergence of Order as an Ephemeral Torsion of the Unstable Field]]
* [[/Order as Local Effect/III - Order as an Effect of Functional Coupling|3.3.3 – Order as an Effect of Material Coupling]]
* [[/Order as Local Effect/IV - The Retrospective Illusion of Origin: Order as Post-Nomination|3.3.4 – The Retrospective Illusion of Origin: Order as Post-Nomination]]
* [[/Order as Local Effect/V - Order as a Symbolic Gesture Without an Author|3.3.5 – Order as a Symbolic Gesture Without an Author]]
* [[/Order as Local Effect/VI - Unthinkability of Absolute Order: The Real as a Field of Variation|3.3.6 – Unthinkability of Absolute Order: The Real as a Field of Variation]]
* [[/Order as Local Effect/VII - Ontological and Ethical Consequences|3.3.7 – Ontological and Ethical Consequences]]
== 4. Ethical and Political Implications ==
* [[/4.1 Vulnerability Without Center/|4.1 – Vulnerability Without a Centre]]
* [[/4.2 Ethics as Symbolic Reorganization/|4.2 – Ethics as Symbolic Reorganisation]]
* [[/4.3 Politics Beyond the Subject/|4.3 – Politics Beyond the Subject]]
== 5. Critical Dialogues with Tradition ==
* [[/5.1 Displacement of Classical Ontologies/|5.1 – Displacement of Classical Ontologies]]
* [[/5.2 Limits of Modern Rationalism/|5.2 – Limits of Modern Rationalism]]
* [[/5.3 Ambiguities of Post-Structuralism/|5.3 – Ambiguities of Post-Structuralism]]
== 6. Lexicon and Variations ==
* [[/6.1 – Key Terms of the OEC/|6.1 – Key Terms of the OEC]]
* [[/6.2 – Ontological Variations/|6.2 – Ontological Variations]]
* [[/6.3 – How to Read the Lexicon/|6.3 – How to Read the Lexicon]]
== Conclusion ==
* [[/Conclusion/|Conclusion — Results, Limits, and Open Questions]]
== 7. Bibliography and Influences ==
* [[/7.1 – Philosophical Interlocutors/|7.1 – Philosophical Interlocutors]]
* [[/7.2 – Conceptual Sources/|7.2 – Conceptual Sources]]
* [[/References/|7.3 – References]]
* [[/7.4 – Further Readings and Connections/|7.4 – Further Readings and Connections]]
== Supplementary material ==
* [[/Theoretical Appendix/|Theoretical Appendix]]
----
''Written by David Cota. Information about the author and the wider project: [https://travessia.online/ travessia.online].''
--------------------------------------------------------------
{{BookCat}}
__INDEX__
__NEWSECTIONLINK__
stjm0y4gt48zcv1d1sbbxecc2d0w1u6
Maxima/Programming
0
485506
4674725
4674648
2026-10-06T13:32:31Z
Idavidmiller
3577687
/* Memoizing Functions */ Work in progress. Saving Changes.
4674725
wikitext
text/x-wiki
=Maxima Programming=
Although Maxima is not a general-purpose programming language, Maxima as a CAS includes among the built-in ingredients a relatively complete set of programming expressions that are useful for the intended context. Many of the code examples of this section are intended to be illustrative of technical details relevant to Maxima programming as their purpose, and consequently are intentionally elementary in character.
Learning any sort of programming language, including Maxima programming expressions, is a subjective process. In any case, it is essential to have enough technical know-how specific to the programming language in order to begin the learning process, even in cases where much positive transfer from other programming experience is involved.
Much can be accomplished mathematically using Maxima without having to resort to in-depth knowledge and proficiency in the technical details of Maxima programming expressions. However, Maxima programming expressions are frequently essential for the purpose of defining functions, both in the programming sense of the term, but also more relevantly, for the mathematical sense. For that reason alone, familiarity and sufficient proficiency with Maxima programming expressions should be given some attention.
One way to begin the learning process is to become familiar with enough of the programming essentials to accomplish independent efforts toward accomplishing some specific programming goal of interest. The other way is to study the many available programming expressions of others. This section is intended to provide the essentials toward learning by whatever means are chosen.
The following table shows some built-in ingredients related to Maxima programming expressions:
{| class="wikitable"
|+Maxima Programming Category
|if
|unless
|errcatch
|prederror
|-
|block
|for
|error
|return
|-
|catch
|from
|warning
|throw
|-
|local
|thru
|errormsg
|sstatus
|-
|garbage_collect
|step
|errormsg
|status
|-
|do
|next
|go
|
|-
|while
|in
|
|
|}
Some of these programming expression ingredients can also be considered as belonging to one or more other categories than the Programming category.
=== Block Expressions ===
Arguably, the first expressions to consider in the context of Maxima programming are '''''block''''' expressions. All <code>block</code> expressions as programming ingredients come in two flavors:
* <code>( expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub> )</code>
* <code>block ([v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>], expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub>)</code>
The first form of a <code>block</code> expression is equivalent to the second form, but without the first list argument: <code>[v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>]</code>, as in <code>block (expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code>, unless <code>return</code> or <code>go</code> operators are used in the block expression. In that, case the form <code>block (expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub>)</code> must be used. It should be noted that for Maxima to interpret of the syntax of the first of these forms as a block operator, there must be at least two expressions in the comma-separated sequence of expressions as arguments. Otherwise, Maxima will interpret the parentheses of this syntax as simply grouping related to the precedence order of operations.
The purpose of the list argument, <code>[v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>]</code> is to declare the values of identifiers of the list to be local to the <code>block</code>. If there is no need for local identifiers, the list argument can be omitted (unless <code>return</code> or <code>go</code> operators are used in the <code>block</code> expression), and either form is sufficient.<syntaxhighlight lang="maxima">/* This block expression */
(%i1) (x : 2, x^2);
(%o1) 4
/* Is equivalent to this block expression */
(%i2) block (x : 2, x^2);
(%o2) 4</syntaxhighlight>So, in the case where values of identifiers local to the <code>block</code> of expressions are not required, then the choice of either form of the <code>block</code> expression is a matter of user preference. In both cases, the values of identifiers referenced in the <code>block</code> are global, and not local to the <code>block</code> expression. However, for the sake of clarity and consistency use of the latter form may be a better choice. <syntaxhighlight lang="maxima">
/* The value 3 assigned to x is global */
(%i3) x : 3;
(x) 3
/* The value 2 assigned to x in the block is global */
(%i4) (x : 2, x^2);
(%o4) 4
/* The global value assigned to x in the block is 2 not 3 */
(%i5) x;
(%o5) 2
</syntaxhighlight>Values of identifiers local to the <code>block</code> may not be global:<syntaxhighlight lang="maxima">/* the value of identifier y is local only */
(%i6) block ([y], y : 4, y);
(%o6) 4
/* the global value of identifier y is not 4, but is itself */
(%i7) y;
(%o7) y
/* the values of identifiers x and y are both local */
(%i8) block ([x,y], x : 3, y : 4, x);
(%o8) 3
/* the global value of identifier x is not 3, but is 2 */
(%i9) x;
(%o9) 2
/* the global value of identifier y is not 4, but is itself */
(%i10) y;
(%o10) y</syntaxhighlight>
Regardless of the form of the <code>block</code> expressions these have in common the comma-separated expression arguments <code>expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code> which are evaluated each in turn from first to last (unless the evaluation sequence is modified by by the <code>go</code>, <code>throw</code>, or <code>return</code> operators), and the value of the block expression is the value of <code>expr<sub>n</sub></code>.
The main purpose of the <code>block</code> expression, regardless of the form, is to group expressions that are related in some manner, and the value of the last expression may be the only value of interest. However, there are very few limitations imposed on the nature of the <code>block</code> expression arguments, so it might be the case that the purpose of evaluating the <code>block</code> expression has been achieved before the last expression argument is evaluated, in which case the value of the <code>block</code> expression may not necessarily be the value of the last argument expression.
One way to accomplish that is to use an empty string as the last argument expression with the option flag <code>stringdisp</code> set to <code>false</code> which is the default value.<syntaxhighlight lang="maxima">
(%i11) stringdisp;
(%o11) false
(%i12) block ([x,y], x : 3, y : 4, x, "");
(%o12)
(%i13) block ([x,y], x : 3, y : 4, x)$
</syntaxhighlight>
The display of the value of the <code>block</code> expression may be suppressed using a <code>$</code> to end the input expression instead of a semi-colon. Either technique produces a <code>block</code> expression value, but the value is not displayed. If a <code>return</code> operator is evaluated as a argument expression, this will cause evaluation of expression arguments to end explicitly, and the value of the <code>return</code> operator becomes the value of the <code>block</code> expression.<syntaxhighlight lang="maxima">
(%i14) is (equal (x, 2));
(%o14) true
%i15) block (if is (equal (x, 2)) then return (x), " x not 2");
(%o15) 2
(%i16) x : 3;
(x) 3
(%i17) block (if is (equal (x, 2)) then return (x), "x not 2");
(%o17) x not 2
</syntaxhighlight>When a <code>return</code> operator is evaluated within a <code>block</code> expression the result is to stop evaluation of expressions within the enclosing <code>block</code> expression and to return the value of its argument as the value of the enclosing <code>block</code> expression. It therefore can be compared with the <code>return</code> statement found in other programming languages, but with one difference: In Maxima, the <code>return</code> operator affects only the block expression in which the <code>return</code> operator is an expression, and has no effect otherwise.<syntaxhighlight lang="maxima">(%i18) test_nested_block (val) :=
block (
[outer_var : 10],
print("Entering outer block expression"),
/* inner block expression */
block(
[inner_var : 20],
print (" Entering inner block expression"),
if val > 5 then
/* another inner block expression */
block (
print (" val > 5"),
print (" Returning only to inner block expression"),
return (inner_var + val)
/* returns only to the inner block expression */
),
/* end of another inner block expression */
print (" inner_var + val is ", inner_var + val)
),
/* end of inner block expression */
print ("Back in outer block expression"),
outer_var + val
/* end of outer block expression */
)$
(%i19) test_nested_block (1);
Entering outer block expression
Entering inner block expression
inner_var + val is 21
Back in outer block expression
(%o19) 11
(%i20) test_nested_block (6);
Entering outer block expression
Entering inner block expression
val > 5
Returning only to inner block expression
Back in outer block expression
(%o20) 16</syntaxhighlight>
'''''The <code>block</code> operators''''': Each instance may define local variables and has a comma-separated sequence of expressions as arguments.
'''''Nested blocks''''': There are three <code>block</code> operators used in the right-hand side of the function definition expression named <code>test_nested_block (val</code>. There is an outer <code>block</code> expression that has an inner <code>block</code> expression as an argument,and there is a third <code>block</code> expression that is an argument of the inner <code>block</code> expression.
'''''The <code>return</code> operator''''': If <code>val > 5</code> is <code>true</code> then the return operator of the most inner <code>block</code> expression is evaluated and evaluation of remaining expressions of that block expression does not occur. The value of that most inner <code>block</code> expression is the value of the argument of the return operator – <code>inner_var + val</code>.
Evaluation of expressions continues with the first expression of the inner <code>block</code> expression after the end of the most inner <code>block</code> expression – which is <code>print (" inner_var + val is ", inner_var + val)</code>. The value of the <code>print</code> operator is the value of <code>inner_var + val</code>. However, while that value is the value of the inner <code>block</code> expression it is effectively lost, as it is not the last expression of the outer <code>block</code> sequence of expressions. That value is the value of <code>outer_var + val</code>, which, being the last expression of the outer <code>block</code> is always the value of the function.
==== Block Expression Evaluation Sequence Modifications ====
<code>block</code> expression arguments <code>expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code> are generally evaluated each in turn from first to last, and the value of the <code>block</code> expression is the value of <code>expr<sub>n</sub></code> unless this sequence is modified by some means.
One way to modify the first-to-last expression evaluation sequence of a <code>block</code> expression is by way of a <code>go</code> operator with a ''label'' (or ''"tag"'') argument ( the ''"go to"'') as the following exemplifies:<syntaxhighlight lang="maxima">
(%i18) sum_to_n (n) := block ( [i : 1, total : 0],
loop,
total : total + i,
i : i + 1,
if i <= n then go (loop),
total)$
(%i19) sum_to_n(25);
(%o19) 325
(%i20) n;
(%o20) n
(%i21) i;
(%o21) i
(%i22) total;
(%o22) total
</syntaxhighlight>
Note the following:
* <code>'''block ([ i : 1,total : 0], ...)'''</code>: The list argument creates a local environment with local identifiers <code>i</code> and <code>total</code>. The function argument <code>n</code> is also a local identifier.
* <code>'''loop'''</code>: This label serves as a target inside the <code>block</code> expression to where <code>go (loop)</code> can jump.
* <code>'''if i <= n then go (loop)'''</code>: This conditional expression causes the <code>go (loop)</code> operator to be evaluated if the condition is <code>true</code>.
* <code>'''total'''</code>: The value of this local identifier is the returned value of the <code>block</code> expression.
It should also be worth noting that the identifiers <code>n</code>, <code>i</code>, and <code>total</code> have local values assigned within the <code>block</code> expression, but their global values are themselves. Also notice that the identifiers <code>i</code> and <code>total</code> were both declared local and assigned initial values within the <code>block</code> list argument.
The ''go-to'' label argument of the <code>go</code> operator must be the name of a tag appearing within the same block expression. The <code>go</code> operator cannot be used to go to a tag in a different <code>block</code> expression. There is nothing special about the <code>loop</code> identifier name used for the go-to tag in this example. Other identifiers could be used, but they must be atomic.
Another way to modify a <code>block</code> expression evaluation sequence is by way of the <code>throw</code> operator.<syntaxhighlight lang="maxima">(%i32) /* Define a function using a block expression that searches
for a specific condition and a throw value to catch */
find_element (target_list, threshold) := block (
[found_val : false], /* local identifier value */
catch(
for x in target_list do
(
if x > threshold then
(
/* Immediately exit the block and
return this value */
throw (x)
)
),
/* This string is returned only if the do loop
finishes without a throw to catch */
"No element exceeded the threshold"
)
)$
(%i31) /* Test the block */
find_element ( [10, 20, 55, 80], 50 );
(%o31) 55</syntaxhighlight>This example unpacks as follows:
<code>'''catch (...)'''</code>: This expression creates a target scope that ''"catches"'' the value of any <code>throw</code> expression evaluated within that scope.
<code>'''throw (x)'''</code>: When Maxima encounters this operator, it immediately stops evaluation of the <code>do</code> loop expression '''''and the rest of the''''' <code>block</code> '''''expression.''''' It jumps directly out of the scope of the <code>catch</code> expression, returning the value of <code>x</code> as the value of the entire <code>catch</code> expression.
==== Nested Block Expressions ====
<code>block</code> operators may appear within other block expressions as arguments – '''''nested''''' <code>block</code> expressions. A local environment with local identifiers may be created for nested block expressions. Local values for identifiers, if declared by a first <code>block</code> operator list argument, are created each time a nested <code>block</code> is evaluated.
However, identifiers with global values that have not been declared as local within any <code>block</code> expressions, are global values for nested <code>block</code> expressions as well as enclosing <code>block</code> expressions. Likewise, local identifiers of any enclosing <code>block</code> expression have values that are global within any enclosed blocks, if not declared as local within the enclosed block. If the value of an identifier is not local in a <code>block</code> expression, its value is the value most recently assigned by an enclosing <code>block</code> expression, if any value has been assigned. Otherwise, it is the value of the identifier in the global environment. <syntaxhighlight lang="maxima">
(%i23) z : 2^(1/3);
(z) 2^(1/3)
(%i24) /* Outer block starts */
block
(
[x : 10, y : 20],
/* values of x and y declared local to outer block */
/* Inner block starts */
block
(
[y : 99, z : 100],
/* values of y and z declared local to inner block */
print ("Inside inner block:"),
print ("x =", x, "is the value of x from outer block"),
print ("y =", y, "is the local value of y of outer block"),
print("z =", z, "is the local value of z of inner block")
),
/* Inner block ends */
/* Outer block resumes */
print ("Back in outer block:"),
print ("x =", x, "is the value of x from outer block"),
print ("y =", y, "is the restored value of y of the outer block"),
print ("z =", z, "is the value of z global to both blocks")
/* Outer block ends */
)$
Inside inner block:
x = 10 is the value of x from outer block
y = 99 is the local value of y of outer block
z = 100 is the local value of z of inner block
Back in outer block:
x = 10 is the value of x from outer block
y = 20 is the restored value of y of the outer block
z = 2^(1/3) is the value of z global to both blocks
</syntaxhighlight>
==== Values, Properties, and the <code>local</code> Operator ====
The expression <code>local (v<sub>1</sub>, v<sub>2</sub>, ... , v<sub>m</sub>)</code> within a <code>block</code> expression saves the '''''properties''''' associated with the symbols <code>v<sub>1</sub>, v<sub>2</sub>, ... , v<sub>m</sub></code>, removes any properties before evaluating other expressions, and restores any saved properties on exit from the block.
Because Maxima is an application based on the Common Lisp programming language, it utilizes Lisp '''''symbol''''' structure. Lisp symbols are objects that carry their own "dictionary" of attributes. A Lisp symbol's internal property list (''plist'') is a built-in data structure attached directly to a symbol. Maxima uses this underlying Lisp symbol structure to associate '''''properties''''' with Maxima identifiers.
Properties of identifiers can be ''declared explicitly'' by users. <syntaxhighlight lang="maxima">
(%i23) declare (x, real);
(%o23) done
</syntaxhighlight>
However, some identifier property declarations are ''implemented implicitly'' as properties of a symbol, including <code>:=</code>, <code>array</code>, <code>dependencies</code>, <code>atvalue</code>, <code>matchdeclare</code>, <code>atomgrad</code>, <code>constant</code>, <code>nonscalar</code>, <code>assume</code>, and some others. Below is a description of how each of those specific declarations is implemented as a property under the hood:
====== Functions and Arrays ======
* '''<code>:=</code> (Function Definition):''' When you define a function using <code>f(x) := x^2</code>, the actual expression (<code>x^2</code>) and its argument list (<code>x</code>) are stored as a property of the symbol <code>f</code>.
* '''<code>array</code>:''' When you declare or use a subscripted array (like <code>a[i]</code>), the array type, dimensions, and memory pointer are attached as a property to the symbol <code>a</code>. This differentiates it from a standard scalar variable.
====== Calculus and Dependencies ======
* '''<code>dependencies</code>:''' If you declare <code>depends(y, x)</code>, Maxima attaches a dependency list property to <code>y</code> noting that it functionally depends on <code>x</code>. This tells the <code>diff</code> (differentiation) engine not to treat <code>y</code> as a constant relative to <code>x</code>.
* '''<code>atvalue</code>:''' When you define a specific value for an expression at a boundary point (e.g., <code>atvalue(y, x=0, 1)</code>), this boundary constraint is stored as an evaluation property on the symbol <code>y</code>.
* '''<code>atomgrad</code>:''' This assigns a specific gradient or derivative to an atomic identifier (e.g., telling Maxima what (df/dx) is explicitly). Maxima saves this rule as a gradient property on that symbol.
====== Pattern Matching and Rules ======
* '''<code>matchdeclare</code>:''' Used in Maxima's pattern-matching system (like <code>tellsimp</code>). When you type <code>matchdeclare(x, freeof(a))</code>, Maxima attaches a predicate property to <code>x</code>. When a pattern rule runs, Maxima looks at property list of <code>x</code> to see what conditions a matching expression must meet.
====== Mathematical and Evaluation Attributes ======
* '''<code>constant</code>:''' Declaring <code>declare(c, constant)</code> places a "constant" flag on property list of <code>c</code>. Core routines (like integration and differentiation) check this flag to know they can pull <code>c</code> out of integrals or differentiate it to zero.
* '''<code>nonscalar</code>:''' Tells Maxima to treat a symbol as a matrix or vector rather than a regular number. This property changes how operators like <code>.</code> (non-commutative multiplication) treat the symbol.
* '''<code>assume</code>:''' When an expression such as <code>assume(x > 0)</code> is used, Maxima's database system (<code>context</code>) assigns facts and properties (like <code>pos</code> or <code>nonnegative</code>) to the symbol <code>x</code>, allowing the simplifier to safely reduce expressions like <code>sqrt(x^2)</code> to <code>x</code>.
The effect of the <code>local</code> operator is to make such declarations effective only within a <code>block</code> expression. Otherwise, declarations within a <code>block</code> expression are considered to be global declarations.
So what does all of this mean to the typical Maxima user? It means that the list of identifiers that is the first argument of a <code>block</code> expression only declares the '''''values''''' of those identifiers as local to the <code>block</code> expression in which the list is an argument. Any properties of identifiers are not declared local by this means.
In order to declare '''''properties''''' of identifiers to be local to a <code>block</code> expression, the <code>local</code> operator must be used as an expression within the <code>block</code> expression. At the point where the local operator is evaluated as an argument of a <code>block</code> expression, the properties of the identifiers that are arguments to the <code>local</code> operator become local to the block. It is not an unfair criticism that perhaps the <code>local</code> operator should have been named something like <code>local_properties</code>. <syntaxhighlight lang="maxima">
(%i25) f (s) := cos (s);
(%o25) f(s):=cos(s)
(%i26) f (%pi/6);
(%o26) sqrt(3)/2
(%i27) block (local (f), f (s) := sin (s), f (%pi/6));
(%o27) 1/2
(%i28) f (s);
(%o28) cos(s)
</syntaxhighlight>In the above example, the '''''properties''''' of identifier <code>f</code> were declared to be local in the <code>block</code> expression using the <code>local</code> operator. However, global properties of the identifier <code>f</code> were not affected by the local function definition of <code>f</code> in the <code>block</code> expression. The global definition expression of <code>f</code> which is <code>cos (s)</code> and the argument <code>s</code> were not affected by the local definition of <code>f</code> because the properties of <code>f</code> were declared local to the <code>block</code> expression.
<code>block</code> expressions can be used for different purposes in the Maxima programming context. <code>block</code> expressions can be used in a stand-alone fashion or as part of an expression. However, <code>block</code> expressions are commonly used in expressions that define '''''functions''''', which is the topic that follows.
=== Functions ===
{| class="wikitable"
|+Function Definition Operators
and Identifiers
|<code>:=</code>
|<code>fundef</code>
|<code>buildq</code>
|-
|<code>::=</code>
|<code>lambda</code>
|<code>macros</code>
|-
|<code>define</code>
|<code>local</code>
|<code>slice</code>
|-
|<code>dispfun</code>
|<code>remfunction</code>
|
|-
|<code>functions</code>
|<code>setup_autoload</code>
|
|}
As a technical term '''''function''''' is aptly characterized as being overloaded. In the context of Maxima as a CAS, it has both a programming meaning and a mathematical meaning in terms of usage. In this book, the convention is to refer to what may otherwise be referred to as built-in Maxima functions as ''operators'' including those of built-in packages. By this convention, the term '''''function''''' in this book refers exclusively to expressions composed by the user by way of the <code>:=</code> or <code>define</code> operators.
As has been mentioned elsewhere in this book, what are conventionally termed ''operators'' that are built-in to Maxima, are at the level of underlying expression construction, Lisp procedures of one type or another. So it makes sense to simply refer to built-in Maxima functions and operators simply as operators one and all. This convention obviates the need for the repetitious use of qualifiers such as ''built-in Maxima'' and ''user-defined'' functions.
There are two operators used to define functions as follows:
# The <code>''''':='''''</code> operator
# The <code>'''define'''</code> operator
<var><code>f (x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>) ''':=''' expr</code>
<code>f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>] ''':=''' expr</code>
<code>f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>](y<sub>1</sub>, y<sub>2</sub>, ..., y<sub>m</sub>) ''':=''' expr</code></var>
<code>define (f</code> <code>(x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>), expr)</code>
<code>define (f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>], expr)</code>
<code>define (f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>](y<sub>1</sub>, y<sub>2,</sub> …, y<sub>m</sub>), expr)</code>
<code>define (funmake (f, [</code><code>x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>]), expr)</code>
<code>define (arraymake (f, [</code><code>x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>]), expr)</code>
<code>define (ev (</code><code>expr<sub>1</sub>, expr<sub>2</sub>))</code>
where <code>expr</code> is some Maxima expression that is commonly referred to as the ''function body''. As can be concluded from the above, each of these operators has different forms of syntax that can be used. In any case, the most significant differences between these two operators are in terms of the evaluation of the function body and the composition and identification of functions dynamically.
* '''Evaluation:'''
** The <code>:=</code> operator '''suppresses (quotes)''' the evaluation of the function body when this operator is first evaluated. It does not evaluate or simplify the function body until the function identifier itself is evaluated with arguments.
** The <code>define()</code> operator '''evaluates''' the function body when this operator is first evaluated. If the function body involves intermediate computations, substituted values, or extracted parts of expressions (like <code>rhs()</code> or derivative results), the <code>define()</code> operator includes the evaluated results of those directly into the function body.
* '''Dynamic Function Composition and Identifiers:'''
** Function identifiers cannot easily be composed dynamically on the left-hand side of the <code>:=</code> operator when used inside programmatic loop expressions or in scripts.
** The <code>define()</code> operator accepts expressions like <code>funmake</code> or evaluated symbols as its first argument, allowing the composition and identification of functions dynamically during evaluation.
So, there are in general two different operators that can be used to define and evaluate functions. The choice by the Maxima user between these two operators depends on the purpose and context.
==== Function Definition Using the <code>:=</code> Operator ====
For the purpose of understanding the two ways of defining functions, consider the following example which is elementary, but in terms of clarification is not merely simple:<syntaxhighlight lang="maxima">/* "kill" all previously used identifier and values */
(%i29) kill (all);
(%o0) done
/* assign identifier x the global value of 5 */
(%i1) x : 5;
(x) 5
/* define f as a function with local argument x */
(%i2) f (x) := x;
(%o2) f(x):=x
/* evaluate f at local value of x is 3 */
(%i3) f (3);
(%o3) 3
/* the global value of x is not affected */
(%i4) x;
(%o4) 5
/* show the definition expression of the function named f */
(%i5) fundef (f);
(%o5) f(x):=x</syntaxhighlight>'''Function Definition Using the''' '''<code>define</code> Operator'''<syntaxhighlight lang="maxima">
/* define a function with identifier g with a
local argument y and with a function body
of identifier x */
(%i3) define (g('x), x);
(%o3) g(x):=5
/* identifier x of the function body is evaluated */
/* identifier x as an argument of g is local in scope */
(%i4) fundef (g);
(%o4) g(x):=5
/* the same identifier x used in three different roles */
/* used as the global name of a function x */
/* used as a local argument of a function */
/* used as an unevaluated expression for a function body */
(%i7) x(x) := x;
(%o7) x(x):=x
(%i9) x(3);
(%o9) 3
(%i10) x;
(%o10) 5
(%i8) fundef (x);
(%o8) x(x):=x
(%i11) define (x('x), x);
(%o11) x(x):=5
(%i12) fundef (x);
(%o12) x(x):=5
</syntaxhighlight>The purpose of this example is not to encourage this sort of syntax as a typical choice for identifiers and function definitions. The purpose is to clarify how Maxima implicitly determines the scope and meaning of identifiers used for function definition in the absence of any explicit user stipulations.
It should be noted that the <code>define</code> operator not only evaluates the expression that is the function body, it also evaluates the arguments of the function identifier that is the first argument of the <code>define</code> operator. Since there is a global value of the identifier <code>x</code> of <code>5</code>, it was necessary to suppress evaluation (quote) the argument in the expression <code>(%i12) define ('x), x);</code> as otherwise an error would be the result:<syntaxhighlight lang="maxima">
/* define a new function named x */
(%i14) define (x('x), 'x^2);
(%o14) x(x):=x^2
/* check the definition of the new function named x */
(%i15) fundef (x);
(%o15) x(x):=x^2
/* the identifier x has a global value */
(%i16) values;
(%o16) [x]
/* the global value of identifier x is 5 */
(%i17) x;
(%o17) 5
/* the suppressed global value 'x of identifier x is x */
(%i18) 'x;
(%o18) x
/* not quoting the global value of identifier x is an error */
(%i19) define (x(x), 'x^2);
define: in definition of x, parameter must be a symbol and must not be a system constant; found: 5
-- an error. To debug this try: debugmode(true);
</syntaxhighlight>
==== Understanding the Differences Between the <code>:=</code> and <code>define</code> Operators ====
In cases such as these, the suppression of evaluation by quoting is a user stipulation as to evaluation. Users must be aware of these differences between the two operators (<code>:=</code> and <code>define</code>) for the purpose of function definition in order to achieve what is intended and to avoid errors,<syntaxhighlight lang="maxima">
(%i20) f (x) := 3*x^3 + 4*x - 5;
(%o20) f(x):=3*x^3+4*x-5
(%i21) fundef (f);
(%o21) f(x):=3*x^3+4*x-5
(%i22) f(2);
(%o22) 27
(%i23) define (f (x) , 3*x^3 + 4*x - 5);
define: in definition of f, parameter must be a symbol and must not be a system constant; found: 5
-- an error. To debug this try: debugmode(true);
(%i24) define (f ('x) , 3*x^3 + 4*x - 5);
(%o24) f(x):=390
(%i25) define (f ('x) , '(3*x^3 + 4*x - 5));
(%o25) f(x):=3*x^3+4*x-5
(%i26) fundef (f);
(%o26) f(x):=3*x^3+4*x-5
(%i27) f(2);
(%o27) 27
</syntaxhighlight>What is true in the case of these elementary examples is true in general for function definitions involving multiple arguments:<syntaxhighlight lang="maxima">
/* x has a global value of 5 while y is local to g */
(%i28) g (x, y) := x^3 - y^2;
(%o28) g(x,y):=x^3-y^2
(%i29) g (6,2);
(%o29) 212
(%i30) define (g('x, y), 'x^3 - y^2);
(%o30) g(x,y):=x^3-y^2
(%i31) values;
(%o31) [x]
(%i32) g (6,2);
(%o32) 212
</syntaxhighlight>The <code>define</code> operator is a good choice in cases where an existing expression is used as the function body:<syntaxhighlight lang="maxima">
(%i33) /* assign an expression to identifier expr */
expr : diff('x^3, 'x); /* Returns 3*x^2 */
(expr) 3*x^2
(%i34) /* evaluate expr and define h (x) := 3*x^2 */
define (h ('x), expr);
(%o34) h(x):=3*x^2
</syntaxhighlight>In cases in which functions require local variables or more than one expression for the function body, use the block operator:<syntaxhighlight lang="maxima">
(%i35) remvalue (x);
(%o35) [x]
(%i36) values;
(%o36) [expr]
--> power_sum (x, y) := block (
/* values of these identifiers are explicitly local to the function */
[sqx, sqy],
/* unevaluated identifiers x and y are local arguments of the function
and values of these identifiers are implicitly local to the function */
sqx : x^2,
sqy : y^2,
sqx + sqy /* the value of the function */
)$
(%i37) fundef (power_sum);
(%o37) power_sum(x,y):=block([sqx,sqy],sqx:x^2,sqy:y^2,sqx+sqy)
(%i38) power_sum (3,4);
(%o38) 25
</syntaxhighlight>The <code>define</code> operator could also be used to define this function, but with different definition values as a consequence:<syntaxhighlight lang="maxima">(%i39) define (power_sum (x,y),
block (
[sqx,sqy],
sqx : x^2,
sqy : y^2,
sqx + sqy
)
)$
(%i40) fundef (power_sum);
(%o40) power_sum(x,y):=y^2+x^2
(%i41) power_sum (3,4);
(%o41) 25</syntaxhighlight>The function definition of <code>power_sum</code> is different using the <code>define</code> operator instead of the <code>:=</code> operator. The value of the function when referenced with arguments (<code>power_sum (3,4)</code>) is the same in both cases – <code>25</code>. However, in general for defining functions, this may not be the case. The choice between these two operators depends on the intentions of the user.
==== Practical Considerations Related to Function Composition ====
In general, programming is a technical skill as well as a subjective art. So, absolute rules are not offered here. For practical purposes some "guidelines" are offered here that may be useful for Maxima function composition as well as Maxima programming in general:
*
*
*
*
*
Consider the following linear algebraic equation:
<math display="block">3y - 7x = 10</math>
As an example suppose the value that is sought is the slope <code>m</code> of this equation, and in general, the slope of any linear equation regardless of the form. <syntaxhighlight lang="maxima">/* assign the linear equation to an identifier */
(%i42) lineqn : 3*y - 7*x = 10;
(lineqn) 3*y-7*x=10
/* solve the linear equation for y */
(%i43) solve([lineqn], [y])
(%o43) [y=(7*x+10)/3]
/* use the index [1] of the list to get the solved equation */
(%i44) solve([lineqn], [y])[1]
(%o44) y=(7*x+10)/3
/* use the rhs operator to get right-hand side */
(%i45) rhs(solve([lineqn], [y])[1]);
(%o45) (7*x+10)/3
/* use the expand operator change the RHS */
(%i46) expand(rhs(solve([lineqn], [y])[1]));
(%o46) (7*x)/3+10/3
/* use the coeff operator to get the coefficient of x */
(%i47) coeff(expand(rhs(solve([lineqn], [y])[1])),x,1);
(%o47) 7/3
/* define the function with an argument eqn for lineqn */
(%i48) m (eqn) := coeff (expand (rhs (solve ([eqn], [y])[1])),x,1)$
/* check the function definition */
(%i49) fundef (m);
(%o49) m(eqn):=coeff(expand(rhs((solve([eqn],[y]))[1])),x,1)
/* reference the function using lineqn as an argument */
(%i50) m (lineqn);
(%o50) 7/3
/* assign a different linear equation to lineqn */
(%i51) lineqn : x = 6*y + 13;
(lineqn) x=6*y+13
/* reference the function using lineqn as an argument */
%i52) m (lineqn);
(%o52) 1/6</syntaxhighlight>The function body of this example will result in an error if it is used with the <code>define</code> operator:<syntaxhighlight lang="maxima">
(%i53) define (
m (eqn),
coeff (expand (rhs (solve ([eqn], [y])[1])),x,1)
)$
inpart: invalid index 1 of list or matrix.
-- an error. To debug this try: debugmode(true);
</syntaxhighlight>This error is a consequence of the evaluation that occurs when using the <code>define</code> operator. In this case, this evaluation results in a reference to the indexed value of a list object that does not exist when evaluation occurs during definition – <code>solve ([eqn], [y])[1]</code>.
==== Memoizing Functions ====
The functions discussed so far are often referred to as '''''ordinary functions'''''. The arguments of ordinary functions are enclosed using parentheses – <var><code>(x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>)</code>.</var> Function definition forms which include arguments enclosed by brackets (as in <var><code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>]</code></var>) are called '''''memoizing functions'''''.
Memoizing functions can be categorized both as functions and as data structures – specifically a ''hashed array'' of values. Memoizing functions are also referred to as '''''array functions'''''. In any case, memoizing functions can be defined using either the <code>:=</code> operator or the <code>define</code> operator.
If the form of the function definition expression is <code>f [x<sub>1</sub>, x<sub>2</sub>,..., x<sub>n</sub>] := expr</code> The function body <code>expr</code> is evaluated once for each individual value of the arguments, and that value is the value of the function, without again evaluating the function body, whenever referenced using arguments that have those same values.
In keeping with previous practice, the examples provided are intentionally elementary for the purpose of demonstrating and clarifying the technical aspects involved. There is thereby no intention to convey that the composition of function definition expressions with multiple arguments and complex expressions for the function body is of lesser practical value.
==== Lambda Expressions ====
==== Special Forms of the <code>define</code> Operator ====
==== Some Techniques for Function Composition ====
=== Conditional Expressions – Special Operator <code>if</code> ===
=== Expressions for Iteration – Special Operator <code>do</code> ===
The special operator <code>do</code> is used to compose expressions for iteration. It is typically used with the following other special operators:
* <code>while</code>
* <code>unless</code>
* <code>for</code>
* <code>from</code>
* <code>thru</code>
* <code>step</code>
* <code>next</code>
* <code>in</code>
The general forms of <code>do</code> expressions Maxima supports are:
<code>for</code> variable: initial_value <code>step</code> increment <code>thru</code> limit <code>do</code> body
<code>for</code> variable: initial_value <code>step</code> increment <code>while</code> condition <code>do</code> body
<code>for</code> variable: initial_value <code>step</code> increment <code>unless</code> condition <code>do</code> body
<code>for</code> variable <code>in</code> list <code>do</code> body
<code>for</code> variable <code>in</code> expr <code>do</code> body
<code>for</code> variable <code>in</code> hash_table <code>do</code> body
=== Lisp and Maxima ===
{{BookCat}}
3jq3ulb83kzin2sz0zm3m1lmd6oq1iy
4674732
4674725
2026-10-06T14:24:37Z
Idavidmiller
3577687
/* Memoizing Functions */ Work in progress. Saving Changes.
4674732
wikitext
text/x-wiki
=Maxima Programming=
Although Maxima is not a general-purpose programming language, Maxima as a CAS includes among the built-in ingredients a relatively complete set of programming expressions that are useful for the intended context. Many of the code examples of this section are intended to be illustrative of technical details relevant to Maxima programming as their purpose, and consequently are intentionally elementary in character.
Learning any sort of programming language, including Maxima programming expressions, is a subjective process. In any case, it is essential to have enough technical know-how specific to the programming language in order to begin the learning process, even in cases where much positive transfer from other programming experience is involved.
Much can be accomplished mathematically using Maxima without having to resort to in-depth knowledge and proficiency in the technical details of Maxima programming expressions. However, Maxima programming expressions are frequently essential for the purpose of defining functions, both in the programming sense of the term, but also more relevantly, for the mathematical sense. For that reason alone, familiarity and sufficient proficiency with Maxima programming expressions should be given some attention.
One way to begin the learning process is to become familiar with enough of the programming essentials to accomplish independent efforts toward accomplishing some specific programming goal of interest. The other way is to study the many available programming expressions of others. This section is intended to provide the essentials toward learning by whatever means are chosen.
The following table shows some built-in ingredients related to Maxima programming expressions:
{| class="wikitable"
|+Maxima Programming Category
|if
|unless
|errcatch
|prederror
|-
|block
|for
|error
|return
|-
|catch
|from
|warning
|throw
|-
|local
|thru
|errormsg
|sstatus
|-
|garbage_collect
|step
|errormsg
|status
|-
|do
|next
|go
|
|-
|while
|in
|
|
|}
Some of these programming expression ingredients can also be considered as belonging to one or more other categories than the Programming category.
=== Block Expressions ===
Arguably, the first expressions to consider in the context of Maxima programming are '''''block''''' expressions. All <code>block</code> expressions as programming ingredients come in two flavors:
* <code>( expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub> )</code>
* <code>block ([v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>], expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub>)</code>
The first form of a <code>block</code> expression is equivalent to the second form, but without the first list argument: <code>[v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>]</code>, as in <code>block (expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code>, unless <code>return</code> or <code>go</code> operators are used in the block expression. In that, case the form <code>block (expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub>)</code> must be used. It should be noted that for Maxima to interpret of the syntax of the first of these forms as a block operator, there must be at least two expressions in the comma-separated sequence of expressions as arguments. Otherwise, Maxima will interpret the parentheses of this syntax as simply grouping related to the precedence order of operations.
The purpose of the list argument, <code>[v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>]</code> is to declare the values of identifiers of the list to be local to the <code>block</code>. If there is no need for local identifiers, the list argument can be omitted (unless <code>return</code> or <code>go</code> operators are used in the <code>block</code> expression), and either form is sufficient.<syntaxhighlight lang="maxima">/* This block expression */
(%i1) (x : 2, x^2);
(%o1) 4
/* Is equivalent to this block expression */
(%i2) block (x : 2, x^2);
(%o2) 4</syntaxhighlight>So, in the case where values of identifiers local to the <code>block</code> of expressions are not required, then the choice of either form of the <code>block</code> expression is a matter of user preference. In both cases, the values of identifiers referenced in the <code>block</code> are global, and not local to the <code>block</code> expression. However, for the sake of clarity and consistency use of the latter form may be a better choice. <syntaxhighlight lang="maxima">
/* The value 3 assigned to x is global */
(%i3) x : 3;
(x) 3
/* The value 2 assigned to x in the block is global */
(%i4) (x : 2, x^2);
(%o4) 4
/* The global value assigned to x in the block is 2 not 3 */
(%i5) x;
(%o5) 2
</syntaxhighlight>Values of identifiers local to the <code>block</code> may not be global:<syntaxhighlight lang="maxima">/* the value of identifier y is local only */
(%i6) block ([y], y : 4, y);
(%o6) 4
/* the global value of identifier y is not 4, but is itself */
(%i7) y;
(%o7) y
/* the values of identifiers x and y are both local */
(%i8) block ([x,y], x : 3, y : 4, x);
(%o8) 3
/* the global value of identifier x is not 3, but is 2 */
(%i9) x;
(%o9) 2
/* the global value of identifier y is not 4, but is itself */
(%i10) y;
(%o10) y</syntaxhighlight>
Regardless of the form of the <code>block</code> expressions these have in common the comma-separated expression arguments <code>expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code> which are evaluated each in turn from first to last (unless the evaluation sequence is modified by by the <code>go</code>, <code>throw</code>, or <code>return</code> operators), and the value of the block expression is the value of <code>expr<sub>n</sub></code>.
The main purpose of the <code>block</code> expression, regardless of the form, is to group expressions that are related in some manner, and the value of the last expression may be the only value of interest. However, there are very few limitations imposed on the nature of the <code>block</code> expression arguments, so it might be the case that the purpose of evaluating the <code>block</code> expression has been achieved before the last expression argument is evaluated, in which case the value of the <code>block</code> expression may not necessarily be the value of the last argument expression.
One way to accomplish that is to use an empty string as the last argument expression with the option flag <code>stringdisp</code> set to <code>false</code> which is the default value.<syntaxhighlight lang="maxima">
(%i11) stringdisp;
(%o11) false
(%i12) block ([x,y], x : 3, y : 4, x, "");
(%o12)
(%i13) block ([x,y], x : 3, y : 4, x)$
</syntaxhighlight>
The display of the value of the <code>block</code> expression may be suppressed using a <code>$</code> to end the input expression instead of a semi-colon. Either technique produces a <code>block</code> expression value, but the value is not displayed. If a <code>return</code> operator is evaluated as a argument expression, this will cause evaluation of expression arguments to end explicitly, and the value of the <code>return</code> operator becomes the value of the <code>block</code> expression.<syntaxhighlight lang="maxima">
(%i14) is (equal (x, 2));
(%o14) true
%i15) block (if is (equal (x, 2)) then return (x), " x not 2");
(%o15) 2
(%i16) x : 3;
(x) 3
(%i17) block (if is (equal (x, 2)) then return (x), "x not 2");
(%o17) x not 2
</syntaxhighlight>When a <code>return</code> operator is evaluated within a <code>block</code> expression the result is to stop evaluation of expressions within the enclosing <code>block</code> expression and to return the value of its argument as the value of the enclosing <code>block</code> expression. It therefore can be compared with the <code>return</code> statement found in other programming languages, but with one difference: In Maxima, the <code>return</code> operator affects only the block expression in which the <code>return</code> operator is an expression, and has no effect otherwise.<syntaxhighlight lang="maxima">(%i18) test_nested_block (val) :=
block (
[outer_var : 10],
print("Entering outer block expression"),
/* inner block expression */
block(
[inner_var : 20],
print (" Entering inner block expression"),
if val > 5 then
/* another inner block expression */
block (
print (" val > 5"),
print (" Returning only to inner block expression"),
return (inner_var + val)
/* returns only to the inner block expression */
),
/* end of another inner block expression */
print (" inner_var + val is ", inner_var + val)
),
/* end of inner block expression */
print ("Back in outer block expression"),
outer_var + val
/* end of outer block expression */
)$
(%i19) test_nested_block (1);
Entering outer block expression
Entering inner block expression
inner_var + val is 21
Back in outer block expression
(%o19) 11
(%i20) test_nested_block (6);
Entering outer block expression
Entering inner block expression
val > 5
Returning only to inner block expression
Back in outer block expression
(%o20) 16</syntaxhighlight>
'''''The <code>block</code> operators''''': Each instance may define local variables and has a comma-separated sequence of expressions as arguments.
'''''Nested blocks''''': There are three <code>block</code> operators used in the right-hand side of the function definition expression named <code>test_nested_block (val</code>. There is an outer <code>block</code> expression that has an inner <code>block</code> expression as an argument,and there is a third <code>block</code> expression that is an argument of the inner <code>block</code> expression.
'''''The <code>return</code> operator''''': If <code>val > 5</code> is <code>true</code> then the return operator of the most inner <code>block</code> expression is evaluated and evaluation of remaining expressions of that block expression does not occur. The value of that most inner <code>block</code> expression is the value of the argument of the return operator – <code>inner_var + val</code>.
Evaluation of expressions continues with the first expression of the inner <code>block</code> expression after the end of the most inner <code>block</code> expression – which is <code>print (" inner_var + val is ", inner_var + val)</code>. The value of the <code>print</code> operator is the value of <code>inner_var + val</code>. However, while that value is the value of the inner <code>block</code> expression it is effectively lost, as it is not the last expression of the outer <code>block</code> sequence of expressions. That value is the value of <code>outer_var + val</code>, which, being the last expression of the outer <code>block</code> is always the value of the function.
==== Block Expression Evaluation Sequence Modifications ====
<code>block</code> expression arguments <code>expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code> are generally evaluated each in turn from first to last, and the value of the <code>block</code> expression is the value of <code>expr<sub>n</sub></code> unless this sequence is modified by some means.
One way to modify the first-to-last expression evaluation sequence of a <code>block</code> expression is by way of a <code>go</code> operator with a ''label'' (or ''"tag"'') argument ( the ''"go to"'') as the following exemplifies:<syntaxhighlight lang="maxima">
(%i18) sum_to_n (n) := block ( [i : 1, total : 0],
loop,
total : total + i,
i : i + 1,
if i <= n then go (loop),
total)$
(%i19) sum_to_n(25);
(%o19) 325
(%i20) n;
(%o20) n
(%i21) i;
(%o21) i
(%i22) total;
(%o22) total
</syntaxhighlight>
Note the following:
* <code>'''block ([ i : 1,total : 0], ...)'''</code>: The list argument creates a local environment with local identifiers <code>i</code> and <code>total</code>. The function argument <code>n</code> is also a local identifier.
* <code>'''loop'''</code>: This label serves as a target inside the <code>block</code> expression to where <code>go (loop)</code> can jump.
* <code>'''if i <= n then go (loop)'''</code>: This conditional expression causes the <code>go (loop)</code> operator to be evaluated if the condition is <code>true</code>.
* <code>'''total'''</code>: The value of this local identifier is the returned value of the <code>block</code> expression.
It should also be worth noting that the identifiers <code>n</code>, <code>i</code>, and <code>total</code> have local values assigned within the <code>block</code> expression, but their global values are themselves. Also notice that the identifiers <code>i</code> and <code>total</code> were both declared local and assigned initial values within the <code>block</code> list argument.
The ''go-to'' label argument of the <code>go</code> operator must be the name of a tag appearing within the same block expression. The <code>go</code> operator cannot be used to go to a tag in a different <code>block</code> expression. There is nothing special about the <code>loop</code> identifier name used for the go-to tag in this example. Other identifiers could be used, but they must be atomic.
Another way to modify a <code>block</code> expression evaluation sequence is by way of the <code>throw</code> operator.<syntaxhighlight lang="maxima">(%i32) /* Define a function using a block expression that searches
for a specific condition and a throw value to catch */
find_element (target_list, threshold) := block (
[found_val : false], /* local identifier value */
catch(
for x in target_list do
(
if x > threshold then
(
/* Immediately exit the block and
return this value */
throw (x)
)
),
/* This string is returned only if the do loop
finishes without a throw to catch */
"No element exceeded the threshold"
)
)$
(%i31) /* Test the block */
find_element ( [10, 20, 55, 80], 50 );
(%o31) 55</syntaxhighlight>This example unpacks as follows:
<code>'''catch (...)'''</code>: This expression creates a target scope that ''"catches"'' the value of any <code>throw</code> expression evaluated within that scope.
<code>'''throw (x)'''</code>: When Maxima encounters this operator, it immediately stops evaluation of the <code>do</code> loop expression '''''and the rest of the''''' <code>block</code> '''''expression.''''' It jumps directly out of the scope of the <code>catch</code> expression, returning the value of <code>x</code> as the value of the entire <code>catch</code> expression.
==== Nested Block Expressions ====
<code>block</code> operators may appear within other block expressions as arguments – '''''nested''''' <code>block</code> expressions. A local environment with local identifiers may be created for nested block expressions. Local values for identifiers, if declared by a first <code>block</code> operator list argument, are created each time a nested <code>block</code> is evaluated.
However, identifiers with global values that have not been declared as local within any <code>block</code> expressions, are global values for nested <code>block</code> expressions as well as enclosing <code>block</code> expressions. Likewise, local identifiers of any enclosing <code>block</code> expression have values that are global within any enclosed blocks, if not declared as local within the enclosed block. If the value of an identifier is not local in a <code>block</code> expression, its value is the value most recently assigned by an enclosing <code>block</code> expression, if any value has been assigned. Otherwise, it is the value of the identifier in the global environment. <syntaxhighlight lang="maxima">
(%i23) z : 2^(1/3);
(z) 2^(1/3)
(%i24) /* Outer block starts */
block
(
[x : 10, y : 20],
/* values of x and y declared local to outer block */
/* Inner block starts */
block
(
[y : 99, z : 100],
/* values of y and z declared local to inner block */
print ("Inside inner block:"),
print ("x =", x, "is the value of x from outer block"),
print ("y =", y, "is the local value of y of outer block"),
print("z =", z, "is the local value of z of inner block")
),
/* Inner block ends */
/* Outer block resumes */
print ("Back in outer block:"),
print ("x =", x, "is the value of x from outer block"),
print ("y =", y, "is the restored value of y of the outer block"),
print ("z =", z, "is the value of z global to both blocks")
/* Outer block ends */
)$
Inside inner block:
x = 10 is the value of x from outer block
y = 99 is the local value of y of outer block
z = 100 is the local value of z of inner block
Back in outer block:
x = 10 is the value of x from outer block
y = 20 is the restored value of y of the outer block
z = 2^(1/3) is the value of z global to both blocks
</syntaxhighlight>
==== Values, Properties, and the <code>local</code> Operator ====
The expression <code>local (v<sub>1</sub>, v<sub>2</sub>, ... , v<sub>m</sub>)</code> within a <code>block</code> expression saves the '''''properties''''' associated with the symbols <code>v<sub>1</sub>, v<sub>2</sub>, ... , v<sub>m</sub></code>, removes any properties before evaluating other expressions, and restores any saved properties on exit from the block.
Because Maxima is an application based on the Common Lisp programming language, it utilizes Lisp '''''symbol''''' structure. Lisp symbols are objects that carry their own "dictionary" of attributes. A Lisp symbol's internal property list (''plist'') is a built-in data structure attached directly to a symbol. Maxima uses this underlying Lisp symbol structure to associate '''''properties''''' with Maxima identifiers.
Properties of identifiers can be ''declared explicitly'' by users. <syntaxhighlight lang="maxima">
(%i23) declare (x, real);
(%o23) done
</syntaxhighlight>
However, some identifier property declarations are ''implemented implicitly'' as properties of a symbol, including <code>:=</code>, <code>array</code>, <code>dependencies</code>, <code>atvalue</code>, <code>matchdeclare</code>, <code>atomgrad</code>, <code>constant</code>, <code>nonscalar</code>, <code>assume</code>, and some others. Below is a description of how each of those specific declarations is implemented as a property under the hood:
====== Functions and Arrays ======
* '''<code>:=</code> (Function Definition):''' When you define a function using <code>f(x) := x^2</code>, the actual expression (<code>x^2</code>) and its argument list (<code>x</code>) are stored as a property of the symbol <code>f</code>.
* '''<code>array</code>:''' When you declare or use a subscripted array (like <code>a[i]</code>), the array type, dimensions, and memory pointer are attached as a property to the symbol <code>a</code>. This differentiates it from a standard scalar variable.
====== Calculus and Dependencies ======
* '''<code>dependencies</code>:''' If you declare <code>depends(y, x)</code>, Maxima attaches a dependency list property to <code>y</code> noting that it functionally depends on <code>x</code>. This tells the <code>diff</code> (differentiation) engine not to treat <code>y</code> as a constant relative to <code>x</code>.
* '''<code>atvalue</code>:''' When you define a specific value for an expression at a boundary point (e.g., <code>atvalue(y, x=0, 1)</code>), this boundary constraint is stored as an evaluation property on the symbol <code>y</code>.
* '''<code>atomgrad</code>:''' This assigns a specific gradient or derivative to an atomic identifier (e.g., telling Maxima what (df/dx) is explicitly). Maxima saves this rule as a gradient property on that symbol.
====== Pattern Matching and Rules ======
* '''<code>matchdeclare</code>:''' Used in Maxima's pattern-matching system (like <code>tellsimp</code>). When you type <code>matchdeclare(x, freeof(a))</code>, Maxima attaches a predicate property to <code>x</code>. When a pattern rule runs, Maxima looks at property list of <code>x</code> to see what conditions a matching expression must meet.
====== Mathematical and Evaluation Attributes ======
* '''<code>constant</code>:''' Declaring <code>declare(c, constant)</code> places a "constant" flag on property list of <code>c</code>. Core routines (like integration and differentiation) check this flag to know they can pull <code>c</code> out of integrals or differentiate it to zero.
* '''<code>nonscalar</code>:''' Tells Maxima to treat a symbol as a matrix or vector rather than a regular number. This property changes how operators like <code>.</code> (non-commutative multiplication) treat the symbol.
* '''<code>assume</code>:''' When an expression such as <code>assume(x > 0)</code> is used, Maxima's database system (<code>context</code>) assigns facts and properties (like <code>pos</code> or <code>nonnegative</code>) to the symbol <code>x</code>, allowing the simplifier to safely reduce expressions like <code>sqrt(x^2)</code> to <code>x</code>.
The effect of the <code>local</code> operator is to make such declarations effective only within a <code>block</code> expression. Otherwise, declarations within a <code>block</code> expression are considered to be global declarations.
So what does all of this mean to the typical Maxima user? It means that the list of identifiers that is the first argument of a <code>block</code> expression only declares the '''''values''''' of those identifiers as local to the <code>block</code> expression in which the list is an argument. Any properties of identifiers are not declared local by this means.
In order to declare '''''properties''''' of identifiers to be local to a <code>block</code> expression, the <code>local</code> operator must be used as an expression within the <code>block</code> expression. At the point where the local operator is evaluated as an argument of a <code>block</code> expression, the properties of the identifiers that are arguments to the <code>local</code> operator become local to the block. It is not an unfair criticism that perhaps the <code>local</code> operator should have been named something like <code>local_properties</code>. <syntaxhighlight lang="maxima">
(%i25) f (s) := cos (s);
(%o25) f(s):=cos(s)
(%i26) f (%pi/6);
(%o26) sqrt(3)/2
(%i27) block (local (f), f (s) := sin (s), f (%pi/6));
(%o27) 1/2
(%i28) f (s);
(%o28) cos(s)
</syntaxhighlight>In the above example, the '''''properties''''' of identifier <code>f</code> were declared to be local in the <code>block</code> expression using the <code>local</code> operator. However, global properties of the identifier <code>f</code> were not affected by the local function definition of <code>f</code> in the <code>block</code> expression. The global definition expression of <code>f</code> which is <code>cos (s)</code> and the argument <code>s</code> were not affected by the local definition of <code>f</code> because the properties of <code>f</code> were declared local to the <code>block</code> expression.
<code>block</code> expressions can be used for different purposes in the Maxima programming context. <code>block</code> expressions can be used in a stand-alone fashion or as part of an expression. However, <code>block</code> expressions are commonly used in expressions that define '''''functions''''', which is the topic that follows.
=== Functions ===
{| class="wikitable"
|+Function Definition Operators
and Identifiers
|<code>:=</code>
|<code>fundef</code>
|<code>buildq</code>
|-
|<code>::=</code>
|<code>lambda</code>
|<code>macros</code>
|-
|<code>define</code>
|<code>local</code>
|<code>slice</code>
|-
|<code>dispfun</code>
|<code>remfunction</code>
|
|-
|<code>functions</code>
|<code>setup_autoload</code>
|
|}
As a technical term '''''function''''' is aptly characterized as being overloaded. In the context of Maxima as a CAS, it has both a programming meaning and a mathematical meaning in terms of usage. In this book, the convention is to refer to what may otherwise be referred to as built-in Maxima functions as ''operators'' including those of built-in packages. By this convention, the term '''''function''''' in this book refers exclusively to expressions composed by the user by way of the <code>:=</code> or <code>define</code> operators.
As has been mentioned elsewhere in this book, what are conventionally termed ''operators'' that are built-in to Maxima, are at the level of underlying expression construction, Lisp procedures of one type or another. So it makes sense to simply refer to built-in Maxima functions and operators simply as operators one and all. This convention obviates the need for the repetitious use of qualifiers such as ''built-in Maxima'' and ''user-defined'' functions.
There are two operators used to define functions as follows:
# The <code>''''':='''''</code> operator
# The <code>'''define'''</code> operator
<var><code>f (x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>) ''':=''' expr</code>
<code>f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>] ''':=''' expr</code>
<code>f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>](y<sub>1</sub>, y<sub>2</sub>, ..., y<sub>m</sub>) ''':=''' expr</code></var>
<code>define (f</code> <code>(x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>), expr)</code>
<code>define (f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>], expr)</code>
<code>define (f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>](y<sub>1</sub>, y<sub>2,</sub> …, y<sub>m</sub>), expr)</code>
<code>define (funmake (f, [</code><code>x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>]), expr)</code>
<code>define (arraymake (f, [</code><code>x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>]), expr)</code>
<code>define (ev (</code><code>expr<sub>1</sub>, expr<sub>2</sub>))</code>
where <code>expr</code> is some Maxima expression that is commonly referred to as the ''function body''. As can be concluded from the above, each of these operators has different forms of syntax that can be used. In any case, the most significant differences between these two operators are in terms of the evaluation of the function body and the composition and identification of functions dynamically.
* '''Evaluation:'''
** The <code>:=</code> operator '''suppresses (quotes)''' the evaluation of the function body when this operator is first evaluated. It does not evaluate or simplify the function body until the function identifier itself is evaluated with arguments.
** The <code>define()</code> operator '''evaluates''' the function body when this operator is first evaluated. If the function body involves intermediate computations, substituted values, or extracted parts of expressions (like <code>rhs()</code> or derivative results), the <code>define()</code> operator includes the evaluated results of those directly into the function body.
* '''Dynamic Function Composition and Identifiers:'''
** Function identifiers cannot easily be composed dynamically on the left-hand side of the <code>:=</code> operator when used inside programmatic loop expressions or in scripts.
** The <code>define()</code> operator accepts expressions like <code>funmake</code> or evaluated symbols as its first argument, allowing the composition and identification of functions dynamically during evaluation.
So, there are in general two different operators that can be used to define and evaluate functions. The choice by the Maxima user between these two operators depends on the purpose and context.
==== Function Definition Using the <code>:=</code> Operator ====
For the purpose of understanding the two ways of defining functions, consider the following example which is elementary, but in terms of clarification is not merely simple:<syntaxhighlight lang="maxima">/* "kill" all previously used identifier and values */
(%i29) kill (all);
(%o0) done
/* assign identifier x the global value of 5 */
(%i1) x : 5;
(x) 5
/* define f as a function with local argument x */
(%i2) f (x) := x;
(%o2) f(x):=x
/* evaluate f at local value of x is 3 */
(%i3) f (3);
(%o3) 3
/* the global value of x is not affected */
(%i4) x;
(%o4) 5
/* show the definition expression of the function named f */
(%i5) fundef (f);
(%o5) f(x):=x</syntaxhighlight>'''Function Definition Using the''' '''<code>define</code> Operator'''<syntaxhighlight lang="maxima">
/* define a function with identifier g with a
local argument y and with a function body
of identifier x */
(%i3) define (g('x), x);
(%o3) g(x):=5
/* identifier x of the function body is evaluated */
/* identifier x as an argument of g is local in scope */
(%i4) fundef (g);
(%o4) g(x):=5
/* the same identifier x used in three different roles */
/* used as the global name of a function x */
/* used as a local argument of a function */
/* used as an unevaluated expression for a function body */
(%i7) x(x) := x;
(%o7) x(x):=x
(%i9) x(3);
(%o9) 3
(%i10) x;
(%o10) 5
(%i8) fundef (x);
(%o8) x(x):=x
(%i11) define (x('x), x);
(%o11) x(x):=5
(%i12) fundef (x);
(%o12) x(x):=5
</syntaxhighlight>The purpose of this example is not to encourage this sort of syntax as a typical choice for identifiers and function definitions. The purpose is to clarify how Maxima implicitly determines the scope and meaning of identifiers used for function definition in the absence of any explicit user stipulations.
It should be noted that the <code>define</code> operator not only evaluates the expression that is the function body, it also evaluates the arguments of the function identifier that is the first argument of the <code>define</code> operator. Since there is a global value of the identifier <code>x</code> of <code>5</code>, it was necessary to suppress evaluation (quote) the argument in the expression <code>(%i12) define ('x), x);</code> as otherwise an error would be the result:<syntaxhighlight lang="maxima">
/* define a new function named x */
(%i14) define (x('x), 'x^2);
(%o14) x(x):=x^2
/* check the definition of the new function named x */
(%i15) fundef (x);
(%o15) x(x):=x^2
/* the identifier x has a global value */
(%i16) values;
(%o16) [x]
/* the global value of identifier x is 5 */
(%i17) x;
(%o17) 5
/* the suppressed global value 'x of identifier x is x */
(%i18) 'x;
(%o18) x
/* not quoting the global value of identifier x is an error */
(%i19) define (x(x), 'x^2);
define: in definition of x, parameter must be a symbol and must not be a system constant; found: 5
-- an error. To debug this try: debugmode(true);
</syntaxhighlight>
==== Understanding the Differences Between the <code>:=</code> and <code>define</code> Operators ====
In cases such as these, the suppression of evaluation by quoting is a user stipulation as to evaluation. Users must be aware of these differences between the two operators (<code>:=</code> and <code>define</code>) for the purpose of function definition in order to achieve what is intended and to avoid errors,<syntaxhighlight lang="maxima">
(%i20) f (x) := 3*x^3 + 4*x - 5;
(%o20) f(x):=3*x^3+4*x-5
(%i21) fundef (f);
(%o21) f(x):=3*x^3+4*x-5
(%i22) f(2);
(%o22) 27
(%i23) define (f (x) , 3*x^3 + 4*x - 5);
define: in definition of f, parameter must be a symbol and must not be a system constant; found: 5
-- an error. To debug this try: debugmode(true);
(%i24) define (f ('x) , 3*x^3 + 4*x - 5);
(%o24) f(x):=390
(%i25) define (f ('x) , '(3*x^3 + 4*x - 5));
(%o25) f(x):=3*x^3+4*x-5
(%i26) fundef (f);
(%o26) f(x):=3*x^3+4*x-5
(%i27) f(2);
(%o27) 27
</syntaxhighlight>What is true in the case of these elementary examples is true in general for function definitions involving multiple arguments:<syntaxhighlight lang="maxima">
/* x has a global value of 5 while y is local to g */
(%i28) g (x, y) := x^3 - y^2;
(%o28) g(x,y):=x^3-y^2
(%i29) g (6,2);
(%o29) 212
(%i30) define (g('x, y), 'x^3 - y^2);
(%o30) g(x,y):=x^3-y^2
(%i31) values;
(%o31) [x]
(%i32) g (6,2);
(%o32) 212
</syntaxhighlight>The <code>define</code> operator is a good choice in cases where an existing expression is used as the function body:<syntaxhighlight lang="maxima">
(%i33) /* assign an expression to identifier expr */
expr : diff('x^3, 'x); /* Returns 3*x^2 */
(expr) 3*x^2
(%i34) /* evaluate expr and define h (x) := 3*x^2 */
define (h ('x), expr);
(%o34) h(x):=3*x^2
</syntaxhighlight>In cases in which functions require local variables or more than one expression for the function body, use the block operator:<syntaxhighlight lang="maxima">
(%i35) remvalue (x);
(%o35) [x]
(%i36) values;
(%o36) [expr]
--> power_sum (x, y) := block (
/* values of these identifiers are explicitly local to the function */
[sqx, sqy],
/* unevaluated identifiers x and y are local arguments of the function
and values of these identifiers are implicitly local to the function */
sqx : x^2,
sqy : y^2,
sqx + sqy /* the value of the function */
)$
(%i37) fundef (power_sum);
(%o37) power_sum(x,y):=block([sqx,sqy],sqx:x^2,sqy:y^2,sqx+sqy)
(%i38) power_sum (3,4);
(%o38) 25
</syntaxhighlight>The <code>define</code> operator could also be used to define this function, but with different definition values as a consequence:<syntaxhighlight lang="maxima">(%i39) define (power_sum (x,y),
block (
[sqx,sqy],
sqx : x^2,
sqy : y^2,
sqx + sqy
)
)$
(%i40) fundef (power_sum);
(%o40) power_sum(x,y):=y^2+x^2
(%i41) power_sum (3,4);
(%o41) 25</syntaxhighlight>The function definition of <code>power_sum</code> is different using the <code>define</code> operator instead of the <code>:=</code> operator. The value of the function when referenced with arguments (<code>power_sum (3,4)</code>) is the same in both cases – <code>25</code>. However, in general for defining functions, this may not be the case. The choice between these two operators depends on the intentions of the user.
==== Practical Considerations Related to Function Composition ====
In general, programming is a technical skill as well as a subjective art. So, absolute rules are not offered here. For practical purposes some "guidelines" are offered here that may be useful for Maxima function composition as well as Maxima programming in general:
*
*
*
*
*
Consider the following linear algebraic equation:
<math display="block">3y - 7x = 10</math>
As an example suppose the value that is sought is the slope <code>m</code> of this equation, and in general, the slope of any linear equation regardless of the form. <syntaxhighlight lang="maxima">/* assign the linear equation to an identifier */
(%i42) lineqn : 3*y - 7*x = 10;
(lineqn) 3*y-7*x=10
/* solve the linear equation for y */
(%i43) solve([lineqn], [y])
(%o43) [y=(7*x+10)/3]
/* use the index [1] of the list to get the solved equation */
(%i44) solve([lineqn], [y])[1]
(%o44) y=(7*x+10)/3
/* use the rhs operator to get right-hand side */
(%i45) rhs(solve([lineqn], [y])[1]);
(%o45) (7*x+10)/3
/* use the expand operator change the RHS */
(%i46) expand(rhs(solve([lineqn], [y])[1]));
(%o46) (7*x)/3+10/3
/* use the coeff operator to get the coefficient of x */
(%i47) coeff(expand(rhs(solve([lineqn], [y])[1])),x,1);
(%o47) 7/3
/* define the function with an argument eqn for lineqn */
(%i48) m (eqn) := coeff (expand (rhs (solve ([eqn], [y])[1])),x,1)$
/* check the function definition */
(%i49) fundef (m);
(%o49) m(eqn):=coeff(expand(rhs((solve([eqn],[y]))[1])),x,1)
/* reference the function using lineqn as an argument */
(%i50) m (lineqn);
(%o50) 7/3
/* assign a different linear equation to lineqn */
(%i51) lineqn : x = 6*y + 13;
(lineqn) x=6*y+13
/* reference the function using lineqn as an argument */
%i52) m (lineqn);
(%o52) 1/6</syntaxhighlight>The function body of this example will result in an error if it is used with the <code>define</code> operator:<syntaxhighlight lang="maxima">
(%i53) define (
m (eqn),
coeff (expand (rhs (solve ([eqn], [y])[1])),x,1)
)$
inpart: invalid index 1 of list or matrix.
-- an error. To debug this try: debugmode(true);
</syntaxhighlight>This error is a consequence of the evaluation that occurs when using the <code>define</code> operator. In this case, this evaluation results in a reference to the indexed value of a list object that does not exist when evaluation occurs during definition – <code>solve ([eqn], [y])[1]</code>.
==== Memoizing Functions ====
The functions discussed so far are often referred to as '''''ordinary functions'''''. The arguments of ordinary functions are enclosed using parentheses – <var><code>(x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>)</code>.</var> Function definition forms which include arguments enclosed by brackets (as in <var><code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>]</code></var>) are called '''''memoizing functions'''''.
Memoizing functions can be categorized both as functions and as data structures – specifically a ''hashed array'' of values. Memoizing functions are also referred to as '''''array functions'''''. In any case, memoizing functions can be defined using either the <code>:=</code> operator or the <code>define</code> operator.
If the form of the function definition expression is <code>f [x<sub>1</sub>, x<sub>2</sub>,..., x<sub>n</sub>] := expr</code> The function body <code>expr</code> is evaluated once for each individual value of the arguments, and that value is the value of the function, without again evaluating the function body, whenever referenced using arguments that have those same values.
Once evaluated during a function reference with arguments, that value of a memoizing function is thereby "frozen" in other words. This frozen value also becomes an instance of a hashed array data structure that can be referenced by way of the value of the index used as an argument when first evaluated.
In keeping with previous practice, the examples provided here are intentionally elementary for the purpose of demonstrating and clarifying the technical aspects involved. There is thereby no intention to convey that the composition of function definition expressions with multiple arguments and complex expressions for the function body is ruled out or of lesser practical value. <syntaxhighlight lang="maxima">
/* define a memoizing function f */
/* x and n may serve as both arguments and array indices */
(%i54) f [x, n] := x^n;
(%o54) f[x,n]:=x^n
/* check the array information for f */
(%i55) arrayinfo (f);
(%o55) [hashed,2]
/* f does not appear in the list of functions */
(%i56) functions;
(%o56) [m(lineqn)]
/* reference f with argument values */
(%i57) f [2,3] ;
(%o57) 8
/* check the array information for f again */
(%i58) arrayinfo (f);
(%o88) [hashed,2,[2,3]]
</syntaxhighlight>
==== Lambda Expressions ====
==== Special Forms of the <code>define</code> Operator ====
==== Some Techniques for Function Composition ====
=== Conditional Expressions – Special Operator <code>if</code> ===
=== Expressions for Iteration – Special Operator <code>do</code> ===
The special operator <code>do</code> is used to compose expressions for iteration. It is typically used with the following other special operators:
* <code>while</code>
* <code>unless</code>
* <code>for</code>
* <code>from</code>
* <code>thru</code>
* <code>step</code>
* <code>next</code>
* <code>in</code>
The general forms of <code>do</code> expressions Maxima supports are:
<code>for</code> variable: initial_value <code>step</code> increment <code>thru</code> limit <code>do</code> body
<code>for</code> variable: initial_value <code>step</code> increment <code>while</code> condition <code>do</code> body
<code>for</code> variable: initial_value <code>step</code> increment <code>unless</code> condition <code>do</code> body
<code>for</code> variable <code>in</code> list <code>do</code> body
<code>for</code> variable <code>in</code> expr <code>do</code> body
<code>for</code> variable <code>in</code> hash_table <code>do</code> body
=== Lisp and Maxima ===
{{BookCat}}
ownn0w2ru6fmrsj8pzrgs9s1eri9g7d
4674746
4674732
2026-10-06T16:16:16Z
Idavidmiller
3577687
/* Memoizing Functions */ Work in progress. Saving Changes.
4674746
wikitext
text/x-wiki
=Maxima Programming=
Although Maxima is not a general-purpose programming language, Maxima as a CAS includes among the built-in ingredients a relatively complete set of programming expressions that are useful for the intended context. Many of the code examples of this section are intended to be illustrative of technical details relevant to Maxima programming as their purpose, and consequently are intentionally elementary in character.
Learning any sort of programming language, including Maxima programming expressions, is a subjective process. In any case, it is essential to have enough technical know-how specific to the programming language in order to begin the learning process, even in cases where much positive transfer from other programming experience is involved.
Much can be accomplished mathematically using Maxima without having to resort to in-depth knowledge and proficiency in the technical details of Maxima programming expressions. However, Maxima programming expressions are frequently essential for the purpose of defining functions, both in the programming sense of the term, but also more relevantly, for the mathematical sense. For that reason alone, familiarity and sufficient proficiency with Maxima programming expressions should be given some attention.
One way to begin the learning process is to become familiar with enough of the programming essentials to accomplish independent efforts toward accomplishing some specific programming goal of interest. The other way is to study the many available programming expressions of others. This section is intended to provide the essentials toward learning by whatever means are chosen.
The following table shows some built-in ingredients related to Maxima programming expressions:
{| class="wikitable"
|+Maxima Programming Category
|if
|unless
|errcatch
|prederror
|-
|block
|for
|error
|return
|-
|catch
|from
|warning
|throw
|-
|local
|thru
|errormsg
|sstatus
|-
|garbage_collect
|step
|errormsg
|status
|-
|do
|next
|go
|
|-
|while
|in
|
|
|}
Some of these programming expression ingredients can also be considered as belonging to one or more other categories than the Programming category.
=== Block Expressions ===
Arguably, the first expressions to consider in the context of Maxima programming are '''''block''''' expressions. All <code>block</code> expressions as programming ingredients come in two flavors:
* <code>( expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub> )</code>
* <code>block ([v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>], expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub>)</code>
The first form of a <code>block</code> expression is equivalent to the second form, but without the first list argument: <code>[v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>]</code>, as in <code>block (expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code>, unless <code>return</code> or <code>go</code> operators are used in the block expression. In that, case the form <code>block (expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub>)</code> must be used. It should be noted that for Maxima to interpret of the syntax of the first of these forms as a block operator, there must be at least two expressions in the comma-separated sequence of expressions as arguments. Otherwise, Maxima will interpret the parentheses of this syntax as simply grouping related to the precedence order of operations.
The purpose of the list argument, <code>[v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>]</code> is to declare the values of identifiers of the list to be local to the <code>block</code>. If there is no need for local identifiers, the list argument can be omitted (unless <code>return</code> or <code>go</code> operators are used in the <code>block</code> expression), and either form is sufficient.<syntaxhighlight lang="maxima">/* This block expression */
(%i1) (x : 2, x^2);
(%o1) 4
/* Is equivalent to this block expression */
(%i2) block (x : 2, x^2);
(%o2) 4</syntaxhighlight>So, in the case where values of identifiers local to the <code>block</code> of expressions are not required, then the choice of either form of the <code>block</code> expression is a matter of user preference. In both cases, the values of identifiers referenced in the <code>block</code> are global, and not local to the <code>block</code> expression. However, for the sake of clarity and consistency use of the latter form may be a better choice. <syntaxhighlight lang="maxima">
/* The value 3 assigned to x is global */
(%i3) x : 3;
(x) 3
/* The value 2 assigned to x in the block is global */
(%i4) (x : 2, x^2);
(%o4) 4
/* The global value assigned to x in the block is 2 not 3 */
(%i5) x;
(%o5) 2
</syntaxhighlight>Values of identifiers local to the <code>block</code> may not be global:<syntaxhighlight lang="maxima">/* the value of identifier y is local only */
(%i6) block ([y], y : 4, y);
(%o6) 4
/* the global value of identifier y is not 4, but is itself */
(%i7) y;
(%o7) y
/* the values of identifiers x and y are both local */
(%i8) block ([x,y], x : 3, y : 4, x);
(%o8) 3
/* the global value of identifier x is not 3, but is 2 */
(%i9) x;
(%o9) 2
/* the global value of identifier y is not 4, but is itself */
(%i10) y;
(%o10) y</syntaxhighlight>
Regardless of the form of the <code>block</code> expressions these have in common the comma-separated expression arguments <code>expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code> which are evaluated each in turn from first to last (unless the evaluation sequence is modified by by the <code>go</code>, <code>throw</code>, or <code>return</code> operators), and the value of the block expression is the value of <code>expr<sub>n</sub></code>.
The main purpose of the <code>block</code> expression, regardless of the form, is to group expressions that are related in some manner, and the value of the last expression may be the only value of interest. However, there are very few limitations imposed on the nature of the <code>block</code> expression arguments, so it might be the case that the purpose of evaluating the <code>block</code> expression has been achieved before the last expression argument is evaluated, in which case the value of the <code>block</code> expression may not necessarily be the value of the last argument expression.
One way to accomplish that is to use an empty string as the last argument expression with the option flag <code>stringdisp</code> set to <code>false</code> which is the default value.<syntaxhighlight lang="maxima">
(%i11) stringdisp;
(%o11) false
(%i12) block ([x,y], x : 3, y : 4, x, "");
(%o12)
(%i13) block ([x,y], x : 3, y : 4, x)$
</syntaxhighlight>
The display of the value of the <code>block</code> expression may be suppressed using a <code>$</code> to end the input expression instead of a semi-colon. Either technique produces a <code>block</code> expression value, but the value is not displayed. If a <code>return</code> operator is evaluated as a argument expression, this will cause evaluation of expression arguments to end explicitly, and the value of the <code>return</code> operator becomes the value of the <code>block</code> expression.<syntaxhighlight lang="maxima">
(%i14) is (equal (x, 2));
(%o14) true
%i15) block (if is (equal (x, 2)) then return (x), " x not 2");
(%o15) 2
(%i16) x : 3;
(x) 3
(%i17) block (if is (equal (x, 2)) then return (x), "x not 2");
(%o17) x not 2
</syntaxhighlight>When a <code>return</code> operator is evaluated within a <code>block</code> expression the result is to stop evaluation of expressions within the enclosing <code>block</code> expression and to return the value of its argument as the value of the enclosing <code>block</code> expression. It therefore can be compared with the <code>return</code> statement found in other programming languages, but with one difference: In Maxima, the <code>return</code> operator affects only the block expression in which the <code>return</code> operator is an expression, and has no effect otherwise.<syntaxhighlight lang="maxima">(%i18) test_nested_block (val) :=
block (
[outer_var : 10],
print("Entering outer block expression"),
/* inner block expression */
block(
[inner_var : 20],
print (" Entering inner block expression"),
if val > 5 then
/* another inner block expression */
block (
print (" val > 5"),
print (" Returning only to inner block expression"),
return (inner_var + val)
/* returns only to the inner block expression */
),
/* end of another inner block expression */
print (" inner_var + val is ", inner_var + val)
),
/* end of inner block expression */
print ("Back in outer block expression"),
outer_var + val
/* end of outer block expression */
)$
(%i19) test_nested_block (1);
Entering outer block expression
Entering inner block expression
inner_var + val is 21
Back in outer block expression
(%o19) 11
(%i20) test_nested_block (6);
Entering outer block expression
Entering inner block expression
val > 5
Returning only to inner block expression
Back in outer block expression
(%o20) 16</syntaxhighlight>
'''''The <code>block</code> operators''''': Each instance may define local variables and has a comma-separated sequence of expressions as arguments.
'''''Nested blocks''''': There are three <code>block</code> operators used in the right-hand side of the function definition expression named <code>test_nested_block (val</code>. There is an outer <code>block</code> expression that has an inner <code>block</code> expression as an argument,and there is a third <code>block</code> expression that is an argument of the inner <code>block</code> expression.
'''''The <code>return</code> operator''''': If <code>val > 5</code> is <code>true</code> then the return operator of the most inner <code>block</code> expression is evaluated and evaluation of remaining expressions of that block expression does not occur. The value of that most inner <code>block</code> expression is the value of the argument of the return operator – <code>inner_var + val</code>.
Evaluation of expressions continues with the first expression of the inner <code>block</code> expression after the end of the most inner <code>block</code> expression – which is <code>print (" inner_var + val is ", inner_var + val)</code>. The value of the <code>print</code> operator is the value of <code>inner_var + val</code>. However, while that value is the value of the inner <code>block</code> expression it is effectively lost, as it is not the last expression of the outer <code>block</code> sequence of expressions. That value is the value of <code>outer_var + val</code>, which, being the last expression of the outer <code>block</code> is always the value of the function.
==== Block Expression Evaluation Sequence Modifications ====
<code>block</code> expression arguments <code>expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code> are generally evaluated each in turn from first to last, and the value of the <code>block</code> expression is the value of <code>expr<sub>n</sub></code> unless this sequence is modified by some means.
One way to modify the first-to-last expression evaluation sequence of a <code>block</code> expression is by way of a <code>go</code> operator with a ''label'' (or ''"tag"'') argument ( the ''"go to"'') as the following exemplifies:<syntaxhighlight lang="maxima">
(%i18) sum_to_n (n) := block ( [i : 1, total : 0],
loop,
total : total + i,
i : i + 1,
if i <= n then go (loop),
total)$
(%i19) sum_to_n(25);
(%o19) 325
(%i20) n;
(%o20) n
(%i21) i;
(%o21) i
(%i22) total;
(%o22) total
</syntaxhighlight>
Note the following:
* <code>'''block ([ i : 1,total : 0], ...)'''</code>: The list argument creates a local environment with local identifiers <code>i</code> and <code>total</code>. The function argument <code>n</code> is also a local identifier.
* <code>'''loop'''</code>: This label serves as a target inside the <code>block</code> expression to where <code>go (loop)</code> can jump.
* <code>'''if i <= n then go (loop)'''</code>: This conditional expression causes the <code>go (loop)</code> operator to be evaluated if the condition is <code>true</code>.
* <code>'''total'''</code>: The value of this local identifier is the returned value of the <code>block</code> expression.
It should also be worth noting that the identifiers <code>n</code>, <code>i</code>, and <code>total</code> have local values assigned within the <code>block</code> expression, but their global values are themselves. Also notice that the identifiers <code>i</code> and <code>total</code> were both declared local and assigned initial values within the <code>block</code> list argument.
The ''go-to'' label argument of the <code>go</code> operator must be the name of a tag appearing within the same block expression. The <code>go</code> operator cannot be used to go to a tag in a different <code>block</code> expression. There is nothing special about the <code>loop</code> identifier name used for the go-to tag in this example. Other identifiers could be used, but they must be atomic.
Another way to modify a <code>block</code> expression evaluation sequence is by way of the <code>throw</code> operator.<syntaxhighlight lang="maxima">(%i32) /* Define a function using a block expression that searches
for a specific condition and a throw value to catch */
find_element (target_list, threshold) := block (
[found_val : false], /* local identifier value */
catch(
for x in target_list do
(
if x > threshold then
(
/* Immediately exit the block and
return this value */
throw (x)
)
),
/* This string is returned only if the do loop
finishes without a throw to catch */
"No element exceeded the threshold"
)
)$
(%i31) /* Test the block */
find_element ( [10, 20, 55, 80], 50 );
(%o31) 55</syntaxhighlight>This example unpacks as follows:
<code>'''catch (...)'''</code>: This expression creates a target scope that ''"catches"'' the value of any <code>throw</code> expression evaluated within that scope.
<code>'''throw (x)'''</code>: When Maxima encounters this operator, it immediately stops evaluation of the <code>do</code> loop expression '''''and the rest of the''''' <code>block</code> '''''expression.''''' It jumps directly out of the scope of the <code>catch</code> expression, returning the value of <code>x</code> as the value of the entire <code>catch</code> expression.
==== Nested Block Expressions ====
<code>block</code> operators may appear within other block expressions as arguments – '''''nested''''' <code>block</code> expressions. A local environment with local identifiers may be created for nested block expressions. Local values for identifiers, if declared by a first <code>block</code> operator list argument, are created each time a nested <code>block</code> is evaluated.
However, identifiers with global values that have not been declared as local within any <code>block</code> expressions, are global values for nested <code>block</code> expressions as well as enclosing <code>block</code> expressions. Likewise, local identifiers of any enclosing <code>block</code> expression have values that are global within any enclosed blocks, if not declared as local within the enclosed block. If the value of an identifier is not local in a <code>block</code> expression, its value is the value most recently assigned by an enclosing <code>block</code> expression, if any value has been assigned. Otherwise, it is the value of the identifier in the global environment. <syntaxhighlight lang="maxima">
(%i23) z : 2^(1/3);
(z) 2^(1/3)
(%i24) /* Outer block starts */
block
(
[x : 10, y : 20],
/* values of x and y declared local to outer block */
/* Inner block starts */
block
(
[y : 99, z : 100],
/* values of y and z declared local to inner block */
print ("Inside inner block:"),
print ("x =", x, "is the value of x from outer block"),
print ("y =", y, "is the local value of y of outer block"),
print("z =", z, "is the local value of z of inner block")
),
/* Inner block ends */
/* Outer block resumes */
print ("Back in outer block:"),
print ("x =", x, "is the value of x from outer block"),
print ("y =", y, "is the restored value of y of the outer block"),
print ("z =", z, "is the value of z global to both blocks")
/* Outer block ends */
)$
Inside inner block:
x = 10 is the value of x from outer block
y = 99 is the local value of y of outer block
z = 100 is the local value of z of inner block
Back in outer block:
x = 10 is the value of x from outer block
y = 20 is the restored value of y of the outer block
z = 2^(1/3) is the value of z global to both blocks
</syntaxhighlight>
==== Values, Properties, and the <code>local</code> Operator ====
The expression <code>local (v<sub>1</sub>, v<sub>2</sub>, ... , v<sub>m</sub>)</code> within a <code>block</code> expression saves the '''''properties''''' associated with the symbols <code>v<sub>1</sub>, v<sub>2</sub>, ... , v<sub>m</sub></code>, removes any properties before evaluating other expressions, and restores any saved properties on exit from the block.
Because Maxima is an application based on the Common Lisp programming language, it utilizes Lisp '''''symbol''''' structure. Lisp symbols are objects that carry their own "dictionary" of attributes. A Lisp symbol's internal property list (''plist'') is a built-in data structure attached directly to a symbol. Maxima uses this underlying Lisp symbol structure to associate '''''properties''''' with Maxima identifiers.
Properties of identifiers can be ''declared explicitly'' by users. <syntaxhighlight lang="maxima">
(%i23) declare (x, real);
(%o23) done
</syntaxhighlight>
However, some identifier property declarations are ''implemented implicitly'' as properties of a symbol, including <code>:=</code>, <code>array</code>, <code>dependencies</code>, <code>atvalue</code>, <code>matchdeclare</code>, <code>atomgrad</code>, <code>constant</code>, <code>nonscalar</code>, <code>assume</code>, and some others. Below is a description of how each of those specific declarations is implemented as a property under the hood:
====== Functions and Arrays ======
* '''<code>:=</code> (Function Definition):''' When you define a function using <code>f(x) := x^2</code>, the actual expression (<code>x^2</code>) and its argument list (<code>x</code>) are stored as a property of the symbol <code>f</code>.
* '''<code>array</code>:''' When you declare or use a subscripted array (like <code>a[i]</code>), the array type, dimensions, and memory pointer are attached as a property to the symbol <code>a</code>. This differentiates it from a standard scalar variable.
====== Calculus and Dependencies ======
* '''<code>dependencies</code>:''' If you declare <code>depends(y, x)</code>, Maxima attaches a dependency list property to <code>y</code> noting that it functionally depends on <code>x</code>. This tells the <code>diff</code> (differentiation) engine not to treat <code>y</code> as a constant relative to <code>x</code>.
* '''<code>atvalue</code>:''' When you define a specific value for an expression at a boundary point (e.g., <code>atvalue(y, x=0, 1)</code>), this boundary constraint is stored as an evaluation property on the symbol <code>y</code>.
* '''<code>atomgrad</code>:''' This assigns a specific gradient or derivative to an atomic identifier (e.g., telling Maxima what (df/dx) is explicitly). Maxima saves this rule as a gradient property on that symbol.
====== Pattern Matching and Rules ======
* '''<code>matchdeclare</code>:''' Used in Maxima's pattern-matching system (like <code>tellsimp</code>). When you type <code>matchdeclare(x, freeof(a))</code>, Maxima attaches a predicate property to <code>x</code>. When a pattern rule runs, Maxima looks at property list of <code>x</code> to see what conditions a matching expression must meet.
====== Mathematical and Evaluation Attributes ======
* '''<code>constant</code>:''' Declaring <code>declare(c, constant)</code> places a "constant" flag on property list of <code>c</code>. Core routines (like integration and differentiation) check this flag to know they can pull <code>c</code> out of integrals or differentiate it to zero.
* '''<code>nonscalar</code>:''' Tells Maxima to treat a symbol as a matrix or vector rather than a regular number. This property changes how operators like <code>.</code> (non-commutative multiplication) treat the symbol.
* '''<code>assume</code>:''' When an expression such as <code>assume(x > 0)</code> is used, Maxima's database system (<code>context</code>) assigns facts and properties (like <code>pos</code> or <code>nonnegative</code>) to the symbol <code>x</code>, allowing the simplifier to safely reduce expressions like <code>sqrt(x^2)</code> to <code>x</code>.
The effect of the <code>local</code> operator is to make such declarations effective only within a <code>block</code> expression. Otherwise, declarations within a <code>block</code> expression are considered to be global declarations.
So what does all of this mean to the typical Maxima user? It means that the list of identifiers that is the first argument of a <code>block</code> expression only declares the '''''values''''' of those identifiers as local to the <code>block</code> expression in which the list is an argument. Any properties of identifiers are not declared local by this means.
In order to declare '''''properties''''' of identifiers to be local to a <code>block</code> expression, the <code>local</code> operator must be used as an expression within the <code>block</code> expression. At the point where the local operator is evaluated as an argument of a <code>block</code> expression, the properties of the identifiers that are arguments to the <code>local</code> operator become local to the block. It is not an unfair criticism that perhaps the <code>local</code> operator should have been named something like <code>local_properties</code>. <syntaxhighlight lang="maxima">
(%i25) f (s) := cos (s);
(%o25) f(s):=cos(s)
(%i26) f (%pi/6);
(%o26) sqrt(3)/2
(%i27) block (local (f), f (s) := sin (s), f (%pi/6));
(%o27) 1/2
(%i28) f (s);
(%o28) cos(s)
</syntaxhighlight>In the above example, the '''''properties''''' of identifier <code>f</code> were declared to be local in the <code>block</code> expression using the <code>local</code> operator. However, global properties of the identifier <code>f</code> were not affected by the local function definition of <code>f</code> in the <code>block</code> expression. The global definition expression of <code>f</code> which is <code>cos (s)</code> and the argument <code>s</code> were not affected by the local definition of <code>f</code> because the properties of <code>f</code> were declared local to the <code>block</code> expression.
<code>block</code> expressions can be used for different purposes in the Maxima programming context. <code>block</code> expressions can be used in a stand-alone fashion or as part of an expression. However, <code>block</code> expressions are commonly used in expressions that define '''''functions''''', which is the topic that follows.
=== Functions ===
{| class="wikitable"
|+Function Definition Operators
and Identifiers
|<code>:=</code>
|<code>fundef</code>
|<code>buildq</code>
|-
|<code>::=</code>
|<code>lambda</code>
|<code>macros</code>
|-
|<code>define</code>
|<code>local</code>
|<code>slice</code>
|-
|<code>dispfun</code>
|<code>remfunction</code>
|
|-
|<code>functions</code>
|<code>setup_autoload</code>
|
|}
As a technical term '''''function''''' is aptly characterized as being overloaded. In the context of Maxima as a CAS, it has both a programming meaning and a mathematical meaning in terms of usage. In this book, the convention is to refer to what may otherwise be referred to as built-in Maxima functions as ''operators'' including those of built-in packages. By this convention, the term '''''function''''' in this book refers exclusively to expressions composed by the user by way of the <code>:=</code> or <code>define</code> operators.
As has been mentioned elsewhere in this book, what are conventionally termed ''operators'' that are built-in to Maxima, are at the level of underlying expression construction, Lisp procedures of one type or another. So it makes sense to simply refer to built-in Maxima functions and operators simply as operators one and all. This convention obviates the need for the repetitious use of qualifiers such as ''built-in Maxima'' and ''user-defined'' functions.
There are two operators used to define functions as follows:
# The <code>''''':='''''</code> operator
# The <code>'''define'''</code> operator
<var><code>f (x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>) ''':=''' expr</code>
<code>f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>] ''':=''' expr</code>
<code>f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>](y<sub>1</sub>, y<sub>2</sub>, ..., y<sub>m</sub>) ''':=''' expr</code></var>
<code>define (f</code> <code>(x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>), expr)</code>
<code>define (f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>], expr)</code>
<code>define (f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>](y<sub>1</sub>, y<sub>2,</sub> …, y<sub>m</sub>), expr)</code>
<code>define (funmake (f, [</code><code>x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>]), expr)</code>
<code>define (arraymake (f, [</code><code>x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>]), expr)</code>
<code>define (ev (</code><code>expr<sub>1</sub>, expr<sub>2</sub>))</code>
where <code>expr</code> is some Maxima expression that is commonly referred to as the ''function body''. As can be concluded from the above, each of these operators has different forms of syntax that can be used. In any case, the most significant differences between these two operators are in terms of the evaluation of the function body and the composition and identification of functions dynamically.
* '''Evaluation:'''
** The <code>:=</code> operator '''suppresses (quotes)''' the evaluation of the function body when this operator is first evaluated. It does not evaluate or simplify the function body until the function identifier itself is evaluated with arguments.
** The <code>define()</code> operator '''evaluates''' the function body when this operator is first evaluated. If the function body involves intermediate computations, substituted values, or extracted parts of expressions (like <code>rhs()</code> or derivative results), the <code>define()</code> operator includes the evaluated results of those directly into the function body.
* '''Dynamic Function Composition and Identifiers:'''
** Function identifiers cannot easily be composed dynamically on the left-hand side of the <code>:=</code> operator when used inside programmatic loop expressions or in scripts.
** The <code>define()</code> operator accepts expressions like <code>funmake</code> or evaluated symbols as its first argument, allowing the composition and identification of functions dynamically during evaluation.
So, there are in general two different operators that can be used to define and evaluate functions. The choice by the Maxima user between these two operators depends on the purpose and context.
==== Function Definition Using the <code>:=</code> Operator ====
For the purpose of understanding the two ways of defining functions, consider the following example which is elementary, but in terms of clarification is not merely simple:<syntaxhighlight lang="maxima">/* "kill" all previously used identifier and values */
(%i29) kill (all);
(%o0) done
/* assign identifier x the global value of 5 */
(%i1) x : 5;
(x) 5
/* define f as a function with local argument x */
(%i2) f (x) := x;
(%o2) f(x):=x
/* evaluate f at local value of x is 3 */
(%i3) f (3);
(%o3) 3
/* the global value of x is not affected */
(%i4) x;
(%o4) 5
/* show the definition expression of the function named f */
(%i5) fundef (f);
(%o5) f(x):=x</syntaxhighlight>'''Function Definition Using the''' '''<code>define</code> Operator'''<syntaxhighlight lang="maxima">
/* define a function with identifier g with a
local argument y and with a function body
of identifier x */
(%i3) define (g('x), x);
(%o3) g(x):=5
/* identifier x of the function body is evaluated */
/* identifier x as an argument of g is local in scope */
(%i4) fundef (g);
(%o4) g(x):=5
/* the same identifier x used in three different roles */
/* used as the global name of a function x */
/* used as a local argument of a function */
/* used as an unevaluated expression for a function body */
(%i7) x(x) := x;
(%o7) x(x):=x
(%i9) x(3);
(%o9) 3
(%i10) x;
(%o10) 5
(%i8) fundef (x);
(%o8) x(x):=x
(%i11) define (x('x), x);
(%o11) x(x):=5
(%i12) fundef (x);
(%o12) x(x):=5
</syntaxhighlight>The purpose of this example is not to encourage this sort of syntax as a typical choice for identifiers and function definitions. The purpose is to clarify how Maxima implicitly determines the scope and meaning of identifiers used for function definition in the absence of any explicit user stipulations.
It should be noted that the <code>define</code> operator not only evaluates the expression that is the function body, it also evaluates the arguments of the function identifier that is the first argument of the <code>define</code> operator. Since there is a global value of the identifier <code>x</code> of <code>5</code>, it was necessary to suppress evaluation (quote) the argument in the expression <code>(%i12) define ('x), x);</code> as otherwise an error would be the result:<syntaxhighlight lang="maxima">
/* define a new function named x */
(%i14) define (x('x), 'x^2);
(%o14) x(x):=x^2
/* check the definition of the new function named x */
(%i15) fundef (x);
(%o15) x(x):=x^2
/* the identifier x has a global value */
(%i16) values;
(%o16) [x]
/* the global value of identifier x is 5 */
(%i17) x;
(%o17) 5
/* the suppressed global value 'x of identifier x is x */
(%i18) 'x;
(%o18) x
/* not quoting the global value of identifier x is an error */
(%i19) define (x(x), 'x^2);
define: in definition of x, parameter must be a symbol and must not be a system constant; found: 5
-- an error. To debug this try: debugmode(true);
</syntaxhighlight>
==== Understanding the Differences Between the <code>:=</code> and <code>define</code> Operators ====
In cases such as these, the suppression of evaluation by quoting is a user stipulation as to evaluation. Users must be aware of these differences between the two operators (<code>:=</code> and <code>define</code>) for the purpose of function definition in order to achieve what is intended and to avoid errors,<syntaxhighlight lang="maxima">
(%i20) f (x) := 3*x^3 + 4*x - 5;
(%o20) f(x):=3*x^3+4*x-5
(%i21) fundef (f);
(%o21) f(x):=3*x^3+4*x-5
(%i22) f(2);
(%o22) 27
(%i23) define (f (x) , 3*x^3 + 4*x - 5);
define: in definition of f, parameter must be a symbol and must not be a system constant; found: 5
-- an error. To debug this try: debugmode(true);
(%i24) define (f ('x) , 3*x^3 + 4*x - 5);
(%o24) f(x):=390
(%i25) define (f ('x) , '(3*x^3 + 4*x - 5));
(%o25) f(x):=3*x^3+4*x-5
(%i26) fundef (f);
(%o26) f(x):=3*x^3+4*x-5
(%i27) f(2);
(%o27) 27
</syntaxhighlight>What is true in the case of these elementary examples is true in general for function definitions involving multiple arguments:<syntaxhighlight lang="maxima">
/* x has a global value of 5 while y is local to g */
(%i28) g (x, y) := x^3 - y^2;
(%o28) g(x,y):=x^3-y^2
(%i29) g (6,2);
(%o29) 212
(%i30) define (g('x, y), 'x^3 - y^2);
(%o30) g(x,y):=x^3-y^2
(%i31) values;
(%o31) [x]
(%i32) g (6,2);
(%o32) 212
</syntaxhighlight>The <code>define</code> operator is a good choice in cases where an existing expression is used as the function body:<syntaxhighlight lang="maxima">
(%i33) /* assign an expression to identifier expr */
expr : diff('x^3, 'x); /* Returns 3*x^2 */
(expr) 3*x^2
(%i34) /* evaluate expr and define h (x) := 3*x^2 */
define (h ('x), expr);
(%o34) h(x):=3*x^2
</syntaxhighlight>In cases in which functions require local variables or more than one expression for the function body, use the block operator:<syntaxhighlight lang="maxima">
(%i35) remvalue (x);
(%o35) [x]
(%i36) values;
(%o36) [expr]
--> power_sum (x, y) := block (
/* values of these identifiers are explicitly local to the function */
[sqx, sqy],
/* unevaluated identifiers x and y are local arguments of the function
and values of these identifiers are implicitly local to the function */
sqx : x^2,
sqy : y^2,
sqx + sqy /* the value of the function */
)$
(%i37) fundef (power_sum);
(%o37) power_sum(x,y):=block([sqx,sqy],sqx:x^2,sqy:y^2,sqx+sqy)
(%i38) power_sum (3,4);
(%o38) 25
</syntaxhighlight>The <code>define</code> operator could also be used to define this function, but with different definition values as a consequence:<syntaxhighlight lang="maxima">(%i39) define (power_sum (x,y),
block (
[sqx,sqy],
sqx : x^2,
sqy : y^2,
sqx + sqy
)
)$
(%i40) fundef (power_sum);
(%o40) power_sum(x,y):=y^2+x^2
(%i41) power_sum (3,4);
(%o41) 25</syntaxhighlight>The function definition of <code>power_sum</code> is different using the <code>define</code> operator instead of the <code>:=</code> operator. The value of the function when referenced with arguments (<code>power_sum (3,4)</code>) is the same in both cases – <code>25</code>. However, in general for defining functions, this may not be the case. The choice between these two operators depends on the intentions of the user.
==== Practical Considerations Related to Function Composition ====
In general, programming is a technical skill as well as a subjective art. So, absolute rules are not offered here. For practical purposes some "guidelines" are offered here that may be useful for Maxima function composition as well as Maxima programming in general:
*
*
*
*
*
Consider the following linear algebraic equation:
<math display="block">3y - 7x = 10</math>
As an example suppose the value that is sought is the slope <code>m</code> of this equation, and in general, the slope of any linear equation regardless of the form. <syntaxhighlight lang="maxima">/* assign the linear equation to an identifier */
(%i42) lineqn : 3*y - 7*x = 10;
(lineqn) 3*y-7*x=10
/* solve the linear equation for y */
(%i43) solve([lineqn], [y])
(%o43) [y=(7*x+10)/3]
/* use the index [1] of the list to get the solved equation */
(%i44) solve([lineqn], [y])[1]
(%o44) y=(7*x+10)/3
/* use the rhs operator to get right-hand side */
(%i45) rhs(solve([lineqn], [y])[1]);
(%o45) (7*x+10)/3
/* use the expand operator change the RHS */
(%i46) expand(rhs(solve([lineqn], [y])[1]));
(%o46) (7*x)/3+10/3
/* use the coeff operator to get the coefficient of x */
(%i47) coeff(expand(rhs(solve([lineqn], [y])[1])),x,1);
(%o47) 7/3
/* define the function with an argument eqn for lineqn */
(%i48) m (eqn) := coeff (expand (rhs (solve ([eqn], [y])[1])),x,1)$
/* check the function definition */
(%i49) fundef (m);
(%o49) m(eqn):=coeff(expand(rhs((solve([eqn],[y]))[1])),x,1)
/* reference the function using lineqn as an argument */
(%i50) m (lineqn);
(%o50) 7/3
/* assign a different linear equation to lineqn */
(%i51) lineqn : x = 6*y + 13;
(lineqn) x=6*y+13
/* reference the function using lineqn as an argument */
%i52) m (lineqn);
(%o52) 1/6</syntaxhighlight>The function body of this example will result in an error if it is used with the <code>define</code> operator:<syntaxhighlight lang="maxima">
(%i53) define (
m (eqn),
coeff (expand (rhs (solve ([eqn], [y])[1])),x,1)
)$
inpart: invalid index 1 of list or matrix.
-- an error. To debug this try: debugmode(true);
</syntaxhighlight>This error is a consequence of the evaluation that occurs when using the <code>define</code> operator. In this case, this evaluation results in a reference to the indexed value of a list object that does not exist when evaluation occurs during definition – <code>solve ([eqn], [y])[1]</code>.
==== Memoizing Functions ====
The functions discussed so far are often referred to as '''''ordinary functions'''''. The arguments of ordinary functions are enclosed using parentheses – <var><code>(x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>)</code>.</var> Function definition forms which include arguments enclosed by brackets (as in <var><code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>]</code></var>) are called '''''memoizing functions'''''.
Memoizing functions can be categorized both as functions and as data structures – specifically a ''hashed array'' of values. Memoizing functions are also referred to as '''''array functions'''''. In any case, memoizing functions can be defined using either the <code>:=</code> operator or the <code>define</code> operator.
If the form of the function definition expression is <code>f [x<sub>1</sub>, x<sub>2</sub>,..., x<sub>n</sub>] := expr</code> The function body <code>expr</code> is evaluated once for each individual value of the arguments, and that value is the value of the function, without again evaluating the function body, whenever referenced using arguments that have those same values.
Once evaluated during a function reference with arguments, that value of a memoizing function is thereby "frozen" in other words. This frozen value also becomes an instance of a hashed array data structure that can be referenced by way of the value of the index used as an argument when first evaluated.
In keeping with previous practice, the examples provided here are intentionally elementary for the purpose of demonstrating and clarifying the technical aspects involved. There is thereby no intention to convey that the composition of function definition expressions with multiple arguments and complex expressions for the function body is ruled out or of lesser practical value. <syntaxhighlight lang="maxima">
/* define a memoizing function f */
/* x and n may serve as both arguments and array indices */
(%i54) f [x, n] := x^n;
(%o54) f[x,n]:=x^n
/* check the array information for f */
(%i55) arrayinfo (f);
(%o55) [hashed,2]
/* f does not appear in the list of functions */
(%i56) functions;
(%o56) [m(lineqn)]
/* reference f with argument values */
(%i57) f [2,3] ;
(%o57) 8
/* check the array information for f again */
(%i58) arrayinfo (f);
(%o58) [hashed,2,[2,3]]
/* list the array values of f */
(%i59) listarray (f);
(%o59) [8]
/* reference f with new argument values */
(%i60) f [5,2];
(%o60) 25
/* check the array information for f again */
(%i61) arrayinfo (f);
(%o61) [hashed,2,[2,3],[5,2]]
/* list the array values of f */
(%i62) listarray (f);
(%o62) [8,25]
</syntaxhighlight>
==== Lambda Expressions ====
==== Special Forms of the <code>define</code> Operator ====
==== Some Techniques for Function Composition ====
=== Conditional Expressions – Special Operator <code>if</code> ===
=== Expressions for Iteration – Special Operator <code>do</code> ===
The special operator <code>do</code> is used to compose expressions for iteration. It is typically used with the following other special operators:
* <code>while</code>
* <code>unless</code>
* <code>for</code>
* <code>from</code>
* <code>thru</code>
* <code>step</code>
* <code>next</code>
* <code>in</code>
The general forms of <code>do</code> expressions Maxima supports are:
<code>for</code> variable: initial_value <code>step</code> increment <code>thru</code> limit <code>do</code> body
<code>for</code> variable: initial_value <code>step</code> increment <code>while</code> condition <code>do</code> body
<code>for</code> variable: initial_value <code>step</code> increment <code>unless</code> condition <code>do</code> body
<code>for</code> variable <code>in</code> list <code>do</code> body
<code>for</code> variable <code>in</code> expr <code>do</code> body
<code>for</code> variable <code>in</code> hash_table <code>do</code> body
=== Lisp and Maxima ===
{{BookCat}}
tn2n0hwd19mhb99ft6skbbgmei9xgmt
4674792
4674746
2026-10-07T03:01:01Z
Idavidmiller
3577687
/* Memoizing Functions */ Work in progress. Saving Changes.
4674792
wikitext
text/x-wiki
=Maxima Programming=
Although Maxima is not a general-purpose programming language, Maxima as a CAS includes among the built-in ingredients a relatively complete set of programming expressions that are useful for the intended context. Many of the code examples of this section are intended to be illustrative of technical details relevant to Maxima programming as their purpose, and consequently are intentionally elementary in character.
Learning any sort of programming language, including Maxima programming expressions, is a subjective process. In any case, it is essential to have enough technical know-how specific to the programming language in order to begin the learning process, even in cases where much positive transfer from other programming experience is involved.
Much can be accomplished mathematically using Maxima without having to resort to in-depth knowledge and proficiency in the technical details of Maxima programming expressions. However, Maxima programming expressions are frequently essential for the purpose of defining functions, both in the programming sense of the term, but also more relevantly, for the mathematical sense. For that reason alone, familiarity and sufficient proficiency with Maxima programming expressions should be given some attention.
One way to begin the learning process is to become familiar with enough of the programming essentials to accomplish independent efforts toward accomplishing some specific programming goal of interest. The other way is to study the many available programming expressions of others. This section is intended to provide the essentials toward learning by whatever means are chosen.
The following table shows some built-in ingredients related to Maxima programming expressions:
{| class="wikitable"
|+Maxima Programming Category
|if
|unless
|errcatch
|prederror
|-
|block
|for
|error
|return
|-
|catch
|from
|warning
|throw
|-
|local
|thru
|errormsg
|sstatus
|-
|garbage_collect
|step
|errormsg
|status
|-
|do
|next
|go
|
|-
|while
|in
|
|
|}
Some of these programming expression ingredients can also be considered as belonging to one or more other categories than the Programming category.
=== Block Expressions ===
Arguably, the first expressions to consider in the context of Maxima programming are '''''block''''' expressions. All <code>block</code> expressions as programming ingredients come in two flavors:
* <code>( expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub> )</code>
* <code>block ([v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>], expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub>)</code>
The first form of a <code>block</code> expression is equivalent to the second form, but without the first list argument: <code>[v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>]</code>, as in <code>block (expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code>, unless <code>return</code> or <code>go</code> operators are used in the block expression. In that, case the form <code>block (expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub>)</code> must be used. It should be noted that for Maxima to interpret of the syntax of the first of these forms as a block operator, there must be at least two expressions in the comma-separated sequence of expressions as arguments. Otherwise, Maxima will interpret the parentheses of this syntax as simply grouping related to the precedence order of operations.
The purpose of the list argument, <code>[v<sub>1</sub>,v<sub>2,</sub>…,v<sub>m</sub>]</code> is to declare the values of identifiers of the list to be local to the <code>block</code>. If there is no need for local identifiers, the list argument can be omitted (unless <code>return</code> or <code>go</code> operators are used in the <code>block</code> expression), and either form is sufficient.<syntaxhighlight lang="maxima">/* This block expression */
(%i1) (x : 2, x^2);
(%o1) 4
/* Is equivalent to this block expression */
(%i2) block (x : 2, x^2);
(%o2) 4</syntaxhighlight>So, in the case where values of identifiers local to the <code>block</code> of expressions are not required, then the choice of either form of the <code>block</code> expression is a matter of user preference. In both cases, the values of identifiers referenced in the <code>block</code> are global, and not local to the <code>block</code> expression. However, for the sake of clarity and consistency use of the latter form may be a better choice. <syntaxhighlight lang="maxima">
/* The value 3 assigned to x is global */
(%i3) x : 3;
(x) 3
/* The value 2 assigned to x in the block is global */
(%i4) (x : 2, x^2);
(%o4) 4
/* The global value assigned to x in the block is 2 not 3 */
(%i5) x;
(%o5) 2
</syntaxhighlight>Values of identifiers local to the <code>block</code> may not be global:<syntaxhighlight lang="maxima">/* the value of identifier y is local only */
(%i6) block ([y], y : 4, y);
(%o6) 4
/* the global value of identifier y is not 4, but is itself */
(%i7) y;
(%o7) y
/* the values of identifiers x and y are both local */
(%i8) block ([x,y], x : 3, y : 4, x);
(%o8) 3
/* the global value of identifier x is not 3, but is 2 */
(%i9) x;
(%o9) 2
/* the global value of identifier y is not 4, but is itself */
(%i10) y;
(%o10) y</syntaxhighlight>
Regardless of the form of the <code>block</code> expressions these have in common the comma-separated expression arguments <code>expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code> which are evaluated each in turn from first to last (unless the evaluation sequence is modified by by the <code>go</code>, <code>throw</code>, or <code>return</code> operators), and the value of the block expression is the value of <code>expr<sub>n</sub></code>.
The main purpose of the <code>block</code> expression, regardless of the form, is to group expressions that are related in some manner, and the value of the last expression may be the only value of interest. However, there are very few limitations imposed on the nature of the <code>block</code> expression arguments, so it might be the case that the purpose of evaluating the <code>block</code> expression has been achieved before the last expression argument is evaluated, in which case the value of the <code>block</code> expression may not necessarily be the value of the last argument expression.
One way to accomplish that is to use an empty string as the last argument expression with the option flag <code>stringdisp</code> set to <code>false</code> which is the default value.<syntaxhighlight lang="maxima">
(%i11) stringdisp;
(%o11) false
(%i12) block ([x,y], x : 3, y : 4, x, "");
(%o12)
(%i13) block ([x,y], x : 3, y : 4, x)$
</syntaxhighlight>
The display of the value of the <code>block</code> expression may be suppressed using a <code>$</code> to end the input expression instead of a semi-colon. Either technique produces a <code>block</code> expression value, but the value is not displayed. If a <code>return</code> operator is evaluated as a argument expression, this will cause evaluation of expression arguments to end explicitly, and the value of the <code>return</code> operator becomes the value of the <code>block</code> expression.<syntaxhighlight lang="maxima">
(%i14) is (equal (x, 2));
(%o14) true
%i15) block (if is (equal (x, 2)) then return (x), " x not 2");
(%o15) 2
(%i16) x : 3;
(x) 3
(%i17) block (if is (equal (x, 2)) then return (x), "x not 2");
(%o17) x not 2
</syntaxhighlight>When a <code>return</code> operator is evaluated within a <code>block</code> expression the result is to stop evaluation of expressions within the enclosing <code>block</code> expression and to return the value of its argument as the value of the enclosing <code>block</code> expression. It therefore can be compared with the <code>return</code> statement found in other programming languages, but with one difference: In Maxima, the <code>return</code> operator affects only the block expression in which the <code>return</code> operator is an expression, and has no effect otherwise.<syntaxhighlight lang="maxima">(%i18) test_nested_block (val) :=
block (
[outer_var : 10],
print("Entering outer block expression"),
/* inner block expression */
block(
[inner_var : 20],
print (" Entering inner block expression"),
if val > 5 then
/* another inner block expression */
block (
print (" val > 5"),
print (" Returning only to inner block expression"),
return (inner_var + val)
/* returns only to the inner block expression */
),
/* end of another inner block expression */
print (" inner_var + val is ", inner_var + val)
),
/* end of inner block expression */
print ("Back in outer block expression"),
outer_var + val
/* end of outer block expression */
)$
(%i19) test_nested_block (1);
Entering outer block expression
Entering inner block expression
inner_var + val is 21
Back in outer block expression
(%o19) 11
(%i20) test_nested_block (6);
Entering outer block expression
Entering inner block expression
val > 5
Returning only to inner block expression
Back in outer block expression
(%o20) 16</syntaxhighlight>
'''''The <code>block</code> operators''''': Each instance may define local variables and has a comma-separated sequence of expressions as arguments.
'''''Nested blocks''''': There are three <code>block</code> operators used in the right-hand side of the function definition expression named <code>test_nested_block (val</code>. There is an outer <code>block</code> expression that has an inner <code>block</code> expression as an argument,and there is a third <code>block</code> expression that is an argument of the inner <code>block</code> expression.
'''''The <code>return</code> operator''''': If <code>val > 5</code> is <code>true</code> then the return operator of the most inner <code>block</code> expression is evaluated and evaluation of remaining expressions of that block expression does not occur. The value of that most inner <code>block</code> expression is the value of the argument of the return operator – <code>inner_var + val</code>.
Evaluation of expressions continues with the first expression of the inner <code>block</code> expression after the end of the most inner <code>block</code> expression – which is <code>print (" inner_var + val is ", inner_var + val)</code>. The value of the <code>print</code> operator is the value of <code>inner_var + val</code>. However, while that value is the value of the inner <code>block</code> expression it is effectively lost, as it is not the last expression of the outer <code>block</code> sequence of expressions. That value is the value of <code>outer_var + val</code>, which, being the last expression of the outer <code>block</code> is always the value of the function.
==== Block Expression Evaluation Sequence Modifications ====
<code>block</code> expression arguments <code>expr<sub>1</sub>, expr<sub>2</sub>,…, expr<sub>n</sub></code> are generally evaluated each in turn from first to last, and the value of the <code>block</code> expression is the value of <code>expr<sub>n</sub></code> unless this sequence is modified by some means.
One way to modify the first-to-last expression evaluation sequence of a <code>block</code> expression is by way of a <code>go</code> operator with a ''label'' (or ''"tag"'') argument ( the ''"go to"'') as the following exemplifies:<syntaxhighlight lang="maxima">
(%i18) sum_to_n (n) := block ( [i : 1, total : 0],
loop,
total : total + i,
i : i + 1,
if i <= n then go (loop),
total)$
(%i19) sum_to_n(25);
(%o19) 325
(%i20) n;
(%o20) n
(%i21) i;
(%o21) i
(%i22) total;
(%o22) total
</syntaxhighlight>
Note the following:
* <code>'''block ([ i : 1,total : 0], ...)'''</code>: The list argument creates a local environment with local identifiers <code>i</code> and <code>total</code>. The function argument <code>n</code> is also a local identifier.
* <code>'''loop'''</code>: This label serves as a target inside the <code>block</code> expression to where <code>go (loop)</code> can jump.
* <code>'''if i <= n then go (loop)'''</code>: This conditional expression causes the <code>go (loop)</code> operator to be evaluated if the condition is <code>true</code>.
* <code>'''total'''</code>: The value of this local identifier is the returned value of the <code>block</code> expression.
It should also be worth noting that the identifiers <code>n</code>, <code>i</code>, and <code>total</code> have local values assigned within the <code>block</code> expression, but their global values are themselves. Also notice that the identifiers <code>i</code> and <code>total</code> were both declared local and assigned initial values within the <code>block</code> list argument.
The ''go-to'' label argument of the <code>go</code> operator must be the name of a tag appearing within the same block expression. The <code>go</code> operator cannot be used to go to a tag in a different <code>block</code> expression. There is nothing special about the <code>loop</code> identifier name used for the go-to tag in this example. Other identifiers could be used, but they must be atomic.
Another way to modify a <code>block</code> expression evaluation sequence is by way of the <code>throw</code> operator.<syntaxhighlight lang="maxima">(%i32) /* Define a function using a block expression that searches
for a specific condition and a throw value to catch */
find_element (target_list, threshold) := block (
[found_val : false], /* local identifier value */
catch(
for x in target_list do
(
if x > threshold then
(
/* Immediately exit the block and
return this value */
throw (x)
)
),
/* This string is returned only if the do loop
finishes without a throw to catch */
"No element exceeded the threshold"
)
)$
(%i31) /* Test the block */
find_element ( [10, 20, 55, 80], 50 );
(%o31) 55</syntaxhighlight>This example unpacks as follows:
<code>'''catch (...)'''</code>: This expression creates a target scope that ''"catches"'' the value of any <code>throw</code> expression evaluated within that scope.
<code>'''throw (x)'''</code>: When Maxima encounters this operator, it immediately stops evaluation of the <code>do</code> loop expression '''''and the rest of the''''' <code>block</code> '''''expression.''''' It jumps directly out of the scope of the <code>catch</code> expression, returning the value of <code>x</code> as the value of the entire <code>catch</code> expression.
==== Nested Block Expressions ====
<code>block</code> operators may appear within other block expressions as arguments – '''''nested''''' <code>block</code> expressions. A local environment with local identifiers may be created for nested block expressions. Local values for identifiers, if declared by a first <code>block</code> operator list argument, are created each time a nested <code>block</code> is evaluated.
However, identifiers with global values that have not been declared as local within any <code>block</code> expressions, are global values for nested <code>block</code> expressions as well as enclosing <code>block</code> expressions. Likewise, local identifiers of any enclosing <code>block</code> expression have values that are global within any enclosed blocks, if not declared as local within the enclosed block. If the value of an identifier is not local in a <code>block</code> expression, its value is the value most recently assigned by an enclosing <code>block</code> expression, if any value has been assigned. Otherwise, it is the value of the identifier in the global environment. <syntaxhighlight lang="maxima">
(%i23) z : 2^(1/3);
(z) 2^(1/3)
(%i24) /* Outer block starts */
block
(
[x : 10, y : 20],
/* values of x and y declared local to outer block */
/* Inner block starts */
block
(
[y : 99, z : 100],
/* values of y and z declared local to inner block */
print ("Inside inner block:"),
print ("x =", x, "is the value of x from outer block"),
print ("y =", y, "is the local value of y of outer block"),
print("z =", z, "is the local value of z of inner block")
),
/* Inner block ends */
/* Outer block resumes */
print ("Back in outer block:"),
print ("x =", x, "is the value of x from outer block"),
print ("y =", y, "is the restored value of y of the outer block"),
print ("z =", z, "is the value of z global to both blocks")
/* Outer block ends */
)$
Inside inner block:
x = 10 is the value of x from outer block
y = 99 is the local value of y of outer block
z = 100 is the local value of z of inner block
Back in outer block:
x = 10 is the value of x from outer block
y = 20 is the restored value of y of the outer block
z = 2^(1/3) is the value of z global to both blocks
</syntaxhighlight>
==== Values, Properties, and the <code>local</code> Operator ====
The expression <code>local (v<sub>1</sub>, v<sub>2</sub>, ... , v<sub>m</sub>)</code> within a <code>block</code> expression saves the '''''properties''''' associated with the symbols <code>v<sub>1</sub>, v<sub>2</sub>, ... , v<sub>m</sub></code>, removes any properties before evaluating other expressions, and restores any saved properties on exit from the block.
Because Maxima is an application based on the Common Lisp programming language, it utilizes Lisp '''''symbol''''' structure. Lisp symbols are objects that carry their own "dictionary" of attributes. A Lisp symbol's internal property list (''plist'') is a built-in data structure attached directly to a symbol. Maxima uses this underlying Lisp symbol structure to associate '''''properties''''' with Maxima identifiers.
Properties of identifiers can be ''declared explicitly'' by users. <syntaxhighlight lang="maxima">
(%i23) declare (x, real);
(%o23) done
</syntaxhighlight>
However, some identifier property declarations are ''implemented implicitly'' as properties of a symbol, including <code>:=</code>, <code>array</code>, <code>dependencies</code>, <code>atvalue</code>, <code>matchdeclare</code>, <code>atomgrad</code>, <code>constant</code>, <code>nonscalar</code>, <code>assume</code>, and some others. Below is a description of how each of those specific declarations is implemented as a property under the hood:
====== Functions and Arrays ======
* '''<code>:=</code> (Function Definition):''' When you define a function using <code>f(x) := x^2</code>, the actual expression (<code>x^2</code>) and its argument list (<code>x</code>) are stored as a property of the symbol <code>f</code>.
* '''<code>array</code>:''' When you declare or use a subscripted array (like <code>a[i]</code>), the array type, dimensions, and memory pointer are attached as a property to the symbol <code>a</code>. This differentiates it from a standard scalar variable.
====== Calculus and Dependencies ======
* '''<code>dependencies</code>:''' If you declare <code>depends(y, x)</code>, Maxima attaches a dependency list property to <code>y</code> noting that it functionally depends on <code>x</code>. This tells the <code>diff</code> (differentiation) engine not to treat <code>y</code> as a constant relative to <code>x</code>.
* '''<code>atvalue</code>:''' When you define a specific value for an expression at a boundary point (e.g., <code>atvalue(y, x=0, 1)</code>), this boundary constraint is stored as an evaluation property on the symbol <code>y</code>.
* '''<code>atomgrad</code>:''' This assigns a specific gradient or derivative to an atomic identifier (e.g., telling Maxima what (df/dx) is explicitly). Maxima saves this rule as a gradient property on that symbol.
====== Pattern Matching and Rules ======
* '''<code>matchdeclare</code>:''' Used in Maxima's pattern-matching system (like <code>tellsimp</code>). When you type <code>matchdeclare(x, freeof(a))</code>, Maxima attaches a predicate property to <code>x</code>. When a pattern rule runs, Maxima looks at property list of <code>x</code> to see what conditions a matching expression must meet.
====== Mathematical and Evaluation Attributes ======
* '''<code>constant</code>:''' Declaring <code>declare(c, constant)</code> places a "constant" flag on property list of <code>c</code>. Core routines (like integration and differentiation) check this flag to know they can pull <code>c</code> out of integrals or differentiate it to zero.
* '''<code>nonscalar</code>:''' Tells Maxima to treat a symbol as a matrix or vector rather than a regular number. This property changes how operators like <code>.</code> (non-commutative multiplication) treat the symbol.
* '''<code>assume</code>:''' When an expression such as <code>assume(x > 0)</code> is used, Maxima's database system (<code>context</code>) assigns facts and properties (like <code>pos</code> or <code>nonnegative</code>) to the symbol <code>x</code>, allowing the simplifier to safely reduce expressions like <code>sqrt(x^2)</code> to <code>x</code>.
The effect of the <code>local</code> operator is to make such declarations effective only within a <code>block</code> expression. Otherwise, declarations within a <code>block</code> expression are considered to be global declarations.
So what does all of this mean to the typical Maxima user? It means that the list of identifiers that is the first argument of a <code>block</code> expression only declares the '''''values''''' of those identifiers as local to the <code>block</code> expression in which the list is an argument. Any properties of identifiers are not declared local by this means.
In order to declare '''''properties''''' of identifiers to be local to a <code>block</code> expression, the <code>local</code> operator must be used as an expression within the <code>block</code> expression. At the point where the local operator is evaluated as an argument of a <code>block</code> expression, the properties of the identifiers that are arguments to the <code>local</code> operator become local to the block. It is not an unfair criticism that perhaps the <code>local</code> operator should have been named something like <code>local_properties</code>. <syntaxhighlight lang="maxima">
(%i25) f (s) := cos (s);
(%o25) f(s):=cos(s)
(%i26) f (%pi/6);
(%o26) sqrt(3)/2
(%i27) block (local (f), f (s) := sin (s), f (%pi/6));
(%o27) 1/2
(%i28) f (s);
(%o28) cos(s)
</syntaxhighlight>In the above example, the '''''properties''''' of identifier <code>f</code> were declared to be local in the <code>block</code> expression using the <code>local</code> operator. However, global properties of the identifier <code>f</code> were not affected by the local function definition of <code>f</code> in the <code>block</code> expression. The global definition expression of <code>f</code> which is <code>cos (s)</code> and the argument <code>s</code> were not affected by the local definition of <code>f</code> because the properties of <code>f</code> were declared local to the <code>block</code> expression.
<code>block</code> expressions can be used for different purposes in the Maxima programming context. <code>block</code> expressions can be used in a stand-alone fashion or as part of an expression. However, <code>block</code> expressions are commonly used in expressions that define '''''functions''''', which is the topic that follows.
=== Functions ===
{| class="wikitable"
|+Function Definition Operators
and Identifiers
|<code>:=</code>
|<code>fundef</code>
|<code>buildq</code>
|-
|<code>::=</code>
|<code>lambda</code>
|<code>macros</code>
|-
|<code>define</code>
|<code>local</code>
|<code>slice</code>
|-
|<code>dispfun</code>
|<code>remfunction</code>
|
|-
|<code>functions</code>
|<code>setup_autoload</code>
|
|}
As a technical term '''''function''''' is aptly characterized as being overloaded. In the context of Maxima as a CAS, it has both a programming meaning and a mathematical meaning in terms of usage. In this book, the convention is to refer to what may otherwise be referred to as built-in Maxima functions as ''operators'' including those of built-in packages. By this convention, the term '''''function''''' in this book refers exclusively to expressions composed by the user by way of the <code>:=</code> or <code>define</code> operators.
As has been mentioned elsewhere in this book, what are conventionally termed ''operators'' that are built-in to Maxima, are at the level of underlying expression construction, Lisp procedures of one type or another. So it makes sense to simply refer to built-in Maxima functions and operators simply as operators one and all. This convention obviates the need for the repetitious use of qualifiers such as ''built-in Maxima'' and ''user-defined'' functions.
There are two operators used to define functions as follows:
# The <code>''''':='''''</code> operator
# The <code>'''define'''</code> operator
<var><code>f (x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>) ''':=''' expr</code>
<code>f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>] ''':=''' expr</code>
<code>f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>](y<sub>1</sub>, y<sub>2</sub>, ..., y<sub>m</sub>) ''':=''' expr</code></var>
<code>define (f</code> <code>(x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>), expr)</code>
<code>define (f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>], expr)</code>
<code>define (f</code> <code>[x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>](y<sub>1</sub>, y<sub>2,</sub> …, y<sub>m</sub>), expr)</code>
<code>define (funmake (f, [</code><code>x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>]), expr)</code>
<code>define (arraymake (f, [</code><code>x<sub>1</sub>, x<sub>2,</sub> …, x<sub>n</sub>]), expr)</code>
<code>define (ev (</code><code>expr<sub>1</sub>, expr<sub>2</sub>))</code>
where <code>expr</code> is some Maxima expression that is commonly referred to as the ''function body''. As can be concluded from the above, each of these operators has different forms of syntax that can be used. In any case, the most significant differences between these two operators are in terms of the evaluation of the function body and the composition and identification of functions dynamically.
* '''Evaluation:'''
** The <code>:=</code> operator '''suppresses (quotes)''' the evaluation of the function body when this operator is first evaluated. It does not evaluate or simplify the function body until the function identifier itself is evaluated with arguments.
** The <code>define()</code> operator '''evaluates''' the function body when this operator is first evaluated. If the function body involves intermediate computations, substituted values, or extracted parts of expressions (like <code>rhs()</code> or derivative results), the <code>define()</code> operator includes the evaluated results of those directly into the function body.
* '''Dynamic Function Composition and Identifiers:'''
** Function identifiers cannot easily be composed dynamically on the left-hand side of the <code>:=</code> operator when used inside programmatic loop expressions or in scripts.
** The <code>define()</code> operator accepts expressions like <code>funmake</code> or evaluated symbols as its first argument, allowing the composition and identification of functions dynamically during evaluation.
So, there are in general two different operators that can be used to define and evaluate functions. The choice by the Maxima user between these two operators depends on the purpose and context.
==== Function Definition Using the <code>:=</code> Operator ====
For the purpose of understanding the two ways of defining functions, consider the following example which is elementary, but in terms of clarification is not merely simple:<syntaxhighlight lang="maxima">/* "kill" all previously used identifier and values */
(%i29) kill (all);
(%o0) done
/* assign identifier x the global value of 5 */
(%i1) x : 5;
(x) 5
/* define f as a function with local argument x */
(%i2) f (x) := x;
(%o2) f(x):=x
/* evaluate f at local value of x is 3 */
(%i3) f (3);
(%o3) 3
/* the global value of x is not affected */
(%i4) x;
(%o4) 5
/* show the definition expression of the function named f */
(%i5) fundef (f);
(%o5) f(x):=x</syntaxhighlight>'''Function Definition Using the''' '''<code>define</code> Operator'''<syntaxhighlight lang="maxima">
/* define a function with identifier g with a
local argument y and with a function body
of identifier x */
(%i3) define (g('x), x);
(%o3) g(x):=5
/* identifier x of the function body is evaluated */
/* identifier x as an argument of g is local in scope */
(%i4) fundef (g);
(%o4) g(x):=5
/* the same identifier x used in three different roles */
/* used as the global name of a function x */
/* used as a local argument of a function */
/* used as an unevaluated expression for a function body */
(%i7) x(x) := x;
(%o7) x(x):=x
(%i9) x(3);
(%o9) 3
(%i10) x;
(%o10) 5
(%i8) fundef (x);
(%o8) x(x):=x
(%i11) define (x('x), x);
(%o11) x(x):=5
(%i12) fundef (x);
(%o12) x(x):=5
</syntaxhighlight>The purpose of this example is not to encourage this sort of syntax as a typical choice for identifiers and function definitions. The purpose is to clarify how Maxima implicitly determines the scope and meaning of identifiers used for function definition in the absence of any explicit user stipulations.
It should be noted that the <code>define</code> operator not only evaluates the expression that is the function body, it also evaluates the arguments of the function identifier that is the first argument of the <code>define</code> operator. Since there is a global value of the identifier <code>x</code> of <code>5</code>, it was necessary to suppress evaluation (quote) the argument in the expression <code>(%i12) define ('x), x);</code> as otherwise an error would be the result:<syntaxhighlight lang="maxima">
/* define a new function named x */
(%i14) define (x('x), 'x^2);
(%o14) x(x):=x^2
/* check the definition of the new function named x */
(%i15) fundef (x);
(%o15) x(x):=x^2
/* the identifier x has a global value */
(%i16) values;
(%o16) [x]
/* the global value of identifier x is 5 */
(%i17) x;
(%o17) 5
/* the suppressed global value 'x of identifier x is x */
(%i18) 'x;
(%o18) x
/* not quoting the global value of identifier x is an error */
(%i19) define (x(x), 'x^2);
define: in definition of x, parameter must be a symbol and must not be a system constant; found: 5
-- an error. To debug this try: debugmode(true);
</syntaxhighlight>
==== Understanding the Differences Between the <code>:=</code> and <code>define</code> Operators ====
In cases such as these, the suppression of evaluation by quoting is a user stipulation as to evaluation. Users must be aware of these differences between the two operators (<code>:=</code> and <code>define</code>) for the purpose of function definition in order to achieve what is intended and to avoid errors,<syntaxhighlight lang="maxima">
(%i20) f (x) := 3*x^3 + 4*x - 5;
(%o20) f(x):=3*x^3+4*x-5
(%i21) fundef (f);
(%o21) f(x):=3*x^3+4*x-5
(%i22) f(2);
(%o22) 27
(%i23) define (f (x) , 3*x^3 + 4*x - 5);
define: in definition of f, parameter must be a symbol and must not be a system constant; found: 5
-- an error. To debug this try: debugmode(true);
(%i24) define (f ('x) , 3*x^3 + 4*x - 5);
(%o24) f(x):=390
(%i25) define (f ('x) , '(3*x^3 + 4*x - 5));
(%o25) f(x):=3*x^3+4*x-5
(%i26) fundef (f);
(%o26) f(x):=3*x^3+4*x-5
(%i27) f(2);
(%o27) 27
</syntaxhighlight>What is true in the case of these elementary examples is true in general for function definitions involving multiple arguments:<syntaxhighlight lang="maxima">
/* x has a global value of 5 while y is local to g */
(%i28) g (x, y) := x^3 - y^2;
(%o28) g(x,y):=x^3-y^2
(%i29) g (6,2);
(%o29) 212
(%i30) define (g('x, y), 'x^3 - y^2);
(%o30) g(x,y):=x^3-y^2
(%i31) values;
(%o31) [x]
(%i32) g (6,2);
(%o32) 212
</syntaxhighlight>The <code>define</code> operator is a good choice in cases where an existing expression is used as the function body:<syntaxhighlight lang="maxima">
(%i33) /* assign an expression to identifier expr */
expr : diff('x^3, 'x); /* Returns 3*x^2 */
(expr) 3*x^2
(%i34) /* evaluate expr and define h (x) := 3*x^2 */
define (h ('x), expr);
(%o34) h(x):=3*x^2
</syntaxhighlight>In cases in which functions require local variables or more than one expression for the function body, use the block operator:<syntaxhighlight lang="maxima">
(%i35) remvalue (x);
(%o35) [x]
(%i36) values;
(%o36) [expr]
--> power_sum (x, y) := block (
/* values of these identifiers are explicitly local to the function */
[sqx, sqy],
/* unevaluated identifiers x and y are local arguments of the function
and values of these identifiers are implicitly local to the function */
sqx : x^2,
sqy : y^2,
sqx + sqy /* the value of the function */
)$
(%i37) fundef (power_sum);
(%o37) power_sum(x,y):=block([sqx,sqy],sqx:x^2,sqy:y^2,sqx+sqy)
(%i38) power_sum (3,4);
(%o38) 25
</syntaxhighlight>The <code>define</code> operator could also be used to define this function, but with different definition values as a consequence:<syntaxhighlight lang="maxima">(%i39) define (power_sum (x,y),
block (
[sqx,sqy],
sqx : x^2,
sqy : y^2,
sqx + sqy
)
)$
(%i40) fundef (power_sum);
(%o40) power_sum(x,y):=y^2+x^2
(%i41) power_sum (3,4);
(%o41) 25</syntaxhighlight>The function definition of <code>power_sum</code> is different using the <code>define</code> operator instead of the <code>:=</code> operator. The value of the function when referenced with arguments (<code>power_sum (3,4)</code>) is the same in both cases – <code>25</code>. However, in general for defining functions, this may not be the case. The choice between these two operators depends on the intentions of the user.
==== Practical Considerations Related to Function Composition ====
In general, programming is a technical skill as well as a subjective art. So, absolute rules are not offered here. For practical purposes some "guidelines" are offered here that may be useful for Maxima function composition as well as Maxima programming in general:
*
*
*
*
*
Consider the following linear algebraic equation:
<math display="block">3y - 7x = 10</math>
As an example suppose the value that is sought is the slope <code>m</code> of this equation, and in general, the slope of any linear equation regardless of the form. <syntaxhighlight lang="maxima">/* assign the linear equation to an identifier */
(%i42) lineqn : 3*y - 7*x = 10;
(lineqn) 3*y-7*x=10
/* solve the linear equation for y */
(%i43) solve([lineqn], [y])
(%o43) [y=(7*x+10)/3]
/* use the index [1] of the list to get the solved equation */
(%i44) solve([lineqn], [y])[1]
(%o44) y=(7*x+10)/3
/* use the rhs operator to get right-hand side */
(%i45) rhs(solve([lineqn], [y])[1]);
(%o45) (7*x+10)/3
/* use the expand operator change the RHS */
(%i46) expand(rhs(solve([lineqn], [y])[1]));
(%o46) (7*x)/3+10/3
/* use the coeff operator to get the coefficient of x */
(%i47) coeff(expand(rhs(solve([lineqn], [y])[1])),x,1);
(%o47) 7/3
/* define the function with an argument eqn for lineqn */
(%i48) m (eqn) := coeff (expand (rhs (solve ([eqn], [y])[1])),x,1)$
/* check the function definition */
(%i49) fundef (m);
(%o49) m(eqn):=coeff(expand(rhs((solve([eqn],[y]))[1])),x,1)
/* reference the function using lineqn as an argument */
(%i50) m (lineqn);
(%o50) 7/3
/* assign a different linear equation to lineqn */
(%i51) lineqn : x = 6*y + 13;
(lineqn) x=6*y+13
/* reference the function using lineqn as an argument */
%i52) m (lineqn);
(%o52) 1/6</syntaxhighlight>The function body of this example will result in an error if it is used with the <code>define</code> operator:<syntaxhighlight lang="maxima">
(%i53) define (
m (eqn),
coeff (expand (rhs (solve ([eqn], [y])[1])),x,1)
)$
inpart: invalid index 1 of list or matrix.
-- an error. To debug this try: debugmode(true);
</syntaxhighlight>This error is a consequence of the evaluation that occurs when using the <code>define</code> operator. In this case, this evaluation results in a reference to the indexed value of a list object that does not exist when evaluation occurs during definition – <code>solve ([eqn], [y])[1]</code>.
==== Memoizing Functions ====
The functions discussed so far are often referred to as '''''ordinary functions'''''. The arguments of ordinary functions are enclosed using parentheses – <var><code>(x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>)</code>.</var> Function definition forms which include arguments enclosed by brackets (as in <var><code>[x<sub>1</sub>, x<sub>2,</sub> ..., x<sub>n</sub>]</code></var>) are called '''''memoizing functions'''''.
Memoizing functions can be categorized both as functions and as data structures – specifically a ''hashed array'' of values. Memoizing functions are also referred to as '''''array functions'''''. In any case, memoizing functions can be defined using either the <code>:=</code> operator or the <code>define</code> operator.
If the form of the function definition expression is <code>f [x<sub>1</sub>, x<sub>2</sub>,..., x<sub>n</sub>] := expr</code> The function body <code>expr</code> is evaluated once for each individual value of the arguments, and that value is the value of the function, without again evaluating the function body, whenever referenced using arguments that have those same values.
Once evaluated during a function reference with arguments, that value of a memoizing function is thereby "frozen" in other words. This frozen value also becomes an instance of a hashed array data structure that can be referenced by way of the value of the index used as an argument when first evaluated.
In keeping with previous practice, the examples provided here are intentionally elementary for the purpose of demonstrating and clarifying the technical aspects involved. There is thereby no intention to convey that the composition of function definition expressions with multiple arguments and complex expressions for the function body is ruled out or of lesser practical value. <syntaxhighlight lang="maxima">/* define a memoizing function f */
/* x and n may serve as both arguments and array indices */
(%i54) f [x, n] := x^n;
(%o54) f[x,n]:=x^n
/* check the array information for f */
(%i55) arrayinfo (f);
(%o55) [hashed,2]
/* f does not appear in the list of functions */
(%i56) functions;
(%o56) [m(lineqn)]
/* reference f with argument values */
(%i57) f [2,3] ;
(%o57) 8
/* check the array information for f again */
(%i58) arrayinfo (f);
(%o58) [hashed,2,[2,3]]
/* list the array values of f */
(%i59) listarray (f);
(%o59) [8]
/* f does appear in the list of arrays */
(%i60) arrays;
(%o60) [f]
/* reference f with new argument values */
(%i61) f [5,2];
(%o61) 25
/* check the array information for f again */
(%i62) arrayinfo (f);
(%o62) [hashed,2,[2,3],[5,2]]
/* list the array values of f */
(%i63) listarray (f);
(%o63) [8,25]</syntaxhighlight>An expression of the form <code>define (f [x1, x2</code><code>,…, xn], expr)</code> may also be used to define the same memoizing function <code>f</code> in this case as the evaluation imposed by the <code>define</code> operator during evaluation of these function arguments and this function body that occurs makes no difference:<syntaxhighlight lang="maxima">
/* remove the function definition and values of f */
(%i64) remarray (f);
(%o64) [f]
/* the list of arrays is now empty */
(%i65) arrays;
(%o65) []
/* define the same memoizing function f using the define operator */
/* evaluation makes no difference to the definition of f in this case */
(%i66) define (f [x,n], x^n);
(%o66) f[x,n]:=x^n
/* reference f with different argument values */
(%i67) f [3, 2];
(%o67) 9
/* reference f again with different argument values */
(%i68) f [2, 5];
(%o68) 32
/* f again appears in the list of arrays */
(%i69) arrays;
(%o69) [f]
/* check the array information for f */
(%i70) arrayinfo (f);
(%o70) [hashed,2,[2,5],[3,2]]
/* list the array values of f */
(%i71) listarray (f);
(%o71) [32,9]
</syntaxhighlight>
==== Lambda Expressions ====
==== Special Forms of the <code>define</code> Operator ====
==== Some Techniques for Function Composition ====
=== Conditional Expressions – Special Operator <code>if</code> ===
=== Expressions for Iteration – Special Operator <code>do</code> ===
The special operator <code>do</code> is used to compose expressions for iteration. It is typically used with the following other special operators:
* <code>while</code>
* <code>unless</code>
* <code>for</code>
* <code>from</code>
* <code>thru</code>
* <code>step</code>
* <code>next</code>
* <code>in</code>
The general forms of <code>do</code> expressions Maxima supports are:
<code>for</code> variable: initial_value <code>step</code> increment <code>thru</code> limit <code>do</code> body
<code>for</code> variable: initial_value <code>step</code> increment <code>while</code> condition <code>do</code> body
<code>for</code> variable: initial_value <code>step</code> increment <code>unless</code> condition <code>do</code> body
<code>for</code> variable <code>in</code> list <code>do</code> body
<code>for</code> variable <code>in</code> expr <code>do</code> body
<code>for</code> variable <code>in</code> hash_table <code>do</code> body
=== Lisp and Maxima ===
{{BookCat}}
n08njxhouau06ghfb9mpr5beq1qsp91
Baiyi Zhuan
0
485570
4674793
4670905
2026-10-07T03:43:00Z
Taitesena
3485636
/* Ethnic Groups and customs */
4674793
wikitext
text/x-wiki
__NOTOC__
{{Translation header
| title = Baiyi Zhuan (百夷傳)
| author = Qian Guxun (錢古訓)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes = The Baiyizhuan, or, '''Biography of 100 Barbarians''', was compiled by Qian Guxun (錢古訓) with Li Sicong (李思聪) and sent to the Ming Dynasty but never formally published yet stored away. Copies emerged under both names however, most agree that both envoys wrote their own accounts of Myanmar to control the issue of Shan Kings on the borders. This version is attributed to Qian Guxun and sourced from Wikisource.
}}
== Front Matter ==
Translator Note:
For the non-letter transcripts, I have used complete manual lookups and translation to English. Due to the informal, poetic and bureaucratic language, I took external assistance to guide me including AI only to clarify the meaning of the characters in the context as I struggled to articulate how a 14th century bureaucrat would write their letters to rulers. I still manually wrote and formatted it with the lookups however, but have declared this for transparency as part of my workflow. However, the ethnic nomenclature and practices and historical events detailing which hold stronger merit have not lost validity in that respect.
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Premable to the purpose and context of the document and political situation.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|百夷,在雲南西南數千里,其地方萬里。景東在其東,西天古刺在其西,八百媳婦在其南,吐番在其北;東南則車里,西南則緬國,東北則哀牢〈(今之金齒衛也)〉,西北則西番、回紇。
|[The] One Hundred Barbarians are a few thosand '''Lǐ''' ('''里''') southwest of Yunnan. There region is very far away. '''Jǐngdōng''' ('''景東''') is east of them. The western regions Gǔ cì (古刺) [people] are west of them. South of them are the '''Eight Hundred Xífù''' ('''八百媳婦'''; Laos). North of them is Tibet. Southeast of them is Chē lǐ (車里), southwest is Burma, Northeast is '''Āiláo''' ('''哀牢''')<ref>The ancient tribal confederation of the Yongchang-Gaoligong area.</ref> Today, these are the gold tooth people. Northwest of them is
Western Barbarians and '''Huíhé''' ('''回紇'''; Uyghur people).
|-
|俗有大百夷、小百夷、漂人、古剌、哈剌、緬人、结些、吟杜、弩人、蒲蠻、阿昌等名,故曰百夷。
|The customs of Greater One Hundred Barbarians, the Lesser One Hundred Barbarians, Pyu people, Gǔ cì (古刺) [people], Hā cì (哈刺) [people], Burmese people, '''jiēsuò''' ('''结些''')<ref>There is reason to believe that these may be the Zo people. The Jie however is difficult to understand, likely a terminology transfer issue from intermediaries. Like the Mosuo people, I suggest this to be read as Jie Suo. If so, this would be the earliest mention of Zo terminology since Vincent Sangermono.</ref>, '''Yíndù'''('''吟杜''')<ref>These are only mentioned once in the document. Whether it's a mix-up with Hadu, or referring to Indians, is unknown.</ref>, Nǔ people (弩人; crossbowman people), Pú (蒲) and Āchāng (阿昌), among others, can be spoken of as the One Hundred Barbarians.
|-
|漢以前未嘗通中國,諸葛亮征蠻,亦抵怒江而止。唐天寶中,夷人始随爨歸王入朝。其眾各有部領,不相統屬。
|Before the Han dynasty, they had no contact with China.<ref>The main exception may be the Ailao people.</ref> '''Zhūgé liàng''' ('''諸葛亮''') went on an expedition against the barbarians, where he stopped right up against the '''Nùjiāng River''' ('''怒江'''). During the Tianbao Era of the Tang Dynasty, the barbarians began to follow the '''Cuàn''' ('''爨''') and '''Guī''' ('''歸''') clan leaders.<ref>The '''Cuàn''' ('''爨''') eventually founded the Kingdom of Nanzhao, which ruled powerfully in the region, competing with Tibet and Tang China.</ref> The people had their own leaders and were not unified.
|-
|元憲宗三年,世祖由吐番入麗江,自葉榆平至雲南〈(葉榆即大理也)〉。明年,命將兀良哈臺征降夷地。遂分为路二十、府四、甸四十有四、部二十有六、各設土官,置金齒都元帥府領之。有所督,委官入其地,交春即還,避瘴气也。
|In Emperor Xianzong's 3rd year in the Yuan Dynasty, Emperor Shìzǔ (世祖; Kublai Khan) entered '''Lìjiāng''' ('''麗江''') from Tibet and himself in '''Yèyú''' ('''葉榆'''; Present Day Dali) brought peace to Yunnan. The following year, [he] commanded General UriyangKhadai to pacify the barbarian lands. The region was transformed into twenty circuits, four prefectures, forty-four districts and twenty-six departments, each with indigenous officials overseen by the Gold Teeth Commander in Chief.<ref>A Tai Shan Leader likely.</ref> Officials were appointed to administer certain lands, returning by spring to avoid malarial miasma.
|-
|至正戊子,麓川土官思可發數侵扰各路,元帥搭失把都討之,不克。思可發益吞并諸路,而遣其子滿散入朝,以輸情款。雖奉正朔,納職貢,而服用制度,擬於王者。思可發死,子昭併發立。八年,傳其子臺扁。踰年,臺扁從父昭肖發殺之而自立,期年,盗殺昭肖發,眾立其弟思瓦發。
|In the the 8th year of the Zhizheng era ('''1348 AD''') Lùchuān (麓川) indigenous chief '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) had been countlessly harassing and invading every road. The Commander-in-Chief '''Dāshībǎ''' ('''搭失把''') sent armed forces to the capital but was unable to. '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) annexed further circuits and dispatched his son '''Mǎnsàn''' ('''滿散''') to the imperial court to offer terms of service. Although they accepted tribute and the official calendar of the Ming dynasty, their clothes and administration resembled that of a monarchy. '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) died, his son Zhāo bìngfā ('''昭併發'''; Hsö Pem Hpa) was established. Eight years later it passed to '''Táibiǎn''' ('''臺扁'''; Hsö Siu Hpa). A year later, '''Táibiǎn's''' ('''臺扁'''; Hsö Siu Hpa) uncle '''Zhāo xiàofā''' ('''昭肖發'''; , Hsö Kap Hpa) killed him himself and seized power. A year later, bandits killed '''Zhāo xiàofā''' ('''昭肖發'''; Hsö Kap Hpa) and established his younger brother '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) [as ruler].
|-
|國朝洪武辛酉,平雲南。明年,思瓦發寇金齒。是冬,思瓦發略于者闌、南甸。其屬達鲁方等輙立滿散之子思侖發,而殺思瓦發於外。即譴使貢白象、犀、馬、方物於朝。廷議不忍絕以化外,乃命福建左參政王鈍率雲南部校郭京美等,諭以向背利害,約以每歲貢獻之率,而遂内附。於是授思侖發为麓川平緬軍民宣慰。丙寅,復寇景東。明年,部屬刁思朗犯定邊,天子命西平侯沐英總兵敗之,獲刁思朗,夷人懼服。上以遠人不加約束,故官稱制度皆從其俗。
|In the current dynasty, in the 58th year (Xinyou) of the Hongwu Emperor ('''1381 A.D.'''), Yunnan was pacified. The next year, '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) plundered the Gold Teeth barbarians. That winter, '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) captured the territory of '''Zhělán''' ('''者闌''') and '''Nándiàn''' ('''南甸'''). His subordinate '''Dálǔfāng''' ('''達鲁方''')placed '''Mǎnsàn's''' ('''滿散''') son, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) as ruler and killed '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) when outside. The offered tribute included white elephants, rhinoceroses, horses and other local products. The palace could not bear to cut ties with outside spheres of influence and commanded the Fujian Left Vice Official '''Wáng Dùn''' ('''王鈍''') to lead in the checking of the city walls of Yunnan, order discussions of pros and cons of allegience, discuss the annual tribute rate and secured their submission. He conferred '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) as the Burma Pacification Commissioner. In the third year ('''1386 A.D.'''), he returned to invade '''Jǐngdōng''' ('''景東'''). The next year, his subordinate '''Diāosīlǎng''' ('''刁思朗''') invaded '''Dìngbiān''' ('''定邊'''). The Emperor ordered Marquis of '''Xīpíng''' ('''西平''') '''Mù yīng''' ('''沐英''') to lead an army to defeat him where he caught '''Diāosīlǎng''' ('''刁思朗'''). The barbarians became fearful and submitted. In order not to restrict those far-away peoples, the official system and administration were all in their customs.
|-
|其下稱思侖發曰『昭』,猶中國稱君主也。所居麓川之地曰者闌,猶中國稱京師也。其屬則置『叨孟』以總統政事,兼領軍民。『昭錄』領萬餘人,『昭綱』領千餘人,『昭伯』領百人;領一伍者为『昭哈斯』,領一什者为『昭准』;皆屬於『叨孟』。又有『昭錄令』,遇有征调,亦與『叨孟』統軍以行。其近侍呼为『立者』,閽寺呼为『割斷』。大小各有分地,任其徭賦。
|'''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) is called '''Zhāo''' ('''昭'''), like how China uses "Lord". '''Lùchuān's''' ('''麓川''') [ruler's] dwelling place is called '''Zhělán''' ('''者闌'''), like how China uses the term "Capital". Their subordinates are known as '''Dāomèng''' ('''叨孟'''), who generally handled political affairs while simultaneously leading the military and civilians. '''Zhāolù''' ('''昭錄''') led over ten thousand households, '''Zhāogāng''' ('''昭綱)''' led over a thousand households, '''Zhāobó''' ('''昭伯''') led a hundred households. Those who led five soldiers were known as '''Zhāohāsī''' ('''昭哈斯'''), those who led ten soldiers were known as '''Zhāozhǔn''' ('''昭准'''). Each [of these] were part of the '''Dāomèng''' ('''叨孟'''). There is also '''Zhāolùlìng''' ('''昭錄令''') who also happen to carry out conscription for the '''Dāomèng''' ('''叨孟''') to gather an army to lead. Their attendants were known as '''Lìzhě'''('''立者'''). Doorkeepers of Buddhist temples were called '''Gēduàn''' ('''割斷'''). Big or small each had distributed land appointed and endowed to them as compulsory servicefor corvee and taxes.
|-
|上下僭奢,雖微職亦繫鈒花金銀帶。貴賤皆戴筍籜帽,而飾金寶於頂,如浮圖狀,懸以金玉,插以珠翠花,被以毛纓,綴以毛羽。貴者衣綺麗。每出入,象馬僕從滿途。象以銀鏡數十聯綴於羈靮,緣以銀釘,鞍上有闌如交椅狀,藉以裀褥,上設錦障蓋,下懸銅響鈴,坐一奴鞍後,執長鉤驅止之。遇貴於己者,必讓途而往。凡相見必合掌而拜,習胡人之跪。長於己者必拜跪之,言則叩頭受之。叨孟以下見其主,則膝行以前,二步一拜,退亦如之。執事於貴人之側,雖跪終日無倦狀。貴人之前過,必磬折鞠躬。宴会則貴人上坐,其次列坐於下,以逮至賤。先以沽茶及蒌葉、檳榔啖之(沽茶者,山中茶葉,春夏間采煮之,實於竹筒内,封以竹箬,過一二歲取食之,味極佳,然不可用水煎飲)。次具飯,次進酒饌,俱用冷而無熱。每客必一仆持水瓶側跪,俟嗽口盥手而後食。食畢亦如之,而後起。客十則十人各行一客。酒或以杯,或用筒(筒以蕨楷,或用鵝翎管連贯,各長丈餘,漆之而飾以金,假若一酿酒,則漬以水一滿瓮,插筒手中,立標以驗其盏數,人各以次舉筒咂之。咂酒一盏,仍漬水一盏,傳之次客,味甚佳,至淡,水方止,俗呼为咂酒)。酒與食物必祭而後食,食不用筯。酒初行,一人大噪,眾皆合之,如此者三,乃舉樂。樂有三等:琵琶、胡琴、等笛、響盏之類,效中原音,大百夷樂也。笙阮、排簫、箜篌、琵琶之類,人各拍手歌舞,作緬國之曲,緬樂也。銅饒、銅鼓、響板、大小長皮鼓,以手拊之,與僧道樂頗等者,車里樂也。村甸間擊大鼓,吹芦笙,舞干为宴。長者授卑賤酒食,必叩頭受之,易以他器而食。食畢,仍叩頭而退。
|The people, both high and low [in status], were extravagantly overstepping [in their dress]. Even small duty officials fastened engraved, patterned belts of gold and silver. [Both] nobles and commoners wore bamboo-shoot-woven hats and decorated them with gold, like a crown resembling pagodas, hanging with jade and gold and inserted with pearls and colourful gems, covered with tassels and quilted feathers. The clothes of wealthy individuals are enchantingly beautiful. Whenever one goes out, elephants, horses, and servants fill the roads. The elephants have about ten or so silver mirrors attached to their reins and bridles, edged with silver nails. On the saddle, there is a railing resembling an old wooden-style armchair with cushion-like under padding, a mattress, and brocade above the top and copper ringing bells below [it]. A servant was seated behind the saddle, grasping a long hook to urge and stop [the elephant]. Upon encountering a wealthy person, they certainly yield the way to them. Commonly, when meeting one another, they certainly clasp hands and bow, adopting the kneeling [custom] of the Northwestern peoples [of China]. Elders to oneself are bowed to and kneelt before, and when speaking, they are subjected to kowtow to them. Those below '''Dāomèng''' ('''叨孟'''), seeing their masters, kneel before them, every two steps a bow, and repeat it during withdrawal. Attendants are at a wealthy person's side, despite kneeling all day, do not appear tired. When a wealthy person passes by, they bow deeply.<ref>The sentence is poetically describing the bow as "bending the body as to resemble 磬, a type of percussion instrument". </ref> In banquets, the wealthy are seated first, then next in line are the ones below them and so on, by means to the lowest [of status]. First, they are given tea, areca nuts and betel leaves (The given tea leaves are [harvested] in mountains and brewed in Spring and Summer, stuffed into bamboo tubes, sealed with bamboo leaves for one to two years, ready for consumption, tasting extremely fine, however, cannot be brewed by boiling in water for drinking. Next [to] be provided is rice, following that is wine and delicacies are are [consumed] cold and unheated. Every guest has a servant kneeling on the side holding a water bottle, waiting to cough and rinse the mouth and hands with water and then eat. [Upon] finishing eating this is repeated and then they rise. In the case of ten guests, ten people attend them, one per guest. Wine is either served in a cup or a tube (The tubes are made from Pistachio Bracken or goose plume linked together). Every length is one '''Zhàng''' ('''丈;''' approximately 3m) painted and decorated with gold. If brewing wine, one pot of water is added. Inserting the tube into the hand, it is used to check for the number of cups [it can hold]. Each person lifts the tube to sip from it. After sipping a cup, a cup of water is added, and it is passed to the next person; the taste is exceedingly fine. When the wine's taste dilutes, water is stopped, and this is called '''sipping wine'''.) Wine and good must be sacrificed, and then they eat. Chopsticks are not used to eat. At the begining of the wine [ceremony], one person loudly shouts and multiple people all join in. This is done three times, and then music is played. There are three such types of music: Chinese lute, Huqin (Chinese fiddle) and the flute with ringing cups and so on. It imitates the sounds of the central region<ref>The Yellow River Basin area of China. </ref> and the Great White barbarians, too. Bagpipe, lutes, panpipes, harp, pipa and so on. People each clap their hands and dance. It is performed in Burmese tunes and music. Copper gong, bronze drum, castanets, big, small and long leather drums struck with the hand. It is similar to Buddhist and Taoist music, as well as '''Chēlǐ''' ('''車里''') music. Villages and suburbs have space for striking bass drums, blowing reed pipes and dancing for the feast. Elders give food and drink to the lowly [people], who certainly must bear to kowtow them to exchange utensils and eat. [Upon] finishing eating, they still kowtow and then retreat.
|-
|凡貿易必用銀,雜以銅,鑄若半卵狀,流通商賈間。官無倉庾,民無税粮。每年秋季,其主遣亲信部屬往各甸,计房屋征金銀,谓之取差發(房屋一間,大者征銀一两、三两,小者一两而止)。無中國文字,小事刻竹木,大事作緬书,皆旁行为记。刑名無律,不知鞭挞,轻罪則罚,重罪則死。或殺,或用人扱殺。或用象打,或投於水,或以绳帛缢。男婦不敢为奸盗,犯則殺之。
|All commercial trade must use silver, mixed with copper, cast to appear like a half egg [shape] to circulate among merchants. The government has no granaries,<ref>There are two characters for granaries, the second is for small private ones, signifying that most did not have this system at all. </ref> the people [likewise] have no grain tax. Every autumn, the owners dispatch trusted aides and subordinates to go to each suburb to calculate and levy households' gold and silver. This is called to go collect money. (For each house: large ones are taxed one or three [taels] of silver, small ones are taxed one tael.) There is no Chinese script; small matters are carved into bamboo or wood, big matters are written into Burmese script, all written horizontally for recording. No laws govern punishment; they do not know whipping or corporal punishment. Petty crimes are penalised, and serious crimes lead to death. Some are killed [directly], while some have another person employed to kill them. Some use elephants to crush them, some throw them in water, while some are hanged with ropes. Men and women do not dare commit adultery or robbery, to violate so will kill them.
|-
|所居無城池濠隍,惟编木立寨,貴賤悉构以草楼,無窗壁门户,时以花布障围四壁,以蔽风雨而已。邮傅一里設一小楼,數人守之,公事雖千里遠,报在顷刻。無軍民之分,聚則为軍,散則为民。遇有战斗,每三人或五人出軍一名,择其壮者为正軍,呼为『锡剌』。锡剌持兵御敌,余人荷所供。故軍行五六萬,战者不滿二萬。兵行不整,先後不一。多以象为雄势,战則缚身象上。裹革兜,被銅铁甲,用長镖干弩,不習弓矢。征战及造作用事,遇日月食則罢之,毁之。
|The [ruler's] dwelling place has no walls, water moats, trenches or dry moats, only wooden stockades erected. Both nobles and commoners all constructed thatched houses with no windows, ramparts or doors, just printed cloth covering around all four walls, as to cover [from] wind and rain and nothing more. Every mile, there was a small post office, a few people guarded it, [thus] documents even as far as a thousand miles can be reported instantly. There is no distinction between military and civilian [people]. Once assembled, they became soldiers; once scattered, they became civilians. Upon encountering a war, every three or five people would produce one soldier; they would select the strongest to become the principal armed force, known as '''Xīlà''' ('''锡剌'''). The '''Xīlà''' ('''锡剌''') grasped weapons to defend against the enemy, while surplus people carried to supply [them]. Hence, an army of fifty or sixty thousand will have fighters not filling twenty thousand. The soldiers were not organised; their rank formations were not uniform. Many used elephants for their imposing power; fighters tied their bodies onto the elephants. They wrapped leather into helmets, and were covered with copper mail plating, using long spears and crossbows, and did not practice bow and arrow. Any war or manufacturing encountering an eclipse would cease or [either] be destroyed.
|-
|所用多陶器,惟宣慰用金銀玻璃,部酋間用金銀酒器。凡部酋出,其器用、仆妾、财寶之類皆随之,從者千余,昼夜随所适,必作宴笑樂。
|Most utensils [they use] were pottery. Only the '''Xuānwèi''' ('''宣慰''') use gold, silver and glass. Tribal chiefs among them used gold, silver and wine cups. Commonly [when] tribal chiefs go out, their utensils, servants, concubines, money, jewels and so on all subsequently all follow him. He is accompanied by over a thousand followers. Day and night, wherever he subsequently goes, there will be feasts, laughter and music.
|-
|男子衣服多效胡服,或衣宽袖長衫,不识裙袴。其首皆髡,胫皆黥。不髡者殺之,不黥者眾叱笑,比之婦人。婦人髻绾於後,不谙脂粉,衣窄袖衫,皂統裙,白裹頭,白行缠,跣足。其俗賤婦人,貴男子,耕织徭役担负之類,雖老婦亦不得少休。嫁娶不分宗话,不重处女。年未笄,听與男子私,從至其家,男母为之濯足,留五六昼,遣歸母家,方通媒妁,置财礼娶之。凡生子,貴者浴於家,賤者浴於河,數日,授子於夫,仍服劳無倦。酋長妻數十,婢百余,不分妻妾,亦無鮅忌。男女浴於河,雖翁婦叔嫂,相向無耻。子弟有職名,則受父兄跪拜。父母亡,用婦祝尸,亲邻咸馈酒肉,聚年少环尸歌舞宴樂,婦人擊碓杵,自旦達宵,數日而後葬。其棺若馬槽,無蓋,置尸於中,抬往葬所,一人執刀持前导。及瘗,其生平所用器物,坏之於側而去。
|Many men's clothes mainly imitate non-Han clothing, or they wear wide-sleeved long gowns, not knowing skirts or trousers. Their heads are all tattooed, their shins are all tattooed. Untattooed heads would be killed, and untattooed legs would be laughed at and compared to women. Women tied their hair into a topknot at the back; they are not versed in cosmetics, and their clothes are narrow-sleeved garments [jackets] and a soap-style skirt. [Her] head is wrapped in white, her body is wrapped in white, and they go barefoot. Their custom is women, commoners, noblemen, must all undertake compulsory labour service and so on. Even old women must not rest a little. Marriage does not distinguish clan or language or virginity [of women]. Before even fifteen years, they are allowed private liaisons with men. She follows him to his home, and the man's mother washes her feet. She remains there for five or six days, [she] is then sent back to her mother's house. Then they communicate with a matchmaker and buy betrothal gifts to take her as a wife [for him]. Ordinarily with the birth of a child, a nobleman bathes in the home, while commoners bathe in the river. For a few days, she gives the child to her husband and continues to dress, toil, and work without tiring. The wives of a tribal chief number ten, his slave girls can surpass one hundred, there is no distinction between wife and concubine, also there is no '''Bìjì''' ('''鮅忌''').<ref>Unsure as to what this means. The first character is a type of fish and an extremely obsolete character not used anymore. It is a compound to something about jealousy, however I do not know what this compounded term relating to jealousy might be. Preliminary thought would be, the wives do not compete, or do not dread their hierearchy? </ref> Men and women bathe in the river, even old men, women, uncles, sister-in-laws [bathing] face to face have no shame. If a child has an office title, then they will be accepted, and the father and brothers will kneel and kowtow to him. When parents die, they use women to pray for the corpse. Relatives and neighbours all make an offering of wine and meat. They assemble young people around the corpse, singing and dancing, making merry. Women strike the pestle from dawn to night, and only after a few days, they bury the dead. The coffin seems like a horse trough, with a lid; they cover the corpse in the middle. They lift and carry the coffin to the burial place; one person holds a knife and leads the way. When the burial takes place, the objects the deceased had used during their life are broken beside the burial, and then people depart.
|-
|}
===Ethnic Groups and customs===
{| class="wikitable" style="text-align:center; width:80%;"
|+ A list of ethnic groups encountered and their traditions and general customs.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其俗,不祀先,不奉佛,亦無僧道。小百夷居其境之東北邊,或学阿昌,或学蒲蠻,或仿大百夷,其習俗不一。
|Their customs do not offer sacrifices [to ancestors], do not revere the Buddha. There are no Buddhists and Daoists [among them]. The Lesser One Hundred Barbarians reside on the northeast border, following Āchāng ('''阿昌''')<ref>This is the earliest I've seen the Achang called by this name. In the 蠻書 they were assumed part of the 尋穿 instead. </ref> customs, following Pú ('''蒲''') customs and some imitate the Greater One Hundred Barbarians. Their customs are not the same (uniform).
|-
|車里,亦谓小百夷,其俗刺额、黑齒、剪發,狀如頭陀。
|[The people of] '''Chē lǐ''' ('''車里''')<ref>'''Chē lǐ''' ('''車里''') refers to the Cheli Military and Civilian Pacification Commissioners Office. It was a Tai State that located at Jinghong City in modern day Xishuangbanna in Yunnan.</ref>, are also called Lesser One Hundred Barbarians. Their customs are tattooing foreheads, blackening teeth and cutting hair. Appearing as if like ascetic monks.
|-
|哈刺,男女黑真黑。男子以花布为套衣,亦有效百夷制者;婦人髻在後,项系雜色珠,以娑罗布披身上为衣,横系於腰为裙(娑罗布即中國木棉布,坚厚,或织以青红纹)。仍环黑藤數百围於腰上,行缠用青花布,赤脚(蒲蠻、阿昌,事見《雲南志》)。
|'''Hā cì''' ('''哈刺'''), men and women are [both] black, truly black. Men use printed cloth<ref>g</ref> for covering themselves, also which the One Hundred bararians effectively manufacture; married women have top knots behind [their head]. It is tied at the back of their neck with various pearls and beads. '''Suō luó''' ('''娑罗''')<ref>'''Sarong''' today, however this appears to be a complex term with many copyediting issues historically, Brahmin drapes, Suoluolong, eventually describing a type of silk-cottob robe made from plant materials.</ref> are draped around their bodies as clothes, horizontally it connected at the waist and lower back as a skirt. ('''Suō luóbù pī''' ('''娑罗布披''') namely is the Chinese Cotton Tree (Bombax Ceiba) cloth, strong and thick, possibly weaved as blue, red patterns.) Yet it encircles black rattan several hundred times, wrapped at the waist and lower back, it wraps around [their leg] to be used as a blue printed cloth [as they're] barefoot.
([Used amongst the] Pú mán (蒲蠻), āchāng (阿昌), shì jiàn (事見); [according to the] The Yunnan Gazeteer<ref>Written by Fan Chuo of the 9th century, also known as 蛮书 (Barbarian Document)</ref>.)
|-
|古刺,男女色甚黑。男子衣服装飾類哈刺,或用白布为套衣。婦人如罗罗狀(罗罗見《雲南志》)。
|'''Gǔ cì''' ('''古刺''') [people] are coloured extremely black. The men's clothes, decorations and adornments closely resembled the '''Hā cì''' ('''哈刺'''), and they use white cloth as [outer] covering garments. Married women resemble the '''Luó luó''' ('''罗罗''') [people]. ([For the] '''Luó luó''' ('''罗罗''') see The Yunnan Gazetteer.)
|-
|漂人,男女衣服皆類百夷。婦人以白布缠頭,衣露腹,以红藤缠之,娑罗布为裙,两接,上短下長,男女同耕。
|Pyu people<ref>This is the last time a document mentions the existence of Pyu people, namely. The Burmese stopped mentioning them by the 12th century, as did the Persians in the 10th century. Their retention of it suggests that absorption was slower and that the Burmese and Pyu were still distinct, according to the envoys.</ref>, [the] men and women's clothes all resemble the One Hundred Barbarians. Married women wear white cloth wrapped around their head, their clothes expose their stomach/ naval. By means of red rattan winding around them, the '''Suō luó''' ('''娑罗''') [is worn] as a skirt. Two [cloths] connect, upper [cloth] is short, bottom [cloth] is long. Men and women [both] till [the fields].
|-
|緬人,色黑類哈刺,男女頭上以白布缠高三四尺,衣大袖白布衫,腰以下一布通前後便缠之,貴者布長二丈余,賤者不一丈。甚善水,嗜酒。其地有树,狀若棕,树之杪有如筍者八九茎,人以刀去其尖,缚瓢於上,過一宵則有酒一瓢,香而且甘,飲之輙醉。其酒经宿必酸,炼为烧酒,能飲者可一盏。有为僧者,以黄布为袈裟,袒右手,戒行極精,午後不飲食。婦人貌陋甚淫,夫少不在,則與他人私,遂为夫婦。以白布裹頭而披花为衣。
|Burmese people, [their] colour is black like the '''Hā cì''' ('''哈刺'''). Men and women [both] on their heads have white cloth wrapping around it [approximately] as long as three to four '''Chǐ''' ('''尺''';1.2 m-1.36 m). Their clothes are large-sleeved white cloth garments. Below the waist and lower back, one cloth goes all around to be wrapped around them. Expensive cloth is as long as two '''zhàng''' ('''丈'''; 6.2m-6.8m). Inexpensive [cloth] is not even one '''zhàng''' ('''丈'''; 3.1m-3.4m). They are extremely well-disposed to water and fond of wine. On their land, their trees appear as palm trees. They cultivate eight to nine stalks, with the tips of the leaves resembling bamboo shoots. The people take knives and cut off the tips. They bind a dried gourd ladle to it. After one night, it becomes a gourd of wine, fragrant and sweet to drink to intoxication. Their wine, undergoing [another] night, certainly becomes bitter; it gets refined into '''Shāojiǔ''' ('''烧酒''')<ref>A famous Tang Dynasty wine beverage.</ref>. [Heavy] drinkers can only drink one small cup. There are monks. Yellow cloth is used as Kasaya robes (Buddhist robes) with the right arm remaining bare. They strictly adhere to the utmost discipline. They do not eat or drink in the afternoon. Women's appearances are excessively plain, and they are promiscuous. If husbands are away briefly, they enter into relations with other men and succeed as a married couple. White cloth is wrapped around their head and draped on their shoulders in a printed way.
|-
|哈杜,巢居山林,無衣服,不识农业,惟食草木禽兽,善骑射。冷則抱巨石,山坡間往復奔走,以汗出为度。
|'''Hā dù''' ('''哈杜''') [people] reside in nests in mountain forests; they do not wear clothes. They have no knowledge of agriculture. Only eating vegetation and birds and creatures. They are adept at horses and archery. [When] cold, they grab a boulder and make running trips back and forth between mountainsides until they perspire out to the temperature.
|-
|弩人,目稍深,貌尤黑,额颅及口邊刺十字十余。
|'''Nǔ''' people ('''弩人'''; crossbowman people), [have] deep-set eyes, [their] appearance is outstandingly dark. Their forehead and mouth edges are tattooed with crosses more than ten times.
|-
|有结些者,從耳尖連颊皮破,以象牙为大圈,横贯之,以花布裹頭,而垂余布於後,衣半身衫,而袒其肩。婦人未详。其人居戛璃者多。
|[There] is some knotted "Zo" people<ref>This term is mentioned as an ethnic group in the introduction. Over here it is used more awkwardly however. Despite all this, however, it is the first use of the Zhexie/Jiexie term, which was popularised during the Qing era. However, this early, 些 Xie was actually Suo, like the Mosuo people. Hence, the name appears to be a misrendering of Zo people from an intermediary translator, possibly. Given this is in Kalay, this supports the fact that Zhexie stems from Jiesuo initially. </ref>, from the tips of the ears to the cheeks, the skin is pierced. Using ivory as a large ring, they pass it horizontally through [the pierced skin]. Printed cloth is wrapped around the head and hangs down onto their back as a partially wrapped robe and bears their shoulders. Nothing is known/reported concerning the women.<ref>Likely possibly meaning that the women are indistinguishable from men. An observation echoed by the British of the Zo people during the colonial era.</ref>. Many of these people habitat at '''Kalay'''.
|-
|諸夷言语習俗雖异,然由大百夷为君長,故各或效其所为。夷人有名不讳,無姓。
|Although the various barbarian languages and customs are different, they follow the Greater One Hundred Barbarians as their central ruler. Therefore, possibly each group imitates that they do. The Yi people have names but observe no naming taboos; they have no surnames.
|-
|無医卜等书。不知时节,惟望月之盈亏为候。有事惟鸡卜是决。疾病不知服药,以姜汁注鼻中。病甚,命巫祭鬼路側,病疟者多愈,病熱者多死。地多平川沃土,民一甸率有數十千户,眾置貿易所,谓之街子。婦人用锄地,事稼穑,地利不能尽,然多产牛、羊、鱼、果。
|There are no books on medicine and divination. They are unaware of seasons. Only the moon in its waxing and waning is observed. For matters, a chicken is used for divination. For diseases they do not know how to take medicine. They pour ginger juice into their noses. For extreme sickness, the shaman offers spirit sacrifices next to the road. Those suffering from malaria are likely to recover. Those with a fever are more likely to die. The land is flat with plains and fertile, the people of a district can lead up to ten thousand households. They install commercial trade posts known as ''street markets'' ('''街子'''; Jiē zǐ). Women hoe and weed the soil and [attend] matters to do with sowing and reaping. The productivity of land cannot be exhausted, as there are many ox, sheep, fish and fruits.
|-
|其气候:春夏雨,秋冬晴,腊月亦如春,昼暄夜冷,晓多烟雾,無霜,春秋烟瘴甚盛。
|Their climate: In spring and summer, it rains. In autumn and winter, it is clear. In the 12th Lunar month ('''December-Feburary''') it feels like spring. The daytime is warm, and the nighttime is cold. At dawn, there is a lot of fog. They have no frost. Spring and Autumn miasma carries an excessive level of malaria.
|-
|其飲食之异者:鳅、鳝、蛇、鼠、晴蜓、虫负、蛟、蝉、蝗、蚁、蛙、土蜂之類以为食;鱼肉等汁暨米汤信宿而生蛆者以为飲。
|Their food and drink are unusual in the following ways. Loach, eels, snakes, dragonflies, insects, aquatic animals, cicadas, locusts, ants, frogs, and scoliod wasps are all types of food. They drink the juice of fish, meat, and rice gruel, which, over two nights, gain maggots, which are eaten.
|-
|其草木禽兽之异:草則秋間數十百株结为一聚,地产此草,烟瘴尤甚。树木多有三四株结为連理。有大如斗之柑,有鲇頭鲤身之鱼,水牛頭黄牛身之牛,绵羊頭山羊身之羊。雄鸡多伏卵,亦有生卵者。者闌有一池,沸如汤,人多投肉熟之。
|Their plants and animals are unusual: in autumn, their grass joins from hundreds of stalks to cluster. The land these grasses grow on has an excessively strong malarial miasma. Trees often produce multiple stumps in a fusion. There are large tangerines as large as dippers. There is [a] fish with a sheatfish head and carp bodies. There are oxen with water buffalo heads and yellow ox bodies. There are sheep with sheep heads and mountain goat bodies. Roosters brood over eggs, there are also [males] that lay eggs. At '''Zhě lán''' ('''者闌''')<ref>On the Shan Myanmar and China border near Muse.</ref>, [the size of] ponds for boiling soup. People often cast mature meat in it.
|-
|境内所产珍物:雅琥、琥珀、犀、象、鹦鹉、孔雀、鳞蛇、脑、麝、阿魏、金、銀、玻璃之類。
|Within its borders are the following precious items it produces: elegant amber, amber, rhinoceros, elephant, parrots, peacocks, snake scales, brains, musk deer, Resina Furelae, gold, silver, glass types of products.
|-
|其山水险隘。北有高良弓山,横亘二百余里,高五十余里,與怒江相倚。西有馬安山,山有一关,若一人守关,萬夫难入。東为麓川江,可通舟楫。南與金沙江合而入於西海。南下交趾界。金沙江之南,有東胡、得冷、緬人三國。緬之西即西天也。
|The mountains have narrow, dangerous river passes. North there is the Gaoligong Mountains, it horizontally extends two hundred '''Lǐ''' ('''里'''), and is tall as five hundred '''Lǐ''' ('''里''') right next to the '''Nùjiāng''' ('''怒江'''). West is the '''Mǎ'ān Mountain''' ('''馬安山'''). The mountain has one mountain pass. If one person guards the pass, then ten thousand will struggle to enter. East is the '''Lù chuān River''' ('''麓川江'''). You can pass it in an oarboat. South is the '''Jīnshā River''' ('''金沙江''') which enters at the western sea. South it borders '''Jiāozhǐ''' ('''交趾'''; Vietnam). Further south of the '''Jīnshā River''' ('''金沙江''') are the three polities, which has '''Dōnghú''' ('''東胡'''; Eastern Barbarians), '''Dé lěng''' ('''得冷'''; Derung people) and '''Miǎn people''' ('''緬人'''; Burmese people). West of Burma lies the Western Regions<ref> A term for India and Central Asia, which were Buddhist.</ref>.
|-
|緬國古舍利國,又名狮子國,多佛塔。緬國與夷連歲横兵。洪武之亥冬,緬人诉於朝。丙子春,皇帝遣臣古训及桂阳李思聪至两國,諭以睦邻之义。
|Burma, formerly the '''Shèlì country''' ('''舍利'''), also known as the Lion Country, is filled with pagodas. Burma and the Yi Barbarians were in continuous warfare for years. During the reign of the Hongwu Emperor in the winter of the year of the boar ('''1395 A.D.'''), Burma issued a royal complaint. In Spring of the Year of the Rat, ('''1396 A.D.'''), the Emperor dispatched official Guxun and Li Cong of Guiyang to the two countries to order them to get on well as neighbours with righteousness.
|-
|}
===Statements and Relations between the Kingdoms===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Outcome of the envoys mission and political relations between Shans and Burmese.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其諭緬國王曰:
|In it, I addressed the King of Burma, saying:
|-
|『里路险遠,山川阻修,风殊俗异,此乃天造地設也。尔能勤使者,涉险遠,越邻邦以至中夏,其使者之难,冲烟突雾,晨進昏止,饥餐渴飲,吞吐烟岚,异风霜而方至。其为使者,不亦难乎!古人有云:诚君子將有事於遠,友千里之外,神交而志通。今萬里之外,尔能勤使而至,遠修其好,美絕古而惟今。然排难解纷之事,朕之旨意,恨不一言而正,使彼此各罢兵守,樂黎民於市野,民居共处,砃相邻而同井飲,籍雖两國之民,居处难分,惟存关市有讥,是其和也。若尔緬不主衅,夷不强凌,如此,雖弱自保,以奉天道。其或不听朕命,忿争不已,天將昭鉴,福善祸淫,迟速可待。鯩至,朕不多诫。但诚可以交天人,尔其审之,母忘朕諭。』
|The roads are dangerous, and far, mountains and rivers are obstructive and long. Their social ways and customs are different. This is what heaven and earth have established. Yet you are able to diligently [carry out your duties as an] envoy. Taking risks far, passing neighbouring countries to the Chinese heartland. Clashing with smoke, dashing through mist. Advancing at dawn and stopping at twilight, eating when hungry and drinking when thirsty. Breathing in and exhaling mountain vapours, enduring unfamiliar winds and frost before finally arriving. To be an envoy was this not difficult? The ancient people have a saying: <em>Truly, when a gentleman has affairs to undertake in distant places, he has friends a thousand <strong>Lǐ</strong> (<strong>里</strong>), their spirits commune in spirit and their intentions are mutually understood.</em> Now ten thousand '''Lǐ''' ('''里''') away, you can diligently envoy and arrive, from afar cultivate their friendship. However, regarding the matter of resolving difficulties, this is my intention. I lament that I cannot settle the matter in a single utterance as to cause both sides to cease war and guard their territory so that the common people might enjoy marketplaces and countryside. Let the people coexist [as] neighbours of white stone who drink from the same well. Although registered as the people of two countries, their dwellings are difficult to distinguish. Only the inspections at frontier markets will remain. This would be peace between them. If the Burmese do not initiate hostility, and the '''Yi''' do not forcefully oppress you, in this way, althought [one is] weak it may defend itself, as to follow the law of heaven. If they do not listen to my order, angry contention will not cease; heaven will see it clearly. Blessed will the good, and calamity will be brought on the transgressor, quick or slow; the consequences will come. <strong>Lún</strong> (<strong>鯩</strong>) arriving, I will not elaborate further; only sincerity can bring one into accord with heaven and humanity. You must consider this; do not forget my instruction.
|-
|諭思侖發曰:
|Above '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) spoke:
|-
|『朕中國先古圣人,驭顽礼德,各有条章。是条章也,列圣相继,守而行之,上下相安,黔黎樂业。何也?諸侯敬畏,世禄子孙,國祚绵長,乃九伐之功驗也。列國敢有凭弱犯寡者,天子發兵以眚之;贼贤害民者,亦發兵以伐之;暴内凌外,則兴師以坛之;野荒民散,則用兵以削之;负固不服,則舉兵以侵之;贼殺其亲,則正其罪以殺之;放弑其君,則明其罪以诛之;犯令凌政,則杜而絕之;内外乱,鸟兽行,則殄灭之。九伐之征如是也。尔思侖發,以中國较之,合问凭弱犯寡之由。何以見?歲以兵寇車里,不时侵掠八百,恃强犯緬;戛璃國小民寡,而已平之,斯说也,不過告诫之词。中國周临四夷,與諸酋長地里相接,居民亦相密迩,如此者,耳闻之邦若干,目擊之邦若干,朕未嘗恃强凭凌,絕灭其嗣者。雲南之地,已为我有,似乎尚强以取之,非也!乃元世子孙梁王者,恃元之苗裔,匿我有罪,納我逋逃,诱我邊守,是乃不得已而發问罪之師,非無故而兴師。此乃元运天更,其苗裔不当安处。况生事於我邻邦,其理势使然,夷如反掌。尔麓川之蠢,初擅兴金齒之役,次谋景東而寇定邊,理当大發精兵而较胜负。朕释而不较,未嘗强尔为約束之邦,听尔自为声教,今又几年矣。近闻蚕食邻邦,意在扩土地而擅有其眾,又將为我西南之役。噫,未可!古中國圣人有云:‘山川地理人物之類,乃神器也,非人强有,必天授然後得之’。尔思侖發不修邻邦之好,三面發兵,蚕食諸國,其贪也如是,其谋也如是。彼麓川周临之國,始古至今,各有主者,未嘗吞并。朕雖不能止尔,听尔自为,果天道使然,尔以人事应之,或为而可。噫!以朕戒尔守全則可,不守全而以全动,設若全亏,是为全亡,莫如守全以圖绵長,不亦美乎?』
|The ancient sages of my Middle Kingdom governed the unruly through ritual propriety and moral virtue, each had rule and regulations. These rules and regulations were arranged in successive order to preserve them and put them into practice. Those above and below lived in mutual harmony. The common people enjoyed their livelihoods. Why is that? Local rulers revered [central authority], the descendants inherited their stipends and ranks, the state's fortunes endured for a long time. Thus [these] were the proof of the achievements of the Nine expeditions. Various states that dare to rely on strength to attack the weak, the Son of Heaven would send troops to punish them. Those who harm the worthy and injure the people would likewise be militarily punished. If a ruler oppressed those within and bullied those without, an army would be raised to subdue him. If the countryside lay waste and the people were scattered, troops would be employed to reduce it. If a state relied on its strong defences and refused submission, troops would be raised to invade it. If [a ruler] murdered his own kinsmen, his crime would be formally established with guilt and [thus] be put to death. If a subject expelled or murdered his ruler, his crime would be made manifest, and he would be executed. If a state violated commands and defied government authority, it would be blocked off and cut off. If there were disorder both within and without, and people behaved like birds and beasts, they would be utterly destroyed. Such were the circumstances and punishments of the Nine Punitive Expeditions. You, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa), measured against China , it is fitting to ask the reason why you rely upon strength to attack the weak. How is this evident? Year after year, [you] have used troops to raid '''Chēlǐ''' ('''車里''') and at irregular times invaded and plundered the Eight Hundred.<ref>Short hand for Eight Hundred Wives and Daughters in Laws Country, the old name for Laos or Lan Na. </ref> [Hence] presuming upon your strength to attack Burma. The '''State of Kalay''' is small, and the population is few, and you have already subdued it. This is the account [I have given]. It is nothing more than words of admonition. China borders the "Four Barbarians"<ref>Four Barbarians: North - Di, East - Yi, South - Man and West - Rong. </ref> Its territory adjoins that of various chiefs, their populations live in close proximity. Of such states, there are some which I know by report, and some which I have seen with my own eyes, I have never relied on my strength to domineer over them, or extinguished their line of succession. The territory of Yunnan belongs to me, it might seem that I nevertheless used force to take it, but that is not so! Rather, a descendant of the Yuan Imperial House, Prince of Liang, relying on his Yuan Royal heritage, concealed those who committed offences against me and harboured my fugitives and enticed my frontier defenders to defect. Precisely for this reason, I had no alternative but to send a force and call for an offence with an army to carry out [that purpose]. I did not raise an army without cause. This was because the fortunes of the Yuan had changed by heaven's decree, and its descendants were no longer entitled to remain securely established there. Moreover, he [Prince of Liang] has caused trouble among my neighbouring states; the circumstances and principles made the outcome inevitable, and their subjugation was as easy as turning over one's hand. As for you, foolish '''Lùchuān''' ('''麓川'''), you first took it upon yourself to launch the Gold Teeth campaign, next you plotted against '''Jǐngdōng''' ('''景東''') and raided '''Dìngbiān''' ('''定邊'''). By right, this called for the dispatch of a large force of elite troops to determine the victor and vanquished. I released you and did not press on the matter. I have never compelled you to become a subordinated state. I allowed you to establish your own institutions and customs, and now several years have passed. You have been gradually encroaching upon neighbouring states with the intention of expanding your territory and taking possession of their people on your own authority, and will thereby be a cause of war for me in the southwest. Alas, this cannot be! The ancient sages of China have a saying: The mountains and rivers, the land and the people are all such things as constitute the Divine Realm; they cannot be forcibly possessed by men - only when heaven bestows them may they be obtained. You '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) do not cultivate friendly relations with your neighbouring states, you send troops on three fronts and gradually encroach upon the various states, such is your greed and such is your scheme. The states surrounding '''Lùchuān''' ('''麓川''') have, from ancient times to the present, each had their own rulers; they have never been swallowed up and annexed. Although I cannot prevent you, I have allowed you to act for yourself. If indeed this has brought about the Way of Heaven, you must respond to it through human affairs; perhaps what you do will thereby be acceptable. Alas! If, in accordance with my admonition, you preserve what is whole, then that is acceptable. But if you do not preserve it intact, and instead stake the whole upon action, suppose, however, that the whole is impaired, that would mean the whole is lost. Better yet, then, to preserve the whole and thereby seek lasting continuity. Would that not be admirable?
|-
|由是二國罢兵和好。
|because of the truth, the two countries ceased war and reconciled.
|-
|时古训等适遇百夷其部下酋長曰刀干孟者叛其國,余等以大义諭其部眾,而叛者闻之稍却。於是,思侖發欲留余等以为援,且進以金寶象馬等物,故余以书示之曰:
|At the time, Guxun, happened to encounter One Hundred Barbarians subordinate chief named '''Dāo gànmèng''' ('''刀干孟''') betray the country. We and the others explained/instructed his followers on the basis of the great principle/righteous cause and as a result, the rebels hearing it gradually withdrew. As a result, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) wished to preserve us as a source of assistance. He offered gold, valuables, elephants, horses and other gifts. Hence I presented this letter to reveal to him saying:
|-
|『吾闻君上有怀遠之德,遠臣有敬上之心,始古迄今,莫违此义。夫君居九重之上,雖欲顷刻目尔遠臣,未可得也,臣处萬里之外,即欲朝暮身亲君上,亦未易得也。故朝廷有將命之官,使之宣德布威;而遠方有承命之宜,期其輸忠納款。今天子应天顺民,奉天为治,四维八極,尽为臣妾,無有专擅,不敢违逆。西南一区,夷酋亦眾,惟尔麓川,多蒙恩宠,既受以官,復加以服。况贤王亲临尔境,而德惠數及尔身。为尔计,則將度其心,量其才,何为而可以尽忠天子,何为而可以致敬贤王,又何为而可以安邊境而不干天怒,又何为而可以教百姓而不违法度?借曰邊境不安,必思曰,我事上未忠或未至,而眾不服我耶?百姓违法,必思曰,我守職已或有僭而民亦犯上耶?於是我則尽其忠,去其僭,如此,則邊境自安,人民從教矣。且吾以尔目擊效驗明之:往年思瓦發不服朝廷,轻犯金齒,天子雖未问罪,天則假手於達鲁方等,而思瓦發被戮。刀思朗不從尔命,窃寇定邊,尔雖未能息其兵,天則助威於我邊將,而刀思朗等即灭。惟尔知天命,達人理,故能享天禄,守人爵。迩来天子恐尔所为,或涉放肆,特敕諭以戒之;贤王恐尔無知,或生疑懼,特令旨以恤之。此恩此德,穷天極地。尔之披肝露胆,开心見诚,吾尽見矣;尔之尊重朝廷,敬奉殿下,告亦見矣。今尔固留吾辈,其意本美。近者尔甸寨少宁,刀干谋异,吾將回朝为尔明白其事,尔乃留我,使我不速還朝,假如刀干鸣尔留难天使之非於朝,則反误尔敬君之心矣。且尔赠以金、銀、裀褥、馬、象等物,吾固不受者,非見怪也,實相爱也。何則?朝廷恩尔,抚安尔邦,未嘗令使者取货於尔也。夫货财,饥不可以充口,疾不可以救死。况中國金玉成山,象馬若蚁,未以为寶也,惟所寶者,圣君、明王、忠臣、烈士、强兵、勇將、孝子、顺孙等事,其他财物,如粪土耳。姑以尔境内眾所闻者明之:昔隋史萬歲守邊,夷而贪财,以致殺身。梁毗一金不受,而大服夷眾。此事甚白。吾为圣朝天使,必不为财物所蛊,惟恐吾之使令往来小人,不体吾意,蛊惑尔心,特此叮咛。尔其备审此书,体吾真意,早送吾辈還朝,則尔敬君之心,不浅浅也。』
|I have heard that a ruler above possessed the virtue of cherishing those who are far away. Those distant subjects have a heart of reverence to their ruler above. From the beginnings of ancient times until now, none have deviated from this principle. The ruler resides above the Ninefold Gates, although he wishes to see you, his distant subject, even for a moment, this cannot be done. I, your servant [of the Emperor], reside ten thousand '''Lǐ''' ('''里''') away. Even if I wanted to be personally close to my ruler morning and evening, that too would not be easy to achieve. Therefore, the imperial court has officials who carry its commands, sending them to proclaim its virtue and make its authority manifest, while distant polities obey the commands and fulfil their duty, in expectation that they will render their loyalty and submit their allegiance [to the Emperor]. Now the Son of Heaven responds to Heaven and follows the people, governing in accordance with Heaven. Throughout the four quarters and the eight extremities, all are subjects, none acts autonomously, and none dares to oppose [the imperial order]. In the southwestern region, the chiefs of the Yi people are also numerous, but you, <strong>Lùchuān</strong> (<strong>麓川</strong>), have received especially abundant imperial favour; having already been granted an official position, you were furthermore granted the appropriate dress. Moreover, the worthy king personally came to your territory, and his benevolence and favour have repeatedly extended to you personally. For your own sake, you should consider your intentions and measure your abilities. What can you do that will enable you to fulfil your loyalty to the Son of Heaven? What can you do that will enable you to show proper respect to the worthy king? What can you do to keep the frontier peaceful without incurring heaven's anger? And what can you do to govern the common people without violating the laws and regulations? Suppose, for argument's sake, the frontier were to become unsettled, you must think yourself: "Perhaps I have not been sufficiently loyal in serving my superior, and that is why people do not submit to me?" If the common people violate the law, you should think: "Perhaps, although I have maintained my office, I have in some way overstepped my proper station, and thus the people too are offending against their superior? Then I would fully fulfil my loyalty and remove any acts of overstepping I had committed; in this way, the frontier will naturally become peaceful, and the people will follow proper instruction. Moreover, I shall make this clear to you through examples that you yourself have witnessed. In the past years, '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) refused to submit to the court and rashly attacked the Golden Teeth. Althought the Son of Heaven did not call hbim to account, Heaven nevertheless acted through the hands of '''Dálǔfāng''' '''(達鲁方'''), and the others and '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) was killed. '''Diāosīlǎng''' ('''刁思朗''') did not obey your command and secretly raided '''Dìngbiān''' ('''定邊'''). Althought you were able to bring his hostilities to an end, Heaven then lent its might to my frontier commanders and '''Diāosīlǎng''' ('''刁思朗''') and the others were immediately destroyed. It is because you understand the Mandate of Heaven and comprehend principles of human affairs that you can enjoy heaven's emoluments and preserve your human rank. Recently, the Son of Heaven feared that what you were doing might become excessive, and specially issued this admonition to warn you; the Worthy King feared that your lack of understanding might give rise to doubt and fear, and specially sent his instructions to show you compassion. Such grace and such benevolence extend to the furthest reaches of Heaven and Earth. You're laying your heart completely bare, showing your sincerity, I have seen it all. [Your] respect for the imperial court [and] reverant service of the Emperor has been reported as well. Now you firmly retain our party, itself well-intentioned. Recently, your districts and stockards have enjoyed peace, while '''Dāo''' '''Gàn''' ('''刀干''') have conceived some other designs. I was going to return to court to make the matter clear on your behalf, yet you have kept me here, causing me not to return promptly to court. Suppose <strong>Dāo Gàn</strong> (<strong>刀干</strong>) were to report to the court your offence of detaining and obstructing the imperial envoy, then that would compromise your sincere respect for your ruler. Moreover, you presented us with gold, silver, padded mats, bedding, horses, elephants, and other such things, my refusal to accept them is certainly not because I take offense. The court has shown you favour and pacified your realm. It has never instructed its envoys to take goods from you. Regarding wealth and possession, when one is hungry, they cannot fill the mouth; when one is sick, they cannot save one from death. Besides, in China, gold and jade are piled as high as mountains, while elephants and horses are as numerous as ants; we do not regard these things as treasures. What we do treasure are the deeds of sage rulers, enlightened kings, loyal ministers, righteous men, strong armies, brave generals, filial sons, dutiful grandsons and things of this kind. All other material possessions are like dung and earth and nothing more. For the moment, by means within your territory, what the people commonly hear that which should be clear. In former times, <strong>Shǐ Wànsuì (史萬歲)</strong> guarded the frontier; he was greedy in dealing with the tribes and thereby brought about his own death. '''Liáng Pí''' '''(梁毗''') did not accept even a single piece of gold, thereby greatly earning the respect of the Yi people. The matter is very evident. I am an imperial envoy of the sacred dynasty; I certainly cannot be corrupted by material wealth. I only fear that petty men among those who travel back and forth on my missions do not do not consider my intentions and instead mislead or corrupt the mind. For this reason, I have given you special admonition. You should carefully examine this letter in full and understand my true intention. Send us back to court promptly, then your heart of reverence for the ruler would not be so shallow.
|-
|书至,思侖發悦服,遂邀至其家,設宴畢,與其眾送出境外。
|When the letter arrived, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) was pleased, and received it favourably. Thereupon invited him to his home. After the banquet, together with his retinue escorted them beyond the borders.
|-
|百夷,由金齒、蒲漂過怒江即其境。沿江東數十里,上有高良弓頗险。其岭有一寨。過一寨下四十里,地名养列,自此抵麓川無险隘之虞。由麓川经蠻牛、莽港等路,渡谨卯,從蒙戛等甸至麻林界,登金沙江之舟,下流二十日至緬國。國王眾呼为卜剌浪,王之妻呼为米泼剌。
|The One Hundred Barbarians, via the Gold Teeth, '''Pú''' ('''蒲'''), '''Pyu people''', upon crossing the '''Nùjiāng River''' ('''怒江''') reach their territory. Along the river, east about ten <strong>Lǐ</strong> (<strong>里</strong>), there is the tall, rugged, dangerous Gaoligong [mountains] above. The mountain range has one stronghold. Passing a stronghold, below forty '''Lǐ''' ('''里''') is a place named '''Yǎng liè''' ('''养列'''), since then reaching the '''Lùchuān''' ('''麓川''') there is no concern of dangerous narrow passes. Following '''Lùchuān''' ('''麓川''') pass through the routes of '''Mánniú''' ('''蠻牛'''), '''Mǎnggǎng''' ('''莽港''') and other places, crossing '''Jǐnmǎo''' ('''谨卯'''), from the district of '''Ménggā''' ('''蒙戛''') to the '''Málín''' ('''麻林''') border, [one must] board a boat on the '''Jīnshā River''' ('''金沙江'''), downriver twenty days one reaches Burma. The king is referred by the populace as '''Bōlàlàng''' ('''卜剌浪'''), the king's wife is referred to as '''Mǐpōlà''' ('''米泼剌''').
|-
|}
==References==
{{reflist}}
{{Subjects|Military history}}
ojmyx1i1bqwbrkfcw4nt21ckmqmd1b2
4674795
4674793
2026-10-07T04:08:58Z
Taitesena
3485636
4674795
wikitext
text/x-wiki
__NOTOC__
{{Translation header
| title = Baiyi Zhuan (百夷傳)
| author = Qian Guxun (錢古訓)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes = The Baiyizhuan, or, '''Biography of 100 Barbarians''', was compiled by Qian Guxun (錢古訓) with Li Sicong (李思聪) and sent to the Ming Dynasty but never formally published yet stored away. Copies emerged under both names however, most agree that both envoys wrote their own accounts of Myanmar to control the issue of Shan Kings on the borders. This version is attributed to Qian Guxun and sourced from Wikisource.
}}
== Front Matter ==
Translator Note:
For the non-letter transcripts, I have used complete manual lookups and translation to English. Due to the informal, poetic and bureaucratic language, I took external assistance to guide me including AI only to clarify the meaning of the characters in the context as I struggled to articulate how a 14th century bureaucrat would write their letters to rulers. I still manually wrote and formatted it with the lookups however, but have declared this for transparency as part of my workflow. However, the ethnic nomenclature and practices and historical events detailing which hold stronger merit have not lost validity in that respect.
For the character "刺" this has been corrected to 剌 which is used as an actual phonetic. The original transcript mainains the incorrect character, but the translation gloss will correct it.
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Premable to the purpose and context of the document and political situation.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|百夷,在雲南西南數千里,其地方萬里。景東在其東,西天古刺在其西,八百媳婦在其南,吐番在其北;東南則車里,西南則緬國,東北則哀牢〈(今之金齒衛也)〉,西北則西番、回紇。
|[The] One Hundred Barbarians<ref>This generally refers to the Tai Shan people. </ref> are a few thosand '''Lǐ''' ('''里''') southwest of Yunnan. There region is very far away. '''Jǐngdōng''' ('''景東''') is east of them. The western regions Gǔ cì (古刺) [people] are west of them. South of them are the '''Eight Hundred Xífù''' ('''八百媳婦'''; Laos). North of them is Tibet. Southeast of them is Chē lǐ (車里), southwest is Burma, Northeast is '''Āiláo''' ('''哀牢''')<ref>The ancient tribal confederation of the Yongchang-Gaoligong area.</ref> Today, these are the gold tooth people. Northwest of them is
Western Barbarians and '''Huíhé''' ('''回紇'''; Uyghur people).
|-
|俗有大百夷、小百夷、漂人、古剌、哈剌、緬人、结些、吟杜、弩人、蒲蠻、阿昌等名,故曰百夷。
|The customs of Greater One Hundred Barbarians, the Lesser One Hundred Barbarians, the Pyu people<ref>This document still distinguishes between the Pyu people from the Burmese despite no further domestic inscriptions mentioning them. In particular their clothes give this away apparently later in the text.</ref>, '''Gǔlà''' ('''古剌''') [people], '''Hālà''' ('''哈剌''') [people], Burmese people, '''jiēsuò''' ('''结些''')<ref>There is reason to believe that these may be the Zo people. The Jie however is difficult to understand, likely a terminology transfer issue from intermediaries. Like the Mosuo people, I suggest this to be read as Jie Suo. If so, this would be the earliest mention of Zo terminology since Vincent Sangermono.</ref>, '''Yíndù'''('''吟杜''')<ref>These are only mentioned once in the document. Whether it's a mix-up with Hadu, or referring to Indians, is unknown.</ref>, Nǔ people (弩人; crossbowman people)<ref>These are assumed to be early Nungish Tribes, however this is speculation. Later texts discuss the 怒族 for example which sound the same. </ref>, Pú (蒲)<ref>The 蒲人 / 蒲满 according to You Zhong is the '''Bulang (布朗族)''', '''Wa (佤族)''', '''De'ang (德昂族)''' people. Austroasiatic groups of Burma.</ref> and Āchāng (阿昌)<ref>The successors of the Western Yunnan 尋轉 barbarians recorded by 繙綽 in the 蠻書.</ref>, among others, can be spoken of as the One Hundred Barbarians.
|-
|漢以前未嘗通中國,諸葛亮征蠻,亦抵怒江而止。唐天寶中,夷人始随爨歸王入朝。其眾各有部領,不相統屬。
|Before the Han dynasty, they had no contact with China.<ref>The main exception may be the Ailao people.</ref> '''Zhūgé liàng''' ('''諸葛亮''') went on an expedition against the barbarians, where he stopped right up against the '''Nùjiāng River''' ('''怒江'''). During the Tianbao Era of the Tang Dynasty, the barbarians began to follow the '''Cuàn''' ('''爨''') and '''Guī''' ('''歸''') clan leaders.<ref>The '''Cuàn''' ('''爨''') eventually founded the Kingdom of Nanzhao, which ruled powerfully in the region, competing with Tibet and Tang China.</ref> The people had their own leaders and were not unified.
|-
|元憲宗三年,世祖由吐番入麗江,自葉榆平至雲南〈(葉榆即大理也)〉。明年,命將兀良哈臺征降夷地。遂分为路二十、府四、甸四十有四、部二十有六、各設土官,置金齒都元帥府領之。有所督,委官入其地,交春即還,避瘴气也。
|In Emperor Xianzong's 3rd year in the Yuan Dynasty, Emperor Shìzǔ (世祖; Kublai Khan) entered '''Lìjiāng''' ('''麗江''') from Tibet and himself in '''Yèyú''' ('''葉榆'''; Present Day Dali) brought peace to Yunnan. The following year, [he] commanded General UriyangKhadai to pacify the barbarian lands. The region was transformed into twenty circuits, four prefectures, forty-four districts and twenty-six departments, each with indigenous officials overseen by the Gold Teeth Commander in Chief.<ref>A Tai Shan Leader likely.</ref> Officials were appointed to administer certain lands, returning by spring to avoid malarial miasma.
|-
|至正戊子,麓川土官思可發數侵扰各路,元帥搭失把都討之,不克。思可發益吞并諸路,而遣其子滿散入朝,以輸情款。雖奉正朔,納職貢,而服用制度,擬於王者。思可發死,子昭併發立。八年,傳其子臺扁。踰年,臺扁從父昭肖發殺之而自立,期年,盗殺昭肖發,眾立其弟思瓦發。
|In the the 8th year of the Zhizheng era ('''1348 AD''') Lùchuān (麓川) indigenous chief '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) had been countlessly harassing and invading every road. The Commander-in-Chief '''Dāshībǎ''' ('''搭失把''') sent armed forces to the capital but was unable to. '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) annexed further circuits and dispatched his son '''Mǎnsàn''' ('''滿散''') to the imperial court to offer terms of service. Although they accepted tribute and the official calendar of the Ming dynasty, their clothes and administration resembled that of a monarchy. '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) died, his son Zhāo bìngfā ('''昭併發'''; Hsö Pem Hpa) was established. Eight years later it passed to '''Táibiǎn''' ('''臺扁'''; Hsö Siu Hpa). A year later, '''Táibiǎn's''' ('''臺扁'''; Hsö Siu Hpa) uncle '''Zhāo xiàofā''' ('''昭肖發'''; , Hsö Kap Hpa) killed him himself and seized power. A year later, bandits killed '''Zhāo xiàofā''' ('''昭肖發'''; Hsö Kap Hpa) and established his younger brother '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) [as ruler].
|-
|國朝洪武辛酉,平雲南。明年,思瓦發寇金齒。是冬,思瓦發略于者闌、南甸。其屬達鲁方等輙立滿散之子思侖發,而殺思瓦發於外。即譴使貢白象、犀、馬、方物於朝。廷議不忍絕以化外,乃命福建左參政王鈍率雲南部校郭京美等,諭以向背利害,約以每歲貢獻之率,而遂内附。於是授思侖發为麓川平緬軍民宣慰。丙寅,復寇景東。明年,部屬刁思朗犯定邊,天子命西平侯沐英總兵敗之,獲刁思朗,夷人懼服。上以遠人不加約束,故官稱制度皆從其俗。
|In the current dynasty, in the 58th year (Xinyou) of the Hongwu Emperor ('''1381 A.D.'''), Yunnan was pacified. The next year, '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) plundered the Gold Teeth barbarians. That winter, '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) captured the territory of '''Zhělán''' ('''者闌''') and '''Nándiàn''' ('''南甸'''). His subordinate '''Dálǔfāng''' ('''達鲁方''')placed '''Mǎnsàn's''' ('''滿散''') son, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) as ruler and killed '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) when outside. The offered tribute included white elephants, rhinoceroses, horses and other local products. The palace could not bear to cut ties with outside spheres of influence and commanded the Fujian Left Vice Official '''Wáng Dùn''' ('''王鈍''') to lead in the checking of the city walls of Yunnan, order discussions of pros and cons of allegience, discuss the annual tribute rate and secured their submission. He conferred '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) as the Burma Pacification Commissioner. In the third year ('''1386 A.D.'''), he returned to invade '''Jǐngdōng''' ('''景東'''). The next year, his subordinate '''Diāosīlǎng''' ('''刁思朗''') invaded '''Dìngbiān''' ('''定邊'''). The Emperor ordered Marquis of '''Xīpíng''' ('''西平''') '''Mù yīng''' ('''沐英''') to lead an army to defeat him where he caught '''Diāosīlǎng''' ('''刁思朗'''). The barbarians became fearful and submitted. In order not to restrict those far-away peoples, the official system and administration were all in their customs.
|-
|其下稱思侖發曰『昭』,猶中國稱君主也。所居麓川之地曰者闌,猶中國稱京師也。其屬則置『叨孟』以總統政事,兼領軍民。『昭錄』領萬餘人,『昭綱』領千餘人,『昭伯』領百人;領一伍者为『昭哈斯』,領一什者为『昭准』;皆屬於『叨孟』。又有『昭錄令』,遇有征调,亦與『叨孟』統軍以行。其近侍呼为『立者』,閽寺呼为『割斷』。大小各有分地,任其徭賦。
|'''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) is called '''Zhāo''' ('''昭'''), like how China uses "Lord". '''Lùchuān's''' ('''麓川''') [ruler's] dwelling place is called '''Zhělán''' ('''者闌'''), like how China uses the term "Capital". Their subordinates are known as '''Dāomèng''' ('''叨孟'''), who generally handled political affairs while simultaneously leading the military and civilians. '''Zhāolù''' ('''昭錄''') led over ten thousand households, '''Zhāogāng''' ('''昭綱)''' led over a thousand households, '''Zhāobó''' ('''昭伯''') led a hundred households. Those who led five soldiers were known as '''Zhāohāsī''' ('''昭哈斯'''), those who led ten soldiers were known as '''Zhāozhǔn''' ('''昭准'''). Each [of these] were part of the '''Dāomèng''' ('''叨孟'''). There is also '''Zhāolùlìng''' ('''昭錄令''') who also happen to carry out conscription for the '''Dāomèng''' ('''叨孟''') to gather an army to lead. Their attendants were known as '''Lìzhě'''('''立者'''). Doorkeepers of Buddhist temples were called '''Gēduàn''' ('''割斷'''). Big or small each had distributed land appointed and endowed to them as compulsory servicefor corvee and taxes.
|-
|上下僭奢,雖微職亦繫鈒花金銀帶。貴賤皆戴筍籜帽,而飾金寶於頂,如浮圖狀,懸以金玉,插以珠翠花,被以毛纓,綴以毛羽。貴者衣綺麗。每出入,象馬僕從滿途。象以銀鏡數十聯綴於羈靮,緣以銀釘,鞍上有闌如交椅狀,藉以裀褥,上設錦障蓋,下懸銅響鈴,坐一奴鞍後,執長鉤驅止之。遇貴於己者,必讓途而往。凡相見必合掌而拜,習胡人之跪。長於己者必拜跪之,言則叩頭受之。叨孟以下見其主,則膝行以前,二步一拜,退亦如之。執事於貴人之側,雖跪終日無倦狀。貴人之前過,必磬折鞠躬。宴会則貴人上坐,其次列坐於下,以逮至賤。先以沽茶及蒌葉、檳榔啖之(沽茶者,山中茶葉,春夏間采煮之,實於竹筒内,封以竹箬,過一二歲取食之,味極佳,然不可用水煎飲)。次具飯,次進酒饌,俱用冷而無熱。每客必一仆持水瓶側跪,俟嗽口盥手而後食。食畢亦如之,而後起。客十則十人各行一客。酒或以杯,或用筒(筒以蕨楷,或用鵝翎管連贯,各長丈餘,漆之而飾以金,假若一酿酒,則漬以水一滿瓮,插筒手中,立標以驗其盏數,人各以次舉筒咂之。咂酒一盏,仍漬水一盏,傳之次客,味甚佳,至淡,水方止,俗呼为咂酒)。酒與食物必祭而後食,食不用筯。酒初行,一人大噪,眾皆合之,如此者三,乃舉樂。樂有三等:琵琶、胡琴、等笛、響盏之類,效中原音,大百夷樂也。笙阮、排簫、箜篌、琵琶之類,人各拍手歌舞,作緬國之曲,緬樂也。銅饒、銅鼓、響板、大小長皮鼓,以手拊之,與僧道樂頗等者,車里樂也。村甸間擊大鼓,吹芦笙,舞干为宴。長者授卑賤酒食,必叩頭受之,易以他器而食。食畢,仍叩頭而退。
|The people, both high and low [in status], were extravagantly overstepping [in their dress]. Even small duty officials fastened engraved, patterned belts of gold and silver. [Both] nobles and commoners wore bamboo-shoot-woven hats and decorated them with gold, like a crown resembling pagodas, hanging with jade and gold and inserted with pearls and colourful gems, covered with tassels and quilted feathers. The clothes of wealthy individuals are enchantingly beautiful. Whenever one goes out, elephants, horses, and servants fill the roads. The elephants have about ten or so silver mirrors attached to their reins and bridles, edged with silver nails. On the saddle, there is a railing resembling an old wooden-style armchair with cushion-like under padding, a mattress, and brocade above the top and copper ringing bells below [it]. A servant was seated behind the saddle, grasping a long hook to urge and stop [the elephant]. Upon encountering a wealthy person, they certainly yield the way to them. Commonly, when meeting one another, they certainly clasp hands and bow, adopting the kneeling [custom] of the Northwestern peoples [of China]. Elders to oneself are bowed to and kneelt before, and when speaking, they are subjected to kowtow to them. Those below '''Dāomèng''' ('''叨孟'''), seeing their masters, kneel before them, every two steps a bow, and repeat it during withdrawal. Attendants are at a wealthy person's side, despite kneeling all day, do not appear tired. When a wealthy person passes by, they bow deeply.<ref>The sentence is poetically describing the bow as "bending the body as to resemble 磬, a type of percussion instrument". </ref> In banquets, the wealthy are seated first, then next in line are the ones below them and so on, by means to the lowest [of status]. First, they are given tea, areca nuts and betel leaves (The given tea leaves are [harvested] in mountains and brewed in Spring and Summer, stuffed into bamboo tubes, sealed with bamboo leaves for one to two years, ready for consumption, tasting extremely fine, however, cannot be brewed by boiling in water for drinking. Next [to] be provided is rice, following that is wine and delicacies are are [consumed] cold and unheated. Every guest has a servant kneeling on the side holding a water bottle, waiting to cough and rinse the mouth and hands with water and then eat. [Upon] finishing eating this is repeated and then they rise. In the case of ten guests, ten people attend them, one per guest. Wine is either served in a cup or a tube (The tubes are made from Pistachio Bracken or goose plume linked together). Every length is one '''Zhàng''' ('''丈;''' approximately 3m) painted and decorated with gold. If brewing wine, one pot of water is added. Inserting the tube into the hand, it is used to check for the number of cups [it can hold]. Each person lifts the tube to sip from it. After sipping a cup, a cup of water is added, and it is passed to the next person; the taste is exceedingly fine. When the wine's taste dilutes, water is stopped, and this is called '''sipping wine'''.) Wine and good must be sacrificed, and then they eat. Chopsticks are not used to eat. At the begining of the wine [ceremony], one person loudly shouts and multiple people all join in. This is done three times, and then music is played. There are three such types of music: Chinese lute, Huqin (Chinese fiddle) and the flute with ringing cups and so on. It imitates the sounds of the central region<ref>The Yellow River Basin area of China. </ref> and the Great White barbarians, too. Bagpipe, lutes, panpipes, harp, pipa and so on. People each clap their hands and dance. It is performed in Burmese tunes and music. Copper gong, bronze drum, castanets, big, small and long leather drums struck with the hand. It is similar to Buddhist and Taoist music, as well as '''Chēlǐ''' ('''車里''') music. Villages and suburbs have space for striking bass drums, blowing reed pipes and dancing for the feast. Elders give food and drink to the lowly [people], who certainly must bear to kowtow them to exchange utensils and eat. [Upon] finishing eating, they still kowtow and then retreat.
|-
|凡貿易必用銀,雜以銅,鑄若半卵狀,流通商賈間。官無倉庾,民無税粮。每年秋季,其主遣亲信部屬往各甸,计房屋征金銀,谓之取差發(房屋一間,大者征銀一两、三两,小者一两而止)。無中國文字,小事刻竹木,大事作緬书,皆旁行为记。刑名無律,不知鞭挞,轻罪則罚,重罪則死。或殺,或用人扱殺。或用象打,或投於水,或以绳帛缢。男婦不敢为奸盗,犯則殺之。
|All commercial trade must use silver, mixed with copper, cast to appear like a half egg [shape] to circulate among merchants. The government has no granaries,<ref>There are two characters for granaries, the second is for small private ones, signifying that most did not have this system at all. </ref> the people [likewise] have no grain tax. Every autumn, the owners dispatch trusted aides and subordinates to go to each suburb to calculate and levy households' gold and silver. This is called to go collect money. (For each house: large ones are taxed one or three [taels] of silver, small ones are taxed one tael.) There is no Chinese script; small matters are carved into bamboo or wood, big matters are written into Burmese script, all written horizontally for recording. No laws govern punishment; they do not know whipping or corporal punishment. Petty crimes are penalised, and serious crimes lead to death. Some are killed [directly], while some have another person employed to kill them. Some use elephants to crush them, some throw them in water, while some are hanged with ropes. Men and women do not dare commit adultery or robbery, to violate so will kill them.
|-
|所居無城池濠隍,惟编木立寨,貴賤悉构以草楼,無窗壁门户,时以花布障围四壁,以蔽风雨而已。邮傅一里設一小楼,數人守之,公事雖千里遠,报在顷刻。無軍民之分,聚則为軍,散則为民。遇有战斗,每三人或五人出軍一名,择其壮者为正軍,呼为『锡剌』。锡剌持兵御敌,余人荷所供。故軍行五六萬,战者不滿二萬。兵行不整,先後不一。多以象为雄势,战則缚身象上。裹革兜,被銅铁甲,用長镖干弩,不習弓矢。征战及造作用事,遇日月食則罢之,毁之。
|The [ruler's] dwelling place has no walls, water moats, trenches or dry moats, only wooden stockades erected. Both nobles and commoners all constructed thatched houses with no windows, ramparts or doors, just printed cloth covering around all four walls, as to cover [from] wind and rain and nothing more. Every mile, there was a small post office, a few people guarded it, [thus] documents even as far as a thousand miles can be reported instantly. There is no distinction between military and civilian [people]. Once assembled, they became soldiers; once scattered, they became civilians. Upon encountering a war, every three or five people would produce one soldier; they would select the strongest to become the principal armed force, known as '''Xīlà''' ('''锡剌'''). The '''Xīlà''' ('''锡剌''') grasped weapons to defend against the enemy, while surplus people carried to supply [them]. Hence, an army of fifty or sixty thousand will have fighters not filling twenty thousand. The soldiers were not organised; their rank formations were not uniform. Many used elephants for their imposing power; fighters tied their bodies onto the elephants. They wrapped leather into helmets, and were covered with copper mail plating, using long spears and crossbows, and did not practice bow and arrow. Any war or manufacturing encountering an eclipse would cease or [either] be destroyed.
|-
|所用多陶器,惟宣慰用金銀玻璃,部酋間用金銀酒器。凡部酋出,其器用、仆妾、财寶之類皆随之,從者千余,昼夜随所适,必作宴笑樂。
|Most utensils [they use] were pottery. Only the '''Xuānwèi''' ('''宣慰''') use gold, silver and glass. Tribal chiefs among them used gold, silver and wine cups. Commonly [when] tribal chiefs go out, their utensils, servants, concubines, money, jewels and so on all subsequently all follow him. He is accompanied by over a thousand followers. Day and night, wherever he subsequently goes, there will be feasts, laughter and music.
|-
|男子衣服多效胡服,或衣宽袖長衫,不识裙袴。其首皆髡,胫皆黥。不髡者殺之,不黥者眾叱笑,比之婦人。婦人髻绾於後,不谙脂粉,衣窄袖衫,皂統裙,白裹頭,白行缠,跣足。其俗賤婦人,貴男子,耕织徭役担负之類,雖老婦亦不得少休。嫁娶不分宗话,不重处女。年未笄,听與男子私,從至其家,男母为之濯足,留五六昼,遣歸母家,方通媒妁,置财礼娶之。凡生子,貴者浴於家,賤者浴於河,數日,授子於夫,仍服劳無倦。酋長妻數十,婢百余,不分妻妾,亦無鮅忌。男女浴於河,雖翁婦叔嫂,相向無耻。子弟有職名,則受父兄跪拜。父母亡,用婦祝尸,亲邻咸馈酒肉,聚年少环尸歌舞宴樂,婦人擊碓杵,自旦達宵,數日而後葬。其棺若馬槽,無蓋,置尸於中,抬往葬所,一人執刀持前导。及瘗,其生平所用器物,坏之於側而去。
|Many men's clothes mainly imitate non-Han clothing, or they wear wide-sleeved long gowns, not knowing skirts or trousers. Their heads are all tattooed, their shins are all tattooed. Untattooed heads would be killed, and untattooed legs would be laughed at and compared to women. Women tied their hair into a topknot at the back; they are not versed in cosmetics, and their clothes are narrow-sleeved garments [jackets] and a soap-style skirt. [Her] head is wrapped in white, her body is wrapped in white, and they go barefoot. Their custom is women, commoners, noblemen, must all undertake compulsory labour service and so on. Even old women must not rest a little. Marriage does not distinguish clan or language or virginity [of women]. Before even fifteen years, they are allowed private liaisons with men. She follows him to his home, and the man's mother washes her feet. She remains there for five or six days, [she] is then sent back to her mother's house. Then they communicate with a matchmaker and buy betrothal gifts to take her as a wife [for him]. Ordinarily with the birth of a child, a nobleman bathes in the home, while commoners bathe in the river. For a few days, she gives the child to her husband and continues to dress, toil, and work without tiring. The wives of a tribal chief number ten, his slave girls can surpass one hundred, there is no distinction between wife and concubine, also there is no '''Bìjì''' ('''鮅忌''').<ref>Unsure as to what this means. The first character is a type of fish and an extremely obsolete character not used anymore. It is a compound to something about jealousy, however I do not know what this compounded term relating to jealousy might be. Preliminary thought would be, the wives do not compete, or do not dread their hierearchy? </ref> Men and women bathe in the river, even old men, women, uncles, sister-in-laws [bathing] face to face have no shame. If a child has an office title, then they will be accepted, and the father and brothers will kneel and kowtow to him. When parents die, they use women to pray for the corpse. Relatives and neighbours all make an offering of wine and meat. They assemble young people around the corpse, singing and dancing, making merry. Women strike the pestle from dawn to night, and only after a few days, they bury the dead. The coffin seems like a horse trough, with a lid; they cover the corpse in the middle. They lift and carry the coffin to the burial place; one person holds a knife and leads the way. When the burial takes place, the objects the deceased had used during their life are broken beside the burial, and then people depart.
|-
|}
===Ethnic Groups and customs===
{| class="wikitable" style="text-align:center; width:80%;"
|+ A list of ethnic groups encountered and their traditions and general customs.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其俗,不祀先,不奉佛,亦無僧道。小百夷居其境之東北邊,或学阿昌,或学蒲蠻,或仿大百夷,其習俗不一。
|Their customs do not offer sacrifices [to ancestors], do not revere the Buddha. There are no Buddhists and Daoists [among them]. The Lesser One Hundred Barbarians reside on the northeast border, following Āchāng ('''阿昌''')<ref>This is the earliest I've seen the Achang called by this name. In the 蠻書 they were assumed part of the 尋穿 instead. </ref> customs, following Pú ('''蒲''') customs and some imitate the Greater One Hundred Barbarians. Their customs are not the same (uniform).
|-
|車里,亦谓小百夷,其俗刺额、黑齒、剪發,狀如頭陀。
|[The people of] '''Chē lǐ''' ('''車里''')<ref>'''Chē lǐ''' ('''車里''') refers to the Cheli Military and Civilian Pacification Commissioners Office. It was a Tai State that located at Jinghong City in modern day Xishuangbanna in Yunnan.</ref>, are also called Lesser One Hundred Barbarians. Their customs are tattooing foreheads, blackening teeth and cutting hair. Appearing as if like ascetic monks.
|-
|哈刺,男女黑真黑。男子以花布为套衣,亦有效百夷制者;婦人髻在後,项系雜色珠,以娑罗布披身上为衣,横系於腰为裙(娑罗布即中國木棉布,坚厚,或织以青红纹)。仍环黑藤數百围於腰上,行缠用青花布,赤脚(蒲蠻、阿昌,事見《雲南志》)。
|'''Hālà''' ('''哈剌'''), men and women are [both] black, truly black. Men use printed cloth<ref>g</ref> for covering themselves, also which the One Hundred bararians effectively manufacture; married women have top knots behind [their head]. It is tied at the back of their neck with various pearls and beads. '''Suō luó''' ('''娑罗''')<ref>'''Sarong''' today, however this appears to be a complex term with many copyediting issues historically, Brahmin drapes, Suoluolong, eventually describing a type of silk-cottob robe made from plant materials.</ref> are draped around their bodies as clothes, horizontally it connected at the waist and lower back as a skirt. ('''Suō luóbù pī''' ('''娑罗布披''') namely is the Chinese Cotton Tree (Bombax Ceiba) cloth, strong and thick, possibly weaved as blue, red patterns.) Yet it encircles black rattan several hundred times, wrapped at the waist and lower back, it wraps around [their leg] to be used as a blue printed cloth [as they're] barefoot.
([Used amongst the] Pú mán (蒲蠻), āchāng (阿昌), shì jiàn (事見)<ref>Only said once in the document and not obvious to allusions elsewhere. </ref>; [according to the] The Yunnan Gazeteer<ref>Written by Fan Chuo of the 9th century, also known as 蛮书 (Barbarian Document)</ref>.)
|-
|古刺,男女色甚黑。男子衣服装飾類哈刺,或用白布为套衣。婦人如罗罗狀(罗罗見《雲南志》)。
|'''Gǔlà''' ('''古剌''') [people] are coloured extremely black. The men's clothes, decorations and adornments closely resembled the '''Hālà''' ('''哈剌'''), and they use white cloth as [outer] covering garments. Married women resemble the '''Luó luó''' ('''罗罗''') [people]<ref>These are the Yi people of Eastern Yunnan. </ref>. ([For the] '''Luó luó''' ('''罗罗''') see The Yunnan Gazetteer.)
|-
|漂人,男女衣服皆類百夷。婦人以白布缠頭,衣露腹,以红藤缠之,娑罗布为裙,两接,上短下長,男女同耕。
|Pyu people<ref>This is the last time a document mentions the existence of Pyu people, namely. The Burmese stopped mentioning them by the 12th century, as did the Persians in the 10th century. Their retention of it suggests that absorption was slower and that the Burmese and Pyu were still distinct, according to the envoys.</ref>, [the] men and women's clothes all resemble the One Hundred Barbarians. Married women wear white cloth wrapped around their head, their clothes expose their stomach/ naval. By means of red rattan winding around them, the '''Suō luó''' ('''娑罗''') [is worn] as a skirt. Two [cloths] connect, upper [cloth] is short, bottom [cloth] is long. Men and women [both] till [the fields].
|-
|緬人,色黑類哈刺,男女頭上以白布缠高三四尺,衣大袖白布衫,腰以下一布通前後便缠之,貴者布長二丈余,賤者不一丈。甚善水,嗜酒。其地有树,狀若棕,树之杪有如筍者八九茎,人以刀去其尖,缚瓢於上,過一宵則有酒一瓢,香而且甘,飲之輙醉。其酒经宿必酸,炼为烧酒,能飲者可一盏。有为僧者,以黄布为袈裟,袒右手,戒行極精,午後不飲食。婦人貌陋甚淫,夫少不在,則與他人私,遂为夫婦。以白布裹頭而披花为衣。
|Burmese people, [their] colour is black like the '''Hālà''' ('''哈剌'''). Men and women [both] on their heads have white cloth wrapping around it [approximately] as long as three to four '''Chǐ''' ('''尺''';1.2 m-1.36 m). Their clothes are large-sleeved white cloth garments. Below the waist and lower back, one cloth goes all around to be wrapped around them. Expensive cloth is as long as two '''zhàng''' ('''丈'''; 6.2m-6.8m). Inexpensive [cloth] is not even one '''zhàng''' ('''丈'''; 3.1m-3.4m). They are extremely well-disposed to water and fond of wine. On their land, their trees appear as palm trees. They cultivate eight to nine stalks, with the tips of the leaves resembling bamboo shoots. The people take knives and cut off the tips. They bind a dried gourd ladle to it. After one night, it becomes a gourd of wine, fragrant and sweet to drink to intoxication. Their wine, undergoing [another] night, certainly becomes bitter; it gets refined into '''Shāojiǔ''' ('''烧酒''')<ref>A famous Tang Dynasty wine beverage.</ref>. [Heavy] drinkers can only drink one small cup. There are monks. Yellow cloth is used as Kasaya robes (Buddhist robes) with the right arm remaining bare. They strictly adhere to the utmost discipline. They do not eat or drink in the afternoon. Women's appearances are excessively plain, and they are promiscuous. If husbands are away briefly, they enter into relations with other men and succeed as a married couple. White cloth is wrapped around their head and draped on their shoulders in a printed way.
|-
|哈杜,巢居山林,無衣服,不识农业,惟食草木禽兽,善骑射。冷則抱巨石,山坡間往復奔走,以汗出为度。
|'''Hādù''' ('''哈杜''') [people]<ref>Chinese sources assume this group to be of the Austroasiatic Wa people.</ref> reside in nests in mountain forests; they do not wear clothes. They have no knowledge of agriculture. Only eating vegetation and birds and creatures. They are adept at horses and archery. [When] cold, they grab a boulder and make running trips back and forth between mountainsides until they perspire out to the temperature.
|-
|弩人,目稍深,貌尤黑,额颅及口邊刺十字十余。
|'''Nǔ''' people ('''弩人'''; crossbowman people), [have] deep-set eyes, [their] appearance is outstandingly dark. Their forehead and mouth edges are tattooed with crosses more than ten times.
|-
|有结些者,從耳尖連颊皮破,以象牙为大圈,横贯之,以花布裹頭,而垂余布於後,衣半身衫,而袒其肩。婦人未详。其人居戛璃者多。
|[There] is some knotted "Zo" people<ref>This term is mentioned as an ethnic group in the introduction. Over here it is used more awkwardly however. Despite all this, however, it is the first use of the Zhexie/Jiexie term, which was popularised during the Qing era.
However, this early, 些 Xie was actually Suo, like the Mosuo people. Hence, the name appears to be a misrendering of Zo people from an intermediary translator, possibly. Given this is in Kalay, this supports the fact that Zhexie stems from Jiesuo initially. To disregard the onfusion that some Chinese ethnographer claim these are Jinghpaw, the Jinghpaw are described by Lijing in his 14th century document of races of Burma where he calls them as the Luoxing barbarian (unclothed) and that they do not cultivate food. That would contradict the Baiyizhuan with his document. Hence it appears that this term is for the Zo people of Kalay more so.
It is possible that the term migrated over time to mean the Jinghpaw people by the Qing dynasty, but originally was a term for Zo people of the Kalay city. </ref>, from the tips of the ears to the cheeks, the skin is pierced. Using ivory as a large ring, they pass it horizontally through [the pierced skin]. Printed cloth is wrapped around the head and hangs down onto their back as a partially wrapped robe and bears their shoulders. Nothing is known/reported concerning the women.<ref>Likely possibly meaning that the women are indistinguishable from men. An observation echoed by the British of the Zo people during the colonial era.</ref>. Many of these people habitat at '''Kalay'''.
|-
|諸夷言语習俗雖异,然由大百夷为君長,故各或效其所为。夷人有名不讳,無姓。
|Although the various barbarian languages and customs are different, they follow the Greater One Hundred Barbarians as their central ruler. Therefore, possibly each group imitates that they do. The Yi people have names but observe no naming taboos; they have no surnames.
|-
|無医卜等书。不知时节,惟望月之盈亏为候。有事惟鸡卜是决。疾病不知服药,以姜汁注鼻中。病甚,命巫祭鬼路側,病疟者多愈,病熱者多死。地多平川沃土,民一甸率有數十千户,眾置貿易所,谓之街子。婦人用锄地,事稼穑,地利不能尽,然多产牛、羊、鱼、果。
|There are no books on medicine and divination. They are unaware of seasons. Only the moon in its waxing and waning is observed. For matters, a chicken is used for divination. For diseases they do not know how to take medicine. They pour ginger juice into their noses. For extreme sickness, the shaman offers spirit sacrifices next to the road. Those suffering from malaria are likely to recover. Those with a fever are more likely to die. The land is flat with plains and fertile, the people of a district can lead up to ten thousand households. They install commercial trade posts known as ''street markets'' ('''街子'''; Jiē zǐ). Women hoe and weed the soil and [attend] matters to do with sowing and reaping. The productivity of land cannot be exhausted, as there are many ox, sheep, fish and fruits.
|-
|其气候:春夏雨,秋冬晴,腊月亦如春,昼暄夜冷,晓多烟雾,無霜,春秋烟瘴甚盛。
|Their climate: In spring and summer, it rains. In autumn and winter, it is clear. In the 12th Lunar month ('''December-Feburary''') it feels like spring. The daytime is warm, and the nighttime is cold. At dawn, there is a lot of fog. They have no frost. Spring and Autumn miasma carries an excessive level of malaria.
|-
|其飲食之异者:鳅、鳝、蛇、鼠、晴蜓、虫负、蛟、蝉、蝗、蚁、蛙、土蜂之類以为食;鱼肉等汁暨米汤信宿而生蛆者以为飲。
|Their food and drink are unusual in the following ways. Loach, eels, snakes, dragonflies, insects, aquatic animals, cicadas, locusts, ants, frogs, and scoliod wasps are all types of food. They drink the juice of fish, meat, and rice gruel, which, over two nights, gain maggots, which are eaten.
|-
|其草木禽兽之异:草則秋間數十百株结为一聚,地产此草,烟瘴尤甚。树木多有三四株结为連理。有大如斗之柑,有鲇頭鲤身之鱼,水牛頭黄牛身之牛,绵羊頭山羊身之羊。雄鸡多伏卵,亦有生卵者。者闌有一池,沸如汤,人多投肉熟之。
|Their plants and animals are unusual: in autumn, their grass joins from hundreds of stalks to cluster. The land these grasses grow on has an excessively strong malarial miasma. Trees often produce multiple stumps in a fusion. There are large tangerines as large as dippers. There is [a] fish with a sheatfish head and carp bodies. There are oxen with water buffalo heads and yellow ox bodies. There are sheep with sheep heads and mountain goat bodies. Roosters brood over eggs, there are also [males] that lay eggs. At '''Zhě lán''' ('''者闌''')<ref>On the Shan Myanmar and China border near Muse.</ref>, [the size of] ponds for boiling soup. People often cast mature meat in it.
|-
|境内所产珍物:雅琥、琥珀、犀、象、鹦鹉、孔雀、鳞蛇、脑、麝、阿魏、金、銀、玻璃之類。
|Within its borders are the following precious items it produces: elegant amber, amber, rhinoceros, elephant, parrots, peacocks, snake scales, brains, musk deer, Resina Furelae, gold, silver, glass types of products.
|-
|其山水险隘。北有高良弓山,横亘二百余里,高五十余里,與怒江相倚。西有馬安山,山有一关,若一人守关,萬夫难入。東为麓川江,可通舟楫。南與金沙江合而入於西海。南下交趾界。金沙江之南,有東胡、得冷、緬人三國。緬之西即西天也。
|The mountains have narrow, dangerous river passes. North there is the Gaoligong Mountains<ref>The big mountain range of Western Yunnan that divides easy crossings to Kachin State.</ref>, it horizontally extends two hundred '''Lǐ''' ('''里'''), and is tall as five hundred '''Lǐ''' ('''里''') right next to the '''Nùjiāng''' ('''怒江'''). West is the '''Mǎ'ān Mountain''' ('''馬安山'''). The mountain has one mountain pass. If one person guards the pass, then ten thousand will struggle to enter. East is the '''Lù chuān River''' ('''麓川江'''). You can pass it in an oarboat. South is the '''Jīnshā River''' ('''金沙江''') which enters at the western sea. South it borders '''Jiāozhǐ''' ('''交趾'''; Vietnam). Further south of the '''Jīnshā River''' ('''金沙江''') are the three polities, which has '''Dōnghú''' ('''東胡'''; Eastern Barbarians), '''Dé lěng''' ('''得冷'''; Derung people) and '''Miǎn people''' ('''緬人'''; Burmese people). West of Burma lies the Western Regions<ref> A term for India and Central Asia, which were Buddhist.</ref>.
|-
|緬國古舍利國,又名狮子國,多佛塔。緬國與夷連歲横兵。洪武之亥冬,緬人诉於朝。丙子春,皇帝遣臣古训及桂阳李思聪至两國,諭以睦邻之义。
|Burma, formerly the '''Shèlì country''' ('''舍利'''), also known as the Lion Country, is filled with pagodas. Burma and the Yi Barbarians were in continuous warfare for years. During the reign of the Hongwu Emperor in the winter of the year of the boar ('''1395 A.D.'''), Burma issued a royal complaint. In Spring of the Year of the Rat, ('''1396 A.D.'''), the Emperor dispatched official Guxun and Li Cong of Guiyang to the two countries to order them to get on well as neighbours with righteousness.
|-
|}
===Statements and Relations between the Kingdoms===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Outcome of the envoys mission and political relations between Shans and Burmese.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其諭緬國王曰:
|In it, I addressed the King of Burma, saying:
|-
|『里路险遠,山川阻修,风殊俗异,此乃天造地設也。尔能勤使者,涉险遠,越邻邦以至中夏,其使者之难,冲烟突雾,晨進昏止,饥餐渴飲,吞吐烟岚,异风霜而方至。其为使者,不亦难乎!古人有云:诚君子將有事於遠,友千里之外,神交而志通。今萬里之外,尔能勤使而至,遠修其好,美絕古而惟今。然排难解纷之事,朕之旨意,恨不一言而正,使彼此各罢兵守,樂黎民於市野,民居共处,砃相邻而同井飲,籍雖两國之民,居处难分,惟存关市有讥,是其和也。若尔緬不主衅,夷不强凌,如此,雖弱自保,以奉天道。其或不听朕命,忿争不已,天將昭鉴,福善祸淫,迟速可待。鯩至,朕不多诫。但诚可以交天人,尔其审之,母忘朕諭。』
|The roads are dangerous, and far, mountains and rivers are obstructive and long. Their social ways and customs are different. This is what heaven and earth have established. Yet you are able to diligently [carry out your duties as an] envoy. Taking risks far, passing neighbouring countries to the Chinese heartland. Clashing with smoke, dashing through mist. Advancing at dawn and stopping at twilight, eating when hungry and drinking when thirsty. Breathing in and exhaling mountain vapours, enduring unfamiliar winds and frost before finally arriving. To be an envoy was this not difficult? The ancient people have a saying: <em>Truly, when a gentleman has affairs to undertake in distant places, he has friends a thousand <strong>Lǐ</strong> (<strong>里</strong>), their spirits commune in spirit and their intentions are mutually understood.</em> Now ten thousand '''Lǐ''' ('''里''') away, you can diligently envoy and arrive, from afar cultivate their friendship. However, regarding the matter of resolving difficulties, this is my intention. I lament that I cannot settle the matter in a single utterance as to cause both sides to cease war and guard their territory so that the common people might enjoy marketplaces and countryside. Let the people coexist [as] neighbours of white stone who drink from the same well. Although registered as the people of two countries, their dwellings are difficult to distinguish. Only the inspections at frontier markets will remain. This would be peace between them. If the Burmese do not initiate hostility, and the '''Yi''' do not forcefully oppress you, in this way, althought [one is] weak it may defend itself, as to follow the law of heaven. If they do not listen to my order, angry contention will not cease; heaven will see it clearly. Blessed will the good, and calamity will be brought on the transgressor, quick or slow; the consequences will come. <strong>Lún</strong> (<strong>鯩</strong>) arriving, I will not elaborate further; only sincerity can bring one into accord with heaven and humanity. You must consider this; do not forget my instruction.
|-
|諭思侖發曰:
|Above '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) spoke:
|-
|『朕中國先古圣人,驭顽礼德,各有条章。是条章也,列圣相继,守而行之,上下相安,黔黎樂业。何也?諸侯敬畏,世禄子孙,國祚绵長,乃九伐之功驗也。列國敢有凭弱犯寡者,天子發兵以眚之;贼贤害民者,亦發兵以伐之;暴内凌外,則兴師以坛之;野荒民散,則用兵以削之;负固不服,則舉兵以侵之;贼殺其亲,則正其罪以殺之;放弑其君,則明其罪以诛之;犯令凌政,則杜而絕之;内外乱,鸟兽行,則殄灭之。九伐之征如是也。尔思侖發,以中國较之,合问凭弱犯寡之由。何以見?歲以兵寇車里,不时侵掠八百,恃强犯緬;戛璃國小民寡,而已平之,斯说也,不過告诫之词。中國周临四夷,與諸酋長地里相接,居民亦相密迩,如此者,耳闻之邦若干,目擊之邦若干,朕未嘗恃强凭凌,絕灭其嗣者。雲南之地,已为我有,似乎尚强以取之,非也!乃元世子孙梁王者,恃元之苗裔,匿我有罪,納我逋逃,诱我邊守,是乃不得已而發问罪之師,非無故而兴師。此乃元运天更,其苗裔不当安处。况生事於我邻邦,其理势使然,夷如反掌。尔麓川之蠢,初擅兴金齒之役,次谋景東而寇定邊,理当大發精兵而较胜负。朕释而不较,未嘗强尔为約束之邦,听尔自为声教,今又几年矣。近闻蚕食邻邦,意在扩土地而擅有其眾,又將为我西南之役。噫,未可!古中國圣人有云:‘山川地理人物之類,乃神器也,非人强有,必天授然後得之’。尔思侖發不修邻邦之好,三面發兵,蚕食諸國,其贪也如是,其谋也如是。彼麓川周临之國,始古至今,各有主者,未嘗吞并。朕雖不能止尔,听尔自为,果天道使然,尔以人事应之,或为而可。噫!以朕戒尔守全則可,不守全而以全动,設若全亏,是为全亡,莫如守全以圖绵長,不亦美乎?』
|The ancient sages of my Middle Kingdom governed the unruly through ritual propriety and moral virtue, each had rule and regulations. These rules and regulations were arranged in successive order to preserve them and put them into practice. Those above and below lived in mutual harmony. The common people enjoyed their livelihoods. Why is that? Local rulers revered [central authority], the descendants inherited their stipends and ranks, the state's fortunes endured for a long time. Thus [these] were the proof of the achievements of the Nine expeditions. Various states that dare to rely on strength to attack the weak, the Son of Heaven would send troops to punish them. Those who harm the worthy and injure the people would likewise be militarily punished. If a ruler oppressed those within and bullied those without, an army would be raised to subdue him. If the countryside lay waste and the people were scattered, troops would be employed to reduce it. If a state relied on its strong defences and refused submission, troops would be raised to invade it. If [a ruler] murdered his own kinsmen, his crime would be formally established with guilt and [thus] be put to death. If a subject expelled or murdered his ruler, his crime would be made manifest, and he would be executed. If a state violated commands and defied government authority, it would be blocked off and cut off. If there were disorder both within and without, and people behaved like birds and beasts, they would be utterly destroyed. Such were the circumstances and punishments of the Nine Punitive Expeditions. You, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa), measured against China , it is fitting to ask the reason why you rely upon strength to attack the weak. How is this evident? Year after year, [you] have used troops to raid '''Chēlǐ''' ('''車里''') and at irregular times invaded and plundered the Eight Hundred.<ref>Short hand for Eight Hundred Wives and Daughters in Laws Country, the old name for Laos or Lan Na. </ref> [Hence] presuming upon your strength to attack Burma. The '''State of Kalay''' is small, and the population is few, and you have already subdued it. This is the account [I have given]. It is nothing more than words of admonition. China borders the "Four Barbarians"<ref>Four Barbarians: North - Di, East - Yi, South - Man and West - Rong. </ref> Its territory adjoins that of various chiefs, their populations live in close proximity. Of such states, there are some which I know by report, and some which I have seen with my own eyes, I have never relied on my strength to domineer over them, or extinguished their line of succession. The territory of Yunnan belongs to me, it might seem that I nevertheless used force to take it, but that is not so! Rather, a descendant of the Yuan Imperial House, Prince of Liang, relying on his Yuan Royal heritage, concealed those who committed offences against me and harboured my fugitives and enticed my frontier defenders to defect. Precisely for this reason, I had no alternative but to send a force and call for an offence with an army to carry out [that purpose]. I did not raise an army without cause. This was because the fortunes of the Yuan had changed by heaven's decree, and its descendants were no longer entitled to remain securely established there. Moreover, he [Prince of Liang] has caused trouble among my neighbouring states; the circumstances and principles made the outcome inevitable, and their subjugation was as easy as turning over one's hand. As for you, foolish '''Lùchuān''' ('''麓川'''), you first took it upon yourself to launch the Gold Teeth campaign, next you plotted against '''Jǐngdōng''' ('''景東''') and raided '''Dìngbiān''' ('''定邊'''). By right, this called for the dispatch of a large force of elite troops to determine the victor and vanquished. I released you and did not press on the matter. I have never compelled you to become a subordinated state. I allowed you to establish your own institutions and customs, and now several years have passed. You have been gradually encroaching upon neighbouring states with the intention of expanding your territory and taking possession of their people on your own authority, and will thereby be a cause of war for me in the southwest. Alas, this cannot be! The ancient sages of China have a saying: The mountains and rivers, the land and the people are all such things as constitute the Divine Realm; they cannot be forcibly possessed by men - only when heaven bestows them may they be obtained. You '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) do not cultivate friendly relations with your neighbouring states, you send troops on three fronts and gradually encroach upon the various states, such is your greed and such is your scheme. The states surrounding '''Lùchuān''' ('''麓川''') have, from ancient times to the present, each had their own rulers; they have never been swallowed up and annexed. Although I cannot prevent you, I have allowed you to act for yourself. If indeed this has brought about the Way of Heaven, you must respond to it through human affairs; perhaps what you do will thereby be acceptable. Alas! If, in accordance with my admonition, you preserve what is whole, then that is acceptable. But if you do not preserve it intact, and instead stake the whole upon action, suppose, however, that the whole is impaired, that would mean the whole is lost. Better yet, then, to preserve the whole and thereby seek lasting continuity. Would that not be admirable?
|-
|由是二國罢兵和好。
|because of the truth, the two countries ceased war and reconciled.
|-
|时古训等适遇百夷其部下酋長曰刀干孟者叛其國,余等以大义諭其部眾,而叛者闻之稍却。於是,思侖發欲留余等以为援,且進以金寶象馬等物,故余以书示之曰:
|At the time, Guxun, happened to encounter One Hundred Barbarians subordinate chief named '''Dāo gànmèng''' ('''刀干孟''') betray the country. We and the others explained/instructed his followers on the basis of the great principle/righteous cause and as a result, the rebels hearing it gradually withdrew. As a result, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) wished to preserve us as a source of assistance. He offered gold, valuables, elephants, horses and other gifts. Hence I presented this letter to reveal to him saying:
|-
|『吾闻君上有怀遠之德,遠臣有敬上之心,始古迄今,莫违此义。夫君居九重之上,雖欲顷刻目尔遠臣,未可得也,臣处萬里之外,即欲朝暮身亲君上,亦未易得也。故朝廷有將命之官,使之宣德布威;而遠方有承命之宜,期其輸忠納款。今天子应天顺民,奉天为治,四维八極,尽为臣妾,無有专擅,不敢违逆。西南一区,夷酋亦眾,惟尔麓川,多蒙恩宠,既受以官,復加以服。况贤王亲临尔境,而德惠數及尔身。为尔计,則將度其心,量其才,何为而可以尽忠天子,何为而可以致敬贤王,又何为而可以安邊境而不干天怒,又何为而可以教百姓而不违法度?借曰邊境不安,必思曰,我事上未忠或未至,而眾不服我耶?百姓违法,必思曰,我守職已或有僭而民亦犯上耶?於是我則尽其忠,去其僭,如此,則邊境自安,人民從教矣。且吾以尔目擊效驗明之:往年思瓦發不服朝廷,轻犯金齒,天子雖未问罪,天則假手於達鲁方等,而思瓦發被戮。刀思朗不從尔命,窃寇定邊,尔雖未能息其兵,天則助威於我邊將,而刀思朗等即灭。惟尔知天命,達人理,故能享天禄,守人爵。迩来天子恐尔所为,或涉放肆,特敕諭以戒之;贤王恐尔無知,或生疑懼,特令旨以恤之。此恩此德,穷天極地。尔之披肝露胆,开心見诚,吾尽見矣;尔之尊重朝廷,敬奉殿下,告亦見矣。今尔固留吾辈,其意本美。近者尔甸寨少宁,刀干谋异,吾將回朝为尔明白其事,尔乃留我,使我不速還朝,假如刀干鸣尔留难天使之非於朝,則反误尔敬君之心矣。且尔赠以金、銀、裀褥、馬、象等物,吾固不受者,非見怪也,實相爱也。何則?朝廷恩尔,抚安尔邦,未嘗令使者取货於尔也。夫货财,饥不可以充口,疾不可以救死。况中國金玉成山,象馬若蚁,未以为寶也,惟所寶者,圣君、明王、忠臣、烈士、强兵、勇將、孝子、顺孙等事,其他财物,如粪土耳。姑以尔境内眾所闻者明之:昔隋史萬歲守邊,夷而贪财,以致殺身。梁毗一金不受,而大服夷眾。此事甚白。吾为圣朝天使,必不为财物所蛊,惟恐吾之使令往来小人,不体吾意,蛊惑尔心,特此叮咛。尔其备审此书,体吾真意,早送吾辈還朝,則尔敬君之心,不浅浅也。』
|I have heard that a ruler above possessed the virtue of cherishing those who are far away. Those distant subjects have a heart of reverence to their ruler above. From the beginnings of ancient times until now, none have deviated from this principle. The ruler resides above the Ninefold Gates, although he wishes to see you, his distant subject, even for a moment, this cannot be done. I, your servant [of the Emperor], reside ten thousand '''Lǐ''' ('''里''') away. Even if I wanted to be personally close to my ruler morning and evening, that too would not be easy to achieve. Therefore, the imperial court has officials who carry its commands, sending them to proclaim its virtue and make its authority manifest, while distant polities obey the commands and fulfil their duty, in expectation that they will render their loyalty and submit their allegiance [to the Emperor]. Now the Son of Heaven responds to Heaven and follows the people, governing in accordance with Heaven. Throughout the four quarters and the eight extremities, all are subjects, none acts autonomously, and none dares to oppose [the imperial order]. In the southwestern region, the chiefs of the Yi people are also numerous, but you, <strong>Lùchuān</strong> (<strong>麓川</strong>), have received especially abundant imperial favour; having already been granted an official position, you were furthermore granted the appropriate dress. Moreover, the worthy king personally came to your territory, and his benevolence and favour have repeatedly extended to you personally. For your own sake, you should consider your intentions and measure your abilities. What can you do that will enable you to fulfil your loyalty to the Son of Heaven? What can you do that will enable you to show proper respect to the worthy king? What can you do to keep the frontier peaceful without incurring heaven's anger? And what can you do to govern the common people without violating the laws and regulations? Suppose, for argument's sake, the frontier were to become unsettled, you must think yourself: "Perhaps I have not been sufficiently loyal in serving my superior, and that is why people do not submit to me?" If the common people violate the law, you should think: "Perhaps, although I have maintained my office, I have in some way overstepped my proper station, and thus the people too are offending against their superior? Then I would fully fulfil my loyalty and remove any acts of overstepping I had committed; in this way, the frontier will naturally become peaceful, and the people will follow proper instruction. Moreover, I shall make this clear to you through examples that you yourself have witnessed. In the past years, '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) refused to submit to the court and rashly attacked the Golden Teeth. Althought the Son of Heaven did not call hbim to account, Heaven nevertheless acted through the hands of '''Dálǔfāng''' '''(達鲁方'''), and the others and '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) was killed. '''Diāosīlǎng''' ('''刁思朗''') did not obey your command and secretly raided '''Dìngbiān''' ('''定邊'''). Althought you were able to bring his hostilities to an end, Heaven then lent its might to my frontier commanders and '''Diāosīlǎng''' ('''刁思朗''') and the others were immediately destroyed. It is because you understand the Mandate of Heaven and comprehend principles of human affairs that you can enjoy heaven's emoluments and preserve your human rank. Recently, the Son of Heaven feared that what you were doing might become excessive, and specially issued this admonition to warn you; the Worthy King feared that your lack of understanding might give rise to doubt and fear, and specially sent his instructions to show you compassion. Such grace and such benevolence extend to the furthest reaches of Heaven and Earth. You're laying your heart completely bare, showing your sincerity, I have seen it all. [Your] respect for the imperial court [and] reverant service of the Emperor has been reported as well. Now you firmly retain our party, itself well-intentioned. Recently, your districts and stockards have enjoyed peace, while '''Dāo''' '''Gàn''' ('''刀干''') have conceived some other designs. I was going to return to court to make the matter clear on your behalf, yet you have kept me here, causing me not to return promptly to court. Suppose <strong>Dāo Gàn</strong> (<strong>刀干</strong>) were to report to the court your offence of detaining and obstructing the imperial envoy, then that would compromise your sincere respect for your ruler. Moreover, you presented us with gold, silver, padded mats, bedding, horses, elephants, and other such things, my refusal to accept them is certainly not because I take offense. The court has shown you favour and pacified your realm. It has never instructed its envoys to take goods from you. Regarding wealth and possession, when one is hungry, they cannot fill the mouth; when one is sick, they cannot save one from death. Besides, in China, gold and jade are piled as high as mountains, while elephants and horses are as numerous as ants; we do not regard these things as treasures. What we do treasure are the deeds of sage rulers, enlightened kings, loyal ministers, righteous men, strong armies, brave generals, filial sons, dutiful grandsons and things of this kind. All other material possessions are like dung and earth and nothing more. For the moment, by means within your territory, what the people commonly hear that which should be clear. In former times, <strong>Shǐ Wànsuì (史萬歲)</strong> guarded the frontier; he was greedy in dealing with the tribes and thereby brought about his own death. '''Liáng Pí''' '''(梁毗''') did not accept even a single piece of gold, thereby greatly earning the respect of the Yi people. The matter is very evident. I am an imperial envoy of the sacred dynasty; I certainly cannot be corrupted by material wealth. I only fear that petty men among those who travel back and forth on my missions do not do not consider my intentions and instead mislead or corrupt the mind. For this reason, I have given you special admonition. You should carefully examine this letter in full and understand my true intention. Send us back to court promptly, then your heart of reverence for the ruler would not be so shallow.
|-
|书至,思侖發悦服,遂邀至其家,設宴畢,與其眾送出境外。
|When the letter arrived, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) was pleased, and received it favourably. Thereupon invited him to his home. After the banquet, together with his retinue escorted them beyond the borders.
|-
|百夷,由金齒、蒲漂過怒江即其境。沿江東數十里,上有高良弓頗险。其岭有一寨。過一寨下四十里,地名养列,自此抵麓川無险隘之虞。由麓川经蠻牛、莽港等路,渡谨卯,從蒙戛等甸至麻林界,登金沙江之舟,下流二十日至緬國。國王眾呼为卜剌浪,王之妻呼为米泼剌。
|The One Hundred Barbarians, via the Gold Teeth, '''Pú''' ('''蒲'''), '''Pyu people''', upon crossing the '''Nùjiāng River''' ('''怒江''') reach their territory. Along the river, east about ten <strong>Lǐ</strong> (<strong>里</strong>), there is the tall, rugged, dangerous Gaoligong [mountains] above. The mountain range has one stronghold. Passing a stronghold, below forty '''Lǐ''' ('''里''') is a place named '''Yǎng liè''' ('''养列'''), since then reaching the '''Lùchuān''' ('''麓川''') there is no concern of dangerous narrow passes. Following '''Lùchuān''' ('''麓川''') pass through the routes of '''Mánniú''' ('''蠻牛'''), '''Mǎnggǎng''' ('''莽港''') and other places, crossing '''Jǐnmǎo''' ('''谨卯'''), from the district of '''Ménggā''' ('''蒙戛''') to the '''Málín''' ('''麻林''') border, [one must] board a boat on the '''Jīnshā River''' ('''金沙江'''), downriver twenty days one reaches Burma. The king is referred by the populace as '''Bōlàlàng''' ('''卜剌浪'''), the king's wife is referred to as '''Mǐpōlà''' ('''米泼剌''').
|-
|}
==References==
{{reflist}}
{{Subjects|Military history}}
a1sp5pj4a6qqjdtvjdstuk88y816256
4674796
4674795
2026-10-07T04:12:20Z
Taitesena
3485636
4674796
wikitext
text/x-wiki
__NOTOC__
{{Translation header
| title = Baiyi Zhuan (百夷傳)
| author = Qian Guxun (錢古訓)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes = The Baiyizhuan, or, '''Biography of 100 Barbarians''', was compiled by Qian Guxun (錢古訓) with Li Sicong (李思聪) and sent to the Ming Dynasty but never formally published yet stored away. Copies emerged under both names however, most agree that both envoys wrote their own accounts of Myanmar to control the issue of Shan Kings on the borders. This version is attributed to Qian Guxun and sourced from Wikisource.
}}
== Front Matter ==
Translator Note:
For the non-letter transcripts, I have used complete manual lookups and translation to English. Due to the informal, poetic and bureaucratic language, I took external assistance to guide me including AI only to clarify the meaning of the characters in the context as I struggled to articulate how a 14th century bureaucrat would write their letters to rulers. I still manually wrote and formatted it with the lookups however, but have declared this for transparency as part of my workflow. However, the ethnic nomenclature and practices and historical events detailing which hold stronger merit have not lost validity in that respect.
For the character "刺" this has been corrected to 剌 which is used as an actual phonetic. The original transcript mainains the incorrect character, but the translation gloss will correct it.
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Premable to the purpose and context of the document and political situation.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|百夷,在雲南西南數千里,其地方萬里。景東在其東,西天古刺在其西,八百媳婦在其南,吐番在其北;東南則車里,西南則緬國,東北則哀牢〈(今之金齒衛也)〉,西北則西番、回紇。
|[The] One Hundred Barbarians<ref>This generally refers to the Tai Shan people. </ref> are a few thosand '''Lǐ''' ('''里''') southwest of Yunnan. There region is very far away. '''Jǐngdōng''' ('''景東''') is east of them. The western regions Gǔ cì (古刺) [people] are west of them. South of them are the '''Eight Hundred Xífù''' ('''八百媳婦'''; Laos). North of them is Tibet. Southeast of them is Chē lǐ (車里), southwest is Burma, Northeast is '''Āiláo''' ('''哀牢''')<ref>The ancient tribal confederation of the Yongchang-Gaoligong area.</ref> Today, these are the gold tooth people. Northwest of them is
Western Barbarians and '''Huíhé''' ('''回紇'''; Uyghur people).
|-
|俗有大百夷、小百夷、漂人、古剌、哈剌、緬人、结些、吟杜、弩人、蒲蠻、阿昌等名,故曰百夷。
|The customs of Greater One Hundred Barbarians, the Lesser One Hundred Barbarians, the Pyu people<ref>This document still distinguishes between the Pyu people from the Burmese despite no further domestic inscriptions mentioning them. In particular their clothes give this away apparently later in the text.</ref>, '''Gǔlà''' ('''古剌''') [people], '''Hālà''' ('''哈剌''') [people], Burmese people, '''jiēsuò''' ('''结些''')<ref>There is reason to believe that these may be the Zo people. The Jie however is difficult to understand, likely a terminology transfer issue from intermediaries. Like the Mosuo people, I suggest this to be read as Jie Suo. If so, this would be the earliest mention of Zo terminology since Vincent Sangermono.</ref>, '''Yíndù'''('''吟杜''')<ref>These are only mentioned once in the document. Whether it's a mix-up with Hadu, or referring to Indians, is unknown.</ref>, Nǔ people (弩人; crossbowman people)<ref>These are assumed to be early Nungish Tribes, however this is speculation. Later texts discuss the 怒族 for example which sound the same. </ref>, Pú (蒲)<ref>The 蒲人 / 蒲满 according to You Zhong is the '''Bulang (布朗族)''', '''Wa (佤族)''', '''De'ang (德昂族)''' people. Austroasiatic groups of Burma.</ref> and Āchāng (阿昌)<ref>The successors of the Western Yunnan 尋轉 barbarians recorded by 繙綽 in the 蠻書.</ref>, among others, can be spoken of as the One Hundred Barbarians.
|-
|漢以前未嘗通中國,諸葛亮征蠻,亦抵怒江而止。唐天寶中,夷人始随爨歸王入朝。其眾各有部領,不相統屬。
|Before the Han dynasty, they had no contact with China.<ref>The main exception may be the Ailao people.</ref> '''Zhūgé liàng''' ('''諸葛亮''') went on an expedition against the barbarians, where he stopped right up against the '''Nùjiāng River''' ('''怒江'''). During the Tianbao Era of the Tang Dynasty, the barbarians began to follow the '''Cuàn''' ('''爨''') and '''Guī''' ('''歸''') clan leaders.<ref>The '''Cuàn''' ('''爨''') eventually founded the Kingdom of Nanzhao, which ruled powerfully in the region, competing with Tibet and Tang China.</ref> The people had their own leaders and were not unified.
|-
|元憲宗三年,世祖由吐番入麗江,自葉榆平至雲南〈(葉榆即大理也)〉。明年,命將兀良哈臺征降夷地。遂分为路二十、府四、甸四十有四、部二十有六、各設土官,置金齒都元帥府領之。有所督,委官入其地,交春即還,避瘴气也。
|In Emperor Xianzong's 3rd year in the Yuan Dynasty, Emperor Shìzǔ (世祖; Kublai Khan) entered '''Lìjiāng''' ('''麗江''') from Tibet and himself in '''Yèyú''' ('''葉榆'''; Present Day Dali) brought peace to Yunnan. The following year, [he] commanded General UriyangKhadai to pacify the barbarian lands. The region was transformed into twenty circuits, four prefectures, forty-four districts and twenty-six departments, each with indigenous officials overseen by the Gold Teeth Commander in Chief.<ref>A Tai Shan Leader likely.</ref> Officials were appointed to administer certain lands, returning by spring to avoid malarial miasma.
|-
|至正戊子,麓川土官思可發數侵扰各路,元帥搭失把都討之,不克。思可發益吞并諸路,而遣其子滿散入朝,以輸情款。雖奉正朔,納職貢,而服用制度,擬於王者。思可發死,子昭併發立。八年,傳其子臺扁。踰年,臺扁從父昭肖發殺之而自立,期年,盗殺昭肖發,眾立其弟思瓦發。
|In the the 8th year of the Zhizheng era ('''1348 AD''') Lùchuān (麓川) indigenous chief '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) had been countlessly harassing and invading every road. The Commander-in-Chief '''Dāshībǎ''' ('''搭失把''') sent armed forces to the capital but was unable to. '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) annexed further circuits and dispatched his son '''Mǎnsàn''' ('''滿散''') to the imperial court to offer terms of service. Although they accepted tribute and the official calendar of the Ming dynasty, their clothes and administration resembled that of a monarchy. '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) died, his son Zhāo bìngfā ('''昭併發'''; Hsö Pem Hpa) was established. Eight years later it passed to '''Táibiǎn''' ('''臺扁'''; Hsö Siu Hpa). A year later, '''Táibiǎn's''' ('''臺扁'''; Hsö Siu Hpa) uncle '''Zhāo xiàofā''' ('''昭肖發'''; , Hsö Kap Hpa) killed him himself and seized power. A year later, bandits killed '''Zhāo xiàofā''' ('''昭肖發'''; Hsö Kap Hpa) and established his younger brother '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) [as ruler].
|-
|國朝洪武辛酉,平雲南。明年,思瓦發寇金齒。是冬,思瓦發略于者闌、南甸。其屬達鲁方等輙立滿散之子思侖發,而殺思瓦發於外。即譴使貢白象、犀、馬、方物於朝。廷議不忍絕以化外,乃命福建左參政王鈍率雲南部校郭京美等,諭以向背利害,約以每歲貢獻之率,而遂内附。於是授思侖發为麓川平緬軍民宣慰。丙寅,復寇景東。明年,部屬刁思朗犯定邊,天子命西平侯沐英總兵敗之,獲刁思朗,夷人懼服。上以遠人不加約束,故官稱制度皆從其俗。
|In the current dynasty, in the 58th year (Xinyou) of the Hongwu Emperor ('''1381 A.D.'''), Yunnan was pacified. The next year, '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) plundered the Gold Teeth barbarians. That winter, '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) captured the territory of '''Zhělán''' ('''者闌''') and '''Nándiàn''' ('''南甸'''). His subordinate '''Dálǔfāng''' ('''達鲁方''')placed '''Mǎnsàn's''' ('''滿散''') son, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) as ruler and killed '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) when outside. The offered tribute included white elephants, rhinoceroses, horses and other local products. The palace could not bear to cut ties with outside spheres of influence and commanded the Fujian Left Vice Official '''Wáng Dùn''' ('''王鈍''') to lead in the checking of the city walls of Yunnan, order discussions of pros and cons of allegience, discuss the annual tribute rate and secured their submission. He conferred '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) as the Burma Pacification Commissioner. In the third year ('''1386 A.D.'''), he returned to invade '''Jǐngdōng''' ('''景東'''). The next year, his subordinate '''Diāosīlǎng''' ('''刁思朗''') invaded '''Dìngbiān''' ('''定邊'''). The Emperor ordered Marquis of '''Xīpíng''' ('''西平''') '''Mù yīng''' ('''沐英''') to lead an army to defeat him where he caught '''Diāosīlǎng''' ('''刁思朗'''). The barbarians became fearful and submitted. In order not to restrict those far-away peoples, the official system and administration were all in their customs.
|-
|其下稱思侖發曰『昭』,猶中國稱君主也。所居麓川之地曰者闌,猶中國稱京師也。其屬則置『叨孟』以總統政事,兼領軍民。『昭錄』領萬餘人,『昭綱』領千餘人,『昭伯』領百人;領一伍者为『昭哈斯』,領一什者为『昭准』;皆屬於『叨孟』。又有『昭錄令』,遇有征调,亦與『叨孟』統軍以行。其近侍呼为『立者』,閽寺呼为『割斷』。大小各有分地,任其徭賦。
|'''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) is called '''Zhāo''' ('''昭'''), like how China uses "Lord". '''Lùchuān's''' ('''麓川''') [ruler's] dwelling place is called '''Zhělán''' ('''者闌'''), like how China uses the term "Capital". Their subordinates are known as '''Dāomèng''' ('''叨孟'''), who generally handled political affairs while simultaneously leading the military and civilians. '''Zhāolù''' ('''昭錄''') led over ten thousand households, '''Zhāogāng''' ('''昭綱)''' led over a thousand households, '''Zhāobó''' ('''昭伯''') led a hundred households. Those who led five soldiers were known as '''Zhāohāsī''' ('''昭哈斯'''), those who led ten soldiers were known as '''Zhāozhǔn''' ('''昭准'''). Each [of these] were part of the '''Dāomèng''' ('''叨孟'''). There is also '''Zhāolùlìng''' ('''昭錄令''') who also happen to carry out conscription for the '''Dāomèng''' ('''叨孟''') to gather an army to lead. Their attendants were known as '''Lìzhě'''('''立者'''). Doorkeepers of Buddhist temples were called '''Gēduàn''' ('''割斷'''). Big or small each had distributed land appointed and endowed to them as compulsory servicefor corvee and taxes.
|-
|上下僭奢,雖微職亦繫鈒花金銀帶。貴賤皆戴筍籜帽,而飾金寶於頂,如浮圖狀,懸以金玉,插以珠翠花,被以毛纓,綴以毛羽。貴者衣綺麗。每出入,象馬僕從滿途。象以銀鏡數十聯綴於羈靮,緣以銀釘,鞍上有闌如交椅狀,藉以裀褥,上設錦障蓋,下懸銅響鈴,坐一奴鞍後,執長鉤驅止之。遇貴於己者,必讓途而往。凡相見必合掌而拜,習胡人之跪。長於己者必拜跪之,言則叩頭受之。叨孟以下見其主,則膝行以前,二步一拜,退亦如之。執事於貴人之側,雖跪終日無倦狀。貴人之前過,必磬折鞠躬。宴会則貴人上坐,其次列坐於下,以逮至賤。先以沽茶及蒌葉、檳榔啖之(沽茶者,山中茶葉,春夏間采煮之,實於竹筒内,封以竹箬,過一二歲取食之,味極佳,然不可用水煎飲)。次具飯,次進酒饌,俱用冷而無熱。每客必一仆持水瓶側跪,俟嗽口盥手而後食。食畢亦如之,而後起。客十則十人各行一客。酒或以杯,或用筒(筒以蕨楷,或用鵝翎管連贯,各長丈餘,漆之而飾以金,假若一酿酒,則漬以水一滿瓮,插筒手中,立標以驗其盏數,人各以次舉筒咂之。咂酒一盏,仍漬水一盏,傳之次客,味甚佳,至淡,水方止,俗呼为咂酒)。酒與食物必祭而後食,食不用筯。酒初行,一人大噪,眾皆合之,如此者三,乃舉樂。樂有三等:琵琶、胡琴、等笛、響盏之類,效中原音,大百夷樂也。笙阮、排簫、箜篌、琵琶之類,人各拍手歌舞,作緬國之曲,緬樂也。銅饒、銅鼓、響板、大小長皮鼓,以手拊之,與僧道樂頗等者,車里樂也。村甸間擊大鼓,吹芦笙,舞干为宴。長者授卑賤酒食,必叩頭受之,易以他器而食。食畢,仍叩頭而退。
|The people, both high and low [in status], were extravagantly overstepping [in their dress]. Even small duty officials fastened engraved, patterned belts of gold and silver. [Both] nobles and commoners wore bamboo-shoot-woven hats and decorated them with gold, like a crown resembling pagodas, hanging with jade and gold and inserted with pearls and colourful gems, covered with tassels and quilted feathers. The clothes of wealthy individuals are enchantingly beautiful. Whenever one goes out, elephants, horses, and servants fill the roads. The elephants have about ten or so silver mirrors attached to their reins and bridles, edged with silver nails. On the saddle, there is a railing resembling an old wooden-style armchair with cushion-like under padding, a mattress, and brocade above the top and copper ringing bells below [it]. A servant was seated behind the saddle, grasping a long hook to urge and stop [the elephant]. Upon encountering a wealthy person, they certainly yield the way to them. Commonly, when meeting one another, they certainly clasp hands and bow, adopting the kneeling [custom] of the Northwestern peoples [of China]. Elders to oneself are bowed to and kneelt before, and when speaking, they are subjected to kowtow to them. Those below '''Dāomèng''' ('''叨孟'''), seeing their masters, kneel before them, every two steps a bow, and repeat it during withdrawal. Attendants are at a wealthy person's side, despite kneeling all day, do not appear tired. When a wealthy person passes by, they bow deeply.<ref>The sentence is poetically describing the bow as "bending the body as to resemble 磬, a type of percussion instrument". </ref> In banquets, the wealthy are seated first, then next in line are the ones below them and so on, by means to the lowest [of status]. First, they are given tea, areca nuts and betel leaves (The given tea leaves are [harvested] in mountains and brewed in Spring and Summer, stuffed into bamboo tubes, sealed with bamboo leaves for one to two years, ready for consumption, tasting extremely fine, however, cannot be brewed by boiling in water for drinking. Next [to] be provided is rice, following that is wine and delicacies are are [consumed] cold and unheated. Every guest has a servant kneeling on the side holding a water bottle, waiting to cough and rinse the mouth and hands with water and then eat. [Upon] finishing eating this is repeated and then they rise. In the case of ten guests, ten people attend them, one per guest. Wine is either served in a cup or a tube (The tubes are made from Pistachio Bracken or goose plume linked together). Every length is one '''Zhàng''' ('''丈;''' approximately 3m) painted and decorated with gold. If brewing wine, one pot of water is added. Inserting the tube into the hand, it is used to check for the number of cups [it can hold]. Each person lifts the tube to sip from it. After sipping a cup, a cup of water is added, and it is passed to the next person; the taste is exceedingly fine. When the wine's taste dilutes, water is stopped, and this is called '''sipping wine'''.) Wine and good must be sacrificed, and then they eat. Chopsticks are not used to eat. At the begining of the wine [ceremony], one person loudly shouts and multiple people all join in. This is done three times, and then music is played. There are three such types of music: Chinese lute, Huqin (Chinese fiddle) and the flute with ringing cups and so on. It imitates the sounds of the central region<ref>The Yellow River Basin area of China. </ref> and the Great White barbarians, too. Bagpipe, lutes, panpipes, harp, pipa and so on. People each clap their hands and dance. It is performed in Burmese tunes and music. Copper gong, bronze drum, castanets, big, small and long leather drums struck with the hand. It is similar to Buddhist and Taoist music, as well as '''Chēlǐ''' ('''車里''') music. Villages and suburbs have space for striking bass drums, blowing reed pipes and dancing for the feast. Elders give food and drink to the lowly [people], who certainly must bear to kowtow them to exchange utensils and eat. [Upon] finishing eating, they still kowtow and then retreat.
|-
|凡貿易必用銀,雜以銅,鑄若半卵狀,流通商賈間。官無倉庾,民無税粮。每年秋季,其主遣亲信部屬往各甸,计房屋征金銀,谓之取差發(房屋一間,大者征銀一两、三两,小者一两而止)。無中國文字,小事刻竹木,大事作緬书,皆旁行为记。刑名無律,不知鞭挞,轻罪則罚,重罪則死。或殺,或用人扱殺。或用象打,或投於水,或以绳帛缢。男婦不敢为奸盗,犯則殺之。
|All commercial trade must use silver, mixed with copper, cast to appear like a half egg [shape] to circulate among merchants. The government has no granaries,<ref>There are two characters for granaries, the second is for small private ones, signifying that most did not have this system at all. </ref> the people [likewise] have no grain tax. Every autumn, the owners dispatch trusted aides and subordinates to go to each suburb to calculate and levy households' gold and silver. This is called to go collect money. (For each house: large ones are taxed one or three [taels] of silver, small ones are taxed one tael.) There is no Chinese script; small matters are carved into bamboo or wood, big matters are written into Burmese script, all written horizontally for recording. No laws govern punishment; they do not know whipping or corporal punishment. Petty crimes are penalised, and serious crimes lead to death. Some are killed [directly], while some have another person employed to kill them. Some use elephants to crush them, some throw them in water, while some are hanged with ropes. Men and women do not dare commit adultery or robbery, to violate so will kill them.
|-
|所居無城池濠隍,惟编木立寨,貴賤悉构以草楼,無窗壁门户,时以花布障围四壁,以蔽风雨而已。邮傅一里設一小楼,數人守之,公事雖千里遠,报在顷刻。無軍民之分,聚則为軍,散則为民。遇有战斗,每三人或五人出軍一名,择其壮者为正軍,呼为『锡剌』。锡剌持兵御敌,余人荷所供。故軍行五六萬,战者不滿二萬。兵行不整,先後不一。多以象为雄势,战則缚身象上。裹革兜,被銅铁甲,用長镖干弩,不習弓矢。征战及造作用事,遇日月食則罢之,毁之。
|The [ruler's] dwelling place has no walls, water moats, trenches or dry moats, only wooden stockades erected. Both nobles and commoners all constructed thatched houses with no windows, ramparts or doors, just printed cloth covering around all four walls, as to cover [from] wind and rain and nothing more. Every mile, there was a small post office, a few people guarded it, [thus] documents even as far as a thousand miles can be reported instantly. There is no distinction between military and civilian [people]. Once assembled, they became soldiers; once scattered, they became civilians. Upon encountering a war, every three or five people would produce one soldier; they would select the strongest to become the principal armed force, known as '''Xīlà''' ('''锡剌'''). The '''Xīlà''' ('''锡剌''') grasped weapons to defend against the enemy, while surplus people carried to supply [them]. Hence, an army of fifty or sixty thousand will have fighters not filling twenty thousand. The soldiers were not organised; their rank formations were not uniform. Many used elephants for their imposing power; fighters tied their bodies onto the elephants. They wrapped leather into helmets, and were covered with copper mail plating, using long spears and crossbows, and did not practice bow and arrow. Any war or manufacturing encountering an eclipse would cease or [either] be destroyed.
|-
|所用多陶器,惟宣慰用金銀玻璃,部酋間用金銀酒器。凡部酋出,其器用、仆妾、财寶之類皆随之,從者千余,昼夜随所适,必作宴笑樂。
|Most utensils [they use] were pottery. Only the '''Xuānwèi''' ('''宣慰''') use gold, silver and glass. Tribal chiefs among them used gold, silver and wine cups. Commonly [when] tribal chiefs go out, their utensils, servants, concubines, money, jewels and so on all subsequently all follow him. He is accompanied by over a thousand followers. Day and night, wherever he subsequently goes, there will be feasts, laughter and music.
|-
|男子衣服多效胡服,或衣宽袖長衫,不识裙袴。其首皆髡,胫皆黥。不髡者殺之,不黥者眾叱笑,比之婦人。婦人髻绾於後,不谙脂粉,衣窄袖衫,皂統裙,白裹頭,白行缠,跣足。其俗賤婦人,貴男子,耕织徭役担负之類,雖老婦亦不得少休。嫁娶不分宗话,不重处女。年未笄,听與男子私,從至其家,男母为之濯足,留五六昼,遣歸母家,方通媒妁,置财礼娶之。凡生子,貴者浴於家,賤者浴於河,數日,授子於夫,仍服劳無倦。酋長妻數十,婢百余,不分妻妾,亦無鮅忌。男女浴於河,雖翁婦叔嫂,相向無耻。子弟有職名,則受父兄跪拜。父母亡,用婦祝尸,亲邻咸馈酒肉,聚年少环尸歌舞宴樂,婦人擊碓杵,自旦達宵,數日而後葬。其棺若馬槽,無蓋,置尸於中,抬往葬所,一人執刀持前导。及瘗,其生平所用器物,坏之於側而去。
|Many men's clothes mainly imitate non-Han clothing, or they wear wide-sleeved long gowns, not knowing skirts or trousers. Their heads are all tattooed, their shins are all tattooed. Untattooed heads would be killed, and untattooed legs would be laughed at and compared to women. Women tied their hair into a topknot at the back; they are not versed in cosmetics, and their clothes are narrow-sleeved garments [jackets] and a soap-style skirt. [Her] head is wrapped in white, her body is wrapped in white, and they go barefoot. Their custom is women, commoners, noblemen, must all undertake compulsory labour service and so on. Even old women must not rest a little. Marriage does not distinguish clan or language or virginity [of women]. Before even fifteen years, they are allowed private liaisons with men. She follows him to his home, and the man's mother washes her feet. She remains there for five or six days, [she] is then sent back to her mother's house. Then they communicate with a matchmaker and buy betrothal gifts to take her as a wife [for him]. Ordinarily with the birth of a child, a nobleman bathes in the home, while commoners bathe in the river. For a few days, she gives the child to her husband and continues to dress, toil, and work without tiring. The wives of a tribal chief number ten, his slave girls can surpass one hundred, there is no distinction between wife and concubine, also there is no '''Bìjì''' ('''鮅忌''').<ref>Unsure as to what this means. The first character is a type of fish and an extremely obsolete character not used anymore. It is a compound to something about jealousy, however I do not know what this compounded term relating to jealousy might be. Preliminary thought would be, the wives do not compete, or do not dread their hierearchy? </ref> Men and women bathe in the river, even old men, women, uncles, sister-in-laws [bathing] face to face have no shame. If a child has an office title, then they will be accepted, and the father and brothers will kneel and kowtow to him. When parents die, they use women to pray for the corpse. Relatives and neighbours all make an offering of wine and meat. They assemble young people around the corpse, singing and dancing, making merry. Women strike the pestle from dawn to night, and only after a few days, they bury the dead. The coffin seems like a horse trough, with a lid; they cover the corpse in the middle. They lift and carry the coffin to the burial place; one person holds a knife and leads the way. When the burial takes place, the objects the deceased had used during their life are broken beside the burial, and then people depart.
|-
|}
===Ethnic Groups and customs===
{| class="wikitable" style="text-align:center; width:80%;"
|+ A list of ethnic groups encountered and their traditions and general customs.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其俗,不祀先,不奉佛,亦無僧道。小百夷居其境之東北邊,或学阿昌,或学蒲蠻,或仿大百夷,其習俗不一。
|Their customs do not offer sacrifices [to ancestors], do not revere the Buddha. There are no Buddhists and Daoists [among them]. The Lesser One Hundred Barbarians reside on the northeast border, following Āchāng ('''阿昌''')<ref>This is the earliest I've seen the Achang called by this name. In the 蠻書 they were assumed part of the 尋穿 instead. </ref> customs, following Pú ('''蒲''') customs and some imitate the Greater One Hundred Barbarians. Their customs are not the same (uniform).
|-
|車里,亦谓小百夷,其俗刺额、黑齒、剪發,狀如頭陀。
|[The people of] '''Chē lǐ''' ('''車里''')<ref>'''Chē lǐ''' ('''車里''') refers to the Cheli Military and Civilian Pacification Commissioners Office. It was a Tai State that located at Jinghong City in modern day Xishuangbanna in Yunnan.</ref>, are also called Lesser One Hundred Barbarians. Their customs are tattooing foreheads, blackening teeth and cutting hair. Appearing as if like ascetic monks.
|-
|哈刺,男女黑真黑。男子以花布为套衣,亦有效百夷制者;婦人髻在後,项系雜色珠,以娑罗布披身上为衣,横系於腰为裙(娑罗布即中國木棉布,坚厚,或织以青红纹)。仍环黑藤數百围於腰上,行缠用青花布,赤脚(蒲蠻、阿昌,事見《雲南志》)。
|'''Hālà''' ('''哈剌'''), men and women are [both] black, truly black. Men use printed cloth<ref>g</ref> for covering themselves, also which the One Hundred bararians effectively manufacture; married women have top knots behind [their head]. It is tied at the back of their neck with various pearls and beads. '''Suō luó''' ('''娑罗''')<ref>'''Sarong''' today, however this appears to be a complex term with many copyediting issues historically, Brahmin drapes, Suoluolong, eventually describing a type of silk-cottob robe made from plant materials.</ref> are draped around their bodies as clothes, horizontally it connected at the waist and lower back as a skirt. ('''Suō luóbù pī''' ('''娑罗布披''') namely is the Chinese Cotton Tree (Bombax Ceiba) cloth, strong and thick, possibly weaved as blue, red patterns.) Yet it encircles black rattan several hundred times, wrapped at the waist and lower back, it wraps around [their leg] to be used as a blue printed cloth [as they're] barefoot.
([Used amongst the] Pú mán (蒲蠻), āchāng (阿昌), shì jiàn (事見)<ref>Only said once in the document and not obvious to allusions elsewhere. </ref>; [according to the] The Yunnan Gazeteer<ref>Written by Fan Chuo of the 9th century, also known as 蛮书 (Barbarian Document)</ref>.)
|-
|古刺,男女色甚黑。男子衣服装飾類哈刺,或用白布为套衣。婦人如罗罗狀(罗罗見《雲南志》)。
|'''Gǔlà''' ('''古剌''') [people] are coloured extremely black. The men's clothes, decorations and adornments closely resembled the '''Hālà''' ('''哈剌'''), and they use white cloth as [outer] covering garments. Married women resemble the '''Luó luó''' ('''罗罗''') [people]<ref>These are the Yi people of Eastern Yunnan. </ref>. ([For the] '''Luó luó''' ('''罗罗''') see The Yunnan Gazetteer.)
|-
|漂人,男女衣服皆類百夷。婦人以白布缠頭,衣露腹,以红藤缠之,娑罗布为裙,两接,上短下長,男女同耕。
|Pyu people<ref>This is the last time a document mentions the existence of Pyu people, namely. The Burmese stopped mentioning them by the 12th century, as did the Persians in the 10th century. Their retention of it suggests that absorption was slower and that the Burmese and Pyu were still distinct, according to the envoys.</ref>, [the] men and women's clothes all resemble the One Hundred Barbarians. Married women wear white cloth wrapped around their head, their clothes expose their stomach/ naval. By means of red rattan winding around them, the '''Suō luó''' ('''娑罗''') [is worn] as a skirt. Two [cloths] connect, upper [cloth] is short, bottom [cloth] is long. Men and women [both] till [the fields].
|-
|緬人,色黑類哈刺,男女頭上以白布缠高三四尺,衣大袖白布衫,腰以下一布通前後便缠之,貴者布長二丈余,賤者不一丈。甚善水,嗜酒。其地有树,狀若棕,树之杪有如筍者八九茎,人以刀去其尖,缚瓢於上,過一宵則有酒一瓢,香而且甘,飲之輙醉。其酒经宿必酸,炼为烧酒,能飲者可一盏。有为僧者,以黄布为袈裟,袒右手,戒行極精,午後不飲食。婦人貌陋甚淫,夫少不在,則與他人私,遂为夫婦。以白布裹頭而披花为衣。
|Burmese people, [their] colour is black like the '''Hālà''' ('''哈剌'''). Men and women [both] on their heads have white cloth wrapping around it [approximately] as long as three to four '''Chǐ''' ('''尺''';1.2 m-1.36 m). Their clothes are large-sleeved white cloth garments. Below the waist and lower back, one cloth goes all around to be wrapped around them. Expensive cloth is as long as two '''zhàng''' ('''丈'''; 6.2m-6.8m). Inexpensive [cloth] is not even one '''zhàng''' ('''丈'''; 3.1m-3.4m). They are extremely well-disposed to water and fond of wine. On their land, their trees appear as palm trees. They cultivate eight to nine stalks, with the tips of the leaves resembling bamboo shoots. The people take knives and cut off the tips. They bind a dried gourd ladle to it. After one night, it becomes a gourd of wine, fragrant and sweet to drink to intoxication. Their wine, undergoing [another] night, certainly becomes bitter; it gets refined into '''Shāojiǔ''' ('''烧酒''')<ref>A famous Tang Dynasty wine beverage.</ref>. [Heavy] drinkers can only drink one small cup. There are monks. Yellow cloth is used as Kasaya robes (Buddhist robes) with the right arm remaining bare. They strictly adhere to the utmost discipline. They do not eat or drink in the afternoon. Women's appearances are excessively plain, and they are promiscuous. If husbands are away briefly, they enter into relations with other men and succeed as a married couple. White cloth is wrapped around their head and draped on their shoulders in a printed way.
|-
|哈杜,巢居山林,無衣服,不识农业,惟食草木禽兽,善骑射。冷則抱巨石,山坡間往復奔走,以汗出为度。
|'''Hādù''' ('''哈杜''') [people]<ref>Chinese sources assume this group to be of the Austroasiatic Wa people.</ref> reside in nests in mountain forests; they do not wear clothes. They have no knowledge of agriculture. Only eating vegetation and birds and creatures. They are adept at horses and archery. [When] cold, they grab a boulder and make running trips back and forth between mountainsides until they perspire out to the temperature.
|-
|弩人,目稍深,貌尤黑,额颅及口邊刺十字十余。
|'''Nǔ''' people ('''弩人'''; crossbowman people), [have] deep-set eyes, [their] appearance is outstandingly dark. Their forehead and mouth edges are tattooed with crosses more than ten times.
|-
|有结些者,從耳尖連颊皮破,以象牙为大圈,横贯之,以花布裹頭,而垂余布於後,衣半身衫,而袒其肩。婦人未详。其人居戛璃者多。
|[There] is some knotted "Zo" people<ref>This term is mentioned as an ethnic group in the introduction. Over here it is used more awkwardly however. Despite all this, however, it is the first use of the Zhexie/Jiexie term, which was popularised during the Qing era.
However, this early, 些 Xie was actually Suo, like the Mosuo people. Hence, the name appears to be a misrendering of Zo people from an intermediary translator, possibly. Given this is in Kalay, this supports the fact that Zhexie stems from Jiesuo initially. To disregard the onfusion that some Chinese ethnographer claim these are Jinghpaw, the Jinghpaw are described by Lijing in his 14th century document of races of Burma where he calls them as the Luoxing barbarian (unclothed) and that they do not cultivate food. That would contradict the Baiyizhuan with his document. Hence it appears that this term is for the Zo people of Kalay more so.
It is possible that the term migrated over time to mean the Jinghpaw people by the Qing dynasty, but originally was a term for Zo people of the Kalay city. </ref>, from the tips of the ears to the cheeks, the skin is pierced. Using ivory as a large ring, they pass it horizontally through [the pierced skin]. Printed cloth is wrapped around the head and hangs down onto their back as a partially wrapped robe and bears their shoulders. Nothing is known/reported concerning the women.<ref>Likely possibly meaning that the women are indistinguishable from men. An observation echoed by the British of the Zo people during the colonial era.</ref>. Many of these people habitat at '''Kalay'''.
|-
|諸夷言语習俗雖异,然由大百夷为君長,故各或效其所为。夷人有名不讳,無姓。
|Although the various barbarian languages and customs are different, they follow the Greater One Hundred Barbarians as their central ruler. Therefore, possibly each group imitates that they do. The Yi people have names but observe no naming taboos; they have no surnames.
|-
|無医卜等书。不知时节,惟望月之盈亏为候。有事惟鸡卜是决。疾病不知服药,以姜汁注鼻中。病甚,命巫祭鬼路側,病疟者多愈,病熱者多死。地多平川沃土,民一甸率有數十千户,眾置貿易所,谓之街子。婦人用锄地,事稼穑,地利不能尽,然多产牛、羊、鱼、果。
|There are no books on medicine and divination. They are unaware of seasons. Only the moon in its waxing and waning is observed. For matters, a chicken is used for divination. For diseases they do not know how to take medicine. They pour ginger juice into their noses. For extreme sickness, the shaman offers spirit sacrifices next to the road. Those suffering from malaria are likely to recover. Those with a fever are more likely to die. The land is flat with plains and fertile, the people of a district can lead up to ten thousand households. They install commercial trade posts known as ''street markets'' ('''街子'''; Jiē zǐ). Women hoe and weed the soil and [attend] matters to do with sowing and reaping. The productivity of land cannot be exhausted, as there are many ox, sheep, fish and fruits.
|-
|其气候:春夏雨,秋冬晴,腊月亦如春,昼暄夜冷,晓多烟雾,無霜,春秋烟瘴甚盛。
|Their climate: In spring and summer, it rains. In autumn and winter, it is clear. In the 12th Lunar month ('''December-Feburary''') it feels like spring. The daytime is warm, and the nighttime is cold. At dawn, there is a lot of fog. They have no frost. Spring and Autumn miasma carries an excessive level of malaria.
|-
|其飲食之异者:鳅、鳝、蛇、鼠、晴蜓、虫负、蛟、蝉、蝗、蚁、蛙、土蜂之類以为食;鱼肉等汁暨米汤信宿而生蛆者以为飲。
|Their food and drink are unusual in the following ways. Loach, eels, snakes, dragonflies, insects, aquatic animals, cicadas, locusts, ants, frogs, and scoliod wasps are all types of food. They drink the juice of fish, meat, and rice gruel, which, over two nights, gain maggots, which are eaten.
|-
|其草木禽兽之异:草則秋間數十百株结为一聚,地产此草,烟瘴尤甚。树木多有三四株结为連理。有大如斗之柑,有鲇頭鲤身之鱼,水牛頭黄牛身之牛,绵羊頭山羊身之羊。雄鸡多伏卵,亦有生卵者。者闌有一池,沸如汤,人多投肉熟之。
|Their plants and animals are unusual: in autumn, their grass joins from hundreds of stalks to cluster. The land these grasses grow on has an excessively strong malarial miasma. Trees often produce multiple stumps in a fusion. There are large tangerines as large as dippers. There is [a] fish with a sheatfish head and carp bodies. There are oxen with water buffalo heads and yellow ox bodies. There are sheep with sheep heads and mountain goat bodies. Roosters brood over eggs, there are also [males] that lay eggs. At '''Zhě lán''' ('''者闌''')<ref>On the Shan Myanmar and China border near Muse.</ref>, [the size of] ponds for boiling soup. People often cast mature meat in it.
|-
|境内所产珍物:雅琥、琥珀、犀、象、鹦鹉、孔雀、鳞蛇、脑、麝、阿魏、金、銀、玻璃之類。
|Within its borders are the following precious items it produces: elegant amber, amber, rhinoceros, elephant, parrots, peacocks, snake scales, brains, musk deer, Resina Furelae, gold, silver, glass types of products.
|-
|其山水险隘。北有高良弓山,横亘二百余里,高五十余里,與怒江相倚。西有馬安山,山有一关,若一人守关,萬夫难入。東为麓川江,可通舟楫。南與金沙江合而入於西海。南下交趾界。金沙江之南,有東胡、得冷、緬人三國。緬之西即西天也。
|The mountains have narrow, dangerous river passes. North there is the Gaoligong Mountains<ref>The big mountain range of Western Yunnan that divides easy crossings to Kachin State.</ref>, it horizontally extends two hundred '''Lǐ''' ('''里'''), and is tall as five hundred '''Lǐ''' ('''里''') right next to the '''Nùjiāng''' ('''怒江'''). West is the '''Mǎ'ān Mountain''' ('''馬安山'''). The mountain has one mountain pass. If one person guards the pass, then ten thousand will struggle to enter. East is the '''Lù chuān River''' ('''麓川江'''). You can pass it in an oarboat. South is the '''Jīnshā River''' ('''金沙江''') which enters at the western sea. South it borders '''Jiāozhǐ''' ('''交趾'''; Vietnam). Further south of the '''Jīnshā River''' ('''金沙江''') are the three polities, which has '''Dōnghú''' ('''東胡'''; Eastern Barbarians), '''Dé lěng''' ('''得冷'''; Derung people) and '''Miǎn people''' ('''緬人'''; Burmese people). West of Burma lies the Western Regions<ref> A term for India and Central Asia, which were Buddhist.</ref>.
|-
|緬國古舍利國,又名狮子國,多佛塔。緬國與夷連歲横兵。洪武之亥冬,緬人诉於朝。丙子春,皇帝遣臣古训及桂阳李思聪至两國,諭以睦邻之义。
|Burma, formerly the '''Shèlì country''' ('''舍利'''), also known as the Lion Country, is filled with pagodas. Burma and the Yi Barbarians were in continuous warfare for years. During the reign of the Hongwu Emperor in the winter of the year of the boar ('''1395 A.D.'''), Burma issued a royal complaint. In Spring of the Year of the Rat, ('''1396 A.D.'''), the Emperor dispatched official Guxun and Li Cong of Guiyang to the two countries to order them to get on well as neighbours with righteousness.
|-
|}
===Statements and Relations between the Kingdoms===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Outcome of the envoys mission and political relations between Shans and Burmese.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其諭緬國王曰:
|In it, I addressed the King of Burma, saying:
|-
|『里路险遠,山川阻修,风殊俗异,此乃天造地設也。尔能勤使者,涉险遠,越邻邦以至中夏,其使者之难,冲烟突雾,晨進昏止,饥餐渴飲,吞吐烟岚,异风霜而方至。其为使者,不亦难乎!古人有云:诚君子將有事於遠,友千里之外,神交而志通。今萬里之外,尔能勤使而至,遠修其好,美絕古而惟今。然排难解纷之事,朕之旨意,恨不一言而正,使彼此各罢兵守,樂黎民於市野,民居共处,砃相邻而同井飲,籍雖两國之民,居处难分,惟存关市有讥,是其和也。若尔緬不主衅,夷不强凌,如此,雖弱自保,以奉天道。其或不听朕命,忿争不已,天將昭鉴,福善祸淫,迟速可待。鯩至,朕不多诫。但诚可以交天人,尔其审之,母忘朕諭。』
|The roads are dangerous, and far, mountains and rivers are obstructive and long. Their social ways and customs are different. This is what heaven and earth have established. Yet you are able to diligently [carry out your duties as an] envoy. Taking risks far, passing neighbouring countries to the Chinese heartland. Clashing with smoke, dashing through mist. Advancing at dawn and stopping at twilight, eating when hungry and drinking when thirsty. Breathing in and exhaling mountain vapours, enduring unfamiliar winds and frost before finally arriving. To be an envoy was this not difficult? The ancient people have a saying: <em>Truly, when a gentleman has affairs to undertake in distant places, he has friends a thousand <strong>Lǐ</strong> (<strong>里</strong>), their spirits commune in spirit and their intentions are mutually understood.</em> Now ten thousand '''Lǐ''' ('''里''') away, you can diligently envoy and arrive, from afar cultivate their friendship. However, regarding the matter of resolving difficulties, this is my intention. I lament that I cannot settle the matter in a single utterance as to cause both sides to cease war and guard their territory so that the common people might enjoy marketplaces and countryside. Let the people coexist [as] neighbours of white stone who drink from the same well. Although registered as the people of two countries, their dwellings are difficult to distinguish. Only the inspections at frontier markets will remain. This would be peace between them. If the Burmese do not initiate hostility, and the '''Yi''' do not forcefully oppress you, in this way, althought [one is] weak it may defend itself, as to follow the law of heaven. If they do not listen to my order, angry contention will not cease; heaven will see it clearly. Blessed will the good, and calamity will be brought on the transgressor, quick or slow; the consequences will come. <strong>Lún</strong> (<strong>鯩</strong>) arriving, I will not elaborate further; only sincerity can bring one into accord with heaven and humanity. You must consider this; do not forget my instruction.
|-
|諭思侖發曰:
|Above '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) spoke:
|-
|『朕中國先古圣人,驭顽礼德,各有条章。是条章也,列圣相继,守而行之,上下相安,黔黎樂业。何也?諸侯敬畏,世禄子孙,國祚绵長,乃九伐之功驗也。列國敢有凭弱犯寡者,天子發兵以眚之;贼贤害民者,亦發兵以伐之;暴内凌外,則兴師以坛之;野荒民散,則用兵以削之;负固不服,則舉兵以侵之;贼殺其亲,則正其罪以殺之;放弑其君,則明其罪以诛之;犯令凌政,則杜而絕之;内外乱,鸟兽行,則殄灭之。九伐之征如是也。尔思侖發,以中國较之,合问凭弱犯寡之由。何以見?歲以兵寇車里,不时侵掠八百,恃强犯緬;戛璃國小民寡,而已平之,斯说也,不過告诫之词。中國周临四夷,與諸酋長地里相接,居民亦相密迩,如此者,耳闻之邦若干,目擊之邦若干,朕未嘗恃强凭凌,絕灭其嗣者。雲南之地,已为我有,似乎尚强以取之,非也!乃元世子孙梁王者,恃元之苗裔,匿我有罪,納我逋逃,诱我邊守,是乃不得已而發问罪之師,非無故而兴師。此乃元运天更,其苗裔不当安处。况生事於我邻邦,其理势使然,夷如反掌。尔麓川之蠢,初擅兴金齒之役,次谋景東而寇定邊,理当大發精兵而较胜负。朕释而不较,未嘗强尔为約束之邦,听尔自为声教,今又几年矣。近闻蚕食邻邦,意在扩土地而擅有其眾,又將为我西南之役。噫,未可!古中國圣人有云:‘山川地理人物之類,乃神器也,非人强有,必天授然後得之’。尔思侖發不修邻邦之好,三面發兵,蚕食諸國,其贪也如是,其谋也如是。彼麓川周临之國,始古至今,各有主者,未嘗吞并。朕雖不能止尔,听尔自为,果天道使然,尔以人事应之,或为而可。噫!以朕戒尔守全則可,不守全而以全动,設若全亏,是为全亡,莫如守全以圖绵長,不亦美乎?』
|The ancient sages of my Middle Kingdom governed the unruly through ritual propriety and moral virtue, each had rule and regulations. These rules and regulations were arranged in successive order to preserve them and put them into practice. Those above and below lived in mutual harmony. The common people enjoyed their livelihoods. Why is that? Local rulers revered [central authority], the descendants inherited their stipends and ranks, the state's fortunes endured for a long time. Thus [these] were the proof of the achievements of the Nine expeditions. Various states that dare to rely on strength to attack the weak, the Son of Heaven would send troops to punish them. Those who harm the worthy and injure the people would likewise be militarily punished. If a ruler oppressed those within and bullied those without, an army would be raised to subdue him. If the countryside lay waste and the people were scattered, troops would be employed to reduce it. If a state relied on its strong defences and refused submission, troops would be raised to invade it. If [a ruler] murdered his own kinsmen, his crime would be formally established with guilt and [thus] be put to death. If a subject expelled or murdered his ruler, his crime would be made manifest, and he would be executed. If a state violated commands and defied government authority, it would be blocked off and cut off. If there were disorder both within and without, and people behaved like birds and beasts, they would be utterly destroyed. Such were the circumstances and punishments of the Nine Punitive Expeditions. You, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa), measured against China , it is fitting to ask the reason why you rely upon strength to attack the weak. How is this evident? Year after year, [you] have used troops to raid '''Chēlǐ''' ('''車里''') and at irregular times invaded and plundered the Eight Hundred.<ref>Short hand for Eight Hundred Wives and Daughters in Laws Country, the old name for Laos or Lan Na. </ref> [Hence] presuming upon your strength to attack Burma. The '''State of Kalay''' is small, and the population is few, and you have already subdued it.<ref>If you read Fernquest's reconstruction of [https://www.burmalibrary.org/sites/burmalibrary.org/files/obl/docs4/4.2Fernquest.pdf Ming-Tai Conflicts] You can see how this tracks with Kalay being occupied by Mong Yang/Mong Mao polities. </ref> This is the account [I have given]. It is nothing more than words of admonition. China borders the "Four Barbarians"<ref>Four Barbarians: North - Di, East - Yi, South - Man and West - Rong. </ref> Its territory adjoins that of various chiefs, their populations live in close proximity. Of such states, there are some which I know by report, and some which I have seen with my own eyes, I have never relied on my strength to domineer over them, or extinguished their line of succession. The territory of Yunnan belongs to me, it might seem that I nevertheless used force to take it, but that is not so! Rather, a descendant of the Yuan Imperial House, Prince of Liang, relying on his Yuan Royal heritage, concealed those who committed offences against me and harboured my fugitives and enticed my frontier defenders to defect. Precisely for this reason, I had no alternative but to send a force and call for an offence with an army to carry out [that purpose]. I did not raise an army without cause. This was because the fortunes of the Yuan had changed by heaven's decree, and its descendants were no longer entitled to remain securely established there. Moreover, he [Prince of Liang] has caused trouble among my neighbouring states; the circumstances and principles made the outcome inevitable, and their subjugation was as easy as turning over one's hand. As for you, foolish '''Lùchuān''' ('''麓川'''), you first took it upon yourself to launch the Gold Teeth campaign, next you plotted against '''Jǐngdōng''' ('''景東''') and raided '''Dìngbiān''' ('''定邊'''). By right, this called for the dispatch of a large force of elite troops to determine the victor and vanquished. I released you and did not press on the matter. I have never compelled you to become a subordinated state. I allowed you to establish your own institutions and customs, and now several years have passed. You have been gradually encroaching upon neighbouring states with the intention of expanding your territory and taking possession of their people on your own authority, and will thereby be a cause of war for me in the southwest. Alas, this cannot be! The ancient sages of China have a saying: The mountains and rivers, the land and the people are all such things as constitute the Divine Realm; they cannot be forcibly possessed by men - only when heaven bestows them may they be obtained. You '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) do not cultivate friendly relations with your neighbouring states, you send troops on three fronts and gradually encroach upon the various states, such is your greed and such is your scheme. The states surrounding '''Lùchuān''' ('''麓川''') have, from ancient times to the present, each had their own rulers; they have never been swallowed up and annexed. Although I cannot prevent you, I have allowed you to act for yourself. If indeed this has brought about the Way of Heaven, you must respond to it through human affairs; perhaps what you do will thereby be acceptable. Alas! If, in accordance with my admonition, you preserve what is whole, then that is acceptable. But if you do not preserve it intact, and instead stake the whole upon action, suppose, however, that the whole is impaired, that would mean the whole is lost. Better yet, then, to preserve the whole and thereby seek lasting continuity. Would that not be admirable?
|-
|由是二國罢兵和好。
|because of the truth, the two countries ceased war and reconciled.
|-
|时古训等适遇百夷其部下酋長曰刀干孟者叛其國,余等以大义諭其部眾,而叛者闻之稍却。於是,思侖發欲留余等以为援,且進以金寶象馬等物,故余以书示之曰:
|At the time, Guxun, happened to encounter One Hundred Barbarians subordinate chief named '''Dāo gànmèng''' ('''刀干孟''') betray the country. We and the others explained/instructed his followers on the basis of the great principle/righteous cause and as a result, the rebels hearing it gradually withdrew. As a result, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) wished to preserve us as a source of assistance. He offered gold, valuables, elephants, horses and other gifts. Hence I presented this letter to reveal to him saying:
|-
|『吾闻君上有怀遠之德,遠臣有敬上之心,始古迄今,莫违此义。夫君居九重之上,雖欲顷刻目尔遠臣,未可得也,臣处萬里之外,即欲朝暮身亲君上,亦未易得也。故朝廷有將命之官,使之宣德布威;而遠方有承命之宜,期其輸忠納款。今天子应天顺民,奉天为治,四维八極,尽为臣妾,無有专擅,不敢违逆。西南一区,夷酋亦眾,惟尔麓川,多蒙恩宠,既受以官,復加以服。况贤王亲临尔境,而德惠數及尔身。为尔计,則將度其心,量其才,何为而可以尽忠天子,何为而可以致敬贤王,又何为而可以安邊境而不干天怒,又何为而可以教百姓而不违法度?借曰邊境不安,必思曰,我事上未忠或未至,而眾不服我耶?百姓违法,必思曰,我守職已或有僭而民亦犯上耶?於是我則尽其忠,去其僭,如此,則邊境自安,人民從教矣。且吾以尔目擊效驗明之:往年思瓦發不服朝廷,轻犯金齒,天子雖未问罪,天則假手於達鲁方等,而思瓦發被戮。刀思朗不從尔命,窃寇定邊,尔雖未能息其兵,天則助威於我邊將,而刀思朗等即灭。惟尔知天命,達人理,故能享天禄,守人爵。迩来天子恐尔所为,或涉放肆,特敕諭以戒之;贤王恐尔無知,或生疑懼,特令旨以恤之。此恩此德,穷天極地。尔之披肝露胆,开心見诚,吾尽見矣;尔之尊重朝廷,敬奉殿下,告亦見矣。今尔固留吾辈,其意本美。近者尔甸寨少宁,刀干谋异,吾將回朝为尔明白其事,尔乃留我,使我不速還朝,假如刀干鸣尔留难天使之非於朝,則反误尔敬君之心矣。且尔赠以金、銀、裀褥、馬、象等物,吾固不受者,非見怪也,實相爱也。何則?朝廷恩尔,抚安尔邦,未嘗令使者取货於尔也。夫货财,饥不可以充口,疾不可以救死。况中國金玉成山,象馬若蚁,未以为寶也,惟所寶者,圣君、明王、忠臣、烈士、强兵、勇將、孝子、顺孙等事,其他财物,如粪土耳。姑以尔境内眾所闻者明之:昔隋史萬歲守邊,夷而贪财,以致殺身。梁毗一金不受,而大服夷眾。此事甚白。吾为圣朝天使,必不为财物所蛊,惟恐吾之使令往来小人,不体吾意,蛊惑尔心,特此叮咛。尔其备审此书,体吾真意,早送吾辈還朝,則尔敬君之心,不浅浅也。』
|I have heard that a ruler above possessed the virtue of cherishing those who are far away. Those distant subjects have a heart of reverence to their ruler above. From the beginnings of ancient times until now, none have deviated from this principle. The ruler resides above the Ninefold Gates, although he wishes to see you, his distant subject, even for a moment, this cannot be done. I, your servant [of the Emperor], reside ten thousand '''Lǐ''' ('''里''') away. Even if I wanted to be personally close to my ruler morning and evening, that too would not be easy to achieve. Therefore, the imperial court has officials who carry its commands, sending them to proclaim its virtue and make its authority manifest, while distant polities obey the commands and fulfil their duty, in expectation that they will render their loyalty and submit their allegiance [to the Emperor]. Now the Son of Heaven responds to Heaven and follows the people, governing in accordance with Heaven. Throughout the four quarters and the eight extremities, all are subjects, none acts autonomously, and none dares to oppose [the imperial order]. In the southwestern region, the chiefs of the Yi people are also numerous, but you, <strong>Lùchuān</strong> (<strong>麓川</strong>), have received especially abundant imperial favour; having already been granted an official position, you were furthermore granted the appropriate dress. Moreover, the worthy king personally came to your territory, and his benevolence and favour have repeatedly extended to you personally. For your own sake, you should consider your intentions and measure your abilities. What can you do that will enable you to fulfil your loyalty to the Son of Heaven? What can you do that will enable you to show proper respect to the worthy king? What can you do to keep the frontier peaceful without incurring heaven's anger? And what can you do to govern the common people without violating the laws and regulations? Suppose, for argument's sake, the frontier were to become unsettled, you must think yourself: "Perhaps I have not been sufficiently loyal in serving my superior, and that is why people do not submit to me?" If the common people violate the law, you should think: "Perhaps, although I have maintained my office, I have in some way overstepped my proper station, and thus the people too are offending against their superior? Then I would fully fulfil my loyalty and remove any acts of overstepping I had committed; in this way, the frontier will naturally become peaceful, and the people will follow proper instruction. Moreover, I shall make this clear to you through examples that you yourself have witnessed. In the past years, '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) refused to submit to the court and rashly attacked the Golden Teeth. Althought the Son of Heaven did not call hbim to account, Heaven nevertheless acted through the hands of '''Dálǔfāng''' '''(達鲁方'''), and the others and '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) was killed. '''Diāosīlǎng''' ('''刁思朗''') did not obey your command and secretly raided '''Dìngbiān''' ('''定邊'''). Althought you were able to bring his hostilities to an end, Heaven then lent its might to my frontier commanders and '''Diāosīlǎng''' ('''刁思朗''') and the others were immediately destroyed. It is because you understand the Mandate of Heaven and comprehend principles of human affairs that you can enjoy heaven's emoluments and preserve your human rank. Recently, the Son of Heaven feared that what you were doing might become excessive, and specially issued this admonition to warn you; the Worthy King feared that your lack of understanding might give rise to doubt and fear, and specially sent his instructions to show you compassion. Such grace and such benevolence extend to the furthest reaches of Heaven and Earth. You're laying your heart completely bare, showing your sincerity, I have seen it all. [Your] respect for the imperial court [and] reverant service of the Emperor has been reported as well. Now you firmly retain our party, itself well-intentioned. Recently, your districts and stockards have enjoyed peace, while '''Dāo''' '''Gàn''' ('''刀干''') have conceived some other designs. I was going to return to court to make the matter clear on your behalf, yet you have kept me here, causing me not to return promptly to court. Suppose <strong>Dāo Gàn</strong> (<strong>刀干</strong>) were to report to the court your offence of detaining and obstructing the imperial envoy, then that would compromise your sincere respect for your ruler. Moreover, you presented us with gold, silver, padded mats, bedding, horses, elephants, and other such things, my refusal to accept them is certainly not because I take offense. The court has shown you favour and pacified your realm. It has never instructed its envoys to take goods from you. Regarding wealth and possession, when one is hungry, they cannot fill the mouth; when one is sick, they cannot save one from death. Besides, in China, gold and jade are piled as high as mountains, while elephants and horses are as numerous as ants; we do not regard these things as treasures. What we do treasure are the deeds of sage rulers, enlightened kings, loyal ministers, righteous men, strong armies, brave generals, filial sons, dutiful grandsons and things of this kind. All other material possessions are like dung and earth and nothing more. For the moment, by means within your territory, what the people commonly hear that which should be clear. In former times, <strong>Shǐ Wànsuì (史萬歲)</strong> guarded the frontier; he was greedy in dealing with the tribes and thereby brought about his own death. '''Liáng Pí''' '''(梁毗''') did not accept even a single piece of gold, thereby greatly earning the respect of the Yi people. The matter is very evident. I am an imperial envoy of the sacred dynasty; I certainly cannot be corrupted by material wealth. I only fear that petty men among those who travel back and forth on my missions do not do not consider my intentions and instead mislead or corrupt the mind. For this reason, I have given you special admonition. You should carefully examine this letter in full and understand my true intention. Send us back to court promptly, then your heart of reverence for the ruler would not be so shallow.
|-
|书至,思侖發悦服,遂邀至其家,設宴畢,與其眾送出境外。
|When the letter arrived, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) was pleased, and received it favourably. Thereupon invited him to his home. After the banquet, together with his retinue escorted them beyond the borders.
|-
|百夷,由金齒、蒲漂過怒江即其境。沿江東數十里,上有高良弓頗险。其岭有一寨。過一寨下四十里,地名养列,自此抵麓川無险隘之虞。由麓川经蠻牛、莽港等路,渡谨卯,從蒙戛等甸至麻林界,登金沙江之舟,下流二十日至緬國。國王眾呼为卜剌浪,王之妻呼为米泼剌。
|The One Hundred Barbarians, via the Gold Teeth, '''Pú''' ('''蒲'''), '''Pyu people''', upon crossing the '''Nùjiāng River''' ('''怒江''') reach their territory. Along the river, east about ten <strong>Lǐ</strong> (<strong>里</strong>), there is the tall, rugged, dangerous Gaoligong [mountains] above. The mountain range has one stronghold. Passing a stronghold, below forty '''Lǐ''' ('''里''') is a place named '''Yǎng liè''' ('''养列'''), since then reaching the '''Lùchuān''' ('''麓川''') there is no concern of dangerous narrow passes. Following '''Lùchuān''' ('''麓川''') pass through the routes of '''Mánniú''' ('''蠻牛'''), '''Mǎnggǎng''' ('''莽港''') and other places, crossing '''Jǐnmǎo''' ('''谨卯'''), from the district of '''Ménggā''' ('''蒙戛''') to the '''Málín''' ('''麻林''') border, [one must] board a boat on the '''Jīnshā River''' ('''金沙江'''), downriver twenty days one reaches Burma. The king is referred by the populace as '''Bōlàlàng''' ('''卜剌浪'''), the king's wife is referred to as '''Mǐpōlà''' ('''米泼剌''').
|-
|}
==References==
{{reflist}}
{{Subjects|Military history}}
0qzk41guccyeh7xcecxj6bzve9p8hgo
4674797
4674796
2026-10-07T04:16:15Z
Taitesena
3485636
4674797
wikitext
text/x-wiki
__NOTOC__
{{Translation header
| title = Baiyi Zhuan (百夷傳)
| author = Qian Guxun (錢古訓)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes = The Baiyizhuan, or, '''Biography of 100 Barbarians''', was compiled by Qian Guxun (錢古訓) with Li Sicong (李思聪) and sent to the Ming Dynasty but never formally published yet stored away. Copies emerged under both names however, most agree that both envoys wrote their own accounts of Myanmar to control the issue of Shan Kings on the borders. This version is attributed to Qian Guxun and sourced from Wikisource.
}}
== Front Matter ==
Translator Note:
For the non-letter transcripts, I have used complete manual lookups and translation to English. Due to the informal, poetic and bureaucratic language, I took external assistance to guide me including AI only to clarify the meaning of the characters in the context as I struggled to articulate how a 14th century bureaucrat would write their letters to rulers. I still manually wrote and formatted it with the lookups however, but have declared this for transparency as part of my workflow. However, the ethnic nomenclature and practices and historical events detailing which hold stronger merit have not lost validity in that respect.
For the character "刺" this has been corrected to 剌 which is used as an actual phonetic. The original transcript mainains the incorrect character, but the translation gloss will correct it.
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Premable to the purpose and context of the document and political situation.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|百夷,在雲南西南數千里,其地方萬里。景東在其東,西天古刺在其西,八百媳婦在其南,吐番在其北;東南則車里,西南則緬國,東北則哀牢〈(今之金齒衛也)〉,西北則西番、回紇。
|[The] One Hundred Barbarians<ref>This generally refers to the Tai Shan people. </ref> are a few thosand '''Lǐ''' ('''里''') southwest of Yunnan. There region is very far away. '''Jǐngdōng''' ('''景東''') is east of them. The western regions Gǔ cì (古刺) [people] are west of them. South of them are the '''Eight Hundred Xífù''' ('''八百媳婦'''; Laos). North of them is Tibet. Southeast of them is Chē lǐ (車里), southwest is Burma, Northeast is '''Āiláo''' ('''哀牢''')<ref>The ancient tribal confederation of the Yongchang-Gaoligong area.</ref> Today, these are the gold tooth people. Northwest of them is
Western Barbarians and '''Huíhé''' ('''回紇'''; Uyghur people).
|-
|俗有大百夷、小百夷、漂人、古剌、哈剌、緬人、结些、吟杜、弩人、蒲蠻、阿昌等名,故曰百夷。
|The customs of Greater One Hundred Barbarians, the Lesser One Hundred Barbarians, the Pyu people<ref>This document still distinguishes between the Pyu people from the Burmese despite no further domestic inscriptions mentioning them. In particular their clothes give this away apparently later in the text.</ref>, '''Gǔlà''' ('''古剌''') [people], '''Hālà''' ('''哈剌''') [people], Burmese people, '''jiēsuò''' ('''结些''')<ref>There is reason to believe that these may be the Zo people. The Jie however is difficult to understand, likely a terminology transfer issue from intermediaries. Like the Mosuo people, I suggest this to be read as Jie Suo. If so, this would be the earliest mention of Zo terminology since Vincent Sangermono.</ref>, '''Yíndù'''('''吟杜''')<ref>These are only mentioned once in the document. Whether it's a mix-up with Hadu, or referring to Indians, is unknown.</ref>, Nǔ people (弩人; crossbowman people)<ref>These are assumed to be early Nungish Tribes, however this is speculation. Later texts discuss the 怒族 for example which sound the same. </ref>, Pú (蒲)<ref>The 蒲人 / 蒲满 according to You Zhong is the '''Bulang (布朗族)''', '''Wa (佤族)''', '''De'ang (德昂族)''' people. Austroasiatic groups of Burma.</ref> and Āchāng (阿昌)<ref>The successors of the Western Yunnan 尋轉 barbarians recorded by 繙綽 in the 蠻書.</ref>, among others, can be spoken of as the One Hundred Barbarians.
|-
|漢以前未嘗通中國,諸葛亮征蠻,亦抵怒江而止。唐天寶中,夷人始随爨歸王入朝。其眾各有部領,不相統屬。
|Before the Han dynasty, they had no contact with China.<ref>The main exception may be the Ailao people.</ref> '''Zhūgé liàng''' ('''諸葛亮''') went on an expedition against the barbarians, where he stopped right up against the '''Nùjiāng River''' ('''怒江'''). During the Tianbao Era of the Tang Dynasty, the barbarians began to follow the '''Cuàn''' ('''爨''') and '''Guī''' ('''歸''') clan leaders.<ref>The '''Cuàn''' ('''爨''') eventually founded the Kingdom of Nanzhao, which ruled powerfully in the region, competing with Tibet and Tang China.</ref> The people had their own leaders and were not unified.
|-
|元憲宗三年,世祖由吐番入麗江,自葉榆平至雲南〈(葉榆即大理也)〉。明年,命將兀良哈臺征降夷地。遂分为路二十、府四、甸四十有四、部二十有六、各設土官,置金齒都元帥府領之。有所督,委官入其地,交春即還,避瘴气也。
|In Emperor Xianzong's 3rd year in the Yuan Dynasty, Emperor Shìzǔ (世祖; Kublai Khan) entered '''Lìjiāng''' ('''麗江''') from Tibet and himself in '''Yèyú''' ('''葉榆'''; Present Day Dali) brought peace to Yunnan. The following year, [he] commanded General UriyangKhadai to pacify the barbarian lands. The region was transformed into twenty circuits, four prefectures, forty-four districts and twenty-six departments, each with indigenous officials overseen by the Gold Teeth Commander in Chief.<ref>A Tai Shan Leader likely.</ref> Officials were appointed to administer certain lands, returning by spring to avoid malarial miasma.
|-
|至正戊子,麓川土官思可發數侵扰各路,元帥搭失把都討之,不克。思可發益吞并諸路,而遣其子滿散入朝,以輸情款。雖奉正朔,納職貢,而服用制度,擬於王者。思可發死,子昭併發立。八年,傳其子臺扁。踰年,臺扁從父昭肖發殺之而自立,期年,盗殺昭肖發,眾立其弟思瓦發。
|In the the 8th year of the Zhizheng era ('''1348 AD''') Lùchuān (麓川) indigenous chief '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) had been countlessly harassing and invading every road. The Commander-in-Chief '''Dāshībǎ''' ('''搭失把''') sent armed forces to the capital but was unable to. '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) annexed further circuits and dispatched his son '''Mǎnsàn''' ('''滿散''') to the imperial court to offer terms of service. Although they accepted tribute and the official calendar of the Ming dynasty, their clothes and administration resembled that of a monarchy. '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) died, his son Zhāo bìngfā ('''昭併發'''; Hsö Pem Hpa) was established. Eight years later it passed to '''Táibiǎn''' ('''臺扁'''; Hsö Siu Hpa). A year later, '''Táibiǎn's''' ('''臺扁'''; Hsö Siu Hpa) uncle '''Zhāo xiàofā''' ('''昭肖發'''; , Hsö Kap Hpa) killed him himself and seized power. A year later, bandits killed '''Zhāo xiàofā''' ('''昭肖發'''; Hsö Kap Hpa) and established his younger brother '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) [as ruler].
|-
|國朝洪武辛酉,平雲南。明年,思瓦發寇金齒。是冬,思瓦發略于者闌、南甸。其屬達鲁方等輙立滿散之子思侖發,而殺思瓦發於外。即譴使貢白象、犀、馬、方物於朝。廷議不忍絕以化外,乃命福建左參政王鈍率雲南部校郭京美等,諭以向背利害,約以每歲貢獻之率,而遂内附。於是授思侖發为麓川平緬軍民宣慰。丙寅,復寇景東。明年,部屬刁思朗犯定邊,天子命西平侯沐英總兵敗之,獲刁思朗,夷人懼服。上以遠人不加約束,故官稱制度皆從其俗。
|In the current dynasty, in the 58th year (Xinyou) of the Hongwu Emperor ('''1381 A.D.'''), Yunnan was pacified. The next year, '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) plundered the Gold Teeth barbarians. That winter, '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) captured the territory of '''Zhělán''' ('''者闌''') and '''Nándiàn''' ('''南甸'''). His subordinate '''Dálǔfāng''' ('''達鲁方''')placed '''Mǎnsàn's''' ('''滿散''') son, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) as ruler and killed '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) when outside. The offered tribute included white elephants, rhinoceroses, horses and other local products. The palace could not bear to cut ties with outside spheres of influence and commanded the Fujian Left Vice Official '''Wáng Dùn''' ('''王鈍''') to lead in the checking of the city walls of Yunnan, order discussions of pros and cons of allegience, discuss the annual tribute rate and secured their submission. He conferred '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) as the Burma Pacification Commissioner. In the third year ('''1386 A.D.'''), he returned to invade '''Jǐngdōng''' ('''景東'''). The next year, his subordinate '''Diāosīlǎng''' ('''刁思朗''') invaded '''Dìngbiān''' ('''定邊'''). The Emperor ordered Marquis of '''Xīpíng''' ('''西平''') '''Mù yīng''' ('''沐英''') to lead an army to defeat him where he caught '''Diāosīlǎng''' ('''刁思朗'''). The barbarians became fearful and submitted. In order not to restrict those far-away peoples, the official system and administration were all in their customs.
|-
|其下稱思侖發曰『昭』,猶中國稱君主也。所居麓川之地曰者闌,猶中國稱京師也。其屬則置『叨孟』以總統政事,兼領軍民。『昭錄』領萬餘人,『昭綱』領千餘人,『昭伯』領百人;領一伍者为『昭哈斯』,領一什者为『昭准』;皆屬於『叨孟』。又有『昭錄令』,遇有征调,亦與『叨孟』統軍以行。其近侍呼为『立者』,閽寺呼为『割斷』。大小各有分地,任其徭賦。
|'''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) is called '''Zhāo''' ('''昭'''), like how China uses "Lord". '''Lùchuān's''' ('''麓川''') [ruler's] dwelling place is called '''Zhělán''' ('''者闌'''), like how China uses the term "Capital". Their subordinates are known as '''Dāomèng''' ('''叨孟'''), who generally handled political affairs while simultaneously leading the military and civilians. '''Zhāolù''' ('''昭錄''') led over ten thousand households, '''Zhāogāng''' ('''昭綱)''' led over a thousand households, '''Zhāobó''' ('''昭伯''') led a hundred households. Those who led five soldiers were known as '''Zhāohāsī''' ('''昭哈斯'''), those who led ten soldiers were known as '''Zhāozhǔn''' ('''昭准'''). Each [of these] were part of the '''Dāomèng''' ('''叨孟'''). There is also '''Zhāolùlìng''' ('''昭錄令''') who also happen to carry out conscription for the '''Dāomèng''' ('''叨孟''') to gather an army to lead. Their attendants were known as '''Lìzhě'''('''立者'''). Doorkeepers of Buddhist temples were called '''Gēduàn''' ('''割斷'''). Big or small each had distributed land appointed and endowed to them as compulsory servicefor corvee and taxes.
|-
|上下僭奢,雖微職亦繫鈒花金銀帶。貴賤皆戴筍籜帽,而飾金寶於頂,如浮圖狀,懸以金玉,插以珠翠花,被以毛纓,綴以毛羽。貴者衣綺麗。每出入,象馬僕從滿途。象以銀鏡數十聯綴於羈靮,緣以銀釘,鞍上有闌如交椅狀,藉以裀褥,上設錦障蓋,下懸銅響鈴,坐一奴鞍後,執長鉤驅止之。遇貴於己者,必讓途而往。凡相見必合掌而拜,習胡人之跪。長於己者必拜跪之,言則叩頭受之。叨孟以下見其主,則膝行以前,二步一拜,退亦如之。執事於貴人之側,雖跪終日無倦狀。貴人之前過,必磬折鞠躬。宴会則貴人上坐,其次列坐於下,以逮至賤。先以沽茶及蒌葉、檳榔啖之(沽茶者,山中茶葉,春夏間采煮之,實於竹筒内,封以竹箬,過一二歲取食之,味極佳,然不可用水煎飲)。次具飯,次進酒饌,俱用冷而無熱。每客必一仆持水瓶側跪,俟嗽口盥手而後食。食畢亦如之,而後起。客十則十人各行一客。酒或以杯,或用筒(筒以蕨楷,或用鵝翎管連贯,各長丈餘,漆之而飾以金,假若一酿酒,則漬以水一滿瓮,插筒手中,立標以驗其盏數,人各以次舉筒咂之。咂酒一盏,仍漬水一盏,傳之次客,味甚佳,至淡,水方止,俗呼为咂酒)。酒與食物必祭而後食,食不用筯。酒初行,一人大噪,眾皆合之,如此者三,乃舉樂。樂有三等:琵琶、胡琴、等笛、響盏之類,效中原音,大百夷樂也。笙阮、排簫、箜篌、琵琶之類,人各拍手歌舞,作緬國之曲,緬樂也。銅饒、銅鼓、響板、大小長皮鼓,以手拊之,與僧道樂頗等者,車里樂也。村甸間擊大鼓,吹芦笙,舞干为宴。長者授卑賤酒食,必叩頭受之,易以他器而食。食畢,仍叩頭而退。
|The people, both high and low [in status], were extravagantly overstepping [in their dress]. Even small duty officials fastened engraved, patterned belts of gold and silver. [Both] nobles and commoners wore bamboo-shoot-woven hats and decorated them with gold, like a crown resembling pagodas, hanging with jade and gold and inserted with pearls and colourful gems, covered with tassels and quilted feathers. The clothes of wealthy individuals are enchantingly beautiful. Whenever one goes out, elephants, horses, and servants fill the roads. The elephants have about ten or so silver mirrors attached to their reins and bridles, edged with silver nails. On the saddle, there is a railing resembling an old wooden-style armchair with cushion-like under padding, a mattress, and brocade above the top and copper ringing bells below [it]. A servant was seated behind the saddle, grasping a long hook to urge and stop [the elephant]. Upon encountering a wealthy person, they certainly yield the way to them. Commonly, when meeting one another, they certainly clasp hands and bow, adopting the kneeling [custom] of the Northwestern peoples [of China]. Elders to oneself are bowed to and kneelt before, and when speaking, they are subjected to kowtow to them. Those below '''Dāomèng''' ('''叨孟'''), seeing their masters, kneel before them, every two steps a bow, and repeat it during withdrawal. Attendants are at a wealthy person's side, despite kneeling all day, do not appear tired. When a wealthy person passes by, they bow deeply.<ref>The sentence is poetically describing the bow as "bending the body as to resemble 磬, a type of percussion instrument". </ref> In banquets, the wealthy are seated first, then next in line are the ones below them and so on, by means to the lowest [of status]. First, they are given tea, areca nuts and betel leaves (The given tea leaves are [harvested] in mountains and brewed in Spring and Summer, stuffed into bamboo tubes, sealed with bamboo leaves for one to two years, ready for consumption, tasting extremely fine, however, cannot be brewed by boiling in water for drinking. Next [to] be provided is rice, following that is wine and delicacies are are [consumed] cold and unheated. Every guest has a servant kneeling on the side holding a water bottle, waiting to cough and rinse the mouth and hands with water and then eat. [Upon] finishing eating this is repeated and then they rise. In the case of ten guests, ten people attend them, one per guest. Wine is either served in a cup or a tube (The tubes are made from Pistachio Bracken or goose plume linked together). Every length is one '''Zhàng''' ('''丈;''' approximately 3m) painted and decorated with gold. If brewing wine, one pot of water is added. Inserting the tube into the hand, it is used to check for the number of cups [it can hold]. Each person lifts the tube to sip from it. After sipping a cup, a cup of water is added, and it is passed to the next person; the taste is exceedingly fine. When the wine's taste dilutes, water is stopped, and this is called '''sipping wine'''.) Wine and good must be sacrificed, and then they eat. Chopsticks are not used to eat. At the begining of the wine [ceremony], one person loudly shouts and multiple people all join in. This is done three times, and then music is played. There are three such types of music: Chinese lute, Huqin (Chinese fiddle) and the flute with ringing cups and so on. It imitates the sounds of the central region<ref>The Yellow River Basin area of China. </ref> and the Great White barbarians, too. Bagpipe, lutes, panpipes, harp, pipa and so on. People each clap their hands and dance. It is performed in Burmese tunes and music. Copper gong, bronze drum, castanets, big, small and long leather drums struck with the hand. It is similar to Buddhist and Taoist music, as well as '''Chēlǐ''' ('''車里''') music. Villages and suburbs have space for striking bass drums, blowing reed pipes and dancing for the feast. Elders give food and drink to the lowly [people], who certainly must bear to kowtow them to exchange utensils and eat. [Upon] finishing eating, they still kowtow and then retreat.
|-
|凡貿易必用銀,雜以銅,鑄若半卵狀,流通商賈間。官無倉庾,民無税粮。每年秋季,其主遣亲信部屬往各甸,计房屋征金銀,谓之取差發(房屋一間,大者征銀一两、三两,小者一两而止)。無中國文字,小事刻竹木,大事作緬书,皆旁行为记。刑名無律,不知鞭挞,轻罪則罚,重罪則死。或殺,或用人扱殺。或用象打,或投於水,或以绳帛缢。男婦不敢为奸盗,犯則殺之。
|All commercial trade must use silver, mixed with copper, cast to appear like a half egg [shape] to circulate among merchants. The government has no granaries,<ref>There are two characters for granaries, the second is for small private ones, signifying that most did not have this system at all. </ref> the people [likewise] have no grain tax. Every autumn, the owners dispatch trusted aides and subordinates to go to each suburb to calculate and levy households' gold and silver. This is called to go collect money. (For each house: large ones are taxed one or three [taels] of silver, small ones are taxed one tael.) There is no Chinese script; small matters are carved into bamboo or wood, big matters are written into Burmese script, all written horizontally for recording. No laws govern punishment; they do not know whipping or corporal punishment. Petty crimes are penalised, and serious crimes lead to death. Some are killed [directly], while some have another person employed to kill them. Some use elephants to crush them, some throw them in water, while some are hanged with ropes. Men and women do not dare commit adultery or robbery, to violate so will kill them.
|-
|所居無城池濠隍,惟编木立寨,貴賤悉构以草楼,無窗壁门户,时以花布障围四壁,以蔽风雨而已。邮傅一里設一小楼,數人守之,公事雖千里遠,报在顷刻。無軍民之分,聚則为軍,散則为民。遇有战斗,每三人或五人出軍一名,择其壮者为正軍,呼为『锡剌』。锡剌持兵御敌,余人荷所供。故軍行五六萬,战者不滿二萬。兵行不整,先後不一。多以象为雄势,战則缚身象上。裹革兜,被銅铁甲,用長镖干弩,不習弓矢。征战及造作用事,遇日月食則罢之,毁之。
|The [ruler's] dwelling place has no walls, water moats, trenches or dry moats, only wooden stockades erected. Both nobles and commoners all constructed thatched houses with no windows, ramparts or doors, just printed cloth covering around all four walls, as to cover [from] wind and rain and nothing more. Every mile, there was a small post office, a few people guarded it, [thus] documents even as far as a thousand miles can be reported instantly. There is no distinction between military and civilian [people]. Once assembled, they became soldiers; once scattered, they became civilians. Upon encountering a war, every three or five people would produce one soldier; they would select the strongest to become the principal armed force, known as '''Xīlà''' ('''锡剌'''). The '''Xīlà''' ('''锡剌''') grasped weapons to defend against the enemy, while surplus people carried to supply [them]. Hence, an army of fifty or sixty thousand will have fighters not filling twenty thousand. The soldiers were not organised; their rank formations were not uniform. Many used elephants for their imposing power; fighters tied their bodies onto the elephants. They wrapped leather into helmets, and were covered with copper mail plating, using long spears and crossbows, and did not practice bow and arrow. Any war or manufacturing encountering an eclipse would cease or [either] be destroyed.
|-
|所用多陶器,惟宣慰用金銀玻璃,部酋間用金銀酒器。凡部酋出,其器用、仆妾、财寶之類皆随之,從者千余,昼夜随所适,必作宴笑樂。
|Most utensils [they use] were pottery. Only the '''Xuānwèi''' ('''宣慰''') use gold, silver and glass. Tribal chiefs among them used gold, silver and wine cups. Commonly [when] tribal chiefs go out, their utensils, servants, concubines, money, jewels and so on all subsequently all follow him. He is accompanied by over a thousand followers. Day and night, wherever he subsequently goes, there will be feasts, laughter and music.
|-
|男子衣服多效胡服,或衣宽袖長衫,不识裙袴。其首皆髡,胫皆黥。不髡者殺之,不黥者眾叱笑,比之婦人。婦人髻绾於後,不谙脂粉,衣窄袖衫,皂統裙,白裹頭,白行缠,跣足。其俗賤婦人,貴男子,耕织徭役担负之類,雖老婦亦不得少休。嫁娶不分宗话,不重处女。年未笄,听與男子私,從至其家,男母为之濯足,留五六昼,遣歸母家,方通媒妁,置财礼娶之。凡生子,貴者浴於家,賤者浴於河,數日,授子於夫,仍服劳無倦。酋長妻數十,婢百余,不分妻妾,亦無鮅忌。男女浴於河,雖翁婦叔嫂,相向無耻。子弟有職名,則受父兄跪拜。父母亡,用婦祝尸,亲邻咸馈酒肉,聚年少环尸歌舞宴樂,婦人擊碓杵,自旦達宵,數日而後葬。其棺若馬槽,無蓋,置尸於中,抬往葬所,一人執刀持前导。及瘗,其生平所用器物,坏之於側而去。
|Many men's clothes mainly imitate non-Han clothing, or they wear wide-sleeved long gowns, not knowing skirts or trousers. Their heads are all tattooed, their shins are all tattooed. Untattooed heads would be killed, and untattooed legs would be laughed at and compared to women. Women tied their hair into a topknot at the back; they are not versed in cosmetics, and their clothes are narrow-sleeved garments [jackets] and a soap-style skirt. [Her] head is wrapped in white, her body is wrapped in white, and they go barefoot. Their custom is women, commoners, noblemen, must all undertake compulsory labour service and so on. Even old women must not rest a little. Marriage does not distinguish clan or language or virginity [of women]. Before even fifteen years, they are allowed private liaisons with men. She follows him to his home, and the man's mother washes her feet. She remains there for five or six days, [she] is then sent back to her mother's house. Then they communicate with a matchmaker and buy betrothal gifts to take her as a wife [for him]. Ordinarily with the birth of a child, a nobleman bathes in the home, while commoners bathe in the river. For a few days, she gives the child to her husband and continues to dress, toil, and work without tiring. The wives of a tribal chief number ten, his slave girls can surpass one hundred, there is no distinction between wife and concubine, also there is no '''Bìjì''' ('''鮅忌''').<ref>Unsure as to what this means. The first character is a type of fish and an extremely obsolete character not used anymore. It is a compound to something about jealousy, however I do not know what this compounded term relating to jealousy might be. Preliminary thought would be, the wives do not compete, or do not dread their hierearchy? </ref> Men and women bathe in the river, even old men, women, uncles, sister-in-laws [bathing] face to face have no shame. If a child has an office title, then they will be accepted, and the father and brothers will kneel and kowtow to him. When parents die, they use women to pray for the corpse. Relatives and neighbours all make an offering of wine and meat. They assemble young people around the corpse, singing and dancing, making merry. Women strike the pestle from dawn to night, and only after a few days, they bury the dead. The coffin seems like a horse trough, with a lid; they cover the corpse in the middle. They lift and carry the coffin to the burial place; one person holds a knife and leads the way. When the burial takes place, the objects the deceased had used during their life are broken beside the burial, and then people depart.
|-
|}
===Ethnic Groups and customs===
{| class="wikitable" style="text-align:center; width:80%;"
|+ A list of ethnic groups encountered and their traditions and general customs.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其俗,不祀先,不奉佛,亦無僧道。小百夷居其境之東北邊,或学阿昌,或学蒲蠻,或仿大百夷,其習俗不一。
|Their customs do not offer sacrifices [to ancestors], do not revere the Buddha. There are no Buddhists and Daoists [among them]. The Lesser One Hundred Barbarians reside on the northeast border, following Āchāng ('''阿昌''')<ref>This is the earliest I've seen the Achang called by this name. In the 蠻書 they were assumed part of the 尋穿 instead. </ref> customs, following Pú ('''蒲''') customs and some imitate the Greater One Hundred Barbarians. Their customs are not the same (uniform).
|-
|車里,亦谓小百夷,其俗刺额、黑齒、剪發,狀如頭陀。
|[The people of] '''Chē lǐ''' ('''車里''')<ref>'''Chē lǐ''' ('''車里''') refers to the Cheli Military and Civilian Pacification Commissioners Office. It was a Tai State that located at Jinghong City in modern day Xishuangbanna in Yunnan.</ref>, are also called Lesser One Hundred Barbarians. Their customs are tattooing foreheads, blackening teeth and cutting hair. Appearing as if like ascetic monks.
|-
|哈刺,男女黑真黑。男子以花布为套衣,亦有效百夷制者;婦人髻在後,项系雜色珠,以娑罗布披身上为衣,横系於腰为裙(娑罗布即中國木棉布,坚厚,或织以青红纹)。仍环黑藤數百围於腰上,行缠用青花布,赤脚(蒲蠻、阿昌,事見《雲南志》)。
|'''Hālà''' ('''哈剌'''), men and women are [both] black, truly black. Men use printed cloth<ref>g</ref> for covering themselves, also which the One Hundred bararians effectively manufacture; married women have top knots behind [their head]. It is tied at the back of their neck with various pearls and beads. '''Suō luó''' ('''娑罗''')<ref>'''Sarong''' today, however this appears to be a complex term with many copyediting issues historically, Brahmin drapes, Suoluolong, eventually describing a type of silk-cottob robe made from plant materials.</ref> are draped around their bodies as clothes, horizontally it connected at the waist and lower back as a skirt. ('''Suō luóbù pī''' ('''娑罗布披''') namely is the Chinese Cotton Tree (Bombax Ceiba) cloth, strong and thick, possibly weaved as blue, red patterns.) Yet it encircles black rattan several hundred times, wrapped at the waist and lower back, it wraps around [their leg] to be used as a blue printed cloth [as they're] barefoot.
([Used amongst the] Pú mán (蒲蠻), āchāng (阿昌), shì jiàn (事見)<ref>Only said once in the document and not obvious to allusions elsewhere. </ref>; [according to the] The Yunnan Gazeteer<ref>Written by Fan Chuo of the 9th century, also known as 蛮书 (Barbarian Document)</ref>.)
|-
|古刺,男女色甚黑。男子衣服装飾類哈刺,或用白布为套衣。婦人如罗罗狀(罗罗見《雲南志》)。
|'''Gǔlà''' ('''古剌''') [people] are coloured extremely black. The men's clothes, decorations and adornments closely resembled the '''Hālà''' ('''哈剌'''), and they use white cloth as [outer] covering garments. Married women resemble the '''Luó luó''' ('''罗罗''') [people]<ref>These are the Yi people of Eastern Yunnan. </ref>. ([For the] '''Luó luó''' ('''罗罗''') see The Yunnan Gazetteer.)
|-
|漂人,男女衣服皆類百夷。婦人以白布缠頭,衣露腹,以红藤缠之,娑罗布为裙,两接,上短下長,男女同耕。
|Pyu people<ref>This is the last time a document mentions the existence of Pyu people, namely. The Burmese stopped mentioning them by the 12th century, as did the Persians in the 10th century. Their retention of it suggests that absorption was slower and that the Burmese and Pyu were still distinct, according to the envoys.</ref>, [the] men and women's clothes all resemble the One Hundred Barbarians. Married women wear white cloth wrapped around their head, their clothes expose their stomach/ naval. By means of red rattan winding around them, the '''Suō luó''' ('''娑罗''') [is worn] as a skirt. Two [cloths] connect, upper [cloth] is short, bottom [cloth] is long. Men and women [both] till [the fields].
|-
|緬人,色黑類哈刺,男女頭上以白布缠高三四尺,衣大袖白布衫,腰以下一布通前後便缠之,貴者布長二丈余,賤者不一丈。甚善水,嗜酒。其地有树,狀若棕,树之杪有如筍者八九茎,人以刀去其尖,缚瓢於上,過一宵則有酒一瓢,香而且甘,飲之輙醉。其酒经宿必酸,炼为烧酒,能飲者可一盏。有为僧者,以黄布为袈裟,袒右手,戒行極精,午後不飲食。婦人貌陋甚淫,夫少不在,則與他人私,遂为夫婦。以白布裹頭而披花为衣。
|Burmese people, [their] colour is black like the '''Hālà''' ('''哈剌'''). Men and women [both] on their heads have white cloth wrapping around it [approximately] as long as three to four '''Chǐ''' ('''尺''';1.2 m-1.36 m). Their clothes are large-sleeved white cloth garments. Below the waist and lower back, one cloth goes all around to be wrapped around them. Expensive cloth is as long as two '''zhàng''' ('''丈'''; 6.2m-6.8m). Inexpensive [cloth] is not even one '''zhàng''' ('''丈'''; 3.1m-3.4m). They are extremely well-disposed to water and fond of wine. On their land, their trees appear as palm trees. They cultivate eight to nine stalks, with the tips of the leaves resembling bamboo shoots. The people take knives and cut off the tips. They bind a dried gourd ladle to it. After one night, it becomes a gourd of wine, fragrant and sweet to drink to intoxication. Their wine, undergoing [another] night, certainly becomes bitter; it gets refined into '''Shāojiǔ''' ('''烧酒''')<ref>A famous Tang Dynasty wine beverage.</ref>. [Heavy] drinkers can only drink one small cup. There are monks. Yellow cloth is used as Kasaya robes (Buddhist robes) with the right arm remaining bare. They strictly adhere to the utmost discipline. They do not eat or drink in the afternoon. Women's appearances are excessively plain, and they are promiscuous. If husbands are away briefly, they enter into relations with other men and succeed as a married couple. White cloth is wrapped around their head and draped on their shoulders in a printed way.
|-
|哈杜,巢居山林,無衣服,不识农业,惟食草木禽兽,善骑射。冷則抱巨石,山坡間往復奔走,以汗出为度。
|'''Hādù''' ('''哈杜''') [people]<ref>Chinese sources assume this group to be of the Austroasiatic Wa people.</ref> reside in nests in mountain forests; they do not wear clothes. They have no knowledge of agriculture. Only eating vegetation and birds and creatures. They are adept at horses and archery. [When] cold, they grab a boulder and make running trips back and forth between mountainsides until they perspire out to the temperature.
|-
|弩人,目稍深,貌尤黑,额颅及口邊刺十字十余。
|'''Nǔ''' people ('''弩人'''; crossbowman people), [have] deep-set eyes, [their] appearance is outstandingly dark. Their forehead and mouth edges are tattooed with crosses more than ten times.
|-
|有结些者,從耳尖連颊皮破,以象牙为大圈,横贯之,以花布裹頭,而垂余布於後,衣半身衫,而袒其肩。婦人未详。其人居戛璃者多。
|[There] is some knotted "Zo" people<ref>This term is mentioned as an ethnic group in the introduction. Over here it is used more awkwardly however. Despite all this, however, it is the first use of the Zhexie/Jiexie term, which was popularised during the Qing era.
However, this early, 些 Xie was actually Suo, like the Mosuo people. Hence, the name appears to be a misrendering of Zo people from an intermediary translator, possibly. Given this is in Kalay, this supports the fact that Zhexie stems from Jiesuo initially. To disregard the onfusion that some Chinese ethnographer claim these are Jinghpaw, the Jinghpaw are described by [https://www.yunnanexplorer.com/static/download/nanzhao/yunnanzhilue.pdf Lijing] in his 14th century document of races of Burma where he calls them as the Luoxing barbarian (unclothed) and that they do not cultivate food. That would contradict the Baiyizhuan with his document. Hence it appears that this term is for the Zo people of Kalay more so.
It is possible that the term migrated over time to mean the Jinghpaw people by the Qing dynasty, but originally was a term for Zo people of the Kalay city. </ref>, from the tips of the ears to the cheeks, the skin is pierced. Using ivory as a large ring, they pass it horizontally through [the pierced skin]. Printed cloth is wrapped around the head and hangs down onto their back as a partially wrapped robe and bears their shoulders. Nothing is known/reported concerning the women.<ref>Likely possibly meaning that the women are indistinguishable from men. An observation echoed by the British of the Zo people during the colonial era.</ref>. Many of these people habitat at '''Kalay'''.
|-
|諸夷言语習俗雖异,然由大百夷为君長,故各或效其所为。夷人有名不讳,無姓。
|Although the various barbarian languages and customs are different, they follow the Greater One Hundred Barbarians as their central ruler. Therefore, possibly each group imitates that they do. The Yi people have names but observe no naming taboos; they have no surnames.
|-
|無医卜等书。不知时节,惟望月之盈亏为候。有事惟鸡卜是决。疾病不知服药,以姜汁注鼻中。病甚,命巫祭鬼路側,病疟者多愈,病熱者多死。地多平川沃土,民一甸率有數十千户,眾置貿易所,谓之街子。婦人用锄地,事稼穑,地利不能尽,然多产牛、羊、鱼、果。
|There are no books on medicine and divination. They are unaware of seasons. Only the moon in its waxing and waning is observed. For matters, a chicken is used for divination. For diseases they do not know how to take medicine. They pour ginger juice into their noses. For extreme sickness, the shaman offers spirit sacrifices next to the road. Those suffering from malaria are likely to recover. Those with a fever are more likely to die. The land is flat with plains and fertile, the people of a district can lead up to ten thousand households. They install commercial trade posts known as ''street markets'' ('''街子'''; Jiē zǐ). Women hoe and weed the soil and [attend] matters to do with sowing and reaping. The productivity of land cannot be exhausted, as there are many ox, sheep, fish and fruits.
|-
|其气候:春夏雨,秋冬晴,腊月亦如春,昼暄夜冷,晓多烟雾,無霜,春秋烟瘴甚盛。
|Their climate: In spring and summer, it rains. In autumn and winter, it is clear. In the 12th Lunar month ('''December-Feburary''') it feels like spring. The daytime is warm, and the nighttime is cold. At dawn, there is a lot of fog. They have no frost. Spring and Autumn miasma carries an excessive level of malaria.
|-
|其飲食之异者:鳅、鳝、蛇、鼠、晴蜓、虫负、蛟、蝉、蝗、蚁、蛙、土蜂之類以为食;鱼肉等汁暨米汤信宿而生蛆者以为飲。
|Their food and drink are unusual in the following ways. Loach, eels, snakes, dragonflies, insects, aquatic animals, cicadas, locusts, ants, frogs, and scoliod wasps are all types of food. They drink the juice of fish, meat, and rice gruel, which, over two nights, gain maggots, which are eaten.
|-
|其草木禽兽之异:草則秋間數十百株结为一聚,地产此草,烟瘴尤甚。树木多有三四株结为連理。有大如斗之柑,有鲇頭鲤身之鱼,水牛頭黄牛身之牛,绵羊頭山羊身之羊。雄鸡多伏卵,亦有生卵者。者闌有一池,沸如汤,人多投肉熟之。
|Their plants and animals are unusual: in autumn, their grass joins from hundreds of stalks to cluster. The land these grasses grow on has an excessively strong malarial miasma. Trees often produce multiple stumps in a fusion. There are large tangerines as large as dippers. There is [a] fish with a sheatfish head and carp bodies. There are oxen with water buffalo heads and yellow ox bodies. There are sheep with sheep heads and mountain goat bodies. Roosters brood over eggs, there are also [males] that lay eggs. At '''Zhě lán''' ('''者闌''')<ref>On the Shan Myanmar and China border near Muse.</ref>, [the size of] ponds for boiling soup. People often cast mature meat in it.
|-
|境内所产珍物:雅琥、琥珀、犀、象、鹦鹉、孔雀、鳞蛇、脑、麝、阿魏、金、銀、玻璃之類。
|Within its borders are the following precious items it produces: elegant amber, amber, rhinoceros, elephant, parrots, peacocks, snake scales, brains, musk deer, Resina Furelae, gold, silver, glass types of products.
|-
|其山水险隘。北有高良弓山,横亘二百余里,高五十余里,與怒江相倚。西有馬安山,山有一关,若一人守关,萬夫难入。東为麓川江,可通舟楫。南與金沙江合而入於西海。南下交趾界。金沙江之南,有東胡、得冷、緬人三國。緬之西即西天也。
|The mountains have narrow, dangerous river passes. North there is the Gaoligong Mountains<ref>The big mountain range of Western Yunnan that divides easy crossings to Kachin State.</ref>, it horizontally extends two hundred '''Lǐ''' ('''里'''), and is tall as five hundred '''Lǐ''' ('''里''') right next to the '''Nùjiāng''' ('''怒江'''). West is the '''Mǎ'ān Mountain''' ('''馬安山'''). The mountain has one mountain pass. If one person guards the pass, then ten thousand will struggle to enter. East is the '''Lù chuān River''' ('''麓川江'''). You can pass it in an oarboat. South is the '''Jīnshā River''' ('''金沙江''') which enters at the western sea. South it borders '''Jiāozhǐ''' ('''交趾'''; Vietnam). Further south of the '''Jīnshā River''' ('''金沙江''') are the three polities, which has '''Dōnghú''' ('''東胡'''; Eastern Barbarians), '''Dé lěng''' ('''得冷'''; Derung people) and '''Miǎn people''' ('''緬人'''; Burmese people). West of Burma lies the Western Regions<ref> A term for India and Central Asia, which were Buddhist.</ref>.
|-
|緬國古舍利國,又名狮子國,多佛塔。緬國與夷連歲横兵。洪武之亥冬,緬人诉於朝。丙子春,皇帝遣臣古训及桂阳李思聪至两國,諭以睦邻之义。
|Burma, formerly the '''Shèlì country''' ('''舍利'''), also known as the Lion Country, is filled with pagodas. Burma and the Yi Barbarians were in continuous warfare for years. During the reign of the Hongwu Emperor in the winter of the year of the boar ('''1395 A.D.'''), Burma issued a royal complaint. In Spring of the Year of the Rat, ('''1396 A.D.'''), the Emperor dispatched official Guxun and Li Cong of Guiyang to the two countries to order them to get on well as neighbours with righteousness.
|-
|}
===Statements and Relations between the Kingdoms===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Outcome of the envoys mission and political relations between Shans and Burmese.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其諭緬國王曰:
|In it, I addressed the King of Burma, saying:
|-
|『里路险遠,山川阻修,风殊俗异,此乃天造地設也。尔能勤使者,涉险遠,越邻邦以至中夏,其使者之难,冲烟突雾,晨進昏止,饥餐渴飲,吞吐烟岚,异风霜而方至。其为使者,不亦难乎!古人有云:诚君子將有事於遠,友千里之外,神交而志通。今萬里之外,尔能勤使而至,遠修其好,美絕古而惟今。然排难解纷之事,朕之旨意,恨不一言而正,使彼此各罢兵守,樂黎民於市野,民居共处,砃相邻而同井飲,籍雖两國之民,居处难分,惟存关市有讥,是其和也。若尔緬不主衅,夷不强凌,如此,雖弱自保,以奉天道。其或不听朕命,忿争不已,天將昭鉴,福善祸淫,迟速可待。鯩至,朕不多诫。但诚可以交天人,尔其审之,母忘朕諭。』
|The roads are dangerous, and far, mountains and rivers are obstructive and long. Their social ways and customs are different. This is what heaven and earth have established. Yet you are able to diligently [carry out your duties as an] envoy. Taking risks far, passing neighbouring countries to the Chinese heartland. Clashing with smoke, dashing through mist. Advancing at dawn and stopping at twilight, eating when hungry and drinking when thirsty. Breathing in and exhaling mountain vapours, enduring unfamiliar winds and frost before finally arriving. To be an envoy was this not difficult? The ancient people have a saying: <em>Truly, when a gentleman has affairs to undertake in distant places, he has friends a thousand <strong>Lǐ</strong> (<strong>里</strong>), their spirits commune in spirit and their intentions are mutually understood.</em> Now ten thousand '''Lǐ''' ('''里''') away, you can diligently envoy and arrive, from afar cultivate their friendship. However, regarding the matter of resolving difficulties, this is my intention. I lament that I cannot settle the matter in a single utterance as to cause both sides to cease war and guard their territory so that the common people might enjoy marketplaces and countryside. Let the people coexist [as] neighbours of white stone who drink from the same well. Although registered as the people of two countries, their dwellings are difficult to distinguish. Only the inspections at frontier markets will remain. This would be peace between them. If the Burmese do not initiate hostility, and the '''Yi''' do not forcefully oppress you, in this way, althought [one is] weak it may defend itself, as to follow the law of heaven. If they do not listen to my order, angry contention will not cease; heaven will see it clearly. Blessed will the good, and calamity will be brought on the transgressor, quick or slow; the consequences will come. <strong>Lún</strong> (<strong>鯩</strong>) arriving, I will not elaborate further; only sincerity can bring one into accord with heaven and humanity. You must consider this; do not forget my instruction.
|-
|諭思侖發曰:
|Above '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) spoke:
|-
|『朕中國先古圣人,驭顽礼德,各有条章。是条章也,列圣相继,守而行之,上下相安,黔黎樂业。何也?諸侯敬畏,世禄子孙,國祚绵長,乃九伐之功驗也。列國敢有凭弱犯寡者,天子發兵以眚之;贼贤害民者,亦發兵以伐之;暴内凌外,則兴師以坛之;野荒民散,則用兵以削之;负固不服,則舉兵以侵之;贼殺其亲,則正其罪以殺之;放弑其君,則明其罪以诛之;犯令凌政,則杜而絕之;内外乱,鸟兽行,則殄灭之。九伐之征如是也。尔思侖發,以中國较之,合问凭弱犯寡之由。何以見?歲以兵寇車里,不时侵掠八百,恃强犯緬;戛璃國小民寡,而已平之,斯说也,不過告诫之词。中國周临四夷,與諸酋長地里相接,居民亦相密迩,如此者,耳闻之邦若干,目擊之邦若干,朕未嘗恃强凭凌,絕灭其嗣者。雲南之地,已为我有,似乎尚强以取之,非也!乃元世子孙梁王者,恃元之苗裔,匿我有罪,納我逋逃,诱我邊守,是乃不得已而發问罪之師,非無故而兴師。此乃元运天更,其苗裔不当安处。况生事於我邻邦,其理势使然,夷如反掌。尔麓川之蠢,初擅兴金齒之役,次谋景東而寇定邊,理当大發精兵而较胜负。朕释而不较,未嘗强尔为約束之邦,听尔自为声教,今又几年矣。近闻蚕食邻邦,意在扩土地而擅有其眾,又將为我西南之役。噫,未可!古中國圣人有云:‘山川地理人物之類,乃神器也,非人强有,必天授然後得之’。尔思侖發不修邻邦之好,三面發兵,蚕食諸國,其贪也如是,其谋也如是。彼麓川周临之國,始古至今,各有主者,未嘗吞并。朕雖不能止尔,听尔自为,果天道使然,尔以人事应之,或为而可。噫!以朕戒尔守全則可,不守全而以全动,設若全亏,是为全亡,莫如守全以圖绵長,不亦美乎?』
|The ancient sages of my Middle Kingdom governed the unruly through ritual propriety and moral virtue, each had rule and regulations. These rules and regulations were arranged in successive order to preserve them and put them into practice. Those above and below lived in mutual harmony. The common people enjoyed their livelihoods. Why is that? Local rulers revered [central authority], the descendants inherited their stipends and ranks, the state's fortunes endured for a long time. Thus [these] were the proof of the achievements of the Nine expeditions. Various states that dare to rely on strength to attack the weak, the Son of Heaven would send troops to punish them. Those who harm the worthy and injure the people would likewise be militarily punished. If a ruler oppressed those within and bullied those without, an army would be raised to subdue him. If the countryside lay waste and the people were scattered, troops would be employed to reduce it. If a state relied on its strong defences and refused submission, troops would be raised to invade it. If [a ruler] murdered his own kinsmen, his crime would be formally established with guilt and [thus] be put to death. If a subject expelled or murdered his ruler, his crime would be made manifest, and he would be executed. If a state violated commands and defied government authority, it would be blocked off and cut off. If there were disorder both within and without, and people behaved like birds and beasts, they would be utterly destroyed. Such were the circumstances and punishments of the Nine Punitive Expeditions. You, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa), measured against China , it is fitting to ask the reason why you rely upon strength to attack the weak. How is this evident? Year after year, [you] have used troops to raid '''Chēlǐ''' ('''車里''') and at irregular times invaded and plundered the Eight Hundred.<ref>Short hand for Eight Hundred Wives and Daughters in Laws Country, the old name for Laos or Lan Na. </ref> [Hence] presuming upon your strength to attack Burma. The '''State of Kalay''' is small, and the population is few, and you have already subdued it.<ref>If you read Fernquest's reconstruction of [https://www.burmalibrary.org/sites/burmalibrary.org/files/obl/docs4/4.2Fernquest.pdf Ming-Tai Conflicts] You can see how this tracks with Kalay being occupied by Mong Yang/Mong Mao polities. </ref> This is the account [I have given]. It is nothing more than words of admonition. China borders the "Four Barbarians"<ref>Four Barbarians: North - Di, East - Yi, South - Man and West - Rong. </ref> Its territory adjoins that of various chiefs, their populations live in close proximity. Of such states, there are some which I know by report, and some which I have seen with my own eyes, I have never relied on my strength to domineer over them, or extinguished their line of succession. The territory of Yunnan belongs to me, it might seem that I nevertheless used force to take it, but that is not so! Rather, a descendant of the Yuan Imperial House, Prince of Liang, relying on his Yuan Royal heritage, concealed those who committed offences against me and harboured my fugitives and enticed my frontier defenders to defect. Precisely for this reason, I had no alternative but to send a force and call for an offence with an army to carry out [that purpose]. I did not raise an army without cause. This was because the fortunes of the Yuan had changed by heaven's decree, and its descendants were no longer entitled to remain securely established there. Moreover, he [Prince of Liang] has caused trouble among my neighbouring states; the circumstances and principles made the outcome inevitable, and their subjugation was as easy as turning over one's hand. As for you, foolish '''Lùchuān''' ('''麓川'''), you first took it upon yourself to launch the Gold Teeth campaign, next you plotted against '''Jǐngdōng''' ('''景東''') and raided '''Dìngbiān''' ('''定邊'''). By right, this called for the dispatch of a large force of elite troops to determine the victor and vanquished. I released you and did not press on the matter. I have never compelled you to become a subordinated state. I allowed you to establish your own institutions and customs, and now several years have passed. You have been gradually encroaching upon neighbouring states with the intention of expanding your territory and taking possession of their people on your own authority, and will thereby be a cause of war for me in the southwest. Alas, this cannot be! The ancient sages of China have a saying: The mountains and rivers, the land and the people are all such things as constitute the Divine Realm; they cannot be forcibly possessed by men - only when heaven bestows them may they be obtained. You '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) do not cultivate friendly relations with your neighbouring states, you send troops on three fronts and gradually encroach upon the various states, such is your greed and such is your scheme. The states surrounding '''Lùchuān''' ('''麓川''') have, from ancient times to the present, each had their own rulers; they have never been swallowed up and annexed. Although I cannot prevent you, I have allowed you to act for yourself. If indeed this has brought about the Way of Heaven, you must respond to it through human affairs; perhaps what you do will thereby be acceptable. Alas! If, in accordance with my admonition, you preserve what is whole, then that is acceptable. But if you do not preserve it intact, and instead stake the whole upon action, suppose, however, that the whole is impaired, that would mean the whole is lost. Better yet, then, to preserve the whole and thereby seek lasting continuity. Would that not be admirable?
|-
|由是二國罢兵和好。
|because of the truth, the two countries ceased war and reconciled.
|-
|时古训等适遇百夷其部下酋長曰刀干孟者叛其國,余等以大义諭其部眾,而叛者闻之稍却。於是,思侖發欲留余等以为援,且進以金寶象馬等物,故余以书示之曰:
|At the time, Guxun, happened to encounter One Hundred Barbarians subordinate chief named '''Dāo gànmèng''' ('''刀干孟''') betray the country. We and the others explained/instructed his followers on the basis of the great principle/righteous cause and as a result, the rebels hearing it gradually withdrew. As a result, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) wished to preserve us as a source of assistance. He offered gold, valuables, elephants, horses and other gifts. Hence I presented this letter to reveal to him saying:
|-
|『吾闻君上有怀遠之德,遠臣有敬上之心,始古迄今,莫违此义。夫君居九重之上,雖欲顷刻目尔遠臣,未可得也,臣处萬里之外,即欲朝暮身亲君上,亦未易得也。故朝廷有將命之官,使之宣德布威;而遠方有承命之宜,期其輸忠納款。今天子应天顺民,奉天为治,四维八極,尽为臣妾,無有专擅,不敢违逆。西南一区,夷酋亦眾,惟尔麓川,多蒙恩宠,既受以官,復加以服。况贤王亲临尔境,而德惠數及尔身。为尔计,則將度其心,量其才,何为而可以尽忠天子,何为而可以致敬贤王,又何为而可以安邊境而不干天怒,又何为而可以教百姓而不违法度?借曰邊境不安,必思曰,我事上未忠或未至,而眾不服我耶?百姓违法,必思曰,我守職已或有僭而民亦犯上耶?於是我則尽其忠,去其僭,如此,則邊境自安,人民從教矣。且吾以尔目擊效驗明之:往年思瓦發不服朝廷,轻犯金齒,天子雖未问罪,天則假手於達鲁方等,而思瓦發被戮。刀思朗不從尔命,窃寇定邊,尔雖未能息其兵,天則助威於我邊將,而刀思朗等即灭。惟尔知天命,達人理,故能享天禄,守人爵。迩来天子恐尔所为,或涉放肆,特敕諭以戒之;贤王恐尔無知,或生疑懼,特令旨以恤之。此恩此德,穷天極地。尔之披肝露胆,开心見诚,吾尽見矣;尔之尊重朝廷,敬奉殿下,告亦見矣。今尔固留吾辈,其意本美。近者尔甸寨少宁,刀干谋异,吾將回朝为尔明白其事,尔乃留我,使我不速還朝,假如刀干鸣尔留难天使之非於朝,則反误尔敬君之心矣。且尔赠以金、銀、裀褥、馬、象等物,吾固不受者,非見怪也,實相爱也。何則?朝廷恩尔,抚安尔邦,未嘗令使者取货於尔也。夫货财,饥不可以充口,疾不可以救死。况中國金玉成山,象馬若蚁,未以为寶也,惟所寶者,圣君、明王、忠臣、烈士、强兵、勇將、孝子、顺孙等事,其他财物,如粪土耳。姑以尔境内眾所闻者明之:昔隋史萬歲守邊,夷而贪财,以致殺身。梁毗一金不受,而大服夷眾。此事甚白。吾为圣朝天使,必不为财物所蛊,惟恐吾之使令往来小人,不体吾意,蛊惑尔心,特此叮咛。尔其备审此书,体吾真意,早送吾辈還朝,則尔敬君之心,不浅浅也。』
|I have heard that a ruler above possessed the virtue of cherishing those who are far away. Those distant subjects have a heart of reverence to their ruler above. From the beginnings of ancient times until now, none have deviated from this principle. The ruler resides above the Ninefold Gates, although he wishes to see you, his distant subject, even for a moment, this cannot be done. I, your servant [of the Emperor], reside ten thousand '''Lǐ''' ('''里''') away. Even if I wanted to be personally close to my ruler morning and evening, that too would not be easy to achieve. Therefore, the imperial court has officials who carry its commands, sending them to proclaim its virtue and make its authority manifest, while distant polities obey the commands and fulfil their duty, in expectation that they will render their loyalty and submit their allegiance [to the Emperor]. Now the Son of Heaven responds to Heaven and follows the people, governing in accordance with Heaven. Throughout the four quarters and the eight extremities, all are subjects, none acts autonomously, and none dares to oppose [the imperial order]. In the southwestern region, the chiefs of the Yi people are also numerous, but you, <strong>Lùchuān</strong> (<strong>麓川</strong>), have received especially abundant imperial favour; having already been granted an official position, you were furthermore granted the appropriate dress. Moreover, the worthy king personally came to your territory, and his benevolence and favour have repeatedly extended to you personally. For your own sake, you should consider your intentions and measure your abilities. What can you do that will enable you to fulfil your loyalty to the Son of Heaven? What can you do that will enable you to show proper respect to the worthy king? What can you do to keep the frontier peaceful without incurring heaven's anger? And what can you do to govern the common people without violating the laws and regulations? Suppose, for argument's sake, the frontier were to become unsettled, you must think yourself: "Perhaps I have not been sufficiently loyal in serving my superior, and that is why people do not submit to me?" If the common people violate the law, you should think: "Perhaps, although I have maintained my office, I have in some way overstepped my proper station, and thus the people too are offending against their superior? Then I would fully fulfil my loyalty and remove any acts of overstepping I had committed; in this way, the frontier will naturally become peaceful, and the people will follow proper instruction. Moreover, I shall make this clear to you through examples that you yourself have witnessed. In the past years, '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) refused to submit to the court and rashly attacked the Golden Teeth. Althought the Son of Heaven did not call hbim to account, Heaven nevertheless acted through the hands of '''Dálǔfāng''' '''(達鲁方'''), and the others and '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) was killed. '''Diāosīlǎng''' ('''刁思朗''') did not obey your command and secretly raided '''Dìngbiān''' ('''定邊'''). Althought you were able to bring his hostilities to an end, Heaven then lent its might to my frontier commanders and '''Diāosīlǎng''' ('''刁思朗''') and the others were immediately destroyed. It is because you understand the Mandate of Heaven and comprehend principles of human affairs that you can enjoy heaven's emoluments and preserve your human rank. Recently, the Son of Heaven feared that what you were doing might become excessive, and specially issued this admonition to warn you; the Worthy King feared that your lack of understanding might give rise to doubt and fear, and specially sent his instructions to show you compassion. Such grace and such benevolence extend to the furthest reaches of Heaven and Earth. You're laying your heart completely bare, showing your sincerity, I have seen it all. [Your] respect for the imperial court [and] reverant service of the Emperor has been reported as well. Now you firmly retain our party, itself well-intentioned. Recently, your districts and stockards have enjoyed peace, while '''Dāo''' '''Gàn''' ('''刀干''') have conceived some other designs. I was going to return to court to make the matter clear on your behalf, yet you have kept me here, causing me not to return promptly to court. Suppose <strong>Dāo Gàn</strong> (<strong>刀干</strong>) were to report to the court your offence of detaining and obstructing the imperial envoy, then that would compromise your sincere respect for your ruler. Moreover, you presented us with gold, silver, padded mats, bedding, horses, elephants, and other such things, my refusal to accept them is certainly not because I take offense. The court has shown you favour and pacified your realm. It has never instructed its envoys to take goods from you. Regarding wealth and possession, when one is hungry, they cannot fill the mouth; when one is sick, they cannot save one from death. Besides, in China, gold and jade are piled as high as mountains, while elephants and horses are as numerous as ants; we do not regard these things as treasures. What we do treasure are the deeds of sage rulers, enlightened kings, loyal ministers, righteous men, strong armies, brave generals, filial sons, dutiful grandsons and things of this kind. All other material possessions are like dung and earth and nothing more. For the moment, by means within your territory, what the people commonly hear that which should be clear. In former times, <strong>Shǐ Wànsuì (史萬歲)</strong> guarded the frontier; he was greedy in dealing with the tribes and thereby brought about his own death. '''Liáng Pí''' '''(梁毗''') did not accept even a single piece of gold, thereby greatly earning the respect of the Yi people. The matter is very evident. I am an imperial envoy of the sacred dynasty; I certainly cannot be corrupted by material wealth. I only fear that petty men among those who travel back and forth on my missions do not do not consider my intentions and instead mislead or corrupt the mind. For this reason, I have given you special admonition. You should carefully examine this letter in full and understand my true intention. Send us back to court promptly, then your heart of reverence for the ruler would not be so shallow.
|-
|书至,思侖發悦服,遂邀至其家,設宴畢,與其眾送出境外。
|When the letter arrived, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) was pleased, and received it favourably. Thereupon invited him to his home. After the banquet, together with his retinue escorted them beyond the borders.
|-
|百夷,由金齒、蒲漂過怒江即其境。沿江東數十里,上有高良弓頗险。其岭有一寨。過一寨下四十里,地名养列,自此抵麓川無险隘之虞。由麓川经蠻牛、莽港等路,渡谨卯,從蒙戛等甸至麻林界,登金沙江之舟,下流二十日至緬國。國王眾呼为卜剌浪,王之妻呼为米泼剌。
|The One Hundred Barbarians, via the Gold Teeth, '''Pú''' ('''蒲'''), '''Pyu people''', upon crossing the '''Nùjiāng River''' ('''怒江''') reach their territory. Along the river, east about ten <strong>Lǐ</strong> (<strong>里</strong>), there is the tall, rugged, dangerous Gaoligong [mountains] above. The mountain range has one stronghold. Passing a stronghold, below forty '''Lǐ''' ('''里''') is a place named '''Yǎng liè''' ('''养列'''), since then reaching the '''Lùchuān''' ('''麓川''') there is no concern of dangerous narrow passes. Following '''Lùchuān''' ('''麓川''') pass through the routes of '''Mánniú''' ('''蠻牛'''), '''Mǎnggǎng''' ('''莽港''') and other places, crossing '''Jǐnmǎo''' ('''谨卯'''), from the district of '''Ménggā''' ('''蒙戛''') to the '''Málín''' ('''麻林''') border, [one must] board a boat on the '''Jīnshā River''' ('''金沙江'''), downriver twenty days one reaches Burma. The king is referred by the populace as '''Bōlàlàng''' ('''卜剌浪'''), the king's wife is referred to as '''Mǐpōlà''' ('''米泼剌''').
|-
|}
==References==
{{reflist}}
{{Subjects|Military history}}
s5f390ksg834py38kdcyizz09ljoqpg
4674798
4674797
2026-10-07T04:20:04Z
Taitesena
3485636
/* Introduction */
4674798
wikitext
text/x-wiki
__NOTOC__
{{Translation header
| title = Baiyi Zhuan (百夷傳)
| author = Qian Guxun (錢古訓)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes = The Baiyizhuan, or, '''Biography of 100 Barbarians''', was compiled by Qian Guxun (錢古訓) with Li Sicong (李思聪) and sent to the Ming Dynasty but never formally published yet stored away. Copies emerged under both names however, most agree that both envoys wrote their own accounts of Myanmar to control the issue of Shan Kings on the borders. This version is attributed to Qian Guxun and sourced from Wikisource.
}}
== Front Matter ==
Translator Note:
For the non-letter transcripts, I have used complete manual lookups and translation to English. Due to the informal, poetic and bureaucratic language, I took external assistance to guide me including AI only to clarify the meaning of the characters in the context as I struggled to articulate how a 14th century bureaucrat would write their letters to rulers. I still manually wrote and formatted it with the lookups however, but have declared this for transparency as part of my workflow. However, the ethnic nomenclature and practices and historical events detailing which hold stronger merit have not lost validity in that respect.
For the character "刺" this has been corrected to 剌 which is used as an actual phonetic. The original transcript mainains the incorrect character, but the translation gloss will correct it.
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Premable to the purpose and context of the document and political situation.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|百夷,在雲南西南數千里,其地方萬里。景東在其東,西天古刺在其西,八百媳婦在其南,吐番在其北;東南則車里,西南則緬國,東北則哀牢〈(今之金齒衛也)〉,西北則西番、回紇。
|[The] One Hundred Barbarians<ref>This generally refers to the Tai Shan people. </ref> are a few thosand '''Lǐ''' ('''里''') southwest of Yunnan. There region is very far away. '''Jǐngdōng''' ('''景東''') is east of them. The western regions Gǔ cì (古刺) [people] are west of them. South of them are the '''Eight Hundred Xífù''' ('''八百媳婦'''; Laos). North of them is Tibet. Southeast of them is Chē lǐ (車里), southwest is Burma, Northeast is '''Āiláo''' ('''哀牢''')<ref>The ancient tribal confederation of the Yongchang-Gaoligong area.</ref> Today, these are the '''Gold Teeth people'''<ref>The 金齒 barbarians, Gold Teeth are assumed to be an umbrella term for both ancestors of Tai peoples and also Austroasiatic peoples who had this custom. </ref>. Northwest of them is
Western Barbarians and '''Huíhé''' ('''回紇'''; Uyghur people).
|-
|俗有大百夷、小百夷、漂人、古剌、哈剌、緬人、结些、吟杜、弩人、蒲蠻、阿昌等名,故曰百夷。
|The customs of Greater One Hundred Barbarians, the Lesser One Hundred Barbarians, the Pyu people<ref>This document still distinguishes between the Pyu people from the Burmese despite no further domestic inscriptions mentioning them. In particular their clothes give this away apparently later in the text.</ref>, '''Gǔlà''' ('''古剌''') [people], '''Hālà''' ('''哈剌''') [people], Burmese people, '''jiēsuò''' ('''结些''')<ref>There is reason to believe that these may be the Zo people. The Jie however is difficult to understand, likely a terminology transfer issue from intermediaries. Like the Mosuo people, I suggest this to be read as Jie Suo. If so, this would be the earliest mention of Zo terminology since Vincent Sangermono.</ref>, '''Yíndù'''('''吟杜''')<ref>These are only mentioned once in the document. Whether it's a mix-up with Hadu, or referring to Indians, is unknown.</ref>, Nǔ people (弩人; crossbowman people)<ref>These are assumed to be early Nungish Tribes, however this is speculation. Later texts discuss the 怒族 for example which sound the same. </ref>, Pú (蒲)<ref>The 蒲人 / 蒲满 according to You Zhong is the '''Bulang (布朗族)''', '''Wa (佤族)''', '''De'ang (德昂族)''' people. Austroasiatic groups of Burma.</ref> and Āchāng (阿昌)<ref>The successors of the Western Yunnan 尋轉 barbarians recorded by 繙綽 in the 蠻書.</ref>, among others, can be spoken of as the One Hundred Barbarians.
|-
|漢以前未嘗通中國,諸葛亮征蠻,亦抵怒江而止。唐天寶中,夷人始随爨歸王入朝。其眾各有部領,不相統屬。
|Before the Han dynasty, they had no contact with China.<ref>The main exception may be the Ailao people.</ref> '''Zhūgé liàng''' ('''諸葛亮''') went on an expedition against the barbarians, where he stopped right up against the '''Nùjiāng River''' ('''怒江'''). During the Tianbao Era of the Tang Dynasty, the barbarians began to follow the '''Cuàn''' ('''爨''') and '''Guī''' ('''歸''') clan leaders.<ref>The '''Cuàn''' ('''爨''') eventually founded the Kingdom of Nanzhao, which ruled powerfully in the region, competing with Tibet and Tang China.</ref> The people had their own leaders and were not unified.
|-
|元憲宗三年,世祖由吐番入麗江,自葉榆平至雲南〈(葉榆即大理也)〉。明年,命將兀良哈臺征降夷地。遂分为路二十、府四、甸四十有四、部二十有六、各設土官,置金齒都元帥府領之。有所督,委官入其地,交春即還,避瘴气也。
|In Emperor Xianzong's 3rd year in the Yuan Dynasty, Emperor Shìzǔ (世祖; Kublai Khan) entered '''Lìjiāng''' ('''麗江''') from Tibet and himself in '''Yèyú''' ('''葉榆'''; Present Day Dali) brought peace to Yunnan. The following year, [he] commanded General UriyangKhadai to pacify the barbarian lands. The region was transformed into twenty circuits, four prefectures, forty-four districts and twenty-six departments, each with indigenous officials overseen by the Gold Teeth Commander in Chief.<ref>A Tai Shan Leader likely.</ref> Officials were appointed to administer certain lands, returning by spring to avoid malarial miasma.
|-
|至正戊子,麓川土官思可發數侵扰各路,元帥搭失把都討之,不克。思可發益吞并諸路,而遣其子滿散入朝,以輸情款。雖奉正朔,納職貢,而服用制度,擬於王者。思可發死,子昭併發立。八年,傳其子臺扁。踰年,臺扁從父昭肖發殺之而自立,期年,盗殺昭肖發,眾立其弟思瓦發。
|In the the 8th year of the Zhizheng era ('''1348 AD''') Lùchuān (麓川) indigenous chief '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) had been countlessly harassing and invading every road. The Commander-in-Chief '''Dāshībǎ''' ('''搭失把''') sent armed forces to the capital but was unable to. '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) annexed further circuits and dispatched his son '''Mǎnsàn''' ('''滿散''') to the imperial court to offer terms of service. Although they accepted tribute and the official calendar of the Ming dynasty, their clothes and administration resembled that of a monarchy. '''Sī kě fā''' ('''思可發'''; Hsö Hkan Hpa) died, his son Zhāo bìngfā ('''昭併發'''; Hsö Pem Hpa) was established. Eight years later it passed to '''Táibiǎn''' ('''臺扁'''; Hsö Siu Hpa). A year later, '''Táibiǎn's''' ('''臺扁'''; Hsö Siu Hpa) uncle '''Zhāo xiàofā''' ('''昭肖發'''; , Hsö Kap Hpa) killed him himself and seized power. A year later, bandits killed '''Zhāo xiàofā''' ('''昭肖發'''; Hsö Kap Hpa) and established his younger brother '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) [as ruler].
|-
|國朝洪武辛酉,平雲南。明年,思瓦發寇金齒。是冬,思瓦發略于者闌、南甸。其屬達鲁方等輙立滿散之子思侖發,而殺思瓦發於外。即譴使貢白象、犀、馬、方物於朝。廷議不忍絕以化外,乃命福建左參政王鈍率雲南部校郭京美等,諭以向背利害,約以每歲貢獻之率,而遂内附。於是授思侖發为麓川平緬軍民宣慰。丙寅,復寇景東。明年,部屬刁思朗犯定邊,天子命西平侯沐英總兵敗之,獲刁思朗,夷人懼服。上以遠人不加約束,故官稱制度皆從其俗。
|In the current dynasty, in the 58th year (Xinyou) of the Hongwu Emperor ('''1381 A.D.'''), Yunnan was pacified. The next year, '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) plundered the Gold Teeth barbarians. That winter, '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) captured the territory of '''Zhělán''' ('''者闌''') and '''Nándiàn''' ('''南甸'''). His subordinate '''Dálǔfāng''' ('''達鲁方''')placed '''Mǎnsàn's''' ('''滿散''') son, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) as ruler and killed '''Sīwǎfā''' ('''思瓦發'''; Hsö Vau Hpa) when outside. The offered tribute included white elephants, rhinoceroses, horses and other local products. The palace could not bear to cut ties with outside spheres of influence and commanded the Fujian Left Vice Official '''Wáng Dùn''' ('''王鈍''') to lead in the checking of the city walls of Yunnan, order discussions of pros and cons of allegience, discuss the annual tribute rate and secured their submission. He conferred '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) as the Burma Pacification Commissioner. In the third year ('''1386 A.D.'''), he returned to invade '''Jǐngdōng''' ('''景東'''). The next year, his subordinate '''Diāosīlǎng''' ('''刁思朗''') invaded '''Dìngbiān''' ('''定邊'''). The Emperor ordered Marquis of '''Xīpíng''' ('''西平''') '''Mù yīng''' ('''沐英''') to lead an army to defeat him where he caught '''Diāosīlǎng''' ('''刁思朗'''). The barbarians became fearful and submitted. In order not to restrict those far-away peoples, the official system and administration were all in their customs.
|-
|其下稱思侖發曰『昭』,猶中國稱君主也。所居麓川之地曰者闌,猶中國稱京師也。其屬則置『叨孟』以總統政事,兼領軍民。『昭錄』領萬餘人,『昭綱』領千餘人,『昭伯』領百人;領一伍者为『昭哈斯』,領一什者为『昭准』;皆屬於『叨孟』。又有『昭錄令』,遇有征调,亦與『叨孟』統軍以行。其近侍呼为『立者』,閽寺呼为『割斷』。大小各有分地,任其徭賦。
|'''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) is called '''Zhāo''' ('''昭'''), like how China uses "Lord". '''Lùchuān's''' ('''麓川''') [ruler's] dwelling place is called '''Zhělán''' ('''者闌'''), like how China uses the term "Capital". Their subordinates are known as '''Dāomèng''' ('''叨孟'''), who generally handled political affairs while simultaneously leading the military and civilians. '''Zhāolù''' ('''昭錄''') led over ten thousand households, '''Zhāogāng''' ('''昭綱)''' led over a thousand households, '''Zhāobó''' ('''昭伯''') led a hundred households. Those who led five soldiers were known as '''Zhāohāsī''' ('''昭哈斯'''), those who led ten soldiers were known as '''Zhāozhǔn''' ('''昭准'''). Each [of these] were part of the '''Dāomèng''' ('''叨孟'''). There is also '''Zhāolùlìng''' ('''昭錄令''') who also happen to carry out conscription for the '''Dāomèng''' ('''叨孟''') to gather an army to lead. Their attendants were known as '''Lìzhě'''('''立者'''). Doorkeepers of Buddhist temples were called '''Gēduàn''' ('''割斷'''). Big or small each had distributed land appointed and endowed to them as compulsory servicefor corvee and taxes.
|-
|上下僭奢,雖微職亦繫鈒花金銀帶。貴賤皆戴筍籜帽,而飾金寶於頂,如浮圖狀,懸以金玉,插以珠翠花,被以毛纓,綴以毛羽。貴者衣綺麗。每出入,象馬僕從滿途。象以銀鏡數十聯綴於羈靮,緣以銀釘,鞍上有闌如交椅狀,藉以裀褥,上設錦障蓋,下懸銅響鈴,坐一奴鞍後,執長鉤驅止之。遇貴於己者,必讓途而往。凡相見必合掌而拜,習胡人之跪。長於己者必拜跪之,言則叩頭受之。叨孟以下見其主,則膝行以前,二步一拜,退亦如之。執事於貴人之側,雖跪終日無倦狀。貴人之前過,必磬折鞠躬。宴会則貴人上坐,其次列坐於下,以逮至賤。先以沽茶及蒌葉、檳榔啖之(沽茶者,山中茶葉,春夏間采煮之,實於竹筒内,封以竹箬,過一二歲取食之,味極佳,然不可用水煎飲)。次具飯,次進酒饌,俱用冷而無熱。每客必一仆持水瓶側跪,俟嗽口盥手而後食。食畢亦如之,而後起。客十則十人各行一客。酒或以杯,或用筒(筒以蕨楷,或用鵝翎管連贯,各長丈餘,漆之而飾以金,假若一酿酒,則漬以水一滿瓮,插筒手中,立標以驗其盏數,人各以次舉筒咂之。咂酒一盏,仍漬水一盏,傳之次客,味甚佳,至淡,水方止,俗呼为咂酒)。酒與食物必祭而後食,食不用筯。酒初行,一人大噪,眾皆合之,如此者三,乃舉樂。樂有三等:琵琶、胡琴、等笛、響盏之類,效中原音,大百夷樂也。笙阮、排簫、箜篌、琵琶之類,人各拍手歌舞,作緬國之曲,緬樂也。銅饒、銅鼓、響板、大小長皮鼓,以手拊之,與僧道樂頗等者,車里樂也。村甸間擊大鼓,吹芦笙,舞干为宴。長者授卑賤酒食,必叩頭受之,易以他器而食。食畢,仍叩頭而退。
|The people, both high and low [in status], were extravagantly overstepping [in their dress]. Even small duty officials fastened engraved, patterned belts of gold and silver. [Both] nobles and commoners wore bamboo-shoot-woven hats and decorated them with gold, like a crown resembling pagodas, hanging with jade and gold and inserted with pearls and colourful gems, covered with tassels and quilted feathers. The clothes of wealthy individuals are enchantingly beautiful. Whenever one goes out, elephants, horses, and servants fill the roads. The elephants have about ten or so silver mirrors attached to their reins and bridles, edged with silver nails. On the saddle, there is a railing resembling an old wooden-style armchair with cushion-like under padding, a mattress, and brocade above the top and copper ringing bells below [it]. A servant was seated behind the saddle, grasping a long hook to urge and stop [the elephant]. Upon encountering a wealthy person, they certainly yield the way to them. Commonly, when meeting one another, they certainly clasp hands and bow, adopting the kneeling [custom] of the Northwestern peoples [of China]. Elders to oneself are bowed to and kneelt before, and when speaking, they are subjected to kowtow to them. Those below '''Dāomèng''' ('''叨孟'''), seeing their masters, kneel before them, every two steps a bow, and repeat it during withdrawal. Attendants are at a wealthy person's side, despite kneeling all day, do not appear tired. When a wealthy person passes by, they bow deeply.<ref>The sentence is poetically describing the bow as "bending the body as to resemble 磬, a type of percussion instrument". </ref> In banquets, the wealthy are seated first, then next in line are the ones below them and so on, by means to the lowest [of status]. First, they are given tea, areca nuts and betel leaves (The given tea leaves are [harvested] in mountains and brewed in Spring and Summer, stuffed into bamboo tubes, sealed with bamboo leaves for one to two years, ready for consumption, tasting extremely fine, however, cannot be brewed by boiling in water for drinking. Next [to] be provided is rice, following that is wine and delicacies are are [consumed] cold and unheated. Every guest has a servant kneeling on the side holding a water bottle, waiting to cough and rinse the mouth and hands with water and then eat. [Upon] finishing eating this is repeated and then they rise. In the case of ten guests, ten people attend them, one per guest. Wine is either served in a cup or a tube (The tubes are made from Pistachio Bracken or goose plume linked together). Every length is one '''Zhàng''' ('''丈;''' approximately 3m) painted and decorated with gold. If brewing wine, one pot of water is added. Inserting the tube into the hand, it is used to check for the number of cups [it can hold]. Each person lifts the tube to sip from it. After sipping a cup, a cup of water is added, and it is passed to the next person; the taste is exceedingly fine. When the wine's taste dilutes, water is stopped, and this is called '''sipping wine'''.) Wine and good must be sacrificed, and then they eat. Chopsticks are not used to eat. At the begining of the wine [ceremony], one person loudly shouts and multiple people all join in. This is done three times, and then music is played. There are three such types of music: Chinese lute, Huqin (Chinese fiddle) and the flute with ringing cups and so on. It imitates the sounds of the central region<ref>The Yellow River Basin area of China. </ref> and the Great White barbarians, too. Bagpipe, lutes, panpipes, harp, pipa and so on. People each clap their hands and dance. It is performed in Burmese tunes and music. Copper gong, bronze drum, castanets, big, small and long leather drums struck with the hand. It is similar to Buddhist and Taoist music, as well as '''Chēlǐ''' ('''車里''') music. Villages and suburbs have space for striking bass drums, blowing reed pipes and dancing for the feast. Elders give food and drink to the lowly [people], who certainly must bear to kowtow them to exchange utensils and eat. [Upon] finishing eating, they still kowtow and then retreat.
|-
|凡貿易必用銀,雜以銅,鑄若半卵狀,流通商賈間。官無倉庾,民無税粮。每年秋季,其主遣亲信部屬往各甸,计房屋征金銀,谓之取差發(房屋一間,大者征銀一两、三两,小者一两而止)。無中國文字,小事刻竹木,大事作緬书,皆旁行为记。刑名無律,不知鞭挞,轻罪則罚,重罪則死。或殺,或用人扱殺。或用象打,或投於水,或以绳帛缢。男婦不敢为奸盗,犯則殺之。
|All commercial trade must use silver, mixed with copper, cast to appear like a half egg [shape] to circulate among merchants. The government has no granaries,<ref>There are two characters for granaries, the second is for small private ones, signifying that most did not have this system at all. </ref> the people [likewise] have no grain tax. Every autumn, the owners dispatch trusted aides and subordinates to go to each suburb to calculate and levy households' gold and silver. This is called to go collect money. (For each house: large ones are taxed one or three [taels] of silver, small ones are taxed one tael.) There is no Chinese script; small matters are carved into bamboo or wood, big matters are written into Burmese script, all written horizontally for recording. No laws govern punishment; they do not know whipping or corporal punishment. Petty crimes are penalised, and serious crimes lead to death. Some are killed [directly], while some have another person employed to kill them. Some use elephants to crush them, some throw them in water, while some are hanged with ropes. Men and women do not dare commit adultery or robbery, to violate so will kill them.
|-
|所居無城池濠隍,惟编木立寨,貴賤悉构以草楼,無窗壁门户,时以花布障围四壁,以蔽风雨而已。邮傅一里設一小楼,數人守之,公事雖千里遠,报在顷刻。無軍民之分,聚則为軍,散則为民。遇有战斗,每三人或五人出軍一名,择其壮者为正軍,呼为『锡剌』。锡剌持兵御敌,余人荷所供。故軍行五六萬,战者不滿二萬。兵行不整,先後不一。多以象为雄势,战則缚身象上。裹革兜,被銅铁甲,用長镖干弩,不習弓矢。征战及造作用事,遇日月食則罢之,毁之。
|The [ruler's] dwelling place has no walls, water moats, trenches or dry moats, only wooden stockades erected. Both nobles and commoners all constructed thatched houses with no windows, ramparts or doors, just printed cloth covering around all four walls, as to cover [from] wind and rain and nothing more. Every mile, there was a small post office, a few people guarded it, [thus] documents even as far as a thousand miles can be reported instantly. There is no distinction between military and civilian [people]. Once assembled, they became soldiers; once scattered, they became civilians. Upon encountering a war, every three or five people would produce one soldier; they would select the strongest to become the principal armed force, known as '''Xīlà''' ('''锡剌'''). The '''Xīlà''' ('''锡剌''') grasped weapons to defend against the enemy, while surplus people carried to supply [them]. Hence, an army of fifty or sixty thousand will have fighters not filling twenty thousand. The soldiers were not organised; their rank formations were not uniform. Many used elephants for their imposing power; fighters tied their bodies onto the elephants. They wrapped leather into helmets, and were covered with copper mail plating, using long spears and crossbows, and did not practice bow and arrow. Any war or manufacturing encountering an eclipse would cease or [either] be destroyed.
|-
|所用多陶器,惟宣慰用金銀玻璃,部酋間用金銀酒器。凡部酋出,其器用、仆妾、财寶之類皆随之,從者千余,昼夜随所适,必作宴笑樂。
|Most utensils [they use] were pottery. Only the '''Xuānwèi''' ('''宣慰''') use gold, silver and glass. Tribal chiefs among them used gold, silver and wine cups. Commonly [when] tribal chiefs go out, their utensils, servants, concubines, money, jewels and so on all subsequently all follow him. He is accompanied by over a thousand followers. Day and night, wherever he subsequently goes, there will be feasts, laughter and music.
|-
|男子衣服多效胡服,或衣宽袖長衫,不识裙袴。其首皆髡,胫皆黥。不髡者殺之,不黥者眾叱笑,比之婦人。婦人髻绾於後,不谙脂粉,衣窄袖衫,皂統裙,白裹頭,白行缠,跣足。其俗賤婦人,貴男子,耕织徭役担负之類,雖老婦亦不得少休。嫁娶不分宗话,不重处女。年未笄,听與男子私,從至其家,男母为之濯足,留五六昼,遣歸母家,方通媒妁,置财礼娶之。凡生子,貴者浴於家,賤者浴於河,數日,授子於夫,仍服劳無倦。酋長妻數十,婢百余,不分妻妾,亦無鮅忌。男女浴於河,雖翁婦叔嫂,相向無耻。子弟有職名,則受父兄跪拜。父母亡,用婦祝尸,亲邻咸馈酒肉,聚年少环尸歌舞宴樂,婦人擊碓杵,自旦達宵,數日而後葬。其棺若馬槽,無蓋,置尸於中,抬往葬所,一人執刀持前导。及瘗,其生平所用器物,坏之於側而去。
|Many men's clothes mainly imitate non-Han clothing, or they wear wide-sleeved long gowns, not knowing skirts or trousers. Their heads are all tattooed, their shins are all tattooed. Untattooed heads would be killed, and untattooed legs would be laughed at and compared to women. Women tied their hair into a topknot at the back; they are not versed in cosmetics, and their clothes are narrow-sleeved garments [jackets] and a soap-style skirt. [Her] head is wrapped in white, her body is wrapped in white, and they go barefoot. Their custom is women, commoners, noblemen, must all undertake compulsory labour service and so on. Even old women must not rest a little. Marriage does not distinguish clan or language or virginity [of women]. Before even fifteen years, they are allowed private liaisons with men. She follows him to his home, and the man's mother washes her feet. She remains there for five or six days, [she] is then sent back to her mother's house. Then they communicate with a matchmaker and buy betrothal gifts to take her as a wife [for him]. Ordinarily with the birth of a child, a nobleman bathes in the home, while commoners bathe in the river. For a few days, she gives the child to her husband and continues to dress, toil, and work without tiring. The wives of a tribal chief number ten, his slave girls can surpass one hundred, there is no distinction between wife and concubine, also there is no '''Bìjì''' ('''鮅忌''').<ref>Unsure as to what this means. The first character is a type of fish and an extremely obsolete character not used anymore. It is a compound to something about jealousy, however I do not know what this compounded term relating to jealousy might be. Preliminary thought would be, the wives do not compete, or do not dread their hierearchy? </ref> Men and women bathe in the river, even old men, women, uncles, sister-in-laws [bathing] face to face have no shame. If a child has an office title, then they will be accepted, and the father and brothers will kneel and kowtow to him. When parents die, they use women to pray for the corpse. Relatives and neighbours all make an offering of wine and meat. They assemble young people around the corpse, singing and dancing, making merry. Women strike the pestle from dawn to night, and only after a few days, they bury the dead. The coffin seems like a horse trough, with a lid; they cover the corpse in the middle. They lift and carry the coffin to the burial place; one person holds a knife and leads the way. When the burial takes place, the objects the deceased had used during their life are broken beside the burial, and then people depart.
|-
|}
===Ethnic Groups and customs===
{| class="wikitable" style="text-align:center; width:80%;"
|+ A list of ethnic groups encountered and their traditions and general customs.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其俗,不祀先,不奉佛,亦無僧道。小百夷居其境之東北邊,或学阿昌,或学蒲蠻,或仿大百夷,其習俗不一。
|Their customs do not offer sacrifices [to ancestors], do not revere the Buddha. There are no Buddhists and Daoists [among them]. The Lesser One Hundred Barbarians reside on the northeast border, following Āchāng ('''阿昌''')<ref>This is the earliest I've seen the Achang called by this name. In the 蠻書 they were assumed part of the 尋穿 instead. </ref> customs, following Pú ('''蒲''') customs and some imitate the Greater One Hundred Barbarians. Their customs are not the same (uniform).
|-
|車里,亦谓小百夷,其俗刺额、黑齒、剪發,狀如頭陀。
|[The people of] '''Chē lǐ''' ('''車里''')<ref>'''Chē lǐ''' ('''車里''') refers to the Cheli Military and Civilian Pacification Commissioners Office. It was a Tai State that located at Jinghong City in modern day Xishuangbanna in Yunnan.</ref>, are also called Lesser One Hundred Barbarians. Their customs are tattooing foreheads, blackening teeth and cutting hair. Appearing as if like ascetic monks.
|-
|哈刺,男女黑真黑。男子以花布为套衣,亦有效百夷制者;婦人髻在後,项系雜色珠,以娑罗布披身上为衣,横系於腰为裙(娑罗布即中國木棉布,坚厚,或织以青红纹)。仍环黑藤數百围於腰上,行缠用青花布,赤脚(蒲蠻、阿昌,事見《雲南志》)。
|'''Hālà''' ('''哈剌'''), men and women are [both] black, truly black. Men use printed cloth<ref>g</ref> for covering themselves, also which the One Hundred bararians effectively manufacture; married women have top knots behind [their head]. It is tied at the back of their neck with various pearls and beads. '''Suō luó''' ('''娑罗''')<ref>'''Sarong''' today, however this appears to be a complex term with many copyediting issues historically, Brahmin drapes, Suoluolong, eventually describing a type of silk-cottob robe made from plant materials.</ref> are draped around their bodies as clothes, horizontally it connected at the waist and lower back as a skirt. ('''Suō luóbù pī''' ('''娑罗布披''') namely is the Chinese Cotton Tree (Bombax Ceiba) cloth, strong and thick, possibly weaved as blue, red patterns.) Yet it encircles black rattan several hundred times, wrapped at the waist and lower back, it wraps around [their leg] to be used as a blue printed cloth [as they're] barefoot.
([Used amongst the] Pú mán (蒲蠻), āchāng (阿昌), shì jiàn (事見)<ref>Only said once in the document and not obvious to allusions elsewhere. </ref>; [according to the] The Yunnan Gazeteer<ref>Written by Fan Chuo of the 9th century, also known as 蛮书 (Barbarian Document)</ref>.)
|-
|古刺,男女色甚黑。男子衣服装飾類哈刺,或用白布为套衣。婦人如罗罗狀(罗罗見《雲南志》)。
|'''Gǔlà''' ('''古剌''') [people] are coloured extremely black. The men's clothes, decorations and adornments closely resembled the '''Hālà''' ('''哈剌'''), and they use white cloth as [outer] covering garments. Married women resemble the '''Luó luó''' ('''罗罗''') [people]<ref>These are the Yi people of Eastern Yunnan. </ref>. ([For the] '''Luó luó''' ('''罗罗''') see The Yunnan Gazetteer.)
|-
|漂人,男女衣服皆類百夷。婦人以白布缠頭,衣露腹,以红藤缠之,娑罗布为裙,两接,上短下長,男女同耕。
|Pyu people<ref>This is the last time a document mentions the existence of Pyu people, namely. The Burmese stopped mentioning them by the 12th century, as did the Persians in the 10th century. Their retention of it suggests that absorption was slower and that the Burmese and Pyu were still distinct, according to the envoys.</ref>, [the] men and women's clothes all resemble the One Hundred Barbarians. Married women wear white cloth wrapped around their head, their clothes expose their stomach/ naval. By means of red rattan winding around them, the '''Suō luó''' ('''娑罗''') [is worn] as a skirt. Two [cloths] connect, upper [cloth] is short, bottom [cloth] is long. Men and women [both] till [the fields].
|-
|緬人,色黑類哈刺,男女頭上以白布缠高三四尺,衣大袖白布衫,腰以下一布通前後便缠之,貴者布長二丈余,賤者不一丈。甚善水,嗜酒。其地有树,狀若棕,树之杪有如筍者八九茎,人以刀去其尖,缚瓢於上,過一宵則有酒一瓢,香而且甘,飲之輙醉。其酒经宿必酸,炼为烧酒,能飲者可一盏。有为僧者,以黄布为袈裟,袒右手,戒行極精,午後不飲食。婦人貌陋甚淫,夫少不在,則與他人私,遂为夫婦。以白布裹頭而披花为衣。
|Burmese people, [their] colour is black like the '''Hālà''' ('''哈剌'''). Men and women [both] on their heads have white cloth wrapping around it [approximately] as long as three to four '''Chǐ''' ('''尺''';1.2 m-1.36 m). Their clothes are large-sleeved white cloth garments. Below the waist and lower back, one cloth goes all around to be wrapped around them. Expensive cloth is as long as two '''zhàng''' ('''丈'''; 6.2m-6.8m). Inexpensive [cloth] is not even one '''zhàng''' ('''丈'''; 3.1m-3.4m). They are extremely well-disposed to water and fond of wine. On their land, their trees appear as palm trees. They cultivate eight to nine stalks, with the tips of the leaves resembling bamboo shoots. The people take knives and cut off the tips. They bind a dried gourd ladle to it. After one night, it becomes a gourd of wine, fragrant and sweet to drink to intoxication. Their wine, undergoing [another] night, certainly becomes bitter; it gets refined into '''Shāojiǔ''' ('''烧酒''')<ref>A famous Tang Dynasty wine beverage.</ref>. [Heavy] drinkers can only drink one small cup. There are monks. Yellow cloth is used as Kasaya robes (Buddhist robes) with the right arm remaining bare. They strictly adhere to the utmost discipline. They do not eat or drink in the afternoon. Women's appearances are excessively plain, and they are promiscuous. If husbands are away briefly, they enter into relations with other men and succeed as a married couple. White cloth is wrapped around their head and draped on their shoulders in a printed way.
|-
|哈杜,巢居山林,無衣服,不识农业,惟食草木禽兽,善骑射。冷則抱巨石,山坡間往復奔走,以汗出为度。
|'''Hādù''' ('''哈杜''') [people]<ref>Chinese sources assume this group to be of the Austroasiatic Wa people.</ref> reside in nests in mountain forests; they do not wear clothes. They have no knowledge of agriculture. Only eating vegetation and birds and creatures. They are adept at horses and archery. [When] cold, they grab a boulder and make running trips back and forth between mountainsides until they perspire out to the temperature.
|-
|弩人,目稍深,貌尤黑,额颅及口邊刺十字十余。
|'''Nǔ''' people ('''弩人'''; crossbowman people), [have] deep-set eyes, [their] appearance is outstandingly dark. Their forehead and mouth edges are tattooed with crosses more than ten times.
|-
|有结些者,從耳尖連颊皮破,以象牙为大圈,横贯之,以花布裹頭,而垂余布於後,衣半身衫,而袒其肩。婦人未详。其人居戛璃者多。
|[There] is some knotted "Zo" people<ref>This term is mentioned as an ethnic group in the introduction. Over here it is used more awkwardly however. Despite all this, however, it is the first use of the Zhexie/Jiexie term, which was popularised during the Qing era.
However, this early, 些 Xie was actually Suo, like the Mosuo people. Hence, the name appears to be a misrendering of Zo people from an intermediary translator, possibly. Given this is in Kalay, this supports the fact that Zhexie stems from Jiesuo initially. To disregard the onfusion that some Chinese ethnographer claim these are Jinghpaw, the Jinghpaw are described by [https://www.yunnanexplorer.com/static/download/nanzhao/yunnanzhilue.pdf Lijing] in his 14th century document of races of Burma where he calls them as the Luoxing barbarian (unclothed) and that they do not cultivate food. That would contradict the Baiyizhuan with his document. Hence it appears that this term is for the Zo people of Kalay more so.
It is possible that the term migrated over time to mean the Jinghpaw people by the Qing dynasty, but originally was a term for Zo people of the Kalay city. </ref>, from the tips of the ears to the cheeks, the skin is pierced. Using ivory as a large ring, they pass it horizontally through [the pierced skin]. Printed cloth is wrapped around the head and hangs down onto their back as a partially wrapped robe and bears their shoulders. Nothing is known/reported concerning the women.<ref>Likely possibly meaning that the women are indistinguishable from men. An observation echoed by the British of the Zo people during the colonial era.</ref>. Many of these people habitat at '''Kalay'''.
|-
|諸夷言语習俗雖异,然由大百夷为君長,故各或效其所为。夷人有名不讳,無姓。
|Although the various barbarian languages and customs are different, they follow the Greater One Hundred Barbarians as their central ruler. Therefore, possibly each group imitates that they do. The Yi people have names but observe no naming taboos; they have no surnames.
|-
|無医卜等书。不知时节,惟望月之盈亏为候。有事惟鸡卜是决。疾病不知服药,以姜汁注鼻中。病甚,命巫祭鬼路側,病疟者多愈,病熱者多死。地多平川沃土,民一甸率有數十千户,眾置貿易所,谓之街子。婦人用锄地,事稼穑,地利不能尽,然多产牛、羊、鱼、果。
|There are no books on medicine and divination. They are unaware of seasons. Only the moon in its waxing and waning is observed. For matters, a chicken is used for divination. For diseases they do not know how to take medicine. They pour ginger juice into their noses. For extreme sickness, the shaman offers spirit sacrifices next to the road. Those suffering from malaria are likely to recover. Those with a fever are more likely to die. The land is flat with plains and fertile, the people of a district can lead up to ten thousand households. They install commercial trade posts known as ''street markets'' ('''街子'''; Jiē zǐ). Women hoe and weed the soil and [attend] matters to do with sowing and reaping. The productivity of land cannot be exhausted, as there are many ox, sheep, fish and fruits.
|-
|其气候:春夏雨,秋冬晴,腊月亦如春,昼暄夜冷,晓多烟雾,無霜,春秋烟瘴甚盛。
|Their climate: In spring and summer, it rains. In autumn and winter, it is clear. In the 12th Lunar month ('''December-Feburary''') it feels like spring. The daytime is warm, and the nighttime is cold. At dawn, there is a lot of fog. They have no frost. Spring and Autumn miasma carries an excessive level of malaria.
|-
|其飲食之异者:鳅、鳝、蛇、鼠、晴蜓、虫负、蛟、蝉、蝗、蚁、蛙、土蜂之類以为食;鱼肉等汁暨米汤信宿而生蛆者以为飲。
|Their food and drink are unusual in the following ways. Loach, eels, snakes, dragonflies, insects, aquatic animals, cicadas, locusts, ants, frogs, and scoliod wasps are all types of food. They drink the juice of fish, meat, and rice gruel, which, over two nights, gain maggots, which are eaten.
|-
|其草木禽兽之异:草則秋間數十百株结为一聚,地产此草,烟瘴尤甚。树木多有三四株结为連理。有大如斗之柑,有鲇頭鲤身之鱼,水牛頭黄牛身之牛,绵羊頭山羊身之羊。雄鸡多伏卵,亦有生卵者。者闌有一池,沸如汤,人多投肉熟之。
|Their plants and animals are unusual: in autumn, their grass joins from hundreds of stalks to cluster. The land these grasses grow on has an excessively strong malarial miasma. Trees often produce multiple stumps in a fusion. There are large tangerines as large as dippers. There is [a] fish with a sheatfish head and carp bodies. There are oxen with water buffalo heads and yellow ox bodies. There are sheep with sheep heads and mountain goat bodies. Roosters brood over eggs, there are also [males] that lay eggs. At '''Zhě lán''' ('''者闌''')<ref>On the Shan Myanmar and China border near Muse.</ref>, [the size of] ponds for boiling soup. People often cast mature meat in it.
|-
|境内所产珍物:雅琥、琥珀、犀、象、鹦鹉、孔雀、鳞蛇、脑、麝、阿魏、金、銀、玻璃之類。
|Within its borders are the following precious items it produces: elegant amber, amber, rhinoceros, elephant, parrots, peacocks, snake scales, brains, musk deer, Resina Furelae, gold, silver, glass types of products.
|-
|其山水险隘。北有高良弓山,横亘二百余里,高五十余里,與怒江相倚。西有馬安山,山有一关,若一人守关,萬夫难入。東为麓川江,可通舟楫。南與金沙江合而入於西海。南下交趾界。金沙江之南,有東胡、得冷、緬人三國。緬之西即西天也。
|The mountains have narrow, dangerous river passes. North there is the Gaoligong Mountains<ref>The big mountain range of Western Yunnan that divides easy crossings to Kachin State.</ref>, it horizontally extends two hundred '''Lǐ''' ('''里'''), and is tall as five hundred '''Lǐ''' ('''里''') right next to the '''Nùjiāng''' ('''怒江'''). West is the '''Mǎ'ān Mountain''' ('''馬安山'''). The mountain has one mountain pass. If one person guards the pass, then ten thousand will struggle to enter. East is the '''Lù chuān River''' ('''麓川江'''). You can pass it in an oarboat. South is the '''Jīnshā River''' ('''金沙江''') which enters at the western sea. South it borders '''Jiāozhǐ''' ('''交趾'''; Vietnam). Further south of the '''Jīnshā River''' ('''金沙江''') are the three polities, which has '''Dōnghú''' ('''東胡'''; Eastern Barbarians), '''Dé lěng''' ('''得冷'''; Derung people) and '''Miǎn people''' ('''緬人'''; Burmese people). West of Burma lies the Western Regions<ref> A term for India and Central Asia, which were Buddhist.</ref>.
|-
|緬國古舍利國,又名狮子國,多佛塔。緬國與夷連歲横兵。洪武之亥冬,緬人诉於朝。丙子春,皇帝遣臣古训及桂阳李思聪至两國,諭以睦邻之义。
|Burma, formerly the '''Shèlì country''' ('''舍利'''), also known as the Lion Country, is filled with pagodas. Burma and the Yi Barbarians were in continuous warfare for years. During the reign of the Hongwu Emperor in the winter of the year of the boar ('''1395 A.D.'''), Burma issued a royal complaint. In Spring of the Year of the Rat, ('''1396 A.D.'''), the Emperor dispatched official Guxun and Li Cong of Guiyang to the two countries to order them to get on well as neighbours with righteousness.
|-
|}
===Statements and Relations between the Kingdoms===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Outcome of the envoys mission and political relations between Shans and Burmese.
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其諭緬國王曰:
|In it, I addressed the King of Burma, saying:
|-
|『里路险遠,山川阻修,风殊俗异,此乃天造地設也。尔能勤使者,涉险遠,越邻邦以至中夏,其使者之难,冲烟突雾,晨進昏止,饥餐渴飲,吞吐烟岚,异风霜而方至。其为使者,不亦难乎!古人有云:诚君子將有事於遠,友千里之外,神交而志通。今萬里之外,尔能勤使而至,遠修其好,美絕古而惟今。然排难解纷之事,朕之旨意,恨不一言而正,使彼此各罢兵守,樂黎民於市野,民居共处,砃相邻而同井飲,籍雖两國之民,居处难分,惟存关市有讥,是其和也。若尔緬不主衅,夷不强凌,如此,雖弱自保,以奉天道。其或不听朕命,忿争不已,天將昭鉴,福善祸淫,迟速可待。鯩至,朕不多诫。但诚可以交天人,尔其审之,母忘朕諭。』
|The roads are dangerous, and far, mountains and rivers are obstructive and long. Their social ways and customs are different. This is what heaven and earth have established. Yet you are able to diligently [carry out your duties as an] envoy. Taking risks far, passing neighbouring countries to the Chinese heartland. Clashing with smoke, dashing through mist. Advancing at dawn and stopping at twilight, eating when hungry and drinking when thirsty. Breathing in and exhaling mountain vapours, enduring unfamiliar winds and frost before finally arriving. To be an envoy was this not difficult? The ancient people have a saying: <em>Truly, when a gentleman has affairs to undertake in distant places, he has friends a thousand <strong>Lǐ</strong> (<strong>里</strong>), their spirits commune in spirit and their intentions are mutually understood.</em> Now ten thousand '''Lǐ''' ('''里''') away, you can diligently envoy and arrive, from afar cultivate their friendship. However, regarding the matter of resolving difficulties, this is my intention. I lament that I cannot settle the matter in a single utterance as to cause both sides to cease war and guard their territory so that the common people might enjoy marketplaces and countryside. Let the people coexist [as] neighbours of white stone who drink from the same well. Although registered as the people of two countries, their dwellings are difficult to distinguish. Only the inspections at frontier markets will remain. This would be peace between them. If the Burmese do not initiate hostility, and the '''Yi''' do not forcefully oppress you, in this way, althought [one is] weak it may defend itself, as to follow the law of heaven. If they do not listen to my order, angry contention will not cease; heaven will see it clearly. Blessed will the good, and calamity will be brought on the transgressor, quick or slow; the consequences will come. <strong>Lún</strong> (<strong>鯩</strong>) arriving, I will not elaborate further; only sincerity can bring one into accord with heaven and humanity. You must consider this; do not forget my instruction.
|-
|諭思侖發曰:
|Above '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) spoke:
|-
|『朕中國先古圣人,驭顽礼德,各有条章。是条章也,列圣相继,守而行之,上下相安,黔黎樂业。何也?諸侯敬畏,世禄子孙,國祚绵長,乃九伐之功驗也。列國敢有凭弱犯寡者,天子發兵以眚之;贼贤害民者,亦發兵以伐之;暴内凌外,則兴師以坛之;野荒民散,則用兵以削之;负固不服,則舉兵以侵之;贼殺其亲,則正其罪以殺之;放弑其君,則明其罪以诛之;犯令凌政,則杜而絕之;内外乱,鸟兽行,則殄灭之。九伐之征如是也。尔思侖發,以中國较之,合问凭弱犯寡之由。何以見?歲以兵寇車里,不时侵掠八百,恃强犯緬;戛璃國小民寡,而已平之,斯说也,不過告诫之词。中國周临四夷,與諸酋長地里相接,居民亦相密迩,如此者,耳闻之邦若干,目擊之邦若干,朕未嘗恃强凭凌,絕灭其嗣者。雲南之地,已为我有,似乎尚强以取之,非也!乃元世子孙梁王者,恃元之苗裔,匿我有罪,納我逋逃,诱我邊守,是乃不得已而發问罪之師,非無故而兴師。此乃元运天更,其苗裔不当安处。况生事於我邻邦,其理势使然,夷如反掌。尔麓川之蠢,初擅兴金齒之役,次谋景東而寇定邊,理当大發精兵而较胜负。朕释而不较,未嘗强尔为約束之邦,听尔自为声教,今又几年矣。近闻蚕食邻邦,意在扩土地而擅有其眾,又將为我西南之役。噫,未可!古中國圣人有云:‘山川地理人物之類,乃神器也,非人强有,必天授然後得之’。尔思侖發不修邻邦之好,三面發兵,蚕食諸國,其贪也如是,其谋也如是。彼麓川周临之國,始古至今,各有主者,未嘗吞并。朕雖不能止尔,听尔自为,果天道使然,尔以人事应之,或为而可。噫!以朕戒尔守全則可,不守全而以全动,設若全亏,是为全亡,莫如守全以圖绵長,不亦美乎?』
|The ancient sages of my Middle Kingdom governed the unruly through ritual propriety and moral virtue, each had rule and regulations. These rules and regulations were arranged in successive order to preserve them and put them into practice. Those above and below lived in mutual harmony. The common people enjoyed their livelihoods. Why is that? Local rulers revered [central authority], the descendants inherited their stipends and ranks, the state's fortunes endured for a long time. Thus [these] were the proof of the achievements of the Nine expeditions. Various states that dare to rely on strength to attack the weak, the Son of Heaven would send troops to punish them. Those who harm the worthy and injure the people would likewise be militarily punished. If a ruler oppressed those within and bullied those without, an army would be raised to subdue him. If the countryside lay waste and the people were scattered, troops would be employed to reduce it. If a state relied on its strong defences and refused submission, troops would be raised to invade it. If [a ruler] murdered his own kinsmen, his crime would be formally established with guilt and [thus] be put to death. If a subject expelled or murdered his ruler, his crime would be made manifest, and he would be executed. If a state violated commands and defied government authority, it would be blocked off and cut off. If there were disorder both within and without, and people behaved like birds and beasts, they would be utterly destroyed. Such were the circumstances and punishments of the Nine Punitive Expeditions. You, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa), measured against China , it is fitting to ask the reason why you rely upon strength to attack the weak. How is this evident? Year after year, [you] have used troops to raid '''Chēlǐ''' ('''車里''') and at irregular times invaded and plundered the Eight Hundred.<ref>Short hand for Eight Hundred Wives and Daughters in Laws Country, the old name for Laos or Lan Na. </ref> [Hence] presuming upon your strength to attack Burma. The '''State of Kalay''' is small, and the population is few, and you have already subdued it.<ref>If you read Fernquest's reconstruction of [https://www.burmalibrary.org/sites/burmalibrary.org/files/obl/docs4/4.2Fernquest.pdf Ming-Tai Conflicts] You can see how this tracks with Kalay being occupied by Mong Yang/Mong Mao polities. </ref> This is the account [I have given]. It is nothing more than words of admonition. China borders the "Four Barbarians"<ref>Four Barbarians: North - Di, East - Yi, South - Man and West - Rong. </ref> Its territory adjoins that of various chiefs, their populations live in close proximity. Of such states, there are some which I know by report, and some which I have seen with my own eyes, I have never relied on my strength to domineer over them, or extinguished their line of succession. The territory of Yunnan belongs to me, it might seem that I nevertheless used force to take it, but that is not so! Rather, a descendant of the Yuan Imperial House, Prince of Liang, relying on his Yuan Royal heritage, concealed those who committed offences against me and harboured my fugitives and enticed my frontier defenders to defect. Precisely for this reason, I had no alternative but to send a force and call for an offence with an army to carry out [that purpose]. I did not raise an army without cause. This was because the fortunes of the Yuan had changed by heaven's decree, and its descendants were no longer entitled to remain securely established there. Moreover, he [Prince of Liang] has caused trouble among my neighbouring states; the circumstances and principles made the outcome inevitable, and their subjugation was as easy as turning over one's hand. As for you, foolish '''Lùchuān''' ('''麓川'''), you first took it upon yourself to launch the Gold Teeth campaign, next you plotted against '''Jǐngdōng''' ('''景東''') and raided '''Dìngbiān''' ('''定邊'''). By right, this called for the dispatch of a large force of elite troops to determine the victor and vanquished. I released you and did not press on the matter. I have never compelled you to become a subordinated state. I allowed you to establish your own institutions and customs, and now several years have passed. You have been gradually encroaching upon neighbouring states with the intention of expanding your territory and taking possession of their people on your own authority, and will thereby be a cause of war for me in the southwest. Alas, this cannot be! The ancient sages of China have a saying: The mountains and rivers, the land and the people are all such things as constitute the Divine Realm; they cannot be forcibly possessed by men - only when heaven bestows them may they be obtained. You '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) do not cultivate friendly relations with your neighbouring states, you send troops on three fronts and gradually encroach upon the various states, such is your greed and such is your scheme. The states surrounding '''Lùchuān''' ('''麓川''') have, from ancient times to the present, each had their own rulers; they have never been swallowed up and annexed. Although I cannot prevent you, I have allowed you to act for yourself. If indeed this has brought about the Way of Heaven, you must respond to it through human affairs; perhaps what you do will thereby be acceptable. Alas! If, in accordance with my admonition, you preserve what is whole, then that is acceptable. But if you do not preserve it intact, and instead stake the whole upon action, suppose, however, that the whole is impaired, that would mean the whole is lost. Better yet, then, to preserve the whole and thereby seek lasting continuity. Would that not be admirable?
|-
|由是二國罢兵和好。
|because of the truth, the two countries ceased war and reconciled.
|-
|时古训等适遇百夷其部下酋長曰刀干孟者叛其國,余等以大义諭其部眾,而叛者闻之稍却。於是,思侖發欲留余等以为援,且進以金寶象馬等物,故余以书示之曰:
|At the time, Guxun, happened to encounter One Hundred Barbarians subordinate chief named '''Dāo gànmèng''' ('''刀干孟''') betray the country. We and the others explained/instructed his followers on the basis of the great principle/righteous cause and as a result, the rebels hearing it gradually withdrew. As a result, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) wished to preserve us as a source of assistance. He offered gold, valuables, elephants, horses and other gifts. Hence I presented this letter to reveal to him saying:
|-
|『吾闻君上有怀遠之德,遠臣有敬上之心,始古迄今,莫违此义。夫君居九重之上,雖欲顷刻目尔遠臣,未可得也,臣处萬里之外,即欲朝暮身亲君上,亦未易得也。故朝廷有將命之官,使之宣德布威;而遠方有承命之宜,期其輸忠納款。今天子应天顺民,奉天为治,四维八極,尽为臣妾,無有专擅,不敢违逆。西南一区,夷酋亦眾,惟尔麓川,多蒙恩宠,既受以官,復加以服。况贤王亲临尔境,而德惠數及尔身。为尔计,則將度其心,量其才,何为而可以尽忠天子,何为而可以致敬贤王,又何为而可以安邊境而不干天怒,又何为而可以教百姓而不违法度?借曰邊境不安,必思曰,我事上未忠或未至,而眾不服我耶?百姓违法,必思曰,我守職已或有僭而民亦犯上耶?於是我則尽其忠,去其僭,如此,則邊境自安,人民從教矣。且吾以尔目擊效驗明之:往年思瓦發不服朝廷,轻犯金齒,天子雖未问罪,天則假手於達鲁方等,而思瓦發被戮。刀思朗不從尔命,窃寇定邊,尔雖未能息其兵,天則助威於我邊將,而刀思朗等即灭。惟尔知天命,達人理,故能享天禄,守人爵。迩来天子恐尔所为,或涉放肆,特敕諭以戒之;贤王恐尔無知,或生疑懼,特令旨以恤之。此恩此德,穷天極地。尔之披肝露胆,开心見诚,吾尽見矣;尔之尊重朝廷,敬奉殿下,告亦見矣。今尔固留吾辈,其意本美。近者尔甸寨少宁,刀干谋异,吾將回朝为尔明白其事,尔乃留我,使我不速還朝,假如刀干鸣尔留难天使之非於朝,則反误尔敬君之心矣。且尔赠以金、銀、裀褥、馬、象等物,吾固不受者,非見怪也,實相爱也。何則?朝廷恩尔,抚安尔邦,未嘗令使者取货於尔也。夫货财,饥不可以充口,疾不可以救死。况中國金玉成山,象馬若蚁,未以为寶也,惟所寶者,圣君、明王、忠臣、烈士、强兵、勇將、孝子、顺孙等事,其他财物,如粪土耳。姑以尔境内眾所闻者明之:昔隋史萬歲守邊,夷而贪财,以致殺身。梁毗一金不受,而大服夷眾。此事甚白。吾为圣朝天使,必不为财物所蛊,惟恐吾之使令往来小人,不体吾意,蛊惑尔心,特此叮咛。尔其备审此书,体吾真意,早送吾辈還朝,則尔敬君之心,不浅浅也。』
|I have heard that a ruler above possessed the virtue of cherishing those who are far away. Those distant subjects have a heart of reverence to their ruler above. From the beginnings of ancient times until now, none have deviated from this principle. The ruler resides above the Ninefold Gates, although he wishes to see you, his distant subject, even for a moment, this cannot be done. I, your servant [of the Emperor], reside ten thousand '''Lǐ''' ('''里''') away. Even if I wanted to be personally close to my ruler morning and evening, that too would not be easy to achieve. Therefore, the imperial court has officials who carry its commands, sending them to proclaim its virtue and make its authority manifest, while distant polities obey the commands and fulfil their duty, in expectation that they will render their loyalty and submit their allegiance [to the Emperor]. Now the Son of Heaven responds to Heaven and follows the people, governing in accordance with Heaven. Throughout the four quarters and the eight extremities, all are subjects, none acts autonomously, and none dares to oppose [the imperial order]. In the southwestern region, the chiefs of the Yi people are also numerous, but you, <strong>Lùchuān</strong> (<strong>麓川</strong>), have received especially abundant imperial favour; having already been granted an official position, you were furthermore granted the appropriate dress. Moreover, the worthy king personally came to your territory, and his benevolence and favour have repeatedly extended to you personally. For your own sake, you should consider your intentions and measure your abilities. What can you do that will enable you to fulfil your loyalty to the Son of Heaven? What can you do that will enable you to show proper respect to the worthy king? What can you do to keep the frontier peaceful without incurring heaven's anger? And what can you do to govern the common people without violating the laws and regulations? Suppose, for argument's sake, the frontier were to become unsettled, you must think yourself: "Perhaps I have not been sufficiently loyal in serving my superior, and that is why people do not submit to me?" If the common people violate the law, you should think: "Perhaps, although I have maintained my office, I have in some way overstepped my proper station, and thus the people too are offending against their superior? Then I would fully fulfil my loyalty and remove any acts of overstepping I had committed; in this way, the frontier will naturally become peaceful, and the people will follow proper instruction. Moreover, I shall make this clear to you through examples that you yourself have witnessed. In the past years, '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) refused to submit to the court and rashly attacked the Golden Teeth. Althought the Son of Heaven did not call hbim to account, Heaven nevertheless acted through the hands of '''Dálǔfāng''' '''(達鲁方'''), and the others and '''Sīwǎfā''' ('''思瓦發'''; Hso Vau Hpa) was killed. '''Diāosīlǎng''' ('''刁思朗''') did not obey your command and secretly raided '''Dìngbiān''' ('''定邊'''). Althought you were able to bring his hostilities to an end, Heaven then lent its might to my frontier commanders and '''Diāosīlǎng''' ('''刁思朗''') and the others were immediately destroyed. It is because you understand the Mandate of Heaven and comprehend principles of human affairs that you can enjoy heaven's emoluments and preserve your human rank. Recently, the Son of Heaven feared that what you were doing might become excessive, and specially issued this admonition to warn you; the Worthy King feared that your lack of understanding might give rise to doubt and fear, and specially sent his instructions to show you compassion. Such grace and such benevolence extend to the furthest reaches of Heaven and Earth. You're laying your heart completely bare, showing your sincerity, I have seen it all. [Your] respect for the imperial court [and] reverant service of the Emperor has been reported as well. Now you firmly retain our party, itself well-intentioned. Recently, your districts and stockards have enjoyed peace, while '''Dāo''' '''Gàn''' ('''刀干''') have conceived some other designs. I was going to return to court to make the matter clear on your behalf, yet you have kept me here, causing me not to return promptly to court. Suppose <strong>Dāo Gàn</strong> (<strong>刀干</strong>) were to report to the court your offence of detaining and obstructing the imperial envoy, then that would compromise your sincere respect for your ruler. Moreover, you presented us with gold, silver, padded mats, bedding, horses, elephants, and other such things, my refusal to accept them is certainly not because I take offense. The court has shown you favour and pacified your realm. It has never instructed its envoys to take goods from you. Regarding wealth and possession, when one is hungry, they cannot fill the mouth; when one is sick, they cannot save one from death. Besides, in China, gold and jade are piled as high as mountains, while elephants and horses are as numerous as ants; we do not regard these things as treasures. What we do treasure are the deeds of sage rulers, enlightened kings, loyal ministers, righteous men, strong armies, brave generals, filial sons, dutiful grandsons and things of this kind. All other material possessions are like dung and earth and nothing more. For the moment, by means within your territory, what the people commonly hear that which should be clear. In former times, <strong>Shǐ Wànsuì (史萬歲)</strong> guarded the frontier; he was greedy in dealing with the tribes and thereby brought about his own death. '''Liáng Pí''' '''(梁毗''') did not accept even a single piece of gold, thereby greatly earning the respect of the Yi people. The matter is very evident. I am an imperial envoy of the sacred dynasty; I certainly cannot be corrupted by material wealth. I only fear that petty men among those who travel back and forth on my missions do not do not consider my intentions and instead mislead or corrupt the mind. For this reason, I have given you special admonition. You should carefully examine this letter in full and understand my true intention. Send us back to court promptly, then your heart of reverence for the ruler would not be so shallow.
|-
|书至,思侖發悦服,遂邀至其家,設宴畢,與其眾送出境外。
|When the letter arrived, '''Sīlúnfā''' ('''思侖發'''; Hsö Hom Hpa) was pleased, and received it favourably. Thereupon invited him to his home. After the banquet, together with his retinue escorted them beyond the borders.
|-
|百夷,由金齒、蒲漂過怒江即其境。沿江東數十里,上有高良弓頗险。其岭有一寨。過一寨下四十里,地名养列,自此抵麓川無险隘之虞。由麓川经蠻牛、莽港等路,渡谨卯,從蒙戛等甸至麻林界,登金沙江之舟,下流二十日至緬國。國王眾呼为卜剌浪,王之妻呼为米泼剌。
|The One Hundred Barbarians, via the Gold Teeth, '''Pú''' ('''蒲'''), '''Pyu people''', upon crossing the '''Nùjiāng River''' ('''怒江''') reach their territory. Along the river, east about ten <strong>Lǐ</strong> (<strong>里</strong>), there is the tall, rugged, dangerous Gaoligong [mountains] above. The mountain range has one stronghold. Passing a stronghold, below forty '''Lǐ''' ('''里''') is a place named '''Yǎng liè''' ('''养列'''), since then reaching the '''Lùchuān''' ('''麓川''') there is no concern of dangerous narrow passes. Following '''Lùchuān''' ('''麓川''') pass through the routes of '''Mánniú''' ('''蠻牛'''), '''Mǎnggǎng''' ('''莽港''') and other places, crossing '''Jǐnmǎo''' ('''谨卯'''), from the district of '''Ménggā''' ('''蒙戛''') to the '''Málín''' ('''麻林''') border, [one must] board a boat on the '''Jīnshā River''' ('''金沙江'''), downriver twenty days one reaches Burma. The king is referred by the populace as '''Bōlàlàng''' ('''卜剌浪'''), the king's wife is referred to as '''Mǐpōlà''' ('''米泼剌''').
|-
|}
==References==
{{reflist}}
{{Subjects|Military history}}
dwjbpd1r2vaqjcbg4p3wsw92u06tjvj
User:Taitesena/Unofficial History of Nanzhao
2
485577
4674813
4674162
2026-10-07T08:25:20Z
Taitesena
3485636
Pu People
4674813
wikitext
text/x-wiki
__NOTOC__
{{incomplete translation}}
{{Translation header
| title = Unofficial History of Nanzhao (南诏野史)
| author = Yang Shen (杨慎)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes =
}}
== Front Matter ==
# [[Unofficial History of Nanzhao/Translator's Note|Translator's Note]]
# [[Unofficial History of Nanzhao/Influences|Historical Context]]
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Authorship
|-
! scope="col" | Original
! scope="col" | Translation
|-
|增订南诏野史上卷 明 四川新都杨愼升庵编辑
|
|-
|}
===The Title of Nanzhao 《南诏之称===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Title of Nanzhao 《南诏之称》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蛮夷称王曰诏。先时滇有六诏,各据其地。六诏中蒙舍诏最强,后并吞五诏,故独称南诏。
|
|-
|六诏考六诏之地,东西四千里,南北二千九百里
|
|-
|蒙舍诏蒙细奴逻立国,居蒙舍川,地在永昌、姚州之间,处五诏之南。后奴逻曾孙皮逻阁并吞五诏,独称南诏。今蒙化厅是邆赕诏丰咩立国,居邓川。今大理府邓川州是施浪诏施望欠立国。居{{浪穹弥茨河蒙次和山,今大理府浪穹县是浪穹诏丰时立国,居浪穹。后其孙铎罗望迁剑川,改称剑浪诏。今丽江府属剑川州地是越析诏波冲立国。亦称摩诏。又号花马国。居嶲州。今丽江府是后,其兄之子于赠渡泸,邑于龙佉河蒙嶲诏嶲辅立国。居越嶲,今四川宁远府,越嶲厅是
|
|-
|}
===The Territorial Divisions of Nanzhao 《南诏分野》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Territorial Divisions of Nanzhao 《南诏分野》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|在天井鬼入参一度,汉书。次鹑首末位晋书。丽中台上位北斗开阳一星。宋书。在地乃梁州裔土,蜀之苑囿。河图纬。
|
|-
|}
===The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周鄯阐国、白崖国、昆弥国。战国时滇国,汉西南夷、益州、白子国。后汉建宁国。晋、宋、齐、梁、陈,宁州。隋昆州。唐初,南宁、六诏,唐文宗太和间,名鄯阐府。宋仍名南诏。元名中庆。明名云南省。
|
|-
| 国朝因之。按:汉武帝元狩元年,彩云见南中,在今大理府赵州之白崖。云南之名始此。唐元宗间问蒙舍诏盛逻皮之相张建一作俭成住何处?曰:「南边云下。」因命为云南。又元宗见祥云起,名祥州。今大理府之云南县也。
|
|-
|}
=== General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|鄯阐国蒙苴颂,昆弥国庄蹻、仁果、龙佑那据于周、秦、汉迄六朝。细奴逻据于唐。郑买嗣、赵善政、杨于贞、段思平、高升泰曁正湻,相继据于唐末迄
南宋。凡历有九姓,而雍闓、孟获不与焉。段氏与南宋理宗壬子湻佑十三年为蒙古所灭,而段实于理宗景定二年袭总管,传十二世,明太祖壬戌洪武十五年平云南,擒段世,并段段明之二子苴仁、苴义。赐苴仁官雁门卫镇抚,苴义官武昌卫镇抚,段氏之世土方绝,而又别封其族人段保为大理府云龙州土知州。国朝尚有袭土职者。
|
|-
|}
=== Titles and Official System of Nanzhao《南诏称谓官制》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Titles and Official System of Nanzhao《南诏称谓官制》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南诏称帝曰骠信,王曰诏,自称曰元,称后曰信么,亦曰九么,妃曰进武,兄曰容,弟曰钟,下曰昶。其设官则有把国事八人,曰坦绰,曰布燮,曰九赞,谓之清平官。曰酋望,曰正酋望,曰员外酋望,曰大(将军)〔军将〕,曰员外。又设九爽之名,爽,省也。功爽主官人,宗爽主户籍,万爽主财用,慈爽主礼,引爽主宾客,幕爽主兵,罚爽主刑,厥爽主工作,禾爽主商贾,皆清平官、酋望、大军将兼之。以清平官子弟为羽仪长八人,清平官见王不得佩剑,惟羽仪长佩之。又有六曹长二人,曹长有功升大军将,凡十二人。又立三托:巨托主仓廪,气托主马,禄托主牛。大府主将曰演习,副曰演览;中府主将曰缮裔,副曰缮览;下府主将曰澹酋,副曰澹览;小府王将日幕撝,副曰幕览。每府有陀酋,陀酋卽掌书记判官之类。外有八节度使:日弄栋节度使,今楚雄府姚州。曰银生节度使,今景东厅及鎭沅州地是。曰永昌节度使,今永昌府是。曰丽水节度使,今丽江府是。曰剑川节度使,今丽江府剑川州是。曰东川节度使,今东川府府是。曰通海节度使,今临安府通海县是。曰拓东节度使。今云南府昆阳州北平定乡,蒙氏子凤伽异曾筑城于此地。又有二都督:曰会川都督,今四川宁远府会理州地是。曰通海都督。又设十睑,蛮语谓州为睑。苴音斜。羊睑,又名羊睑,卽今大理府太和县。赵州睑,今大理府赵州。白崖睑,又名勃弄睑,今赵州之白崖。,云南睑,今大理府云南县。蒙舍睑,今蒙化厅。大厘睑,又名史睑,今太和县喜州。邆川睑,今大理府邓川州。品澹睑,蒙秦睑,矣和睑。三睑未详其地。○蔚按:别本十睑中苴羊睑、赵州睑、白崖睑而下,作义督睑,今剑川州;威远睑,今普洱府威远厅南;河东睑,末详其地;越睑,今永昌府腾越州;北方睑,又名成偈睑,今永北厅;楼头睑,今四川叙永厅,属永宁县;路睑,今楚雄府广通县;与云南睑以下七睑异。○按:又考此七睑中,其越睑、北方睑、楼头睑、路睑凡四睑,见于『汉地里志』及『唐书?南蛮传』中,睑并作赕,音闪,字旣不同,音又各异,似非列于十睑之数。凡人丁壮者皆为战卒。王之亲兵曰朱弩佉苴,音蛆。按:元微之白乐天乐府皆作佉嗟,未审孰是。佉苴,韦带也。每兵百人置罗苴子统一人,戴朱鞮鍪,负犀革铜盾而跣足。自大军将以至曹长,皆系金佉苴尚绛紫,有功加锦,又有功加金波罗。卽虎皮。民兵号白衣,凡民兵出以望苴蛮为先驱。
|
|-
|}
===Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|因远部。威远睑治,其地总名和泥,今元江府是。休腊部。今临安府河西县。嶍峨部。今临安府嶍峨县。屈中部。今临安府阿迷州。溪处甸部、伴溪落恐部。今倶为长官司,属临安府。铁容甸部。今为亏容长官司。官桂思陀部。今为思陀甸长官司,皆属临安府。王弄部、强现三部。今属开化府。师宗部。今广西州师安县。弥勒部。今广西州弥勒县。吉输部、袖恶部。倶在弥勒县地。维摩部。卽广西府维摩州。州裁,今属广西州地。罗雄部。今曲靖府罗平州。纳垢州。今曲靖府马龙州。落温部。今曲靖府陆凉州。磨弥部。今曲靖府沾益州。仁德部。今曲靖府寻甸州。夜苴部卽曲靖府亦佐县,县裁,今归罗平州。强宗部。卽澄江府阳宗县,县裁,今归河阳县。步雄部。今澄江府江川县。罗伽部。卽步雄部分地。休制部。今澄江府新兴州。落蒙州。今澄江府路南州。弥沙部、邑市部。皆落蒙部子孙分治之。阳城堡部。今云南府晋宁州。罗部。今云南府罗次县。乾矢部、罗婺部。倶在武定府曲州,州裁,今属武定州。华竹部。今武定州元谋县。洪农碌券部。今武定州禄劝县。掌鸠法块部在禄劝县城东五里。○以上三十五部在迤东地。白鹿部。今楚雄府。谋统部。今丽江府鹤庆州。○以上二部在迤西地。
|
|-
|}
==Nanzhao through the Generations《南诏历代》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Nanzhao through the Generations《南诏历代》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|白古记:西天天竺摩竭国阿育王骠苴音斜。低娶欠蒙亏为妻,生低蒙苴。苴生九子,长子蒙苴,附罗十六国之祖;次子蒙苴廉,吐蕃之祖;三子蒙苴诺,汉人之祖;四子蒙苴酬,东蛮之祖;五子蒙苴笃,生十二子,七圣五贤,蒙氏之祖;六子蒙苴托,狮子国之祖;七子蒙苴林,交趾国之祖;八子蒙苴颂,白子国仁果之祖;九子蒙苴閦初六切。白夷之祖。○『哀牢今永昌府。夷传』:哀牢蛮蒙伽独捕鱼易罗池在永昌府城南。溺死。其妻沙壹一作壶。往哭之水边,触一浮木,有感而妊,产十子。后携子至池上,木化为龙,人言曰:「我子安在?」九子惊走,独季子背龙而坐,龙舐其背。蛮语谓背为九,坐为隆,故名之曰九隆氏。哀牢山一名天井山,在永昌府。下有妇名奴波息,生十女,九隆弟兄娶之,立为十姓:董、洪、段、施、何、王、张、杨、李、赵,皆刻画其身象龙文,于衣后著尾。子孙繁衍,居九龙山山在永昌府城南。溪谷间,分九十九部,而南诏出焉。
|
|-
|}
===Shanchan Guo《鄯阐国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shanchan Guo《鄯阐国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周时立国,年代久远,其姓名世次莫考。
|
|-
|}
===Baiya Guo《白崖国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baiya Guo《白崖国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|西天天竺摩竭国阿育王低蒙苴第八子,蒙苴颂居白崖,因地名,号白崖国,传世莫考。后昆弥氏继之,号昆弥国。
|
|-
|昆弥国一名拜国。
|
|-
|昆弥氏,传世姓名莫考。战国时,楚将庄蹻据滇,并有其地,号滇国。
|
|-
|}
===Dian Guo《滇国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dian Guo《滇国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|战国时,楚顷襄王命将庄蹻范蔚宗后汉书作庄豪。将兵循江上,略巴、蜀、黔中以西,蹻至以兵威畧定滇地属楚。欲归报,会秦司马错攻楚,黔中道塞。蹻遂以其众王滇,号滇国,踞之。后有王常羌者好佛,国势不振。法令不行,国人遂推白崖国蒙苴颂之后,白饭王之裔仁果为王,治白崖,于是两国角立。后仁果奉汉,封为白子国。
|
|-
|}
===Baizi Guo《白子国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baizi Guo《白子国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|汉武帝通西南夷,遣使至滇,求身毒国。滇王常羌问使者曰:「汉孰与我大?」使者还报,武帝怒其言不逊。时白崖国蒙苴颂之后,天竺国白饭王之裔仁果者,为众所推立于白崖。武帝乃册封仁果为王,号白子国。后迁于澄江,今澄江府。迨龙佑那继之,号建宁国。○又一说:白子国之先,有阿育国,王能乘云,上天娶天女,生三子,长季二子封于金马、碧鸡,独封仲子于苍洱之间,崇奉佛敎,不茹晕,日食白饭,人因称为白饭王。迨后有仁果者,汉封为滇王,号白子国。又十五世至龙佑那,后汉诸葛武侯南征,次白崖,以佑那为酋长,赐姓张氏,仍统其民,号建宁国。
|
|-
|}
===Jianning Guo《建宁国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|后汉后皇帝乙巳建兴三年,益州耆帅雍闓,假鬼术杀建宁太守王昂,归东吴,吴王孙权以闓为永昌守。后汉诸葛武侯南征,至白崖,杀雍闓,擒孟获,乃封白子国王仁果十五世孙龙佑那为酋长,赐姓张氏,于白崖筑建宁城,蔚按建宁城废址在今大理府赵州之弥渡。号建宁国,立铁柱蔚按:今弥渡有铁柱宫,铁柱尚存。先为建宁国王张乐进求甫铸,后南诏蒙世隆复重铸,名曰天尊柱,高八尺。并『南中纪功碑』,铭其背曰:「万岁之后胜我者过此」。迨至隋时,行军总管太平公史万岁征南宁夷爨玩,西破三十馀部,至此,见其碑铭,命左右踣之。其碑跌,中复有志曰:「史万岁不应踣吾碑」。万岁惊异,复树碑,祭拜而去。后张龙佑那仍迁国澄江,传三十二世至十七世孙张乐进求,唐太宗己酉贞观二十三年封为首领大将军。后见蒙舍川蒙细奴罗有奇相,遂妻以女,逊国与之。奴罗自称奇嘉王,建号大蒙国,又称南诏。
|
|-
|}
==Nanzhao《南诏国》==
===13 Generations of Nanzhao 《南诏大蒙国传十三世》 ===
{| class="wikitable" style="text-align:center; width:80%;"
|+ 13 Generations of Nanzhao 《南诏大蒙国传十三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|细奴一作农。逻一作罗。 伪谥高祖奇嘉王
|
|-
|细奴逻,又名独罗消,西天天竺摩竭国阿育王低蒙苴第五子蒙苴笃之三十六世孙。生有奇相。唐太宗贞观初,其父舍龙尨,又名龙伽独,将奴逻自哀牢避难至蒙舍川,耕于巍山。今蒙化厅之巍宝山。一日,有老僧,美髯,冠赤莲冠,披袈裟,持钵至奴逻家乞食。时奴逻与子逻盛炎方耕巍山之下,其姑与妇将往饁。见僧乞食,遂食之。再炊往饁,僧坐不去。姑妇持饷中道,僧已在彼,复乞食,姑妇又食之。返而复炊,持饁至巍山,则见僧坐盘石上,前有靑牛,左白象,右白马,上覆云气。云中二童子,一执铁杖于左,一执方金镜于右。姑妇惊喜,复以所饷供之。僧问何所愿?姑妇不知对。僧曰:「奕叶相承」。及趣奴逻等至,则但见一人持钵,坐五色云中,而盘石上惟馀衣痕及牛象马之迹耳。奴逻素有祥异,会唐封首领大将军建宁国王张乐进求,以诸葛武侯所立白崖铁柱,岁久剥蚀重铸之。因社会祭柱,柱顶故有金镂鸟,忽能飞,集奴逻左肩,相诫勿动,八日乃去。众骇异,谓天意有属。进求遂妻以女,举国逊之。于唐太宗己酉,贞观二十三年卽位,年三十二岁,建号大蒙国,称奇嘉王,据南诏。高宗庚戌永徽元年,建都蒙舍川,于巃{山+于}山在今蒙化厅西北三十五里。筑巃山+于城。永徽癸丑四年,遣逻盛炎入朝唐,诏授奴逻为巍州今蒙化厅刺史,赐以锦袍。大勃弄今大理府赵州白崖。酋杨承顚寇麻州,在今曲靖府马龙州城北里许。唐命郞州唐贞观初,分牂牁郡北界置郞州,后改名播州,卽今贵州遵义府。又有郞州,在今云南县地。道行军总管赵孝祖讨之。孝祖先入小勃弄,今云南县地。酋长没盛迎战,孝祖斩之。进至大勃弄,攻其城,破之,擒杨承顚,改云南县为匡州,领勃弄、匡州二县。高宗显庆二年,凤鸣于浪穹罗浮山,乃改名为凤羽山,在大理府浪穹县西南三十里,又名鸟吊山。见『水经注』。封十二圣贤为十二山神。时澄江人波罗旁有经济才,用为文臣;郭郡矣素以勇略闻,用为武臣。又有杨波远者,相传为东汉时人,常骑三角靑牛,号神明大士,能知盐泉,滇中盐泉多为波远所开创。奴逻在位,遵唐正朔。高宗甲戌上元元年,奴逻卒,在位二十六年,子逻盛炎立。
|
|-
|逻盛炎又名逻晟。伪谥世宗兴宗王。
|
|-
| 逻盛炎。唐高宗甲戌上元元年卽位,年四十岁,以张建成为相。明年,盛炎临朝,元宗壬子先天元年,姚州蛮叛归吐蕃。唐命御史李知古讨之,筑城立州县。知古诛豪杰,掠子女,蛮怨,引土蕃,攻杀知古,于姚嶲路绝,而盛炎独奉唐正朔。是年,盛炎卒,在位三十九年,子盛逻皮立。
|
|-
|}
===Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|盛逻皮,唐元宗壬子先天元年卽位,年四十岁。明年为元宗癸丑开元元年,唐授逻皮为特进,封台登郡王今四川宁远府冕宁县地。设官征商税。开元二年,遣张建成入朝于唐。立土主庙。开元九年,皮叛唐。开元十四年,立庙祀晋右将军王羲之为圣人。元宗戊辰开元十六年,逻皮卒,在位十六年,子皮逻阁立。
|
|-
|皮逻一作罗阁石刻作归义王魁乐觉封云南王。
|
|-
|皮逻阁,唐元宗戊辰开元十六年卽位,年三十一岁。开元十八年,灭五诏,自称南诏王。先是,蒙氏恐三十七蛮部不服,选亲族为五诏。未几五诏抗命,逻阁遂赂剑南节度使王昱,求合六诏为一。昱奏于朝,许之。逻阁乃豫建松明大楼,祀祖于上。使人谕五诏曰:「六月二十四日乃星回节蔚按『大理郡志』汉元封间,叶楡妇阿南者为酋长,曼阿娜之妻。娜为汉将郭世忠所杀,欲妻南。南曰:能从三事,当许汝一作幕次祭故夫;一焚故夫衣,易君新衣;一令国人皆知我以礼嫁。忠如其言。明日,聚国人张松幕祭其夫。下置火,南藏刃出,俟火炽焚夫衣,卽引刀刃自断其颈,仆火中,时六月二十五日也。国人哀之,故岁以是日燃炬吊之,名为星回节云。是又当为二十五日。当祭祖,不赴者罪。」四诏听命。惟越析诏波冲之兄子于赠,远不赴会,而邆赕诏丰哶孙{辵+皮}逻邆之妻慈善者,止逻邆勿赴。邆不听。慈善不得已,以铁钏穿于邆臂而行。二十四日,逻邆及施浪诏施望欠弟施望千、浪穹诏丰时孙锋罗望、蒙嶲诏嶲辅子罗原皆至逻阁所。逻阁偕登楼祭祖,祭后享胙食生饮酒,迨晚,四诏尽醉。逻阁独下楼,焚钱遽纵火,火发,兵围之,四诏皆焚死。逻阁遣使至四诏所,报焚钱失火,四诏被焚,状令各诏收骨。四诏妻至,莫辨其骨。独慈善因铁钏得焉,携归葬之。逻阁旣灭四诏,取各诏宫人,念慈善慧而甚美,遣兵围其城,迫取之。慈善曰:「吾岂忘夫事仇者?」闭城坚守,半月城中食尽,慈善度不能支,卽自杀,时七月二十三日也。逻阁嘉其节,乃封赠为宁北妃,并旌其城曰德源城。城废址在今大理府邓川州城东北二里许。开元戊寅二十六年,逻阁破吐蕃及弥蛮,入朝,元宗礼之,加封为特进,云南王,越国公,开府仪同三司,赐名归义,并锦袍金钿带七事。王归国,以兵逐洱河蛮,筑太和城,今大理府城南十五里太和村地是。又筑大厘城今大理府城北四十里喜州是。守之,尽有云南之地。唐授王子阁逻凤右领军卫大将军兼阳瓜州刺史。开元二十七年,明矫叛,破剑川、浪穹、永昌。开元二十八年,王讨朋矫,平之。开元辛已二十九年,王自蒙舍川迁居太和城,立龙首、卽今上关。龙尾卽今下关。二关。唐加阁逻凤为左领军卫大将军。元宗癸未天宝二年,筑羊苴哶城于太和城之北。卽今大理府城。唐迁阁逻凤为左金吾卫大将军,寻拜特进都知兵马大将军。天宝甲申三载,西方进狮子皮。唐加阁逻凤为上柱国。天宝乙酉四载十月,城永昌。天宝丙戌五载,王遣孙凤伽异入唐,唐授伽异为鸿胪少卿,妻以宗室女,赐龟兹乐一部,元宗戊子天宝七载,王卒,在位二十年,子阁逻凤立。
|
|-
|阁罗凤一作觉乐凤。按:『德化碑』云:「家居阁罗凤」,则是取地名以为名也。袭封云南王,伪谥神武王。始建元。
|
|-
|
阁罗凤,唐元宗天宝戊子七载卽位,年三十六岁。唐遣中使黎敬义持节册凤袭封云南王,敕置阳瓜州于蒙舍川,加授
凤伽异为上卿兼阳瓜州刺史,都知兵马大将军。天宝庚寅九载,王率妻子往谒都督李宓,过云南,太守张虔陀私之,又多徵求。王表虔陀之罪,中官贾奇俊抑之,不得达。王复遣将军杨罗顚等连表控告。元宗仍不省。凤怒,遣大将军王毗双、罗时等发兵攻虔陀。虔陀饮鸩死;遂取姚州,并夷州三十二。获唐嶲州西泸令郑回以归,爱其才,用为清平官。天宝辛卯十载,唐命剑南节度使鲜于仲通将兵八万征云南。凤赴泸南在楚雄府姚州之城北一百五十里。谢罪,愿还所俘掠,请罢兵。仲通不许,分三道而进。仲通自南溪路,大将李晖自会同路,都督王知进自步头路。今临安府地。凤就安宁,再伸衷悃。仲通不听,兵至曲州、靖州。二州今为曲靖府地。凤复遣首领杨子芬、参军江如之赍状,言若不罢兵,卽当归吐蕃,恐云南非唐有。仲通终不许,囚其使,进薄白崖城。别遣大将王天运统师绕出点苍山后。凤遣
凤伽异及大军将段俭魏迎山后师,自逆战于西洱河。唐兵大败,死者六万人,王天运战殁,仲通仅以身免。凤乃叛唐,建元长寿。遣弟阁陂和尚及子铎传、酋望赵佺邓、杨传磨侔等,并子弟六十人献凯吐蕃。陂有神术,人马往来吐蕃,不过朝夕之顷。天宝十一载正月一日,遣宰相倚祥叶乐持金冠、锦袍、金宝带、金帐状、安扛伞鞍、银兽器皿、珂贝、珠毯、衣服、駞马、牛鞻等物至邓川,以凤为兄弟之国,册为赞普钟南国大诏,给金印,称东帝。并授凤伽异大瑟瑟告身,都知兵马大将。凤遂改是年为赞普钟元年。发人口百户于浪穹,筑白崖睑城,又遣兵攻掠安宁。天宝甲午十三载六月,唐命前云南郡都督兼侍御史剑南留后李宓、广府节度使何履光等,率十道兵再征云南。兵逼邓川,凤遣凤伽异、段俭魏迎战于江口。时神川都知兵马使论绮里徐救兵已至巴蹻山,遂诱宓深入,内外夹击。宓粮尽,士卒饥疲,引还。凤以精兵追战,唐全军覆没,李宓被执,沉江死,何履光遁去。凤因进取嶲州会同郡,据清溪关,以破越析。此二役也,皆凤弟阁陂和尚及凤妃白氏行妖术,展帕拍手而笑,韩陀僧用钵法,以故唐兵再败。时唐先后丧师已二十馀万,凤乃敛战胔,筑京观于龙尾关河尾,名万人冢,立碑大书「唐天宝战亡士卒之墓」。而唐宰相杨国忠更揜败以捷闻,叙战功。令清平官郑回撰『德化碑』,唐流寓御史杜光庭书。立石太和国门外,明其不得已叛唐归吐蕃之故。天宝乙未十四载冬十一月,东平郡王安禄山反于范阳,凤乘机以兵取蜀卭州,筑卭子城,及丽水金宝城。升段俭魏为清平官,赐名忠国,旋拜相国。代宗甲辰广德二年,羊苴哶城成,凤名之曰大理城,又名紫城。代宗乙巳永泰元年凤伽异筑云南城卽今云南府省城。又筑拓东城,今云南府昆阳州北平定乡。遂以兵攻陷曲靖。代宗丁已大历十二年,永昌牛生三角,羊生四角,鸡九足,井有光。建观音寺于白崖。先是,逻盛炎时,相国张建成欲于白崖建寺,卜之吉。又地下有三戳观音,上截在西,中截在东,下截在东南。因盛炎旋卒,不果建。至是建寺,掘之果然。代宗戊午大历十三年,阁罗凤卒,在位三十年。因子凤伽异先死,后追谥悼惠王。孙异牟寻立。
|
|-
|异牟寻改国号曰大理国。封云南王,又封南诏王 伪赠廪孝桓王
|
|-
|异牟寻,唐代宗戊午大历十三年卽位,年二十四岁。明年改元见龙,又改上元,率兵三万取蜀为东府,又连土番入寇。唐命神策都将李晟击破之。师还,自称南诏王。德宗甲子兴元元年,牟寻迁居史城,卽大厘城。改号大理国,自称日东王。封岳读,以叶楡今大理府。点苍山为中岳,乌蛮今东川府。乌龙山一名绛云弄山,在今禄劝县东北三百里。为东岳,银生府今景东厅。蒙乐山一名无量山,在厅北九十里。为南岳,又封南安州今楚雄府属。神石亦为南岳,越赕今永昌府腾越州。高黎贡山一名昆仑隅,在腾越、潞江之间。为西岳,嶲州今丽江府是。雪山一名玉龙山,在府西北二十里。为北岳。封金沙江源出吐蓄旄牛徼外犂牛石下,本名犂牛河,又名犂水,讹为丽水。经丽江府、鹤庆州、姚州而东北达于四川马湖府之马湖,卽『山海经』所谓若水。『水经注』云:若水经云南之遂久县,卽今金沙江巡检司地。昔黄帝长子昌意德劣,不足绍承天位,降居斯水为诸侯,娶蜀山氏女,生颛顼于若水之阳,疑卽其地也。祀在武定州,兰沧江源出吐蕃鹿石山下,本名鹿沧,又名兰沧。兰沧讹为浪沧。自丽江府度云龙州至永昌府,东经顺宁府,达于车里,过交趾地而入于南海。祀在丽江府,黑惠江在顺宁府之东入狼沧江,而达于南海。祀在顺宁府,怒江源出西域雍望,奔流而下,深不可测。夏月多瘴,经怒夷地入丽江府境野人界。至永昌府境,乃名潞江。祀在水昌府,为四渎,各建神祠。又立三皇庙。德宗丙寅贞元二年,设官立九爽三托。考疆域,其地东至于铜柱、铁桥、蟠桃、玉楡,东南至于交趾国,南至于骠国,西南至于木落山,西至于太石,西北至于吐蕃,北至于神川,东北至于黔巫。八分之地,属以八演,皆中国降人为之经画者。贞元丁卯三年,寻居大理城。命子弟师事郑回。时寻苦吐蕃徵求无厌,会李泌劝德宗招云南以断吐蕃右臂。帝从之,命韦皋为西川节度使,皋受命招抚群蛮。郑回因说寻归唐,寻以为然。皋遣谍者致书于寻,吐蕃知而疑之,乃责南诏大臣为质。寻愈怨。于是,决计归唐。皋以闻,德宗乃命皋作书谕寻。是年四月,吐番破蜀,来征兵,蔚按:卽吐蕃劫浑瑊清水盟之岁。寻谢绝之。贞元五年,寻遣乌蛮勿邓大鬼主苴梦冲、两林都大鬼主直那时聘于皋,因入朝。皋遣其属崔佐时报之。时吐蕃使数十人先在,佐时至,寻令更衣入。佐时不可,曰:「天朝大使。岂衣夷衣?」寻不得已,夜迎之。佐时至,大宣诏旨,令寻斩番使,去其所立之号。寻遂与佐时盟于点苍山下。贞元九年,寻遣使上表,请从韦皋袭吐蕃。诏册封为云南王,以韦皋为云南安抚使。王遣使诣皋,献夷中歌。贞元十年,吐蕃徵兵于王,王阳示寡弱,以兵三千应之,自将数万人踵其后。正月,袭吐蕃,战于神州,断铁桥,在巨津废州,今丽江府西北地。取十六城,俘其五王,降众十馀万,获军资甲仗无算。遂遣弟凑罗栋、清平官尹仇宽献捷于唐,并献地图、纳贡及吐蕃所给金印,请复号南诏。于是,唐以祠部郞中袁滋为中丞,赐金紫充册使。赐王银窠金印,印文曰:「贞元册南诏印」。王北面跪受。宴使者,出元宗天宝五载所赐王父凤伽异银跳脱马头盘数物,并指老笛工、歌女曰:「皇帝所赐龟兹乐,惟二人在耳!」使者日:「南诏世荷唐恩,当深思祖考子孙勿替,尽忠皇唐。」王对曰:「敢不敬使者之命。」随遣清平官尹辅首入谢,献铎鞘、郁刀、生金、瑟瑟、牛黄、氎、纺丝、越赕绕伦马。蔚按:铎鞘,疑当作择矟,状如残月,有孔旁达,出丽水,饰以金,月祭之血,所击无不洞。段柯古『酉阳杂俎』云:南蛮有毒槊无刀刃,状如朽铁,中人无血立死。言自天而下,入地丈馀,祭地乃掘得之,云云。疑卽铎矟,毒为铎字之讹,槊字本同矟宇也。郁刀铸时以毒药并冶,取莹耀如星者,凡十年乃成,淬以马血,镂金犀饰镡首,伤人卽死。因浪人所铸,又名浪剑,夷中甚宝之。七月,又攻吐蕃,并破施蛮、顺蛮,施蛮、顺蛮卽施浪、浪穹二诏之后,自南诏并吞五诏,五诏之后不复称诏,止称蛮。俘其王置白崖城。贞元十二年,取越赕,置软化城。贞元十四年,请以大臣子弟质于朝,韦皋却之。固请,乃尽舍成都,遣就学。贞元十五年,王开白国北方赕地,今永北厅。徙弥河白蛮及罗落摩蛮实之,号剑羌。是年,王从韦皋再败吐蕃于铁桥。初,王谋击吐蕃,以邆川、卽今邓川州。宁北卽今浪穹县。等城当寇冲,乃峭山深堑,修战备。至是吐蕃谋袭南诏,王告于皋,遣将屯黎州、嶲州以应之。吐蕃引兵攻嶲州,皋严兵以守,别遣将袭击,降其帅,吐蕃惧,退至铁桥。王令人毒其水,吐蕃人马多死,退屯三泸水,王与皋部将杜毗罗击败之。贞元十六年,王率子寻阁劝入朝于唐,召对延英殿,进奉圣乐舞,德宗御麟德殿观之。贞元十七年,王夜绝泸水,斩吐蕃屯卒,又合鬼主破之于泸西。吐蕃大惧,欲悉师收嶲州,以绝南诏。王谓韦皋曰:「吐蕃声取嶲州,实窥云南,请进军羊苴咩城。」皋督诸将分道与王会,陈兵深入,拔木波城。前后凡克城七,焚堡百五十所,斩获无算,生擒论莽热,献于唐,并进铠甲十五万。皋班师,帝遣中使慰抚王。王自是比年贡方物,唐帝深礼之焉。贞元十九年,王封云南金马碧鸡二山之神为景帝,建妙音寺塔,筑大理雪峰长城。宪宗戊子元和三年七月,王卒。唐遣使祭吊,在位三十年,子寻阁劝立。
|
|-
|寻阁一作觉劝又名新觉劝。 袭封南诏王 伪谥孝惠王
|
|-
|寻阁劝,唐宪宗戊子元和三年卽位,年三十一岁。唐册劝袭封南诏王,赐元和金印。宪宗己丑元和四年正月,改元应道,群臣上尊号曰骠信,以鄯阐为东京,大理为西京,重修曲靖崇真寺。寺为晋代所建。十一月王卒,在位一年。子劝龙晟立。
|
|-
|}
===Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝龙晟,唐宪宗己丑元和四年卽位,年十二岁。唐册袭封南诏王。明年,改元龙兴。铸佛三尊,送佛顶峰寺,用金三千两。元和九年,晨寇嘉定州,有飞天神兵破之。先是,节度使杜元颖守成都时,时滇兵至嘉定之沐源州,忽自惊溃。蜀军获一夷卒问之,云适见遍山神兵,一神将长斧坐二鬼上,声若迅雷,故尔惊走。至是神复现形,自后追杀,卽时死酋长二人。盖嘉定向有飞天神庙,两破滇兵者,皆此神也。宪宗丙申元和十一年,晟淫虐失道,弄栋节度使王嵯巅弑之,时年仅十九岁,唐命少监李铣祭吊,在位七年,弟劝利立。
|
|-
|}
===Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝利,唐宪宗丙申元和十一年卽位,年十五岁。唐册袭封南诏王。王嵯巅东寇。明年,改元全义。元和十三年,厚赏王嵯巅,赐姓蒙,封太容。元和十四年,废王嵯巅,赦其罪,命敬信三宝,为清平官。元和十五年,又改元大丰。重修崇圣寺。五月,大雨霖,龙首、龙尾二关倾。除洱河水怪,建龙屋塔。高十二丈。按:『白古记』:唐时洱河有妖蛇,名薄劫,兴大水淹城。蒙国王出示:有能灭之者,赏半官库,子孙世免差徭。部民有段赤城者愿灭蛇,缚刃人水,蛇吞之,人与蛇皆死,水患息。王令人剖蛇腹,取赤城骨葬之,建塔其上,毁蛇骨灰塔,名为灵塔。在今大理府城南龙尾关内点苍山马耳峰下羊皮村。每年有蛇党起风来剥塔灰。时有谣曰:赤城卖硬土。今『龙王庙碑』云:洱河龙王段赤城云。永昌生两头牛。穆宗甲辰长庆四年,赐南诏王金印。是年王卒于东京,在位八年,弟丰佑立。丰佑慕中国之风,独不肯连父名。丰佑石刻作劝丰佑 册封滇王 伪谥昭成王
|
|-
|
丰佑,唐穆宗甲辰长庆四年卽位,年七岁。唐遣京兆少尹韦审规持节册封为滇王。王遣洪成酋等人谢。明年,改元保合,又改元天启。西僧赞陀啒哆建鹤庆元化寺。先是,鹤庆地水淹,僧杖刺东隅泄之。水中得樟木,刻为佛,咒之忽灵,远近名曰活佛。按:活佛,后至明成化间,福建莆田林俊为云南宪副闻之,亲至寺中,将佛火之,得金数百两入官,又毁他寺三百,人呼为林劈佛。建常平仓,筑邓川城。敬宗乙巳宝历元年,重修大理崇圣寺一名三塔寺。成先是,王嵯巅广寺基方七里。圣僧李成眉贤者建立三塔,高三十丈。佛一万一千四百,屋八百九十,铜四万五百九十筋。元和十五年经始,至是工竣。塔顶旧有铁柱款识云:「贞观六年尉迟敬德监造」,盖寺之建久矣。重修云南东寺塔,高百五十尺,西寺塔高八十尺,二寺亦贞观间将作大匠尉迟敬德所建。文宗丁未太和元年,王母出家,法名惠海。太和二年,用银五千,铸佛一堂,废道敎。太和己酉三年,僧梦岛造永昌卧佛,长丈六。六月朔,星落如雨。命王嵯巅等寇蜀。先是,西川节度使杜元颖失士卒心,军逃入南诏,因此知蜀虚实。佑遂遣嵯巅等攻蜀,陷嶲、戎、卭三州,攻成都,止西郛十日,掠经书、宝货、子女无算,蜀中残敝。并寇梓州、蜀州。佑上表于唐,请诛元颖。唐改云南为鄯阐府。卽今云南府省城。太和四年,唐贬杜元颖循州司马,以义成节度使李德裕为西川节度使。裕至西川,建筹边楼,日召习边事者访问,凡山川险要,南道与蛮相入者图之左,西道与吐蕃相接者图之右,不啻身尝经历焉。乃奏请留北兵以重镇守,修甲胄、备器械。率户二百取一人习战,作雄边子弟等十一军。筑仗义、御侮、柔远诸城以扼要害,复卭崃关,徙嶲州治台登,以夺蛮险。令转卭、雅粟以十月而运,先夏而至,人不苦瘴,边境始安。至是使人于佑,责归所俘。太和五年五月,佑归所俘西川四千人于德裕。太和六年,佑掠骠国民三千,徙之拓东城。武宗乙丑会昌元年,佑遣军将晟君筑横渠道自磨用江至于鹤拓,灌东皋及城阳田,与龙佉江合流入于河,谓之锦浪江。又潴点苍山玉局峰顶之南为池,谓之高河,又名冯河。更导山泉共泄流为川,灌田数万顷,民得耕种之利。会昌六年九月,佑攻陷安南,经略使裴元裕死之。宣宗丁卯大宗元年,佑妃卒,佑郁郁不乐,臣下请选妃女备后宫。得罗部今云南府罗次县。一美女进之,有宠。女好佛,建罗次寺,至今灵异。六月大旱,佑令僧寿海祈雨。僧曰:「昔汤旱七年,六事自责,天雨七日。今王酒色妄杀,天怒不雨。王如改悔,天雨自至,何以祈为?」佑如僧言,自责自改,数日果雨。佑女至崇圣寺进香,回至城西,为一乘白马人摄去,寻之不得。佑告于西僧赞陀啒哆,哆曰此山神也。乃设灯照之,果在苍山下。哆怒欲行法,移山于河。山神惧,献宝珠供佛,佑乃已。大中十二年,佑遣段酋迁陷安南都护府。遣段宗榜救缅。榜,汤今云南府宜良县地。人,佑之勇将。先是,狮子国侵缅;屡求救,至是许之。按:缅甸卽汉之掸国,唐之骠国,其历代莫考。当宋元之时,屡败王师。明太祖洪武十年,缅头目招扳南进贡。十九年,使行人司钱古训赍诏立宣尉司。二十年,缅犯景东。二十一年,犯他郞甸,沐英命都指挥宁正平之。三月,犯定边,沐英同都督冯诚平之。景泰三年,王骥赏缅孟养地。缅喜,乃擒献麓川贼。嘉靖初,缅火烧赍金牌官,中终年猖獗海上,遂至难制。○考自永昌府腾越州入缅,止三十四程。腾越一日南甸、一日罗必斯、一日郞、一日甸头、一日甸尾、一日蒙腰、一日甸蓝、一日蒙怜路、一日空地、一日蒙来路、一日大市、一日龙江、一日锅地、一日人列渡、一日江头城、一日景怜、一日及、一日马来城、一日赖当、一日山头、一日甸头、一日阿只、一日吴细辰、一日折弓、一日阿越。由阿越下水,九日卽至缅城。其地有五大城,江头、太公二城之外,又有马来、安正国、蒲甘缅王三城。酋住金楼,民住竹楼。其下称酋为卜剌浪,称酋妻为米泼剌。酋出人乘轿,水有舟筏。官名有招孟、招彔、招刚三等。官无大小,倶金银花宝带。无弓箭。其水有金沙江,险恶,缅恃以为固。涸时,亦仅五里。俗敬佛,重罪对佛发誓,凭僧处断。○入缅又有三道:一由潞江西上;一由腾越七日至麓川;一由景东从木通甸至湾甸渡入芒市,十日至麓川。○此外从潞江上流蒙来渡至景乐沿河有小渡十馀处,皆可通。又有三道:一由天步马,一由湾甸,一由阿郊地界,皆可入缅。宣宗己卯大中十三年,陷播州。李德裕旣贬死,西川节度使所任皆非人,侥佯边功,发兵十万袭滇,自建昌入,佑命子世隆为坦绰,同王嵯巅迎战于古宗,今丽江府铁桥以北地。杀唐兵数万人,立铜柱于界上。世隆之母,佑妃也,出家号师摩矣。尝随佑至罗浮山白城,建一寺,南壁画一龙,是夜龙动,几损寺,妃乃复画一柱锁之,始定。按:妃本渔家女,喜浴。为妃后,仍常泛舟西洱河,屏人潜浴于水,感金龙与交,生世隆。隆七岁,拳握始开,有文在其掌曰:通番打汉。古宗之战,唐帝惧世隆为患,妻以宗室女,伺察其所为。女以世隆年庚潜送于帝。帝使太史推之,知其感龙精而生。是年,丰佑卒于东京,在位三十五年。子世隆立,以王嵯巅摄政。段宗榜救缅,回至腾越,闻佑卒,世隆立,嵯巅摄政,移书王嵯巅曰:「天启不幸,驾崩嗣幼,闻公摄政,国家之福。榜救缅以败狮子国。缅酬金佛,当得敬迎。奈中国无人,惟公望重。榜抵国门之日,烦亲迎佛,与国增光。」云云。嵯巅不知是谋,至日迎之。榜令巅拜佛,突斩之于佛前。讨其弑劝隆晟之罪也。榜熔佛得金数千两。时有缅人奉香火者在榜,默祝曰:「愿世代奉敬,今不如愿,惟愿世尊轮生,灭彼国祚。」后果生郑买嗣篡国,灭蒙氏。
|
|-
|世隆『唐书』作酋龙。 伪谥景庄皇帝僭称帝始此,以后郑、赵、杨、段、高五姓之国咸效之。
|
|-
|世隆,唐宣宗己卯大中十三年卽位,年十六岁。明年,为懿宗庚辰咸通元年,改元建极。改西京曰中都,东京曰上都。先是,德宗贞元间,西川节度使韦皋开道通南诏,令岁入贡。异牟寻、寻阁劝二世事唐唯谨,迨劝龙晟及丰[佑],又数数扰边,大为唐患。又以世隆之名犯太宗、元宗庙讳。唐不册封,隆益致怨望。至是自称皇帝,遣兵取乌蛮、僰、爨之地,置东川郡。前节度使杜悰变韦皋制度,侵扰蛮中。隆绝朝贡,寇播州。至是李福为节度使,隆遣清平官董成至成都,移书于福。成与福抗礼,福囚之。上闻,有诏释成,召至京师,见便殿,遣还。咸通二年,遣兵陷安南。左仆射同平章事杜悰言:「西川兵弱,南诏强盛,未可轻绝。宜遣使祭吊,谕令改名,行册礼。帝肯之。会隆复寇嶲州,遂止。咸通三年,隆亲寇蜀,取万寿寺石佛归。时高真寺僧崇模有神术,从征。军中乏粮,又値岁暮,士卒思归,僧咒沙成米,咒水成酒,士卒各醉饱。一日僧化蝶回国乱宫,世隆妻以书达隆。隆答曰:妖若再来,令宫人于其衣背绣蝶。后僧复至,宫人绣之。隆见僧衣有蝶,令斩之。刑七次,首不殊。僧自云:用茅锯之乃断。果然。人见僧魂化一黑鹏飞去,盖僧本高真寺鹏巢中所得之儿也。咸通四年,寇西川。咸通五年,陷安南、邕管。咸通六年,陷嶲州。咸通七年,复攻安南。岭南西道节度使高骈救之,隆兵大败,骈遂定安南。咸通十年,隆遣使杨酋庆等入朝,谢释董成之囚。归成都俘三千人。定边节度使李师望杀其使,隆怒,率众攻蜀,陷嘉州。咸通十一年正月,陷黎州,入卭徕关,围雅州,击卭州,遂进攻成都。次眉州,西川节度使卢耽畏众寡不敌,通使请降。继而唐遣东川节度使颜庆复、大将宋威等率兵来战。世隆败屯星宿山,宋威戍沱江。隆迎战于毗桥,不胜,趋沱江,中伏。城中又出突将,夜火隆营,夺升仙梁。隆大败,奔双流江,无梁以渡,乃伪请和,三日梁成而济。咸通辛卯十二年,立鄯阐王宫。咸通壬辰十三年,于白崖诸葛武侯所立铁柱之地,铸天尊柱,高八尺。蔚昔年曾至铁柱宫,其地界白崖、弥渡、蒙化三境之间。其柱刻字云:建极十三年岁次壬辰四月朔庚子十四日癸丑建立。咸通十四年,攻黔中。又寇西川,作浮梁济大渡河,防河兵马使黄景复伏兵,半渡击败之。会隆国中新兵继至,接战,景复败走。隆进兵陷黎州,入卭徕关。遂遣王保诚等四十人谩书诣剑南节度使牛丛,欲假道入朝,请憩蜀王故殿。丛囚其使三十八人,释酇咙及段酋迁二人还。隆乃退兵至新津而旋。僖宗乙未乾符二年,攻雅州。西川节度使高骈追至大渡河,大败之,俘酋长五十人,收复黎州、卭徕关,斩黄景复以狥。乾符三年,遣使诣高骈请和,不许,斩使者一人。隆怒,自是唐使至不拜,惟拜和尚。骈知之,乃遣僧景仙往谕公主事,隆乃下拜定盟。禧宗丁酉乾符四年二月,复寇蜀,高骈御退之。骈又结吐蓄尚延心嗢、末鲁褥月等为间,筑戎川州、马湖沭沐源川、大渡河三城,列屯拒险,料壮卒为平夷军。世隆气夺,因恚发疽,卒于越嶲景净寺,在位十八年,子隆舜立。
|
|-
|}
===Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆舜,唐僖宗丁酉乾符四年卽位,年十七岁。明年,改元贞明,又改元嵯耶、承知、大同,改国号曰大封民国。遣使于唐请和,诏许之。自劝龙晟至世隆以来,侵蜀伐安南,用兵五十馀年,帑藏不给,横敛于民,上下倶困。舜立,耽于酒色,委政臣下,故愿求和于唐,乃遣段宝诣岭南节度使辛谠,请修好。谠奏,许之,以息边患。乾符六年,遣使于唐求和亲,无表,只用牒,称弟不称臣。唐帝召百官议,礼部侍郞崔澹曰:「南诏无礼,恐贻后笑。」使者上书与澹争。帝谕解之。议者谓中国多故,南诏寖强,不若权与和亲。便从之。僖宗庚子广明元年春正月,唐命宗正少卿李龟年来和亲。僖宗辛丑中和元年,上表款附。中和癸卯三年,唐以宗室女为安化长公主,妻隆舜,僖宗乙已光启元年,遣宰相赵隆眉、清平官杨奇鲲、段义宗三人,朝唐帝行在,且迎公主。高骈在淮阳飞章上言:「三人南诏心腹。宜止而酖之。」唐帝从其言。隆眉等死,南诏遂不复振矣。是年昆仑国进美女,舜嬖之。光启二年地震,龙首、龙尾二关、三阳城皆崩。昭宗己巳乾宁四年,隆舜多内嬖,常信谗以诛其下,淫虐日甚。竖臣杨登弑之于东京,在位二十年,子舜化贞立。
|
|-
|}
===Shunhuazhen舜化贞 伪谥孝哀帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|舜化贞,唐昭宗丁巳乾宁四年卽位,年二十一岁。明年,改元中兴。上书于唐,朝廷欲报之。利州刺史王建上言:「臣在西南,彼必不敢犯塞,小夷何足辱诏书。」遂止。昭宗光化二年,立五学敎主。十一月,诛杨登,族其家。光化庚申三年,铸崇圣寺丈六观音,清平官郑买嗣合十六国铜所铸,蜀人李嘉亭成像。一说唐天宝间,崇圣寺有僧募造丈六观音像,未就。夜忽雨,旦视之,铜也,卽取以铸像。像成,白光弥覆凡三日夜,至今人称为雨铜观音。唐昭宗壬戌天复二年,舜化贞卒,一说实郑买嗣弑之。,在位五年。化贞有一子,生甫八月,郑买嗣主国事,遂启贞妻曰:「母后深宫,群臣无主,臣当抱太子临朝。」贞妻是其言,以子付之。买嗣抱子出,潜手伤其阴,子哭不已,乃送回宫中。明日,子死。贞妻疑而诘之,买嗣怀不安,遽起兵杀蒙氏亲族八百人于五华楼下,遂簒立焉。
|
|-
|按:蒙氏南诏大蒙国,自细奴逻禅立,起唐太宗己酉贞观二十三年,讫昭宗壬戌天复二年,传十三世,共二百五十五年。
|
|-
|}
==Dachanghe Generations《大长和国 传三世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dachanghe Generations《大长和国 传三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|郑买嗣又名。 伪谥圣明文武威德桓皇帝。
|
|-
|郑买嗣,又名,唐巂州西泸令陷南诏臣蒙氏,为清平官郑回之七世孙。
隆舜时历官侍中,权势日重。隆舜巡幸无度,留买嗣守国,遂专政柄。舜化贞时为相,化贞卒,嗣贼杀其子,簒蒙国,于唐昭宗壬戌天复二年十二月卽位,年四十二岁,国号大长和,仍都大理。明年,建元安国。后梁太祖开平丁卯元年,建普明寺。开平三年,铸佛一万尊,送寺祈福,为杀蒙氏八百人故也。开平四年八月,买嗣卒,在位八年,子仁旻立。
|
|-
|}
===Renmin 《仁旻 伪谥肃文太上皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|仁旻,后梁太祖庚午开平四年卽位,年二十二岁。明年,改元始元,又改元天瑞、景星、安和、贞佑、初历。末帝甲戌乾化三年,旻攻蜀。蜀高祖王建发兵拒之,旻兵大败,溺水使者万馀人。后唐庄宗癸未开同光元年,施宫寺灾,僧智照撰『封民三宝记』。同光二年旻以朱鬃白马求婚于南汉刘龑,龑以增城公主妻之。明宗丙戌天成元年八月,仁旻饵金丹,躁怒,常杀人,遂暴卒,在位十六年,子隆亶立。
|
|-
|}
===Longdan 《隆亶 伪谥恭惠帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆亶,后唐明宗丙戌天成元年卽位,年十二岁,明年,改元天应。明宗戊子天成三年,东川节度使杨乾贞入朝,弑隆亶而立赵善政,计亶在位二年。
|
|-
|按:郑氏大长和国,自买嗣簒位,起唐昭宗癸亥天复三年,讫后唐明宗戊子天成三年,传三世,共二十六年。
|
|-
|大天兴国一作兴源国。 一世
|
|
|}
==Dayining Generations《大义宁国 一世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Yang Qianzhen 《杨乾贞 伪谥肃恭帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|杨乾贞于后唐明宗己丑天成四年夺大天兴国赵善政之位,改国号曰大义宁国,建元兴圣,又改元大命。乾贞萂村人。今大理府宾川州所属地。母名弥彔,有美色,蒙隆舜私焉。有孕,适渔人杨氏,生乾贞,后又生诏。其父捕鱼,贞立船头,见水中有人龙衣冠冕,左右有凤鸟,白光拥护,乃呼父视之。父见是贞之影,大奇之。长仕郑氏,官至东川节度使。至是夺善政位而自立。贞在位,贪暴特甚,中外咸怨。后晋高祖丁酉天复二年,通海节度使段思平起兵讨之。贞遣弟杨诏等五人出拒。诏兵败,乾贞出奔。思平遂得位,寻赦其罪,废为僧。计贞在位八年。
|
|-
|}
==Dali Generations《大理国 传十四世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siping《太祖圣神文武皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段思平,其先武威郡北人,世为南诏蒙氏将。唐元宗辛卯天宝十载,及甲午天宝十三载,唐再伐云南,云南王蒙
阁逻凤命世子凤伽异、大军将段俭魏迎战于点苍山及西洱河,两败唐兵。以功升俭魏为清平官,赐名忠国,寻拜相,六传而至思平。其母因过江,水泛触浮木,若有感而娠,生思平,并其弟思良。思平为幕览,小府副将也。常游山中,得为帝之谶,又每多异徵。时东川节度使杨乾贞之弟杨诏者已贵,闻而忌之,使人贼思平。思平逃匿于崇恩寺,在大理府城南九里。捕者追至,见蛛网盈寺门,不入,故得脱。后积战功,使为通海节度使。后唐明宗己丑天成四年,杨乾贞夺赵善政之位。受诏之谮,常欲除思平。平卜于秀山神祠,就其舅爨判自匿。后晋高祖丙申天福元年,乾贞索捕思平甚急。会善政臣守高方,素与思平善,密遣人招思平。思平与其弟思良、军师董迦罗走就之。皆裂冠,变姓名,为猎者,牵一犬至品甸波大村今大理府云南县地。宿旅舍。舍有戟,生牛革裹之,是夜风起,戟忽洞革出。思平惊曰:「是何銛利?得非神戟乎!」问主人曰:「戟何为?」曰:「以防夜耳。」曰:「防夜莫若犬。」遂以犬易戟去。行至叶镜湖,湖在大理府云南县地得神马。饥取野桃而食,核上有虫啮「靑昔」二字,思平解为十二月二十一日,意其吉兆。于是急趋而前,借兵于东方黑爨三十七蛮部,会于石城,今曲靖府是。以董迦罗为军师。兵集之期,适十二月二十一日也。所向皆克,遂进攻大理,讨干贞。时诏等陈兵据桥,军不能过。思平夜忽得三梦:人无首;玉瓶无耳;镜破。觉而告其下。迦罗觧之曰:君乃丈夫,去首为天;玉瓶去耳为王;镜破则无对者,此神示吉兆。是日,有被缨浣沙妇,指渡处曰:「人从我江尾,马从三沙矣,尔国名大理。」从之,乃得过江,击诏等杀之。乾贞闻诏等军败,出奔。思平卽位,时天福丁酉二年也,年四十四岁。建号大理国,建元文德,仍都大理。天福三年封董迦罗为相国,封高方为岳侯,分治成纪、巨桥等地。封爨判为巴甸侯。祠秀山神,免东方三十七蛮部徭役,赦国中凡有罪无子孙者。天福四年,赦杨乾贞罪,废为僧。一说乾贞败后,挈其妻子奔永昌郡。思平遣兵追之,至万剑树,乾贞自缢而死。思平俘其妻子亲属。帝好佛,岁岁建寺,铸佛万尊。后晋出帝甲辰开运元年帝崩,在位八年,子思英立。
|
|-
|}
===Duan Siyin 《文经皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siyin 《文经皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思英,后晋出帝甲辰开运元年卽位,明年,为出帝开运二年,改元文经。帝母杨氏桂仙娘没而为神,屡著灵应,封为楡城宣惠圣国母。是年,帝叔思良争位,废帝为僧,法名宏修大师。在位一年,叔思良立。一说思英素不肖,思平在日,常欲废之,不果。迨卽位,愈淫戏无度,群臣废之,而立思良。
|
|-
|}
===Duan Siliang 《圣慈文武皇帝 太祖之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siliang 《圣慈文武皇帝 太祖之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思良,后晋出帝乙巳开运二年卽位,明年,改元至治。后周太祖壬子广顺二年,帝崩,在位七年,子思聪立。
|
|-
|}
===Duan Sicong 《思聪 伪谥至道广慈皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sicong 《思聪 伪谥至道广慈皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思聪,后周太祖壬子广顺二年卽位,明年改元明德,又改元广德。宋太祖乙巳开宝二年,思聪卒,在位十七年,子素顺立。
|
|-
|}
===Duan Susun 《素顺》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Susun 《素顺》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素顺,宋太祖乙巳开宝二年卽位。明年,改元明政。先是,宋太祖丁卯乾德五年春,王全斌平蜀,还京师,请取云南,负地图进。太祖鉴唐之祸,以玉斧画大渡河为界,曰:「此外非吾有也。」由是段氏得据南诏,相安无事。太宗乙酉雍煕二年,素顺卒,在位十六年,子素英立。
|
|-
|}
===Duan Suyung 《素英 伪谥昭明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suyung 《素英 伪谥昭明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素英,宋太祖乙酉雍煕二年卽位。明年,改元广明,又改元明应、明圣、明统、明治。太宗至道二年,述『传灯录』。真宗己酉大中祥符二年,素英卒,在位二十四年,子素廉立。
|
|-
|}
===Duan Sulong 《素隆 伪谥秉义皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sulong 《素隆 伪谥秉义皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素隆,宋真宗壬戌干兴元年卽位,明年改元明通。仁宗丙寅天圣四年素隆禅位为僧,在位四年。侄素贞真立。
|
|-
|}
===Duan Suzhen 《素真 伪谥圣德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suzhen 《素真 伪谥圣德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素真,宋仁宗丙寅天圣四年卽位,明年改元正治。仁宗辛巳庆历元年素真禅位为僧,在位十五年,孙素兴立。
|
|-
|}
===Duan Suxing 《素兴 伪谥天明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suxing 《素兴 伪谥天明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Lianyi 《廉义 伪谥上德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Lianyi 《廉义 伪谥上德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|廉义,宋神宗乙卯熈宁八年卽位。明年,改元上德。遣使入贡于宋。熈宁十年,又改元广安,作八龙王会。神宗庚申元丰三年,杨义贞杀廉义而自立。计义在位五年,自义贞弑其主廉义而自立,簒位仅四月,鄯阐侯高智升命子清平官高升泰起东方爨僰兵,讨而诛之,立廉义之侄寿辉。
|
|-
|}
===Duan Shouhai 《寿辉 伪谥上明皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
===Duan Zhengming 《正明 思廉之孙 伪谥保定皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
==Da Zhongguo Generations 《大中国》==
===Gao Shentai 《高升泰 伪谥富有圣德表正皇帝》====
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|高升泰,宋哲宗甲戌绍圣元年,受大理国段正明之禅卽位。改国号曰大中国。明年,改元上治。升泰,岳侯高方之裔,大理点苍山莲花峰下芒涌溪人。将生,其父袭岳侯,智升往石云寺在点苍山白雪峰麓进香回,遇一老叟云:「尔家将生贵子,可速归。」智升至家,而升泰适生,心颇异之。及长,有材器,仕为清平官,兼九爽之事,誉望日重。思廉出游,猝遇烈风,吹踣其马。廉将坠,智深跃前扶之。廉德智升,赐以宫人及珠玉。杨允贤(判)〔叛〕,廉命智升讨之,以功加太保,封德侯,旋晋鄯阐侯,世袭。及杨义贞簒逆,智升令升泰起东方兵,诛义贞而立廉义之侄寿辉。辉以智升为布燮,升泰袭鄯阐侯。辉在位灾异迭兴,因禅位于思廉之孙正明。明为君不振,人心归高氏。遂请升泰为君,而正明禅以位焉。哲宗丙子绍圣三年,升泰在位二年,寝疾。遗命曰:「我之立国,以段氏之弱,我死,必以国仍还段氏,愼勿背我。」及卒,其子高泰明遵遗命,还位正明之弟正湻。段氏复兴,号后理国。高氏相之,政令皆出其门,国人称为高国主,段氏拥虚位而已。
|
|-
|}
==Houli Guo Generations 《后理国》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhengchen 《段正湻 大理国正明之弟 伪谥中宗文安皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正湻,宋哲宗丙子绍圣三年复得国,卽位,号后理国。以高泰明为相国,执政柄,高泰运为栅主。明年,改元天授。又改元开明,天政,文安,赦徭役。筑楚雄城,在今楚雄府城西北二里。以封高泰明之侄高明亮。徽宗癸未崇宁二年,遣高泰运奉表入宋,求经籍,得六十九家,药书六十二部。鄯阐李观音得来朝,进金马杖八十节,人民三万三千户。湻赐得八章礼衣,龙头剑,擢为安东将军。蔚按:蒙氏时有安东将军,季李珠所筑安东城,在今大理府赵州城东二里。缅人、波斯、昆仑三国进白象及香物。十月,彗星见西方,大疫。徽宗戊子大观二年,正湻禅位为僧,在位十二年,子和誉立。
|
|-
|和誉又名正严 封云南节度使大理国王,伪谥宪宗宣仁皇帝
|
|-
|和誉,宋徽宗戊子大观二年卽位。明年,改元日新。又改元文治、永嘉、保天、广运。七月中元节,各方贡金银、罗绮、珍宝、犀象万计,牛马遍点苍。徽宗辛卯政和元年,地大震,损十六寺。三十七部判叛〕,高相国泰明讨平之。使四子高明清居鄯阐镇守。政和五年,缅人进金花、犀象。政和六年。遣儒官钟震、黄渐赍敕褒高泰朋相国忠贞,封平国公。是年,遣使入贡于宋。高泰明卒,封国师。泰明生八子,高智昌以罪流死。其下伊、何二人谋为执仇,乘誉入寺进香,图弑逆,事露被收。誉嘉二人之义,赦之,为立义士冢。高泰运立,主国事。六月,三日并出。政和丁酉七年,命子紫琮充进奉使,入贡于宋。诏遣使册封誉为金紫光禄大夫、检校司空、云南节度使、上柱国、大理国王。徽宗己亥宣和元年正月,彗出,慕宁、远、矣、破、马等叛。三月,出师征之,兵败。三十七部蛮复叛。陷鄯阐,高明清死之。郡臣以高升泰侄商量成有德,请立为相,号中国公。徽宗丙午靖康元年五月,金星入月,大火,焚三千九百家。南宋高宗丙辰绍兴六年,王遣使贡象马于宋,广西经畧安抚使奏之,诏护送行在,优礼答之。绍兴十六年三月十四日,大雾,历二十四日方开。高宗丁卯绍兴十七年,王老,因诸子内争外叛、遂禅位为僧,在位三十九年。子正兴立。
|
|-
|}
===Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|正兴,南宋高宗丁卯绍兴十七年卽位。明年,改元永贞,又改元大宝、龙兴、盛明、建德。高量成让相位与侄寿贞,退老楚雄城。人化其德,名城曰德江城。孝宗癸未隆兴元年三月,寿贞卒。寿昌立为中国公。孝宗壬辰乾道八年四月,重雾,十六日方开。正兴禅位为僧,在位二十五年,子智兴立。
|
|-
|}
===Zhixing 《智兴 伪谥宣宗功极皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixig 《智兴 伪谥宣宗功极皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智兴,南宋孝宗壬辰乾道八年卽位,明年,改元利贞。又改元盛德、嘉会、元亨、安定。遣李观音得等至广西横山砦今在广西南宁府江上。求市马。李观音得夺寿昌位,与侄贞明。阿机起兵夺贞明位,还寿昌。贞明遂据鹤庆,号明国公,伪谥义地威天聪明仁帝。高妙音自白崖起兵,据鄯阐。时有妙音之甥成贤、成正二人来谒,意在夺鄯阐。妙音觉之,与之盟于天王庙。二人口含丁香叶,出庙吐之曰:「盟非我也,叶也。」未几,二人起兵,方战,见白马将斩之。白马将,乃庙中二力士也。光宗庚戌绍熙元年,修十六寺。宁宗乙卯庆元元年,修龙首、龙尾二关,三阳城。宁宗庚申庆元六年,智兴卒,在位二十八年,子智廉立。
|
|-
|}
===Zhilian 《智廉 伪谥享天皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhilian 《智廉 伪谥享天皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智廉,南宋宁宗庚申庆元六年卽位。明年,改元凤历。又改元元寿。使人入宋求『大藏经』一千四百六十五部,置五华楼。宁宗乙丑开禧元年,智廉卒,在位五年。弟智祥立。
|
|-
|}
===Zhixiang 《智祥 伪谥神宗皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixiang 《智祥 伪谥神宗皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智祥,南宋宁宗乙丑开禧元年卽位。明年,改元天开。又改元天辅、仁寿。征三十七蛮部,至寻甸平,河水绝流。理宗丁酉嘉(禧)〔熙〕元年,封高隆鄯阐王,以高泰祥为相国,以光日为演习。大府主将也。举贤育才,时和年丰,称治国焉。理宗戊戍嘉(禧)〔熙〕二年,智祥禅位为僧,在位三十三年。子祥兴立。
|
|-
|}
===Xiangxing 《祥兴 伪谥孝义皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|祥兴,南宋理宗戊戌嘉(禧)〔熙〕二年卽位。明年,改元道隆。理宗甲辰湻佑四年,蒙古兵出灵关,伐大理。祥兴遣将高禾迎战,禾败死之。段连佑归宋,宋遣使吊祭,致经书、银缎,为高禾拒蒙古兵战殁也。理宗辛亥湻佑十一年,为蒙古宪宗蒙哥之元年,祥兴卒,在位十三年。子兴智立。
|
|-
|}
===Xingzhi 《兴智 赠天定贤王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|兴智,南宋理宗辛亥湻佑十一年卽位。明年,改元利正。又改元兴正、天定。是年,南宋理宗壬子湻佑十二年,为蒙古宪宗之二年七月丙午,太弟忽必烈等奉宪宗命,伐大理。受制专征,以大将兀良合台总督军务。八月,次临洮,由六盘逾吐番,凡行山谷二千馀里无人之境。先遣王律术、王侯、王鉴来谕大理,道阻而还。九月,次忒刺,分三道进。兀良合台率西道兵,由晏当路,诸王抄合也只烈率东道兵,由白蛮,忽必烈率劲骑,由中道。乙巳,至满陀城,留其辎重。十月,过大渡河。十一月,至白蛮打郭砦。十二月,再遣三使入大理,招兴智,皆被杀。智命相国高泰祥守金沙江,与蒙古将伯颜不花、虎儿敦等相持。忽必烈命众以革囊潜济江,破吐番,渉摩荻,出石门,所过降之,遂进薄大理。泰祥回军,奉兴智拒战,不胜。蒙古兵入上关。智奔鄯阐,泰祥退至统失逻先为姚安府,府裁,今为姚州,属楚雄府。募兵于三十七部未至,而蒙古兵已长(躯)〔驱〕而入,泰祥被执大理,不屈,乃斩于五华楼下。祥临刑叹日:「段运不回,天使其然,为臣殒首,盖其分也。」时白日正午,忽云起雷震,天鼓大鸣,忽必烈曰:「忠臣也。」泰祥夫人段氏,抱孤儿高琼、高长寿等伸诉。忽必烈目儿顾左右曰:「此忠臣后,宜善视之。」许以世其官。高泰祥为大中国升泰九世孙。遂灭段氏而有其地,得五城、八府、蛮部三十有七。乘胜入吐蕃,降其酋。明年,南宋理宗癸丑宝佑元年,为蒙古宪宗之三年,忽必烈班师。大将兀良合台拔鄯阐,获兴智以献,宪宗命赦之,封为摩诃罗嵯,管领八方,仍守其地,世袭总管。计兴智在位二年,宪宗授兀良合台银印,加大元帅,还镇大理。以刘时中为宣抚使,与兴智同安辑焉。南宋理宗庚申景定元年,为蒙古世祖忽必烈之中统元年,兴智率其季弟段信苴福北行,朝于世祖,道卒。计为总管又七年。蒙古遣使来祭吊,文曰:「段氏承八姓正位,归有新统,旣顺天时以向义,犹得国王以栖迟,实国家待远方之仁,由贤王能左右之义。受命以来,朝夕愓励。赖尔维勤,用征不廷,正当共享亨嘉之运,胡意遽罹霜露之灾,呜呼!当朕未集大统,乃为叔季之国。兹旣承景运,合正君臣之称,参录不替于子孙,诏禄宜昭于典册,特遣太常省祭,赠为后理国向义天定贤王段公,尚赖神麻,永保祚土。所赠王爵,后不为例。」明年,南宋理宗辛酉景定二年。为蒙古世祖中统二年,世祖敕授王之弟信苴日则段实。总管守大理。命之曰:「向率我以临尔境众据国人之请,因从城下之盟,款附而忠勤益著。庸示至优之礼,以彰同视之仁。可革帝号,锡以虎符,总理大理、鄯阐、威楚、统矢、会川、建昌、腾越诸郡,抚恤已附之民,招集未降之国,卿其勉之。」
|
|-
|按:段氏后理国,自段正湻复国,起宋哲宗丙子绍圣三年,讫南宋理宗癸丑(实)[宝应元年,传八世,共一百五十七年。
|
|-
|总计段氏大理、后理二国,传二十二世,共三百零十五年。
|
|-
|增订南诏野史下卷
|
|-
|}
==Hu Weixianmen Wing DynastyRevisions《大淸湖南武陵胡 蔚羡门订正》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hu Weixianmen Wing Dynasty Revisions《大淸湖南武陵胡 蔚羡门订正》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段氏总管除天定贤王段兴智受封总管七年外起段信苴日卽段实讫段世,共袭十二世。
|
|-
|段实一名信苴日。
|
|-
|段实,于南宋理宗景定二年,蒙古世祖之中统二年,入朝于世祖,袭总管,赐虎符,领大理、威楚、鄯阐、统矢、会川、建昌、腾越等城,自万户以下皆受节制。南宋理宗癸亥景定四年,为元世祖中统四年,蒙古设大理都元帅府,命昔撒昔总制鬼国、大理两路。理宗甲子景定五年,为世祖至元元年,妖僧舍利威结威楚、统矢、鄯阐及三十七蛮部叛,实讨之,大破于威楚、统矢、安宁等处,又破释多罗十馀万众于洱河海口。南宋度宗丁卯咸湻三年,蒙古世祖至元四年,以皇第五子忽哥赤为云南王,镇大理。至元五年,忽哥赤受命与安南国王讨占城、真腊。南宋度宗咸湻六年,世祖至元七年,置大理路军民总管府。南宋度宗辛未咸湻七年,为蒙古世祖至元八年冬十一月,世祖改国号曰元。云南王忽哥赤为元帅寳和丁所杀。元伐金齿、缥甸,降之。分大理三十七蛮部为南北中三路,遣阿鲁忒儿宣抚大理,招谕诸蛮。南宋度宗辛未咸湻十年,元世祖至元十一年,封宗室脱忽鲁为云南王,命云南行省平章政事赛典赤建云南各衙门。妖僧舍利威复叛,实遣石买等诡为商贾,执贽往见,挺矛鏦杀之,枭首于市。元世祖赐实白金及金织纹衣。南宋恭宗丙子德佑二年,元世祖至元十三年,授实为大理等处宣抚使。缅甸叛犯永昌,元命纳速剌丁赛典赤之长子,后封延安王。伐之,破砦三百,因天暑,还师。复命诸王相吾答儿、右丞太卜、参政也罕的斤伐缅,招讨使法烈先驱造舟于阿若、阿禾两江,进拔江头、太公二城,金齿、乌蒙皆降。南宋帝昺庚辰祥兴二年春二月,为元世祖忽必烈之至元十七年,宋亡,元入主中国。以忽哥赤之子也先帖木儿为云南王。命忙兀鲁徵八百媳妇。缅败忽都帖木儿兵,诏思、播土官田、杨二处兵助讨之。命征缅官番听云南王节制。至元辛巳十八年实率子阿庆入觐,元祖嘉其忠,晋大理、威楚、金齿等处宣慰使都元帅。升辞,复拜为云南诸路行中书省参知政事,留阿庆宿卫东宫。至元壬午十九年,实受敕迎征缅师,于金齿病卒。诏以其弟忠为大理宣慰使兼军民万户府,赠实为武定公。实任职二十二年。
|
|-
|}
===Duan Zhong《段忠 实之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhong《段忠 实之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段忠,元世祖癸未至元二十年袭。是年,忠随元元帅阔木征芒部、两林蛮及会川等处,破贼立功,元授忠为善阐酋,赐虎符。元置邦牙宣慰司于蒲甘城,命云南王也先帖木儿率招讨使怯烈总兵三千往镇之。忠奉云南王命伐武定。冬十二月忠卒,以实之子阿庆为大理金齿等处宣慰司都元帅、佩金虎符,封宣武将军,晋镇国上将军,尚公主。遣归,复授云南行省参政。忠任职一年。
|
|-
|段庆卽阿庆。实之子
|
|
|-
|段庆,元世祖甲申至元二十一年袭。至元二十五年以云南王也先帖木儿移镇大理,进封营王。至元二十七年冬十月,封皇孙甘剌麻为梁王,镇云南。至元二十九年改封梁王甘剌麻为晋王,镇北边。至元三十年,封甘剌麻之子松山镇云南。至元三十一年世祖崩,孙铁木耳立,是为成宗。成宗丙申元贞二年,置彻里路,卽车里军民宣慰使司。令与八百犬牙相制。秋八百叛命,也先不花征之。成宗己亥大德三年,云南水西土官宋隆济叛,贵州知州张怀德战死。云南行省麻九儿讨之,追杀贼首撒月,斩首五百级。庆奉敕征交趾,平之。入朝,带僧左黎同往,适成宗手疽甚,黎以法水洗之,立愈。帝欲试其术,乃掘地窖,令八人潜其中击鼓,佯云有怪,召黎治之,黎行法,顷之不闻鼓声,启窖视之,则八人已死。帝敬其法,封为国师。大德四年,缅人僧哥伦作乱。缅酋执其兄阿散哥也,寻释去,阿散乃率其党杀酋。酋次子奔诉京师,诏遣薛超兀儿率行省兵讨之。大德五年,金齿、八百叛,不输粮,杀官吏,元命右丞刘深、哈剌带、郑佑等征之。刘深协求水西土妇节金三千两、马三千匹,土官宋隆济遂叛,围深等于穷谷中,梁王阔率兵救,解之。冬,云南地大震,御史陈天祥谏伐西南夷,不报。大德七年,罢徵八百,免右丞刘深官,收符印。左丞相哈剌哈孙议深徼名首衅,丧师辱国,劝帝诛深,遂杀之。深卽往以兵逼南宋帝昺于谢女峡者。大德八年,立平云南碑于点苍山。顺元宣抚宋阿重获其叛叔宋隆济,朝命升职,赐衣一袭。滇池有蛟,化少年淫妇女,有神僧赵伽罗者,命黑胡神擒之,至噀水见形,斩之。神卽土主也。成宗丙午大德十年,罗雄土官阿那龙少叛,据越州。今在曲靖府南六十里,本唐之悦州,其川名鲁望。命右丞汪惟能讨之,追至曲靖,斩那龙少。是年庆卒,弟正袭。庆任职四十三年。
|
|-
|}
===Duan Zheng 《段正 庆之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zheng 《段正 庆之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正,元成宗丁未大德十一十年袭。正招蒙化山中生爨入籍。元授正为参政,仍大理军民总管。晋宁建盘龙寺。有神僧觉照者,段氏族人,号莲峰,游东山见龙潭绝幽胜,乃咒龙令徙。龙去,水涸,建寺其地。蔚按:莲峰僧于顺帝之至正末入定塔中。武宗海山戊申至大元年,沾益、乌蒙地大震,三日并出。至大二年三月,梁王松山风疾,诏封皇第七子西平王奥鲁赤之孙老的代镇云南。仁宗爱育黎拔力八达壬子皇庆元年,诏罢徵八百。皇庆癸丑二年冬十月,学士李孟奏准开科,三年一试。时九成殿生芝,天下共取士三百名,每榜云南取五名,内蒙古二名,塞目二名,汉人一名。以八月二十日初场,二十三日次场,二十六日三场。仁宗乙卯延佑二年十一月,封武宗子和世珠为周王,出镇云南。仁宗丙辰延佑三年,正卒,庆子隆袭。正任职十年。
|
|-
|}
===Duan Long 《段隆 庆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Long 《段隆 庆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段隆,元仁宗丁巳延佑四年袭,元授隆为大理军民总管。延佑己未六年,云南行省奏:「夷俗:凡土官无子,卽以妻代管。请听之。」诏曰可。延佑庚申七年,封甘剌麻孙王禅为云南王。英宗硕德八喇癸亥至治三年,进封王禅为梁王,封其子帖木儿不花为云南王。是年八月,诸王按梯不花、索孛罗、月鲁铁木儿等及御史大夫铁失弑帝于南坡行幄。九月泰定帝也孙铁木儿卽位。十二月流诸王月鲁铁木儿于云南。泰定四年,洱海有水怪,牛猪形短项金睛,兴水为患。大理一道人向隆取黄金百镒,隆与之,乃以金为索,沉于河,怪卽日徙于浪穹宁河。按:『六诏灵源记』云:宁河无底。明宣德间,有渔人李应捕鱼,网得金索,旋得旋断。一渔者诫之曰:可止矣。应贪甚,尽曵之,索将穷,惊其怪,风浪陡作,应并舟倶溺,至今为患。文宗图帖睦尔庚午至顺元年,以豫王阿忒思纳失里出镇云南。诸王秃坚据云南叛,杀廉访使,自称云南王。元诏枢密帖木儿讨之,发朵甘思等处兵分道进。至四川建昌、罗罗斯,权寻甸府官曲术集义兵讨秃坚,败贼伯忽于马龙,追至金马山,擒之。是年,隆以老退闲,子俊袭。隆任职十四年。
|
|-
|}
===Duan Jun 《段俊 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Jun 《段俊 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段俊,元文宗辛未至顺
二年袭,元授俊为云南行省平章。乌撒部奏:「云南驿输征甚苦,愿属四川。」奏下参政贾敦煕议之。是年俊卒,族弟义袭。俊任职一年。
|
|-
|}
===Duan Yi 《段义 俊之族弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Yi 《段义 俊之族弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段义,元文宗壬申至顺三年袭,朝命止授为承务郞、蒙化州知州。是年阿容禾叛于中庆路,义助兵讨平之,以功升参政。九月,乌蒙土官禄馀寇顺元,云南行省遣都事那海奉诏往谕,授馀为参政。冬十一月,云南行省奏:「国马每月上寅日给盐,饮之无病。因伯忽反,盐不给,马多死。」诏四川以盐给之。是年义卒,隆子光袭。义任职一年。
|
|-
|}
===Duan Guang 《段光 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Guang 《段光 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段光,元顺帝妥权帖睦尔癸酉元统元年袭,朝命止授为承务郞、蒙化州知州。番兵作乱,孟州判官李生等守白崖,値高蓬新败番兵,乗胜长驱破河尾关。光率兵大败之,斩馘无算,河水尽赤,为之不流,得战马甲仗数千。光赋凯旋诗云:「雨锁金门百里城,神州花木管弦声。齐天苍岳参云峻,界地楡河射月明。梵宇三千朝呗朗,招提八百夜香淸。恒沙善果心无异,何患愚夷治不平。」元统二年,光以先与梁王把匝剌瓦尔密孛罗因分域构隙,至是遣张希矫、杨生、张连等发兵攻梁王,不胜,士卒多死,希矫等遁归。顺帝至元元年,梁王侵大理,光自督兵与战于昆弥山卽今大理府赵州南之定西岭,梁王大败。凯还,侍翰杨天甫作『长寿仙曲』上光云:「蒙氏钟王气,驾驭万乗唐。南龙光对北金锁,东洱水朝西点苍,四面固金汤。江绿春杨柳,岸淸古雪霜。屏障龙吟梅破王,竹林鹤立菊舒黄,四季景如妆。此生诚庆幸,有眼睹明王。」光大喜,设宴谢之。顺帝辛巳至正元年,玉案山生水小赤犬,群走如飞。段雄正曰:「此天狗星所化,大兵压境之兆。」经二年方绝。又下铁雨山石,民屋倶穿,人値之多击死。梁王刺杀段氏臣高蓬。先是,光令蓬督兵罗那关,梁王使人暗招之,蓬不从,答之诗云:「寄语下番梁王翁,檄书何苦招高蓬,身为五岳嵩山主,智过六丁缩地公,铁甲铁盔持铁槊,花鞍花索驭花骢,但挥眼前黄石阵,孤云击破几千重。」梁王忌之,乃重贿蓬庖人,刺杀之。顺帝甲申至正四年,光卒,弟功袭。光任职十二年。
|
|-
|}
===Duan Gong 《段功 光之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Gong 《段功 光之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段功,元顺帝乙酉至正五年袭,朝命止授为承务郞、蒙化州知州。至正六年,木邦夷思可叛。元命河南参政贾敦熈督师会云南路兵讨之,以功为前锋,屡战克捷。叙功升功为大理总管,寻升参政。至正癸巳十三年,红巾贼流入建昌,旁掠云南边地。阿次失里讨平之。至正十五年三月,元窜太师脱脱于云南。中书右丞哈麻、御史袁赛因不花等陷之也。十二月,左丞相哈麻矫诏杀脱脱于阿轻乞之地,时年四十二岁,天下寃之,两日相荡。是年,梁王宫中有怪。左右启王曰:「盘龙寺僧莲峰,能驱邪。」王礼请至,行法,怪息。王喜,留宫中供养,至夜密问之曰:「今中原纷乱,后事如何?」僧曰:「二十年后祚尽矣。」至期明师果南下。至正十六年,黑井有毒龙,兴水溢井,损民居。莲峰建寺,书铁符沉井中,害息。又宁州有虎咥人,莲峰洒净水驱虎远去,明日虎果去。七月,元以四川廉访使蒲机云为云南诸路廉访使。至正癸卯二十三年三月,红巾贼明玉珍率其党李芝麻同弟明二等将兵三万攻云南。入金马山,梁王把匝剌瓦尔密奔楚雄。四月,梁王发中庆,至石碑村,红巾入城,梁王闻报,感而自咏云:「野无靑草有黄尘,道侧仍多战死人。触目伤心无限事,鸡山还似旧时春。」随命陜西参政车力帖木儿拒之,擒明二。时四方乘机窃发,群盗满山,功乃谋于外外杨智,字渊海者,同稽于卜,卜告吉。又得子宗、子秀兵至,功遂从梁王进兵,吕合败红巾于关滩江。红巾收合馀衂再战,杀段氏之骁将铁万户,又有江心庄人杨胜力战死。梁王为文祭之曰:「生于江心,为我门户,我旧不识,用备其数,能卫社稷,春秋与之,惟忠惟烈,尔则处之,噫! 义重于生,生必有死,丈夫之事,识者有几。愿气作山河,魂归苍洱,英杰复生,以保我之昆裔。」祭毕而哭,一军感泣。是夜,红巾屯古田寺,功令人焚寺,红巾乱,以铁骑捣之,死者大半,追至回蹬关,又大破之。副将谢得攻安宁,功力战杀二千人,谢得奔中庆。于夜功谍者拾得一书,乃明玉珍母寄珍书云:「自尔去后,老母平安,征云南务要得之。兵粮不足,随后发来,不可轻回。」功阅书,令杨智易其辞曰:「自尔去后,老母不安,臣下乱法。又闻中国人马入界,非止一处。尔须急回,迟则难保。大夏天统元年,太后平安书。」遂募亡命者赍书往。有打金箔人陈惠愿行,惟虑老母在。功许养其母,惠遂往。玉珍得书,挥之去令回报,迨夜,玉珍旋军。功追摄至七星关,大破其众。梁王回中庆,奏升功为云南行省平章,以主阿妻之。一日主与宴酣,歌『金指环』云:「将星挺生扶寳阙,寳阙金枝接玉叶。灵辉彻南北东西,皓皓中天光映月。玉文金印大如斗,犹唐贵主结配偶。父王永寿同碧鸡,豪杰长作擎天手。」功久居梁王府,嫡妻高夫人在大理作词寄功云:「风卷残云,九霄冉冉逐。龙池无偶,水云一片绿。寂寞倚帏屏,春雨纷纷促。蜀锦半间,鸳鸯独自宿,珊瑚枕冷,泪滴针穿目,好难禁。将军一去无度,身与影立,影与身独,盼将军只恐乐极生悲寃鬼哭。」至正二十四年春,功还大理,至洱海金鸡庙,夫人遣人适来报生子,功喜,作歌曰:「去时野火通山赤,凯歌回奏梁王怿。自冬抵此又阳春,时物变迁今又昔。归来草色绿无数,桃花正秾柳苞絮。杜鹃啼处日如年,声声只促人归去。」至正二十五年,功思新婚,欲往梁王所。员外杨智于壁间题诗留功,张希矫亦上书留行。功曰:「寳剑岂埋荒土物耶!」矫苦留不已,功怒流矫于顺州。顺州,前明属鹤庆府,今裁在永北厅城西一百二十里。唐时地名牛睒。遂与夫人别,倍道至中庆。梁王疑之,私议曰:「平章此来,得无有吞金马咽碧鸡之心。」其下有姤功者复谗构之。王与阿谋欲以孔雀胆毒功。私泄之,愿与西归。(今)〔令〕功周防,功不信。是年滇大旱,人言定远有禅僧连精,通瑜伽秘密敎,能降龙役鬼。启梁王,王遣人迎至,僧设坛祈雨,咒毕,钵中出一小蛇,遂大雨。王大喜,酬以金帛,辞,役鬼荷担,行空而去。顺帝丙午至正二十六年春,中原盗蠭起,临安廉访使支渭兴三恳休,梁王不允,遣使金闾慰,赐羔羊。渭兴自咏曰:「年高才薄忝淸流,欲挂朝冠不自由。且喜壮怀无诉谍,从敎行道有鸣驺。故园花木无由见,何日干戈定得休。九十春光还欲暮,放怀聊与醉金瓯。」重午节,梁王宫门外观射柳,随侍文武赐宴,支渭兴诗贺曰:「平地如席草如茵,少年将军酒半醺。朱鬣马穿人影过,绿杨枝逐箭锋分。旌旗色映宫前瓦,鼓角声飘海上云。何日鲸鲵倶授首,普天偃武共修文。」七月,梁王偕功东寺讲经,至通济桥,功马逸,王乘机令番将掖杀之。阿闻之恸哭曰:「昨灯下吾犹言,云南施宗施秀二人以胭花殡命,奈何不信。今果然。」命侍女锦被包之,以王礼敛送归大理。诗挽之云:「吾家住在雁门深,一片间云到滇海。心悬明月照靑天,靑天不语今三岁。黄嵩历乱苍山秋,误我一生踏里彩。华言锦被也。吐噜吐噜段阿奴,施宗施秀同奴歹。云片波潾不见人,押不芦花华言起死灵草也。颜色改。肉屏华言骆驼也。独坐细思量,西山铁立华言松林也。风潇洒。」功丧旣行,阿遂不食死,以殉焉。其家臣员外杨智渊海闻而亦死之。智临死诗曰:「半战功名百战身,不堪今日总红尘。死生自古皆由命,祸福于今岂怨人。蝴蝶梦残滇海月,杜鹃啼破点苍春。哀怜永诀云南土,絮酒还敎洒泪频。」明洪武间都督冯诚经功墓,亦歩原韵题诗,吊之曰:「田横五百剑孤身,转眼关山半委尘。北阙玉楼召客记,南滇粉壁说诗人。苍山夜黑云遮月,金马天寒鸟怨春。共惜平章迷绣幕,至今愁听水声频。」功死,长子宝自称平章,立于大理。功任蜀二十二年。
|
|-
|}
===Duan Bao《段宝 功之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Bao《段宝 功之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段宝,于元顺帝丙午至正二十六年八月,因父功为梁王所害,遂自称平章,立于大理。是年,梁王开科取士,以支渭兴主试事。梁王复听谗,诛锄段族。梁段旣结仇,数数构兵。鹤庆知事杨升调和二家,自金鸡庙分界,南属梁王,北属段氏,力劝息兵,百姓稍宁。至正丁未二十七年四月,梁王生日,群臣称贺。王宴于昆明池上,省宪官献诗曰:「贤君添算宴嘉宾,幄殿先施巨海滨。万里晴天开绵绣,一川芳草踏麒麟。笙歌暖送金杯酒,铠仗寛围玉佩人。醉饱百官咸稽首,愿王高寿过千春。」中庆路土主庙圮,梁王重修,立牌纪事。先是,至正十二年庙为耆民杨光所修。至二十三年红巾贼入滇,陷中庆,毁民居,庙亦被焚。梁王欲并段氏,遣人剌宝,弗得。又令平章矢剌七攻大理,皆不克。乃遣使通好,奏授宝为云南右丞,以和之。红巾复入滇,梁王命叔铁木的罕赍敕借兵于宝,宝答书曰:「杀虎母还喂虎子,分狙栗自诈狙,公假途灭虢,献璧吞虞,金印玉书,设钓鱼之香饵,绣阁艳女,备揜雉之网罗。况平章已死,只遗一奴一獒,奴可配阿妃,獒可配华黎氏。二事许诺,当借大兵。不然,金马山换作点苍山,昆明海改作西洱海,兵来矣。」书后又附一诗云:「烽火狼烟信不符,骊山一举任枝梧。平章枉挂红罗帐,员外空题粉壁图。凤去岐山祥兆隐,麟戕大野瑞光无。自从界限鸿沟后,成败兴亡不属吾。」梁王读而深恨之。是年,明太祖取燕京,元顺帝北遁,元亡。明太祖戊申洪武元年,梁王复通好于宝,辞甚卑逊,宝许之和。时有蛮舍兴者,自元江攻入鄯阐,王惧欲出奔,宝以唇齿之故率兵救之,击走舍兴。王德宝,升为武定公。敕曰:「段宝归附而来,忠勤懋著,父子秉忠,征讨克捷,乃于戎马倥偬之中,干戈纷扰之际,不第远朝且兼平乱。宜示至优之数,以彰匡济之勋,兹特升宝为武定公,仍总管大理军民府。尔其不负初心,永保世爵,以光大尔赤城于无穷。宣光元年敕。」云云。宣光乃故元顺帝太子立于应昌年号也。太祖洪武辛亥四年,宝降于太祖,上奏云:「臣闻有天下者为天下之主,有列土者为列土之君。卑臣宝虽隔万里之遥,每切中原之向。大理有二帝三皇之后,一方九姓之传,汉晋六朝以来,大蒙国受封于前唐,残唐五季而终,二理国继守于两宋,臣祖思平等恪共藩复,贡礼屡修于中土,华风远畅于边隅。迨至故元,不尚仁义,专事暴残。顺帝已遁北方,梁王犹祸鄯阐。迩闻明主奉天承运,御极南京,中原太平,边徼宁乂。意者中国有圣人,履尭舜之正统,陋汉唐之浅图,天时人事然也。或命臣依汉唐故例,岁贡天朝,或仿元代职名,俾守旧土。庶深谷回阳,幽扄照日,八方浴德,六合同春,垂怜边境,救恤一方。欲修进贡,恐触明威,合待事体之定,专候圣旨之颁,谨此。」专差段贞、王伯鹘驰奏以闻。太祖诏谕答之。洪武五年,宝女兄名羌娜,小名僧奴,又名宝姑者,适建昌土官阿黎。先是,羌娜绣一旗,至是将嫁,以旗付宝嘱曰:「母常语我云尔父为梁王所害,必当报仇,惟望尔辈长大。我闻母言,故绣此旗已五年矣!今我嫁至夫家,收拾建昌、东川军马,飞报若到,女急来应,愼勿违焉。」临行,又以二诗别宝云:「珊瑚钩起出深闺,满目潸然泪湿衣。氷鉴银台前长大,金枝玉叶下芳菲。鸟飞兔走频来往,桂秀梅香不暂移。惆怅同胞未忍别,应知恨重点苍低。」「何彼秾兮花正红,香车独去洱河东。鸿飞雪岫难经目,风刺霜林易割胸。云白天高连水远,月新春叠与秋重。一作闺里绣旗寃父魄,天边提剑属儿曹。泪珠恰似通宵雨,千里关山几处逢。一作须知恨重苍山小,回首寒云千万重。」洪武辛酉十四年四月,国中巫女歌曰:「莫道君为山海主,山海笑谐谐。园中花谢千万朶,别有明主来。」数日,宝卒,子明袭。宝任职十四年。
|
|-
|}
===Duan Ming《段明 宝之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Ming《段明 宝之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段明,明太祖洪武辛酉十四年四月袭,梁王授明为宣慰使。九月,明太祖命颖川侯溥友德,列侯曹正、王弼、金朝兴,都督郭英、张铨等,率师三十万征云南。帝出饯于龙江。友德至湖广,分遣都督胡海洋、陈桓等领兵五万,由四川永宁趋乌撒。友德等率大军由辰沅趋贵州。进攻普定,擒土酋安瓒,诸苗蛮犵狫闻风迎降。十二月,溥友德等兵至普安,攻下之,进至曲靖。先是,梁王把匝剌瓦尔密遣其司徒平章达里麻将精兵十馀万屯曲靖,以拒明师。沐英曰:「彼谓我师疲于深入,未有虞心,乃可破也。」友德然之,遂倍道进师。将至白石江,忽大雾四塞,冲雾及江而上。顷之雾雾,则两军相望,达里麻见之大惊,以为神军飞至,拥军阵于南岸。沐英分遣一军,沂流潜渡,出其阵后,吹铜角,树旗帜,为疑兵山谷间。达里麻急撤阵后,军以御之,上军阵乱。友德等趣师济江,一涌而渡,旣渡,整列进战。敌众披靡,生擒达里麻,横尸十馀里,俘其众二万人,友德悉慰遣之。友德进击乌撒,分遣沐英等趣云南。梁王闻达里麻破,弃城走晋宁州,忽忽纳岩,寻入滇池岛中,先缢其妃,自饮药不死,投水死之。父老收塟云南城西三十里浄耳山,土人立庙妙音寺侧。后至嘉靖间,拆庙材修社学,乃因旧址为小寺祀之。云南右丞观音保以城降。英等入城,秋毫无犯。收梁王金印并符信图籍,安抚其民。友德亦自曲靖循格孤山而北,以应永宁之兵。时元右丞实卜闻胡海洋等进自永宁,乃聚兵赤水河,以拒之。海洋等造木筏,夜半济河,而友德亦至,实卜遁去。友德令将士于乌撒筑城,版锸方具。蛮众复合,斩首三千馀级,馀众溃散。遂城乌撒,得七星关,以通毕节。又克可渡河,于是东川、乌蒙、芒部诸蛮震惧,望风降附。先是,洪武壬子五年正月,帝遣翰林待制王禕、行参政吴云持诏谕云南梁王,令奉版图来归。梁王初不从,后有降意。至洪武六年十二月,会元太子爱猷识里达刺立于汉北,使侍郞脱脱征饷于云南,脱脱觇知梁王有二心,因以危言逼王,杀使臣以绝其念,王遂杀禕,父老收尸塟地藏寺北。吴云奉使时,会梁王遣铁知院等二十人使沙漠,为边将所获,帝乃释二十人,令与云倶行。至沙塘口,二十人谋曰:「吾等奉使不达,被执而还,罪必死。」乃说云令胡服编发,诈为元使。又逼令改制书,共给梁王。云不从,以死自誓,亦被害。梁王遣人收云骨,塟给孤独寺,及事闻,帝震怒,故有是役。按:王禕字子充,浙江金华府义乌县人。建文时赐谥文节,永乐登极,凡建文设施尽革,遂削禕谥。后至正统中,义乌县丞刘杰奏请,加奉使云南死节臣恤典,禕赐谥文忠。吴云字友云,江苏常州府宜兴县人。至弘治中,赠谥忠节,并祀云南,敕赐为二忠祠。是年冬十二月,明卒,叔世袭。明任职一年。
|
|-
|段世 宝之弟,明之叔
|
|-
| 段(氏)〔世〕,明太祖壬戌洪武十五年袭。二月,世闻鄯阐破,梁王已死,又以沐英等兵略寻甸、临安、澄江、元江、楚雄、洱海,次第皆下,进逼大理,乃遣使致书,请依唐宋故事,奉正朔为外臣。友德不听,答书谕令速降。凡三致书,世怒,遂遣都使张元亨、州判李洪赴军前下战书。畧云:「鄯阐危甚登天,大理险倍投海。英如汉武,昔战仅置益州;雄若胡元,设官止于中庆。取之易而守之难,莫若依吾请乞册封,定为进贡,始为良策。吾实武人,不通经史,前代得失则餍闻也。恭惟麾下振耀皇威,功不亚于孔明,才克比于方叔。涤山川之旧染,历代所未有也。况吾与尔旣无杀父之仇,又无财债之怨,无故交战,真乃不祥。尔屯威楚,彼处之民有何罪焉?若耗人之食,是绝其命;取人之财,是刳其心;摅人妻女,是乱人伦,则吾之应,不得已也。爰念尔等皆中国之人,其中岂无一二达士。得此何益?不得何损?西南之地,号为不毛,易动难安。今春气渐暄,烟瘴渐起,不须杀尔,四五月间,雨霖河泛,尔粮尽气敝,十散九死。形如鬼魅,色如黑漆,欲活不能,汝之进退狼狈矣。莫若乘此,天晴地乾,早寻活路。宁作中原鬼,莫作边地魂,尔宜图之。后理国段明顿首。」书后继一诗云:「长驱虎旅势威宣,深入不毛取暴残。汉武故营旗影灭,唐宗遗垒角声寒。方今天下平犹易,自古云南守独难。拟欲华夷归一统,经纶度量必须寛。」友德、英等览书大怒,拘其使。左副将军蓝玉等率师径进,兵至品甸,世恃田庵和尚有术,列兵五万扼下关。沐英自将攻之,不克。乃命王弼,率兵出洱水之东,趋上关,英以兵缀下关,为犄角势。别遣胡海洋将一军夜度,从石门间绕道出点苍山后,縁崖而上张旗帜。迟明,英先驱,渡河斩关而入,海洋之师亦从山而下,腹背夹攻。世众惊溃,拔其城,世就擒,并执明之二子苴仁、苴义,时二月二十三日也。于是沐英等分兵取鹤庆、丽江,破石门关,荡金齿,所有摩、和泥、车里、品缅等部相率归附。又略建昌,故元平章月普帖木儿降。闰二月,赐云南各土官冠带及诰敕,使任本州岛知州等官。四月,乌撒、东川、芒部诸蛮复叛,溥友德、沐英会兵进讨,斩首三万馀级,诸蛮来降,云南悉平。以乌撒、乌蒙、芒部地近四川,分隶之。九月,土官杨苴等叛,紏众至二十万,攻云南城。都督谢熊、指挥冯诚婴城固守。沐英自乌撒移兵讨之,斩首六万馀级,擒四千馀人,诸部悉定。洪武癸亥十六年二月,故元右丞普颜笃同土酋高大一作天惠叛,据佛光砦。蔚按:佛光砦卽佛光山,山半有洞,可容万人。又名一女关。昔诸葛武侯曾擒孟获于此。在大理府浪穹县东二十里。也先不花叛,据邓川州。溥友德率郭英平之。又定蒙化州,过金沙江,攻北胜府,今永北厅。擒故元平章隔生。于是丽江府、拒津等州皆平,前后斩首一万三千级,蛮民降者四十万户。帝遣耿炳文谕溥友德、蓝玉等班师,沐英留镇云南,别命列侯王志、仇成、张龙分赴寻甸各府,缮城池,立屯堡,安辑人民。是年,械送世并明之二子苴仁、苴义赴京。世临行,以诗别故人杨朝彦云:「雄兵一日破重关,父子流离瞬息间。别后欲知相忆处,锦江流水彩潺潺。」洪武甲子十七年四月,溥友德等班师至京,论平云南功,进封溥友德为颖国公,胡海洋东川侯,陈桓普定侯,张翼鹤庆侯,蓝玉、仇成、王弼、张龙等并赐铁券,子孙世袭。吴复、金朝兴先卒,倶授世袭侯爵,铁券加禄并同。馀升职赐金帛有差。以世、苴仁、苴义见帝,帝诛其头目,谕苴仁、苴义及世曰:「尔祖宝,昔年曾有降表,朕不忍废。」乃授苴仁官雁门卫镇抚,赐名归仁,苴义官武昌卫镇抚,赐名归义。世任职一年,段氏世土,至此而绝。帝又封其族段保为云龙州土知州。
|
|-
|按:段氏袭总管十二世,起南宋理宗辛酉景定二年,为蒙古世祖中统二年,讫明太祖壬戌洪武十五年,共一百二十二年。
|
|-
|}
==Notable Officials from Nanzhao through the Generations《南诏历代名宦》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Notable Officials from Nanzhao through the Generations《南诏历代名宦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|张元,汉元帝时守。 张翕,东汉明帝时守。 郑纯,同时。 王追,东汉顺帝时守。 王伉,后汉时永昌郡丞。 吕凯,同时永昌郡功曹。 前有文齐、吴霸、陈立,后有张亮、刘宠、犍为费诗,巴东马忠皆著勋绩。 李毅,晋惠帝光煕元年为宁州刺史,政治明达,五苓夷反时病卒,其女秀有父才,领州事。至怀帝时赠少府谥威侯。 王逊东,晋明帝大宁元年为晋宁守,华夷畏服。夷叛,死之。州人以中子坚领州事,官至平西安南将军。
|
|-
|汉盛览,字长通,叶楡今大理府太和县。人,受学司马相如,著赋心四卷。同时叶楡张叔,天资奇颖,书过目成诵。俗不知学,叔每病之。闻司马相如至若水,蔚按:『水经注』:若水南经云南郡之遂久县,县废,在今大理府宾川州城东北一百里,古称白门,置于汉时,今为金沙江巡检司地。遂负笈往从之,受经归敎乡人。 隗叔通,叶楡人,性至孝,母好饮江水,通日入江取水,维艰。滩水忽出平石,涉取甚便,人谓之孝子石。 东汉许叔,一作叔重。昆明人,明帝时入中国,受五经归,为本郡敎授。 尹珍,字道真,平彝人,桓帝时入中国,负笈从许愼受经学,还敎乡人。 唐尹仇寛,叶楡人,德宗贞元间为蒙氏淸平官,入朝陈地图,贡方物,唐拜为左散骑常侍,封高溪郡侯。 张志成,昆明人,文宗太和间入蜀,学王羲之草书,归敎国人。 元王升,昆明人,曲靖宣慰副使学政名时。 段文瑞,澄江人,读书尽孝,诏旌其门,仕至临安总管。 杨惠,楚雄人,孝母感神,诏旌其门。 张景云,昆明人,仕至临安经历。 陈宝,平彝人,仕至尚书。尹贡,南宁人,仕至尚书。以上三人皆德政名时。 元朝进士王楫、李近仁、段天祥、李天佑、李郁五人,皆三甲同进士出身。
|
|-
|}
==Ethnic Groups of Nanzhao==
===Baimin《白民》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baimin《白民》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有阿白、白儿子、民家等名。白国之后,卽滇中之土著。妇女出门,携伞障面,谓之避嫌。宴客,切肉拌蒜,名曰食生。馀同汉人。女镶边衣,以银花银吊为饰。
|There is the '''Ā''' '''Bái (阿白)''', '''Bái Erzǐ''' ('''白儿子'''), '''Mínjiā''' ('''民家''') and other names. The descendants of the '''Bái Kingdom''' are precisely the indigenous peoples of Central Yunnan. [When] women go out, they bring an umbrella to block their faces, this is called '''Bìxián''' ('''避嫌; avoiding suspicion'''). [When] hosting a banquet, they cut meat and garlic, this is called '''Shíshēng''' ('''食生; eating raw'''). The rest are similar to Han people. Women wear embroidered clothes, they use silver flowers and silver hangings as decoration.
|-
|}
===Pu Ren《蒲人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽古百濮,周书所谓微卢彭濮也,后讹为蒲。质黑,鸟音。男子淸布褁头,衣套头衣,膝系黑滕;妇人挽发为髻,脑后戴靑绿磁珠,花布围腰,短裙,系海十数围。带刀弩长牌,不畏深渊,或浮以渡。婚娶长幼跳蹈,吹芦笙为孔雀舞,婿家立标竿,上悬彩绣荷包,中贮五谷银钱等者,两家男妇大小争缘取之,以得者为胜。又有野蒲、普蛮、朴子蛮等类,性尤凶悍,男子以布二幅结于左胁,另用布一幅合缝挂身;以红布搭右肩蔽腰以下。今顺宁府多此种。
|Anciently this was the '''Baipu (百濮)''', the '''Book of Zhou (周書)''' mentions the '''Wēi''' '''(微), Lú''' '''(卢),''' '''Péng''' '''(彭)''' and '''Pú''' '''(濮)'''. Later errors [turned it] into '''Pú (蒲)'''. By nature they are black and their language [resembles] birds. Men wrap clean/clear<ref>Likely referring to white cloth.</ref> cloth on their head and dress in tunic garments that are put over the head. They bind their knees with black rattan. Women roll up [their] hair as a topknot. At the back of the head, they wear clear blue-green porcelain beads. Printed cloth encircles the waist; they wear short skirts, connecting abundantly ten [or more] encirclements. They carry knives, bows and long shields. They are unafraid of deep abysses perhap even floating across it. At wedding ceremonies old and young alike jump and stamp, they play the reed pipe for the '''peacock dance'''. At the bridegroom's house they erect a pole, on it a bright embroidered purse is hung. Inside it stores the five crops, silver coins and other things. The two families of men and women, old and young, vie to fetch it. Once obtained, the person is victorious. Once more, there is the '''Wild Pú (野蒲), Pŭ mán (普蛮)''', '''Pú Zǐ mán (朴子蛮)''' and other types. Their nature is outstandingly fierce. The men tie two lengths of cloth at the left flank, [and] another length of cloth is stitched together and hangs off the body. There is red cloth to hang on the right shoulder to cover the body below the waist. Nowadays '''Shùnníng''' '''(顺宁)''' prefecture has many people of this type.<ref>Modern Day Fengqing County in Southwestern Yunnan. 鳳慶縣. Historically close to the Wa peoples and Austroasiatic population.</ref>
|-
|}
===Bo Ren《僰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名百夷,又名摆夷。性耐暑热,居多在棘下。本澜沧江外夷人。有水旱二种:水僰夷近水好浴,剃后发,蓄前发,盘髻如瓢,故又名瓢头僰夷;旱僰夷山居耕猎,又名汉僰夷。男靑布褁头,簪花;妇女不施胭粉,自然白晳,盘发辫,红绿包头,饰以五彩线须,衣五色衣,桶裙绣边。其俗贱女贵男,头目妻数百人,庶民亦数十,耕织贸易,皆妇人任之。凡婚娶,男女相悦而议聘,一成匹配,不肃而严。如夫妇不睦,听夫付之一物为凭,然后改适。有邪术,能使男子千里不忘,其法不外传也。
|
|-
|}
===Lahu《猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu《猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|爨蛮卢鹿之裔,猓猡其讹音也。以五月为春。信鬼尚巫,巫有大觋皤,拜禡白马之号。卜用雄鸡两髀骨,骨有细窍,刺以竹签,视多寡向背之势以定吉凶。其部长妻曰耐得,勇士曰苴可。每岁六月廿四日,名火把节,燃松炬,照村砦田庐。男椎髻镊须,耳环佩刀;妇披发短衣,桶裙,披羊皮。
|
|-
|}
===Bai Lahu《白猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Bai Lahu《白猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名撒马都,卽西爨白蛮。知读书,能文字,舌音淸便,多冒汉人。见尊长披羊皮,故嫁女授羊皮一帐。短衣革履,胸挂花包。妇人花衣桶裙,靑布蒙头,饰以海贝、锡铃。
|
|-
|}
===Hei Lahu《黑猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽东爨乌蛮。其祝以铃,其占以草。男挽发贯耳,披毡佩刀;妇人贵者衣套头衣,方领如井字,无襟带,自头罩下,长曳地尺许,披黑羊皮,饰以铃索。
|
|-
|}
===Qian Lahu《乾猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以山居得名。每食插筯饭中,仰天跪拜为报本。好勇喜斗,杀人偿以财。服饰同黑猓猡,妇人项挂一羊毛筐,行住纽毛为绵。以织毯。
|
|-
|}
===Hai Lahu《海猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hai Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名坝猓猡,以种水田得名。盖土人以水为海,以平田为坝也。居家俭朴,知读书。服饰如汉人,妇如白猓猡。
|
|-
|}
===Miao Lahu《妙猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Miao Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多土官之裔,有营长、官奴、火头等称。男挽发贯耳;妇人桶裙无裤,穿套头衣,前不揜胫,后长曳地,衣边火焰,弯曲如旗尾。居茅舍,中堂作火炉,父子妇姑,围炉而卧。又有一种,戴鹊帽者,名猓落蛮;白布褁胫者,曰白脚猓猡。
|
|-
|}
===Ge Lahu《葛猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Ge Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名大头猓猡。男以靑布丈许裹发为大头,女戴布花线箍。婚嫁步行,妇避伯,不避翁。亦有顶盔擐甲,乘马佩刀,以劫抢为生者。然居家尊卑有序,会食以跪为敬。
|
|-
|}
===Azhela Lahu《阿者猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《阿者猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆耳环手钏,衣短裤,披羊皮。婚娶,婿亲负女以归。
|
|-
|}
===Awu Lahu《阿乌猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Awu Lahu《阿乌猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆耳环手钏,衣短裤,披羊皮。婚娶,婿亲负女以归。
|
|-
|}
===Luwu Lahu《鲁屋猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|耕种射猎为生。男短衣木屐,女长裙跣足。
|
|-
|}
===Sami Lahu《撒米猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Sami Lahu《撒米猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居山,耕瘠负薪,近水,捕鱼时给。面多黧黑,男挽发如鬏,毛褐被毡,佩短刀。女披靑布单,短裙,长裤。又有鲁兀、老乌、撒完、洒泥、阿蝎、阿系等类,衣饰风俗畧同。
|
|-
|}
===Liaowu Lahu《老牾猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Liaowu Lahu《老牾猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽罗婺,又名罗午、罗武。男披发贯耳,披毡佩刀,穿火草布衣;女辫髪垂肩,饰以海贝砗磲,穿火草布裙。无床帏被褥,以松毛籍地而卧。
|
|-
|}
===Lahu Hei《猓黑 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu Hei《猓黑 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蒲蛮别种。择丛篁深处,结茅而居。蜂虫鼠蛤,无所不食,以荞稗为上品。又有大猓黑、小猓黑,岩居野处,猿猱同类。
|
|-
|}
===Putu《普特》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Putu《普特》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以渔为业,舟不盈丈,而炊爨、牲畜、资生之具,无不咸备。泅水出没,口衔手捉,皆巨鱼也。今云南府省城西碧鸡山下,多有此种。
|
|-
|}
===Diyang Gui《地羊鬼 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Diyang Gui《地羊鬼 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦僰人类也。短发黄睛,奸狡嗜利。与人相仇,能行妖术,以木石易人心肾,或以一帚系衣后,变形为象、马、猪、羊、猫、犬等物。稍畏惧之,卽为所魅,入人腹中,食五脏,或潜至人家,偷窃财物,食婴儿。知者一手捉之,一手痛殴,必复为人,夺其帚縻之,彼必以家赀之半匄脱。或有娶其女者,夫每出,必问归期,卽饵以毒,如期而归,更以药觧,否则毒发而死。交易失信,及私窥其要女者,必毒之。此种元江州为甚。
|
|-
|}
===Wo Ni《窝泥》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Wo Ni《窝泥》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有和泥、(干)〔斡〕泥、哈泥、路弼等名。黑白两种,风俗畧同。男戴麦杆帽,穿火草布衣,耳环,跣足;妇女辫发数绺,海贝、杂珠,盘旋为髻,套衣桶裙。善养猪,其猪小耳短身,长不过三十筋,肉肥腯,名窝泥猪。婚用媒妁,路遇野兽,则返而他求。嫁则以红藤束膝为识。勤生啬用,每积贝一百二十索为一窖,临死嘱其子曰:「积贝若干,汝取某窖,馀留我为来生用。」死则以雌雄鸡各一殉。又有一种名糯比,与此同,其生者名哥泥,亦名瓦黑,好勇尚斗,能咒人使病。
|
|-
|}
===Achang《阿昌》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Achang《阿昌》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名峨昌。男短衣披布单,女长衣无裤,腰缠红藤。占用竹三十三枝,畧如筮仪。嗜酒,觅禽兽虫豸生啖之。旧俗兄死弟妻嫂,后有罗扳砦百夫长早正死,其妻方艾自誓不失节,饿而死,其风遂革。又有小阿昌,其俗畧同。
|
|-
|}
===Acheng《阿成》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Acheng《阿成》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男短衣,女桶裙,以树皮代瓦。婚用牛羊,至女家以水泼女足为定。
|
|-
|}
===Biju《比苴》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Biju《比苴》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|僰夷别种。男耳环革屐,女白帨束发,缠叠如仰螺。构楼而居近水,极寒犹浴。丧尚绯,夫死,妻不再嫁,名曰鬼妻。又有白布缠足者,名白脚僰夷,亦名孔荅;茜齿,文身,髠者,名光头僰夷;额上黥刺月牙纹,盖习车里之俗,所谓雕题也。
|
|-
|}
===Heipu《黑舗 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heipu《黑舗 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名黑普,俗同窝泥,形容黧黑,怕见汉人。畜山羊,作竹器,一切床几櫈杌,备极精巧。
|
|-
|}
===Heiqian Yi《黑乾夷 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heiqian Yi《黑乾夷 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男椎髻麻衣,耳环垂肩;女以毛褐细带,编如筛罩,首饰以海贝、砗磲,衣领亦然。婚配,男吹芦笙,女弹口琴,唱和调悦,先野合,后媒妁。
|
|-
|}
===Shansu《山苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Shansu《山苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男披发跣足,女椎髻蒙头。语似鸟音,形如猿猴。潜居深山,种荞、麻,或工或猎,夷中之最苦者。
|
|-
|}
===Chusu《车苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Chusu《车苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名扯苏,傍岩临水。男短衣皮履,女长裙无裤。种荞稗,绩线为业,以羊毛占(睛)〔晴〕雨。
|
|-
|}
===Laji《喇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Laji《喇鸡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名喇记。黑布帽白衫。好楼居,孟春作土主会,客至,掘鼠及虾蟆为敬。其在交趾者,男善枪,女善弩,多充交兵。又有白喇鸡,男女倶穿五色氆氇,食山虫、水蛇等物。
|
|-
|}
===Lawu《喇五 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Lawu《喇五 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰喇乌,又曰喇鲁。男如摆夷,女如窝泥,构楼临水而居。上人下畜,名曰掌房。其在腾越州者,食巨蟒、毒虫,或取蜂糟食之。
|
|-
|}
===Manla《獛喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Manla《獛喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男插鸡毛,女裹首巾,皆披羊皮,不浣濯。婚配先野合。每采蒙肚花蒙肚花树皮如藓,能毒人。生景东厅,今不产矣。欲人醉死则醉采,欲人狂死则狂采,以毒人。又一种在王弄山者,名马喇
|
|-
|}
===Hala《哈喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Manla《獛喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女黑色,不知盥栉。妇女红黑藤缠腰数十围,产子以竹兜盛之,负于肩。又有古喇、杜喇,色尤甚,言语不通,略似人形而已。
|
|-
|}
===Jiala《戞喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Jiala《戞喇》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|悍好猎,居山巅,户不正出,迎山开门,不留馀粟。
|
|-
|}
===Kala《卡喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kala《卡喇
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰卡腊,男穿耳挽发,佩短刀;女短衣无裤,胫著彩色折裤。聚族而居,耕种鬻薪。
|
|-
|}
===Kasui《卡隋》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kasui《卡隋》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名卡高,性顽钝,喜歌舞。男女多野合。婚娶通媒妁之日,议聘金,多至数百。娶后子孙犹有代祖父偿聘金者。
|
|-
|}
===Kawa《卡瓦》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kawa《卡瓦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多在顺宁、永昌二郡,辣蒜江外。貌()〔丑〕性恶,猎人以祭。商贾出腾越州,入木邦者必经其地,呼为卡利瓦。有生熟二种,生者劫掠,熟者保路。
|
|-
|}
===Xifan《西番》===
{| class="wikitable" style="text-align:center; width:80%;"
|Xifan《西番》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽土番,亦名巴苴,居金沙江边。性悍戾,善弩,男女辫发百绺,不知栉沭。男以藤缠左肘,披琵琶毡,暑热不脱;女以海贝砗磲磁珠饰于项。又有野西番,更不可制。
|
|-
|}
===Guzong《古宗》===
{| class="wikitable" style="text-align:center; width:80%;"
|Guzong《古宗》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名狤猔,西番别种。皆辫发百绺,男戴红缨,穿氆氇,挂铜铃佩刀,女饰以珊瑚、银泡,披腊瓦被单,皆穿乌拉鞾。经年一栉,栉必牲祭。春夏种荞稗,秋冬赶牛马,取牛羊乳酥,调油茶而食,名曰ø。又有小古宗,喜猎饮酒,馀畧同。
|
|-
|}
===Kuceng《苦葱》===
{| class="wikitable" style="text-align:center; width:80%;"
|Kuceng《苦葱》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|面丑。男麻衣短裤,女短衣桶裙,亦有衣裤相连者。耕山采薬为生。所佩环手篐,自幼至老不释,死以殉。
|
|-
|}
===Mo《摩》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mo《摩》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|乌蛮别种。性湻朴,鸟音,男剃发戴帽,长领布衣;女高髻,或戴黑漆尖帽,短衣长裙。畜牛羊,产射香。同类仇杀,妇女登场一劝卽止。岁暮杀牛羊相邀,一客不至为耻。今有读书入泮者。
|
|-
|}
===Li《力》===
{| class="wikitable" style="text-align:center; width:80%;"
|Li《力》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽。衣麻,披毡,岩居穴处。利刀毒矢,刻不离身,登山捷若猿猱。以土和蜜充饥,得野兽卽生食。尤善弩,每令其妇负小木盾前行,自后射之,中盾而不伤妇,以此制服西番。野力披发插羽,尤悍。
|
|-
|}
===Zhe《遮》===
{| class="wikitable" style="text-align:center; width:80%;"
|Zhe《遮》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆穿耳,挽发。喜华彩衣,盘旋蔽体。每饮食必精洁。而长于弓弩,尤善鸟铳。
|
|-
|}
===Jiezi《羯子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|自孟养流入。环眼鸟队,散发,缠藤,耳带大环,首插鸡羽,无衣裤,腹下以麻布一幅围之。负弩佩刀,喊声如犬。又有结,耳带象牙大环,红布围头,衣半身衫,袒右臂,亦其类也。
|
|-
|}
===Muji《拇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦作。形丑恶,妇女尤甚。椎髻插羽,佩刀负弩。猎食猿狙。见人有蓄,思盗,先用鸡骨卜,吉则徃,否则止。
|
|-
|}
===Mocha《摩察》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mocha《摩察》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Manqie《嫚且》===
{| class="wikitable" style="text-align:center; width:80%;"
|Manqie《嫚且》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Local People《土人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Local People《土人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|(思)〔男〕絮袄佩刀弩,女披毡朿皮索,饥则紧缚之。婚姻以刀甲为聘,披发见舅姑。有争者告天,沸汤投物,以手捉之,曲则糜烂,直者无恙。
|
|-
|}
===Nong ren《侬人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nong ren《侬人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|侬智高部落之裔。男束发短衣,女短衣密扣,腰缠红裹肚。性狡,漆齿,出入佩刀,长技在铳。
|
|-
|}
===Sha ren《沙人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Sha ren《沙人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|越析夷也,又名蒙嶲。男辫发长衣,女以挑花白布蒙头,腰围红布。出入佩刀,耕田、射猎,所居掌房。丧服用红,祭肉弃不食。又有黑沙人,白沙人。聘用牛,旣婚之夕,男女不同室,及回女家,有娠方归。
|
|-
|}
===Luo ren《𤡑人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤡑人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男束发披毡,女短衣露腹,缠红藤,腰系沙罗布裙,上短下长,男女同耕。
|
|-
|}
===Cun ren《狆人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Cun ren《狆人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男缠头跣足,女靑布缠头,畧如僧帽,缀以海贝,彩布衣裙,著大尖鞋。构楼而居,甘犬嗜鼠。又有罗缅、麦岔、叠吗、喇毛等类,顽良不一,衣饰风俗同
|
|-
|}
===Nu ren《怒人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nu ren《怒人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居永昌怒江内外。其江深险,四序皆燠,赤地生烟。每二月瘴气腾空,两堤草头交结不开,名交头瘴。男子面多黄瘦,刚狠好杀猎,或采黄连为生,鲜及中寿。妇人披发红藤勒首。每年贡麂皮二十张、山驴皮十张、黄蜡八十筋、麻布三十庹,以代赋税。
|
|-
|}
===Luo ren《𤞰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤞰人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江府鹤庆州大雪山外。男女披发,树叶为衣,耳穿七孔,坠以木环。与怒人接壤,畏怒人,不敢越界。
|
|-
|}
===Wild people《野人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Wild people《野人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|永昌界外。居无室庐,宿于树巅。赤发黄睛,首戴骨圏,插雉羽,手足腹皆缠红藤,以幅布或树皮揜下体。勾刀大刃,捕禽兽蛇虫,生食之。逢人卽杀。
|
|-
|}
===Laodao《老挝》===
{| class="wikitable" style="text-align:center; width:80%;"
|Laodao《老挝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南掌国夷类。戴藤篾黑漆帽,宽二尺许,短衣无裤,用杂色布一疋,从膝下兜绕,围结胸前,名打抄子。妇女耳贯大黑漆圏,塞以野花。
|
|-
|}
===Liemi《列密》===
{| class="wikitable" style="text-align:center; width:80%;"
|Liemi《列密
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽利米。刀耕火种,精射猎,得鼠雀生啖之。男篾帽皂衣,女辫发赤足。出外披花布,以蔽其身。
|
|-
|}
===Lama《喇嘛》===
{| class="wikitable" style="text-align:center; width:80%;"
|Lama《喇嘛》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江、鹤庆多有之。来自西藏,招本境摩为徒。有红黄二敎,红弱黄强。毡帽褊衫,各如其色。
|
|-
|}
===Miaozhi《苗子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|三苗之后,有九种,黔省最多,流入滇中者,惟仲家花苗而已。束发耳环,未婚者缚楮皮于额,或插鸡毛。女布冠套头衣,桶裙,皆用五彩桃花布为之。每岁孟春跳月,男吹芦笙,女振铃唱和,并肩舞蹈,终日不倦。或以彩为球,视所欢者掷之,暮则同归,比晓乃散,然后议婚。节序击铜鼓,吹呐叭,聚赛神,书契惟数目字,及六十花甲子同,馀不同。
|
|-
|}
===Tuliao《土獠》===
{| class="wikitable" style="text-align:center; width:80%;"
|Tuliao《土獠
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其属本在黔、蜀、粤西之交,流入滇中。男首裹靑布,白衣领缀红布一方,妇人冠红巾,衣花绣。性粗桀,好蛊魔之术,其虫夜飞如星,光芒摇曳,射入窓棂,触者病。
|
|-
|}
===Jiaoren《交人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiaoren《交人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|安南国之类。男箬笠蕉扇,衣裳楚楚;女面貌颇雅,手贯牙钏,长衣长裙,以红帕蒙头,皆辫发靸鞋。读诗书习礼,仪婚丧之事,倶仿中国。
|
|-
|}
===Burmese people《缅人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|缅甸国流入者。有老缅、阿瓦、猛别、雍会、普干、摆古、得楞子等类。长于鸟铳,其火药用麦面傅之,迅疾无声。又有缅目者,称为莽纪,断发文身,漆齿穿耳,蟒衣跣足,头带红缎一方,性喜花草。
|
|-
|}
==References==
{{reflist}}
[[Category:Chinese literature]]
[[Category:Non-fiction books]]
[[Category:Medieval historical works]]
[[Category:Works originally in Chinese]]
[[Category:Pages with foreign language text]]
[[Category:Indigenous peoples]]
[[Category:Guidebooks]]
[[Category:History of China]]
[[Category:Wars]]
[[Category:Diplomacy of China]]
[[Category:Subject:Military history]]
[[zh:蛮书]]
h1evcb0ab35td7c64hyfyqyapd3ivru
4674826
4674813
2026-10-07T08:57:48Z
Taitesena
3485636
Azhela Lahu
4674826
wikitext
text/x-wiki
__NOTOC__
{{incomplete translation}}
{{Translation header
| title = Unofficial History of Nanzhao (南诏野史)
| author = Yang Shen (杨慎)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes =
}}
== Front Matter ==
# [[Unofficial History of Nanzhao/Translator's Note|Translator's Note]]
# [[Unofficial History of Nanzhao/Influences|Historical Context]]
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Authorship
|-
! scope="col" | Original
! scope="col" | Translation
|-
|增订南诏野史上卷 明 四川新都杨愼升庵编辑
|
|-
|}
===The Title of Nanzhao 《南诏之称===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Title of Nanzhao 《南诏之称》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蛮夷称王曰诏。先时滇有六诏,各据其地。六诏中蒙舍诏最强,后并吞五诏,故独称南诏。
|
|-
|六诏考六诏之地,东西四千里,南北二千九百里
|
|-
|蒙舍诏蒙细奴逻立国,居蒙舍川,地在永昌、姚州之间,处五诏之南。后奴逻曾孙皮逻阁并吞五诏,独称南诏。今蒙化厅是邆赕诏丰咩立国,居邓川。今大理府邓川州是施浪诏施望欠立国。居{{浪穹弥茨河蒙次和山,今大理府浪穹县是浪穹诏丰时立国,居浪穹。后其孙铎罗望迁剑川,改称剑浪诏。今丽江府属剑川州地是越析诏波冲立国。亦称摩诏。又号花马国。居嶲州。今丽江府是后,其兄之子于赠渡泸,邑于龙佉河蒙嶲诏嶲辅立国。居越嶲,今四川宁远府,越嶲厅是
|
|-
|}
===The Territorial Divisions of Nanzhao 《南诏分野》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Territorial Divisions of Nanzhao 《南诏分野》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|在天井鬼入参一度,汉书。次鹑首末位晋书。丽中台上位北斗开阳一星。宋书。在地乃梁州裔土,蜀之苑囿。河图纬。
|
|-
|}
===The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周鄯阐国、白崖国、昆弥国。战国时滇国,汉西南夷、益州、白子国。后汉建宁国。晋、宋、齐、梁、陈,宁州。隋昆州。唐初,南宁、六诏,唐文宗太和间,名鄯阐府。宋仍名南诏。元名中庆。明名云南省。
|
|-
| 国朝因之。按:汉武帝元狩元年,彩云见南中,在今大理府赵州之白崖。云南之名始此。唐元宗间问蒙舍诏盛逻皮之相张建一作俭成住何处?曰:「南边云下。」因命为云南。又元宗见祥云起,名祥州。今大理府之云南县也。
|
|-
|}
=== General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|鄯阐国蒙苴颂,昆弥国庄蹻、仁果、龙佑那据于周、秦、汉迄六朝。细奴逻据于唐。郑买嗣、赵善政、杨于贞、段思平、高升泰曁正湻,相继据于唐末迄
南宋。凡历有九姓,而雍闓、孟获不与焉。段氏与南宋理宗壬子湻佑十三年为蒙古所灭,而段实于理宗景定二年袭总管,传十二世,明太祖壬戌洪武十五年平云南,擒段世,并段段明之二子苴仁、苴义。赐苴仁官雁门卫镇抚,苴义官武昌卫镇抚,段氏之世土方绝,而又别封其族人段保为大理府云龙州土知州。国朝尚有袭土职者。
|
|-
|}
=== Titles and Official System of Nanzhao《南诏称谓官制》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Titles and Official System of Nanzhao《南诏称谓官制》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南诏称帝曰骠信,王曰诏,自称曰元,称后曰信么,亦曰九么,妃曰进武,兄曰容,弟曰钟,下曰昶。其设官则有把国事八人,曰坦绰,曰布燮,曰九赞,谓之清平官。曰酋望,曰正酋望,曰员外酋望,曰大(将军)〔军将〕,曰员外。又设九爽之名,爽,省也。功爽主官人,宗爽主户籍,万爽主财用,慈爽主礼,引爽主宾客,幕爽主兵,罚爽主刑,厥爽主工作,禾爽主商贾,皆清平官、酋望、大军将兼之。以清平官子弟为羽仪长八人,清平官见王不得佩剑,惟羽仪长佩之。又有六曹长二人,曹长有功升大军将,凡十二人。又立三托:巨托主仓廪,气托主马,禄托主牛。大府主将曰演习,副曰演览;中府主将曰缮裔,副曰缮览;下府主将曰澹酋,副曰澹览;小府王将日幕撝,副曰幕览。每府有陀酋,陀酋卽掌书记判官之类。外有八节度使:日弄栋节度使,今楚雄府姚州。曰银生节度使,今景东厅及鎭沅州地是。曰永昌节度使,今永昌府是。曰丽水节度使,今丽江府是。曰剑川节度使,今丽江府剑川州是。曰东川节度使,今东川府府是。曰通海节度使,今临安府通海县是。曰拓东节度使。今云南府昆阳州北平定乡,蒙氏子凤伽异曾筑城于此地。又有二都督:曰会川都督,今四川宁远府会理州地是。曰通海都督。又设十睑,蛮语谓州为睑。苴音斜。羊睑,又名羊睑,卽今大理府太和县。赵州睑,今大理府赵州。白崖睑,又名勃弄睑,今赵州之白崖。,云南睑,今大理府云南县。蒙舍睑,今蒙化厅。大厘睑,又名史睑,今太和县喜州。邆川睑,今大理府邓川州。品澹睑,蒙秦睑,矣和睑。三睑未详其地。○蔚按:别本十睑中苴羊睑、赵州睑、白崖睑而下,作义督睑,今剑川州;威远睑,今普洱府威远厅南;河东睑,末详其地;越睑,今永昌府腾越州;北方睑,又名成偈睑,今永北厅;楼头睑,今四川叙永厅,属永宁县;路睑,今楚雄府广通县;与云南睑以下七睑异。○按:又考此七睑中,其越睑、北方睑、楼头睑、路睑凡四睑,见于『汉地里志』及『唐书?南蛮传』中,睑并作赕,音闪,字旣不同,音又各异,似非列于十睑之数。凡人丁壮者皆为战卒。王之亲兵曰朱弩佉苴,音蛆。按:元微之白乐天乐府皆作佉嗟,未审孰是。佉苴,韦带也。每兵百人置罗苴子统一人,戴朱鞮鍪,负犀革铜盾而跣足。自大军将以至曹长,皆系金佉苴尚绛紫,有功加锦,又有功加金波罗。卽虎皮。民兵号白衣,凡民兵出以望苴蛮为先驱。
|
|-
|}
===Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|因远部。威远睑治,其地总名和泥,今元江府是。休腊部。今临安府河西县。嶍峨部。今临安府嶍峨县。屈中部。今临安府阿迷州。溪处甸部、伴溪落恐部。今倶为长官司,属临安府。铁容甸部。今为亏容长官司。官桂思陀部。今为思陀甸长官司,皆属临安府。王弄部、强现三部。今属开化府。师宗部。今广西州师安县。弥勒部。今广西州弥勒县。吉输部、袖恶部。倶在弥勒县地。维摩部。卽广西府维摩州。州裁,今属广西州地。罗雄部。今曲靖府罗平州。纳垢州。今曲靖府马龙州。落温部。今曲靖府陆凉州。磨弥部。今曲靖府沾益州。仁德部。今曲靖府寻甸州。夜苴部卽曲靖府亦佐县,县裁,今归罗平州。强宗部。卽澄江府阳宗县,县裁,今归河阳县。步雄部。今澄江府江川县。罗伽部。卽步雄部分地。休制部。今澄江府新兴州。落蒙州。今澄江府路南州。弥沙部、邑市部。皆落蒙部子孙分治之。阳城堡部。今云南府晋宁州。罗部。今云南府罗次县。乾矢部、罗婺部。倶在武定府曲州,州裁,今属武定州。华竹部。今武定州元谋县。洪农碌券部。今武定州禄劝县。掌鸠法块部在禄劝县城东五里。○以上三十五部在迤东地。白鹿部。今楚雄府。谋统部。今丽江府鹤庆州。○以上二部在迤西地。
|
|-
|}
==Nanzhao through the Generations《南诏历代》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Nanzhao through the Generations《南诏历代》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|白古记:西天天竺摩竭国阿育王骠苴音斜。低娶欠蒙亏为妻,生低蒙苴。苴生九子,长子蒙苴,附罗十六国之祖;次子蒙苴廉,吐蕃之祖;三子蒙苴诺,汉人之祖;四子蒙苴酬,东蛮之祖;五子蒙苴笃,生十二子,七圣五贤,蒙氏之祖;六子蒙苴托,狮子国之祖;七子蒙苴林,交趾国之祖;八子蒙苴颂,白子国仁果之祖;九子蒙苴閦初六切。白夷之祖。○『哀牢今永昌府。夷传』:哀牢蛮蒙伽独捕鱼易罗池在永昌府城南。溺死。其妻沙壹一作壶。往哭之水边,触一浮木,有感而妊,产十子。后携子至池上,木化为龙,人言曰:「我子安在?」九子惊走,独季子背龙而坐,龙舐其背。蛮语谓背为九,坐为隆,故名之曰九隆氏。哀牢山一名天井山,在永昌府。下有妇名奴波息,生十女,九隆弟兄娶之,立为十姓:董、洪、段、施、何、王、张、杨、李、赵,皆刻画其身象龙文,于衣后著尾。子孙繁衍,居九龙山山在永昌府城南。溪谷间,分九十九部,而南诏出焉。
|
|-
|}
===Shanchan Guo《鄯阐国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shanchan Guo《鄯阐国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周时立国,年代久远,其姓名世次莫考。
|
|-
|}
===Baiya Guo《白崖国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baiya Guo《白崖国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|西天天竺摩竭国阿育王低蒙苴第八子,蒙苴颂居白崖,因地名,号白崖国,传世莫考。后昆弥氏继之,号昆弥国。
|
|-
|昆弥国一名拜国。
|
|-
|昆弥氏,传世姓名莫考。战国时,楚将庄蹻据滇,并有其地,号滇国。
|
|-
|}
===Dian Guo《滇国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dian Guo《滇国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|战国时,楚顷襄王命将庄蹻范蔚宗后汉书作庄豪。将兵循江上,略巴、蜀、黔中以西,蹻至以兵威畧定滇地属楚。欲归报,会秦司马错攻楚,黔中道塞。蹻遂以其众王滇,号滇国,踞之。后有王常羌者好佛,国势不振。法令不行,国人遂推白崖国蒙苴颂之后,白饭王之裔仁果为王,治白崖,于是两国角立。后仁果奉汉,封为白子国。
|
|-
|}
===Baizi Guo《白子国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baizi Guo《白子国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|汉武帝通西南夷,遣使至滇,求身毒国。滇王常羌问使者曰:「汉孰与我大?」使者还报,武帝怒其言不逊。时白崖国蒙苴颂之后,天竺国白饭王之裔仁果者,为众所推立于白崖。武帝乃册封仁果为王,号白子国。后迁于澄江,今澄江府。迨龙佑那继之,号建宁国。○又一说:白子国之先,有阿育国,王能乘云,上天娶天女,生三子,长季二子封于金马、碧鸡,独封仲子于苍洱之间,崇奉佛敎,不茹晕,日食白饭,人因称为白饭王。迨后有仁果者,汉封为滇王,号白子国。又十五世至龙佑那,后汉诸葛武侯南征,次白崖,以佑那为酋长,赐姓张氏,仍统其民,号建宁国。
|
|-
|}
===Jianning Guo《建宁国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|后汉后皇帝乙巳建兴三年,益州耆帅雍闓,假鬼术杀建宁太守王昂,归东吴,吴王孙权以闓为永昌守。后汉诸葛武侯南征,至白崖,杀雍闓,擒孟获,乃封白子国王仁果十五世孙龙佑那为酋长,赐姓张氏,于白崖筑建宁城,蔚按建宁城废址在今大理府赵州之弥渡。号建宁国,立铁柱蔚按:今弥渡有铁柱宫,铁柱尚存。先为建宁国王张乐进求甫铸,后南诏蒙世隆复重铸,名曰天尊柱,高八尺。并『南中纪功碑』,铭其背曰:「万岁之后胜我者过此」。迨至隋时,行军总管太平公史万岁征南宁夷爨玩,西破三十馀部,至此,见其碑铭,命左右踣之。其碑跌,中复有志曰:「史万岁不应踣吾碑」。万岁惊异,复树碑,祭拜而去。后张龙佑那仍迁国澄江,传三十二世至十七世孙张乐进求,唐太宗己酉贞观二十三年封为首领大将军。后见蒙舍川蒙细奴罗有奇相,遂妻以女,逊国与之。奴罗自称奇嘉王,建号大蒙国,又称南诏。
|
|-
|}
==Nanzhao《南诏国》==
===13 Generations of Nanzhao 《南诏大蒙国传十三世》 ===
{| class="wikitable" style="text-align:center; width:80%;"
|+ 13 Generations of Nanzhao 《南诏大蒙国传十三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|细奴一作农。逻一作罗。 伪谥高祖奇嘉王
|
|-
|细奴逻,又名独罗消,西天天竺摩竭国阿育王低蒙苴第五子蒙苴笃之三十六世孙。生有奇相。唐太宗贞观初,其父舍龙尨,又名龙伽独,将奴逻自哀牢避难至蒙舍川,耕于巍山。今蒙化厅之巍宝山。一日,有老僧,美髯,冠赤莲冠,披袈裟,持钵至奴逻家乞食。时奴逻与子逻盛炎方耕巍山之下,其姑与妇将往饁。见僧乞食,遂食之。再炊往饁,僧坐不去。姑妇持饷中道,僧已在彼,复乞食,姑妇又食之。返而复炊,持饁至巍山,则见僧坐盘石上,前有靑牛,左白象,右白马,上覆云气。云中二童子,一执铁杖于左,一执方金镜于右。姑妇惊喜,复以所饷供之。僧问何所愿?姑妇不知对。僧曰:「奕叶相承」。及趣奴逻等至,则但见一人持钵,坐五色云中,而盘石上惟馀衣痕及牛象马之迹耳。奴逻素有祥异,会唐封首领大将军建宁国王张乐进求,以诸葛武侯所立白崖铁柱,岁久剥蚀重铸之。因社会祭柱,柱顶故有金镂鸟,忽能飞,集奴逻左肩,相诫勿动,八日乃去。众骇异,谓天意有属。进求遂妻以女,举国逊之。于唐太宗己酉,贞观二十三年卽位,年三十二岁,建号大蒙国,称奇嘉王,据南诏。高宗庚戌永徽元年,建都蒙舍川,于巃{山+于}山在今蒙化厅西北三十五里。筑巃山+于城。永徽癸丑四年,遣逻盛炎入朝唐,诏授奴逻为巍州今蒙化厅刺史,赐以锦袍。大勃弄今大理府赵州白崖。酋杨承顚寇麻州,在今曲靖府马龙州城北里许。唐命郞州唐贞观初,分牂牁郡北界置郞州,后改名播州,卽今贵州遵义府。又有郞州,在今云南县地。道行军总管赵孝祖讨之。孝祖先入小勃弄,今云南县地。酋长没盛迎战,孝祖斩之。进至大勃弄,攻其城,破之,擒杨承顚,改云南县为匡州,领勃弄、匡州二县。高宗显庆二年,凤鸣于浪穹罗浮山,乃改名为凤羽山,在大理府浪穹县西南三十里,又名鸟吊山。见『水经注』。封十二圣贤为十二山神。时澄江人波罗旁有经济才,用为文臣;郭郡矣素以勇略闻,用为武臣。又有杨波远者,相传为东汉时人,常骑三角靑牛,号神明大士,能知盐泉,滇中盐泉多为波远所开创。奴逻在位,遵唐正朔。高宗甲戌上元元年,奴逻卒,在位二十六年,子逻盛炎立。
|
|-
|逻盛炎又名逻晟。伪谥世宗兴宗王。
|
|-
| 逻盛炎。唐高宗甲戌上元元年卽位,年四十岁,以张建成为相。明年,盛炎临朝,元宗壬子先天元年,姚州蛮叛归吐蕃。唐命御史李知古讨之,筑城立州县。知古诛豪杰,掠子女,蛮怨,引土蕃,攻杀知古,于姚嶲路绝,而盛炎独奉唐正朔。是年,盛炎卒,在位三十九年,子盛逻皮立。
|
|-
|}
===Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|盛逻皮,唐元宗壬子先天元年卽位,年四十岁。明年为元宗癸丑开元元年,唐授逻皮为特进,封台登郡王今四川宁远府冕宁县地。设官征商税。开元二年,遣张建成入朝于唐。立土主庙。开元九年,皮叛唐。开元十四年,立庙祀晋右将军王羲之为圣人。元宗戊辰开元十六年,逻皮卒,在位十六年,子皮逻阁立。
|
|-
|皮逻一作罗阁石刻作归义王魁乐觉封云南王。
|
|-
|皮逻阁,唐元宗戊辰开元十六年卽位,年三十一岁。开元十八年,灭五诏,自称南诏王。先是,蒙氏恐三十七蛮部不服,选亲族为五诏。未几五诏抗命,逻阁遂赂剑南节度使王昱,求合六诏为一。昱奏于朝,许之。逻阁乃豫建松明大楼,祀祖于上。使人谕五诏曰:「六月二十四日乃星回节蔚按『大理郡志』汉元封间,叶楡妇阿南者为酋长,曼阿娜之妻。娜为汉将郭世忠所杀,欲妻南。南曰:能从三事,当许汝一作幕次祭故夫;一焚故夫衣,易君新衣;一令国人皆知我以礼嫁。忠如其言。明日,聚国人张松幕祭其夫。下置火,南藏刃出,俟火炽焚夫衣,卽引刀刃自断其颈,仆火中,时六月二十五日也。国人哀之,故岁以是日燃炬吊之,名为星回节云。是又当为二十五日。当祭祖,不赴者罪。」四诏听命。惟越析诏波冲之兄子于赠,远不赴会,而邆赕诏丰哶孙{辵+皮}逻邆之妻慈善者,止逻邆勿赴。邆不听。慈善不得已,以铁钏穿于邆臂而行。二十四日,逻邆及施浪诏施望欠弟施望千、浪穹诏丰时孙锋罗望、蒙嶲诏嶲辅子罗原皆至逻阁所。逻阁偕登楼祭祖,祭后享胙食生饮酒,迨晚,四诏尽醉。逻阁独下楼,焚钱遽纵火,火发,兵围之,四诏皆焚死。逻阁遣使至四诏所,报焚钱失火,四诏被焚,状令各诏收骨。四诏妻至,莫辨其骨。独慈善因铁钏得焉,携归葬之。逻阁旣灭四诏,取各诏宫人,念慈善慧而甚美,遣兵围其城,迫取之。慈善曰:「吾岂忘夫事仇者?」闭城坚守,半月城中食尽,慈善度不能支,卽自杀,时七月二十三日也。逻阁嘉其节,乃封赠为宁北妃,并旌其城曰德源城。城废址在今大理府邓川州城东北二里许。开元戊寅二十六年,逻阁破吐蕃及弥蛮,入朝,元宗礼之,加封为特进,云南王,越国公,开府仪同三司,赐名归义,并锦袍金钿带七事。王归国,以兵逐洱河蛮,筑太和城,今大理府城南十五里太和村地是。又筑大厘城今大理府城北四十里喜州是。守之,尽有云南之地。唐授王子阁逻凤右领军卫大将军兼阳瓜州刺史。开元二十七年,明矫叛,破剑川、浪穹、永昌。开元二十八年,王讨朋矫,平之。开元辛已二十九年,王自蒙舍川迁居太和城,立龙首、卽今上关。龙尾卽今下关。二关。唐加阁逻凤为左领军卫大将军。元宗癸未天宝二年,筑羊苴哶城于太和城之北。卽今大理府城。唐迁阁逻凤为左金吾卫大将军,寻拜特进都知兵马大将军。天宝甲申三载,西方进狮子皮。唐加阁逻凤为上柱国。天宝乙酉四载十月,城永昌。天宝丙戌五载,王遣孙凤伽异入唐,唐授伽异为鸿胪少卿,妻以宗室女,赐龟兹乐一部,元宗戊子天宝七载,王卒,在位二十年,子阁逻凤立。
|
|-
|阁罗凤一作觉乐凤。按:『德化碑』云:「家居阁罗凤」,则是取地名以为名也。袭封云南王,伪谥神武王。始建元。
|
|-
|
阁罗凤,唐元宗天宝戊子七载卽位,年三十六岁。唐遣中使黎敬义持节册凤袭封云南王,敕置阳瓜州于蒙舍川,加授
凤伽异为上卿兼阳瓜州刺史,都知兵马大将军。天宝庚寅九载,王率妻子往谒都督李宓,过云南,太守张虔陀私之,又多徵求。王表虔陀之罪,中官贾奇俊抑之,不得达。王复遣将军杨罗顚等连表控告。元宗仍不省。凤怒,遣大将军王毗双、罗时等发兵攻虔陀。虔陀饮鸩死;遂取姚州,并夷州三十二。获唐嶲州西泸令郑回以归,爱其才,用为清平官。天宝辛卯十载,唐命剑南节度使鲜于仲通将兵八万征云南。凤赴泸南在楚雄府姚州之城北一百五十里。谢罪,愿还所俘掠,请罢兵。仲通不许,分三道而进。仲通自南溪路,大将李晖自会同路,都督王知进自步头路。今临安府地。凤就安宁,再伸衷悃。仲通不听,兵至曲州、靖州。二州今为曲靖府地。凤复遣首领杨子芬、参军江如之赍状,言若不罢兵,卽当归吐蕃,恐云南非唐有。仲通终不许,囚其使,进薄白崖城。别遣大将王天运统师绕出点苍山后。凤遣
凤伽异及大军将段俭魏迎山后师,自逆战于西洱河。唐兵大败,死者六万人,王天运战殁,仲通仅以身免。凤乃叛唐,建元长寿。遣弟阁陂和尚及子铎传、酋望赵佺邓、杨传磨侔等,并子弟六十人献凯吐蕃。陂有神术,人马往来吐蕃,不过朝夕之顷。天宝十一载正月一日,遣宰相倚祥叶乐持金冠、锦袍、金宝带、金帐状、安扛伞鞍、银兽器皿、珂贝、珠毯、衣服、駞马、牛鞻等物至邓川,以凤为兄弟之国,册为赞普钟南国大诏,给金印,称东帝。并授凤伽异大瑟瑟告身,都知兵马大将。凤遂改是年为赞普钟元年。发人口百户于浪穹,筑白崖睑城,又遣兵攻掠安宁。天宝甲午十三载六月,唐命前云南郡都督兼侍御史剑南留后李宓、广府节度使何履光等,率十道兵再征云南。兵逼邓川,凤遣凤伽异、段俭魏迎战于江口。时神川都知兵马使论绮里徐救兵已至巴蹻山,遂诱宓深入,内外夹击。宓粮尽,士卒饥疲,引还。凤以精兵追战,唐全军覆没,李宓被执,沉江死,何履光遁去。凤因进取嶲州会同郡,据清溪关,以破越析。此二役也,皆凤弟阁陂和尚及凤妃白氏行妖术,展帕拍手而笑,韩陀僧用钵法,以故唐兵再败。时唐先后丧师已二十馀万,凤乃敛战胔,筑京观于龙尾关河尾,名万人冢,立碑大书「唐天宝战亡士卒之墓」。而唐宰相杨国忠更揜败以捷闻,叙战功。令清平官郑回撰『德化碑』,唐流寓御史杜光庭书。立石太和国门外,明其不得已叛唐归吐蕃之故。天宝乙未十四载冬十一月,东平郡王安禄山反于范阳,凤乘机以兵取蜀卭州,筑卭子城,及丽水金宝城。升段俭魏为清平官,赐名忠国,旋拜相国。代宗甲辰广德二年,羊苴哶城成,凤名之曰大理城,又名紫城。代宗乙巳永泰元年凤伽异筑云南城卽今云南府省城。又筑拓东城,今云南府昆阳州北平定乡。遂以兵攻陷曲靖。代宗丁已大历十二年,永昌牛生三角,羊生四角,鸡九足,井有光。建观音寺于白崖。先是,逻盛炎时,相国张建成欲于白崖建寺,卜之吉。又地下有三戳观音,上截在西,中截在东,下截在东南。因盛炎旋卒,不果建。至是建寺,掘之果然。代宗戊午大历十三年,阁罗凤卒,在位三十年。因子凤伽异先死,后追谥悼惠王。孙异牟寻立。
|
|-
|异牟寻改国号曰大理国。封云南王,又封南诏王 伪赠廪孝桓王
|
|-
|异牟寻,唐代宗戊午大历十三年卽位,年二十四岁。明年改元见龙,又改上元,率兵三万取蜀为东府,又连土番入寇。唐命神策都将李晟击破之。师还,自称南诏王。德宗甲子兴元元年,牟寻迁居史城,卽大厘城。改号大理国,自称日东王。封岳读,以叶楡今大理府。点苍山为中岳,乌蛮今东川府。乌龙山一名绛云弄山,在今禄劝县东北三百里。为东岳,银生府今景东厅。蒙乐山一名无量山,在厅北九十里。为南岳,又封南安州今楚雄府属。神石亦为南岳,越赕今永昌府腾越州。高黎贡山一名昆仑隅,在腾越、潞江之间。为西岳,嶲州今丽江府是。雪山一名玉龙山,在府西北二十里。为北岳。封金沙江源出吐蓄旄牛徼外犂牛石下,本名犂牛河,又名犂水,讹为丽水。经丽江府、鹤庆州、姚州而东北达于四川马湖府之马湖,卽『山海经』所谓若水。『水经注』云:若水经云南之遂久县,卽今金沙江巡检司地。昔黄帝长子昌意德劣,不足绍承天位,降居斯水为诸侯,娶蜀山氏女,生颛顼于若水之阳,疑卽其地也。祀在武定州,兰沧江源出吐蕃鹿石山下,本名鹿沧,又名兰沧。兰沧讹为浪沧。自丽江府度云龙州至永昌府,东经顺宁府,达于车里,过交趾地而入于南海。祀在丽江府,黑惠江在顺宁府之东入狼沧江,而达于南海。祀在顺宁府,怒江源出西域雍望,奔流而下,深不可测。夏月多瘴,经怒夷地入丽江府境野人界。至永昌府境,乃名潞江。祀在水昌府,为四渎,各建神祠。又立三皇庙。德宗丙寅贞元二年,设官立九爽三托。考疆域,其地东至于铜柱、铁桥、蟠桃、玉楡,东南至于交趾国,南至于骠国,西南至于木落山,西至于太石,西北至于吐蕃,北至于神川,东北至于黔巫。八分之地,属以八演,皆中国降人为之经画者。贞元丁卯三年,寻居大理城。命子弟师事郑回。时寻苦吐蕃徵求无厌,会李泌劝德宗招云南以断吐蕃右臂。帝从之,命韦皋为西川节度使,皋受命招抚群蛮。郑回因说寻归唐,寻以为然。皋遣谍者致书于寻,吐蕃知而疑之,乃责南诏大臣为质。寻愈怨。于是,决计归唐。皋以闻,德宗乃命皋作书谕寻。是年四月,吐番破蜀,来征兵,蔚按:卽吐蕃劫浑瑊清水盟之岁。寻谢绝之。贞元五年,寻遣乌蛮勿邓大鬼主苴梦冲、两林都大鬼主直那时聘于皋,因入朝。皋遣其属崔佐时报之。时吐蕃使数十人先在,佐时至,寻令更衣入。佐时不可,曰:「天朝大使。岂衣夷衣?」寻不得已,夜迎之。佐时至,大宣诏旨,令寻斩番使,去其所立之号。寻遂与佐时盟于点苍山下。贞元九年,寻遣使上表,请从韦皋袭吐蕃。诏册封为云南王,以韦皋为云南安抚使。王遣使诣皋,献夷中歌。贞元十年,吐蕃徵兵于王,王阳示寡弱,以兵三千应之,自将数万人踵其后。正月,袭吐蕃,战于神州,断铁桥,在巨津废州,今丽江府西北地。取十六城,俘其五王,降众十馀万,获军资甲仗无算。遂遣弟凑罗栋、清平官尹仇宽献捷于唐,并献地图、纳贡及吐蕃所给金印,请复号南诏。于是,唐以祠部郞中袁滋为中丞,赐金紫充册使。赐王银窠金印,印文曰:「贞元册南诏印」。王北面跪受。宴使者,出元宗天宝五载所赐王父凤伽异银跳脱马头盘数物,并指老笛工、歌女曰:「皇帝所赐龟兹乐,惟二人在耳!」使者日:「南诏世荷唐恩,当深思祖考子孙勿替,尽忠皇唐。」王对曰:「敢不敬使者之命。」随遣清平官尹辅首入谢,献铎鞘、郁刀、生金、瑟瑟、牛黄、氎、纺丝、越赕绕伦马。蔚按:铎鞘,疑当作择矟,状如残月,有孔旁达,出丽水,饰以金,月祭之血,所击无不洞。段柯古『酉阳杂俎』云:南蛮有毒槊无刀刃,状如朽铁,中人无血立死。言自天而下,入地丈馀,祭地乃掘得之,云云。疑卽铎矟,毒为铎字之讹,槊字本同矟宇也。郁刀铸时以毒药并冶,取莹耀如星者,凡十年乃成,淬以马血,镂金犀饰镡首,伤人卽死。因浪人所铸,又名浪剑,夷中甚宝之。七月,又攻吐蕃,并破施蛮、顺蛮,施蛮、顺蛮卽施浪、浪穹二诏之后,自南诏并吞五诏,五诏之后不复称诏,止称蛮。俘其王置白崖城。贞元十二年,取越赕,置软化城。贞元十四年,请以大臣子弟质于朝,韦皋却之。固请,乃尽舍成都,遣就学。贞元十五年,王开白国北方赕地,今永北厅。徙弥河白蛮及罗落摩蛮实之,号剑羌。是年,王从韦皋再败吐蕃于铁桥。初,王谋击吐蕃,以邆川、卽今邓川州。宁北卽今浪穹县。等城当寇冲,乃峭山深堑,修战备。至是吐蕃谋袭南诏,王告于皋,遣将屯黎州、嶲州以应之。吐蕃引兵攻嶲州,皋严兵以守,别遣将袭击,降其帅,吐蕃惧,退至铁桥。王令人毒其水,吐蕃人马多死,退屯三泸水,王与皋部将杜毗罗击败之。贞元十六年,王率子寻阁劝入朝于唐,召对延英殿,进奉圣乐舞,德宗御麟德殿观之。贞元十七年,王夜绝泸水,斩吐蕃屯卒,又合鬼主破之于泸西。吐蕃大惧,欲悉师收嶲州,以绝南诏。王谓韦皋曰:「吐蕃声取嶲州,实窥云南,请进军羊苴咩城。」皋督诸将分道与王会,陈兵深入,拔木波城。前后凡克城七,焚堡百五十所,斩获无算,生擒论莽热,献于唐,并进铠甲十五万。皋班师,帝遣中使慰抚王。王自是比年贡方物,唐帝深礼之焉。贞元十九年,王封云南金马碧鸡二山之神为景帝,建妙音寺塔,筑大理雪峰长城。宪宗戊子元和三年七月,王卒。唐遣使祭吊,在位三十年,子寻阁劝立。
|
|-
|寻阁一作觉劝又名新觉劝。 袭封南诏王 伪谥孝惠王
|
|-
|寻阁劝,唐宪宗戊子元和三年卽位,年三十一岁。唐册劝袭封南诏王,赐元和金印。宪宗己丑元和四年正月,改元应道,群臣上尊号曰骠信,以鄯阐为东京,大理为西京,重修曲靖崇真寺。寺为晋代所建。十一月王卒,在位一年。子劝龙晟立。
|
|-
|}
===Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝龙晟,唐宪宗己丑元和四年卽位,年十二岁。唐册袭封南诏王。明年,改元龙兴。铸佛三尊,送佛顶峰寺,用金三千两。元和九年,晨寇嘉定州,有飞天神兵破之。先是,节度使杜元颖守成都时,时滇兵至嘉定之沐源州,忽自惊溃。蜀军获一夷卒问之,云适见遍山神兵,一神将长斧坐二鬼上,声若迅雷,故尔惊走。至是神复现形,自后追杀,卽时死酋长二人。盖嘉定向有飞天神庙,两破滇兵者,皆此神也。宪宗丙申元和十一年,晟淫虐失道,弄栋节度使王嵯巅弑之,时年仅十九岁,唐命少监李铣祭吊,在位七年,弟劝利立。
|
|-
|}
===Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝利,唐宪宗丙申元和十一年卽位,年十五岁。唐册袭封南诏王。王嵯巅东寇。明年,改元全义。元和十三年,厚赏王嵯巅,赐姓蒙,封太容。元和十四年,废王嵯巅,赦其罪,命敬信三宝,为清平官。元和十五年,又改元大丰。重修崇圣寺。五月,大雨霖,龙首、龙尾二关倾。除洱河水怪,建龙屋塔。高十二丈。按:『白古记』:唐时洱河有妖蛇,名薄劫,兴大水淹城。蒙国王出示:有能灭之者,赏半官库,子孙世免差徭。部民有段赤城者愿灭蛇,缚刃人水,蛇吞之,人与蛇皆死,水患息。王令人剖蛇腹,取赤城骨葬之,建塔其上,毁蛇骨灰塔,名为灵塔。在今大理府城南龙尾关内点苍山马耳峰下羊皮村。每年有蛇党起风来剥塔灰。时有谣曰:赤城卖硬土。今『龙王庙碑』云:洱河龙王段赤城云。永昌生两头牛。穆宗甲辰长庆四年,赐南诏王金印。是年王卒于东京,在位八年,弟丰佑立。丰佑慕中国之风,独不肯连父名。丰佑石刻作劝丰佑 册封滇王 伪谥昭成王
|
|-
|
丰佑,唐穆宗甲辰长庆四年卽位,年七岁。唐遣京兆少尹韦审规持节册封为滇王。王遣洪成酋等人谢。明年,改元保合,又改元天启。西僧赞陀啒哆建鹤庆元化寺。先是,鹤庆地水淹,僧杖刺东隅泄之。水中得樟木,刻为佛,咒之忽灵,远近名曰活佛。按:活佛,后至明成化间,福建莆田林俊为云南宪副闻之,亲至寺中,将佛火之,得金数百两入官,又毁他寺三百,人呼为林劈佛。建常平仓,筑邓川城。敬宗乙巳宝历元年,重修大理崇圣寺一名三塔寺。成先是,王嵯巅广寺基方七里。圣僧李成眉贤者建立三塔,高三十丈。佛一万一千四百,屋八百九十,铜四万五百九十筋。元和十五年经始,至是工竣。塔顶旧有铁柱款识云:「贞观六年尉迟敬德监造」,盖寺之建久矣。重修云南东寺塔,高百五十尺,西寺塔高八十尺,二寺亦贞观间将作大匠尉迟敬德所建。文宗丁未太和元年,王母出家,法名惠海。太和二年,用银五千,铸佛一堂,废道敎。太和己酉三年,僧梦岛造永昌卧佛,长丈六。六月朔,星落如雨。命王嵯巅等寇蜀。先是,西川节度使杜元颖失士卒心,军逃入南诏,因此知蜀虚实。佑遂遣嵯巅等攻蜀,陷嶲、戎、卭三州,攻成都,止西郛十日,掠经书、宝货、子女无算,蜀中残敝。并寇梓州、蜀州。佑上表于唐,请诛元颖。唐改云南为鄯阐府。卽今云南府省城。太和四年,唐贬杜元颖循州司马,以义成节度使李德裕为西川节度使。裕至西川,建筹边楼,日召习边事者访问,凡山川险要,南道与蛮相入者图之左,西道与吐蕃相接者图之右,不啻身尝经历焉。乃奏请留北兵以重镇守,修甲胄、备器械。率户二百取一人习战,作雄边子弟等十一军。筑仗义、御侮、柔远诸城以扼要害,复卭崃关,徙嶲州治台登,以夺蛮险。令转卭、雅粟以十月而运,先夏而至,人不苦瘴,边境始安。至是使人于佑,责归所俘。太和五年五月,佑归所俘西川四千人于德裕。太和六年,佑掠骠国民三千,徙之拓东城。武宗乙丑会昌元年,佑遣军将晟君筑横渠道自磨用江至于鹤拓,灌东皋及城阳田,与龙佉江合流入于河,谓之锦浪江。又潴点苍山玉局峰顶之南为池,谓之高河,又名冯河。更导山泉共泄流为川,灌田数万顷,民得耕种之利。会昌六年九月,佑攻陷安南,经略使裴元裕死之。宣宗丁卯大宗元年,佑妃卒,佑郁郁不乐,臣下请选妃女备后宫。得罗部今云南府罗次县。一美女进之,有宠。女好佛,建罗次寺,至今灵异。六月大旱,佑令僧寿海祈雨。僧曰:「昔汤旱七年,六事自责,天雨七日。今王酒色妄杀,天怒不雨。王如改悔,天雨自至,何以祈为?」佑如僧言,自责自改,数日果雨。佑女至崇圣寺进香,回至城西,为一乘白马人摄去,寻之不得。佑告于西僧赞陀啒哆,哆曰此山神也。乃设灯照之,果在苍山下。哆怒欲行法,移山于河。山神惧,献宝珠供佛,佑乃已。大中十二年,佑遣段酋迁陷安南都护府。遣段宗榜救缅。榜,汤今云南府宜良县地。人,佑之勇将。先是,狮子国侵缅;屡求救,至是许之。按:缅甸卽汉之掸国,唐之骠国,其历代莫考。当宋元之时,屡败王师。明太祖洪武十年,缅头目招扳南进贡。十九年,使行人司钱古训赍诏立宣尉司。二十年,缅犯景东。二十一年,犯他郞甸,沐英命都指挥宁正平之。三月,犯定边,沐英同都督冯诚平之。景泰三年,王骥赏缅孟养地。缅喜,乃擒献麓川贼。嘉靖初,缅火烧赍金牌官,中终年猖獗海上,遂至难制。○考自永昌府腾越州入缅,止三十四程。腾越一日南甸、一日罗必斯、一日郞、一日甸头、一日甸尾、一日蒙腰、一日甸蓝、一日蒙怜路、一日空地、一日蒙来路、一日大市、一日龙江、一日锅地、一日人列渡、一日江头城、一日景怜、一日及、一日马来城、一日赖当、一日山头、一日甸头、一日阿只、一日吴细辰、一日折弓、一日阿越。由阿越下水,九日卽至缅城。其地有五大城,江头、太公二城之外,又有马来、安正国、蒲甘缅王三城。酋住金楼,民住竹楼。其下称酋为卜剌浪,称酋妻为米泼剌。酋出人乘轿,水有舟筏。官名有招孟、招彔、招刚三等。官无大小,倶金银花宝带。无弓箭。其水有金沙江,险恶,缅恃以为固。涸时,亦仅五里。俗敬佛,重罪对佛发誓,凭僧处断。○入缅又有三道:一由潞江西上;一由腾越七日至麓川;一由景东从木通甸至湾甸渡入芒市,十日至麓川。○此外从潞江上流蒙来渡至景乐沿河有小渡十馀处,皆可通。又有三道:一由天步马,一由湾甸,一由阿郊地界,皆可入缅。宣宗己卯大中十三年,陷播州。李德裕旣贬死,西川节度使所任皆非人,侥佯边功,发兵十万袭滇,自建昌入,佑命子世隆为坦绰,同王嵯巅迎战于古宗,今丽江府铁桥以北地。杀唐兵数万人,立铜柱于界上。世隆之母,佑妃也,出家号师摩矣。尝随佑至罗浮山白城,建一寺,南壁画一龙,是夜龙动,几损寺,妃乃复画一柱锁之,始定。按:妃本渔家女,喜浴。为妃后,仍常泛舟西洱河,屏人潜浴于水,感金龙与交,生世隆。隆七岁,拳握始开,有文在其掌曰:通番打汉。古宗之战,唐帝惧世隆为患,妻以宗室女,伺察其所为。女以世隆年庚潜送于帝。帝使太史推之,知其感龙精而生。是年,丰佑卒于东京,在位三十五年。子世隆立,以王嵯巅摄政。段宗榜救缅,回至腾越,闻佑卒,世隆立,嵯巅摄政,移书王嵯巅曰:「天启不幸,驾崩嗣幼,闻公摄政,国家之福。榜救缅以败狮子国。缅酬金佛,当得敬迎。奈中国无人,惟公望重。榜抵国门之日,烦亲迎佛,与国增光。」云云。嵯巅不知是谋,至日迎之。榜令巅拜佛,突斩之于佛前。讨其弑劝隆晟之罪也。榜熔佛得金数千两。时有缅人奉香火者在榜,默祝曰:「愿世代奉敬,今不如愿,惟愿世尊轮生,灭彼国祚。」后果生郑买嗣篡国,灭蒙氏。
|
|-
|世隆『唐书』作酋龙。 伪谥景庄皇帝僭称帝始此,以后郑、赵、杨、段、高五姓之国咸效之。
|
|-
|世隆,唐宣宗己卯大中十三年卽位,年十六岁。明年,为懿宗庚辰咸通元年,改元建极。改西京曰中都,东京曰上都。先是,德宗贞元间,西川节度使韦皋开道通南诏,令岁入贡。异牟寻、寻阁劝二世事唐唯谨,迨劝龙晟及丰[佑],又数数扰边,大为唐患。又以世隆之名犯太宗、元宗庙讳。唐不册封,隆益致怨望。至是自称皇帝,遣兵取乌蛮、僰、爨之地,置东川郡。前节度使杜悰变韦皋制度,侵扰蛮中。隆绝朝贡,寇播州。至是李福为节度使,隆遣清平官董成至成都,移书于福。成与福抗礼,福囚之。上闻,有诏释成,召至京师,见便殿,遣还。咸通二年,遣兵陷安南。左仆射同平章事杜悰言:「西川兵弱,南诏强盛,未可轻绝。宜遣使祭吊,谕令改名,行册礼。帝肯之。会隆复寇嶲州,遂止。咸通三年,隆亲寇蜀,取万寿寺石佛归。时高真寺僧崇模有神术,从征。军中乏粮,又値岁暮,士卒思归,僧咒沙成米,咒水成酒,士卒各醉饱。一日僧化蝶回国乱宫,世隆妻以书达隆。隆答曰:妖若再来,令宫人于其衣背绣蝶。后僧复至,宫人绣之。隆见僧衣有蝶,令斩之。刑七次,首不殊。僧自云:用茅锯之乃断。果然。人见僧魂化一黑鹏飞去,盖僧本高真寺鹏巢中所得之儿也。咸通四年,寇西川。咸通五年,陷安南、邕管。咸通六年,陷嶲州。咸通七年,复攻安南。岭南西道节度使高骈救之,隆兵大败,骈遂定安南。咸通十年,隆遣使杨酋庆等入朝,谢释董成之囚。归成都俘三千人。定边节度使李师望杀其使,隆怒,率众攻蜀,陷嘉州。咸通十一年正月,陷黎州,入卭徕关,围雅州,击卭州,遂进攻成都。次眉州,西川节度使卢耽畏众寡不敌,通使请降。继而唐遣东川节度使颜庆复、大将宋威等率兵来战。世隆败屯星宿山,宋威戍沱江。隆迎战于毗桥,不胜,趋沱江,中伏。城中又出突将,夜火隆营,夺升仙梁。隆大败,奔双流江,无梁以渡,乃伪请和,三日梁成而济。咸通辛卯十二年,立鄯阐王宫。咸通壬辰十三年,于白崖诸葛武侯所立铁柱之地,铸天尊柱,高八尺。蔚昔年曾至铁柱宫,其地界白崖、弥渡、蒙化三境之间。其柱刻字云:建极十三年岁次壬辰四月朔庚子十四日癸丑建立。咸通十四年,攻黔中。又寇西川,作浮梁济大渡河,防河兵马使黄景复伏兵,半渡击败之。会隆国中新兵继至,接战,景复败走。隆进兵陷黎州,入卭徕关。遂遣王保诚等四十人谩书诣剑南节度使牛丛,欲假道入朝,请憩蜀王故殿。丛囚其使三十八人,释酇咙及段酋迁二人还。隆乃退兵至新津而旋。僖宗乙未乾符二年,攻雅州。西川节度使高骈追至大渡河,大败之,俘酋长五十人,收复黎州、卭徕关,斩黄景复以狥。乾符三年,遣使诣高骈请和,不许,斩使者一人。隆怒,自是唐使至不拜,惟拜和尚。骈知之,乃遣僧景仙往谕公主事,隆乃下拜定盟。禧宗丁酉乾符四年二月,复寇蜀,高骈御退之。骈又结吐蓄尚延心嗢、末鲁褥月等为间,筑戎川州、马湖沭沐源川、大渡河三城,列屯拒险,料壮卒为平夷军。世隆气夺,因恚发疽,卒于越嶲景净寺,在位十八年,子隆舜立。
|
|-
|}
===Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆舜,唐僖宗丁酉乾符四年卽位,年十七岁。明年,改元贞明,又改元嵯耶、承知、大同,改国号曰大封民国。遣使于唐请和,诏许之。自劝龙晟至世隆以来,侵蜀伐安南,用兵五十馀年,帑藏不给,横敛于民,上下倶困。舜立,耽于酒色,委政臣下,故愿求和于唐,乃遣段宝诣岭南节度使辛谠,请修好。谠奏,许之,以息边患。乾符六年,遣使于唐求和亲,无表,只用牒,称弟不称臣。唐帝召百官议,礼部侍郞崔澹曰:「南诏无礼,恐贻后笑。」使者上书与澹争。帝谕解之。议者谓中国多故,南诏寖强,不若权与和亲。便从之。僖宗庚子广明元年春正月,唐命宗正少卿李龟年来和亲。僖宗辛丑中和元年,上表款附。中和癸卯三年,唐以宗室女为安化长公主,妻隆舜,僖宗乙已光启元年,遣宰相赵隆眉、清平官杨奇鲲、段义宗三人,朝唐帝行在,且迎公主。高骈在淮阳飞章上言:「三人南诏心腹。宜止而酖之。」唐帝从其言。隆眉等死,南诏遂不复振矣。是年昆仑国进美女,舜嬖之。光启二年地震,龙首、龙尾二关、三阳城皆崩。昭宗己巳乾宁四年,隆舜多内嬖,常信谗以诛其下,淫虐日甚。竖臣杨登弑之于东京,在位二十年,子舜化贞立。
|
|-
|}
===Shunhuazhen舜化贞 伪谥孝哀帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|舜化贞,唐昭宗丁巳乾宁四年卽位,年二十一岁。明年,改元中兴。上书于唐,朝廷欲报之。利州刺史王建上言:「臣在西南,彼必不敢犯塞,小夷何足辱诏书。」遂止。昭宗光化二年,立五学敎主。十一月,诛杨登,族其家。光化庚申三年,铸崇圣寺丈六观音,清平官郑买嗣合十六国铜所铸,蜀人李嘉亭成像。一说唐天宝间,崇圣寺有僧募造丈六观音像,未就。夜忽雨,旦视之,铜也,卽取以铸像。像成,白光弥覆凡三日夜,至今人称为雨铜观音。唐昭宗壬戌天复二年,舜化贞卒,一说实郑买嗣弑之。,在位五年。化贞有一子,生甫八月,郑买嗣主国事,遂启贞妻曰:「母后深宫,群臣无主,臣当抱太子临朝。」贞妻是其言,以子付之。买嗣抱子出,潜手伤其阴,子哭不已,乃送回宫中。明日,子死。贞妻疑而诘之,买嗣怀不安,遽起兵杀蒙氏亲族八百人于五华楼下,遂簒立焉。
|
|-
|按:蒙氏南诏大蒙国,自细奴逻禅立,起唐太宗己酉贞观二十三年,讫昭宗壬戌天复二年,传十三世,共二百五十五年。
|
|-
|}
==Dachanghe Generations《大长和国 传三世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dachanghe Generations《大长和国 传三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|郑买嗣又名。 伪谥圣明文武威德桓皇帝。
|
|-
|郑买嗣,又名,唐巂州西泸令陷南诏臣蒙氏,为清平官郑回之七世孙。
隆舜时历官侍中,权势日重。隆舜巡幸无度,留买嗣守国,遂专政柄。舜化贞时为相,化贞卒,嗣贼杀其子,簒蒙国,于唐昭宗壬戌天复二年十二月卽位,年四十二岁,国号大长和,仍都大理。明年,建元安国。后梁太祖开平丁卯元年,建普明寺。开平三年,铸佛一万尊,送寺祈福,为杀蒙氏八百人故也。开平四年八月,买嗣卒,在位八年,子仁旻立。
|
|-
|}
===Renmin 《仁旻 伪谥肃文太上皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|仁旻,后梁太祖庚午开平四年卽位,年二十二岁。明年,改元始元,又改元天瑞、景星、安和、贞佑、初历。末帝甲戌乾化三年,旻攻蜀。蜀高祖王建发兵拒之,旻兵大败,溺水使者万馀人。后唐庄宗癸未开同光元年,施宫寺灾,僧智照撰『封民三宝记』。同光二年旻以朱鬃白马求婚于南汉刘龑,龑以增城公主妻之。明宗丙戌天成元年八月,仁旻饵金丹,躁怒,常杀人,遂暴卒,在位十六年,子隆亶立。
|
|-
|}
===Longdan 《隆亶 伪谥恭惠帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆亶,后唐明宗丙戌天成元年卽位,年十二岁,明年,改元天应。明宗戊子天成三年,东川节度使杨乾贞入朝,弑隆亶而立赵善政,计亶在位二年。
|
|-
|按:郑氏大长和国,自买嗣簒位,起唐昭宗癸亥天复三年,讫后唐明宗戊子天成三年,传三世,共二十六年。
|
|-
|大天兴国一作兴源国。 一世
|
|
|}
==Dayining Generations《大义宁国 一世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Yang Qianzhen 《杨乾贞 伪谥肃恭帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|杨乾贞于后唐明宗己丑天成四年夺大天兴国赵善政之位,改国号曰大义宁国,建元兴圣,又改元大命。乾贞萂村人。今大理府宾川州所属地。母名弥彔,有美色,蒙隆舜私焉。有孕,适渔人杨氏,生乾贞,后又生诏。其父捕鱼,贞立船头,见水中有人龙衣冠冕,左右有凤鸟,白光拥护,乃呼父视之。父见是贞之影,大奇之。长仕郑氏,官至东川节度使。至是夺善政位而自立。贞在位,贪暴特甚,中外咸怨。后晋高祖丁酉天复二年,通海节度使段思平起兵讨之。贞遣弟杨诏等五人出拒。诏兵败,乾贞出奔。思平遂得位,寻赦其罪,废为僧。计贞在位八年。
|
|-
|}
==Dali Generations《大理国 传十四世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siping《太祖圣神文武皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段思平,其先武威郡北人,世为南诏蒙氏将。唐元宗辛卯天宝十载,及甲午天宝十三载,唐再伐云南,云南王蒙
阁逻凤命世子凤伽异、大军将段俭魏迎战于点苍山及西洱河,两败唐兵。以功升俭魏为清平官,赐名忠国,寻拜相,六传而至思平。其母因过江,水泛触浮木,若有感而娠,生思平,并其弟思良。思平为幕览,小府副将也。常游山中,得为帝之谶,又每多异徵。时东川节度使杨乾贞之弟杨诏者已贵,闻而忌之,使人贼思平。思平逃匿于崇恩寺,在大理府城南九里。捕者追至,见蛛网盈寺门,不入,故得脱。后积战功,使为通海节度使。后唐明宗己丑天成四年,杨乾贞夺赵善政之位。受诏之谮,常欲除思平。平卜于秀山神祠,就其舅爨判自匿。后晋高祖丙申天福元年,乾贞索捕思平甚急。会善政臣守高方,素与思平善,密遣人招思平。思平与其弟思良、军师董迦罗走就之。皆裂冠,变姓名,为猎者,牵一犬至品甸波大村今大理府云南县地。宿旅舍。舍有戟,生牛革裹之,是夜风起,戟忽洞革出。思平惊曰:「是何銛利?得非神戟乎!」问主人曰:「戟何为?」曰:「以防夜耳。」曰:「防夜莫若犬。」遂以犬易戟去。行至叶镜湖,湖在大理府云南县地得神马。饥取野桃而食,核上有虫啮「靑昔」二字,思平解为十二月二十一日,意其吉兆。于是急趋而前,借兵于东方黑爨三十七蛮部,会于石城,今曲靖府是。以董迦罗为军师。兵集之期,适十二月二十一日也。所向皆克,遂进攻大理,讨干贞。时诏等陈兵据桥,军不能过。思平夜忽得三梦:人无首;玉瓶无耳;镜破。觉而告其下。迦罗觧之曰:君乃丈夫,去首为天;玉瓶去耳为王;镜破则无对者,此神示吉兆。是日,有被缨浣沙妇,指渡处曰:「人从我江尾,马从三沙矣,尔国名大理。」从之,乃得过江,击诏等杀之。乾贞闻诏等军败,出奔。思平卽位,时天福丁酉二年也,年四十四岁。建号大理国,建元文德,仍都大理。天福三年封董迦罗为相国,封高方为岳侯,分治成纪、巨桥等地。封爨判为巴甸侯。祠秀山神,免东方三十七蛮部徭役,赦国中凡有罪无子孙者。天福四年,赦杨乾贞罪,废为僧。一说乾贞败后,挈其妻子奔永昌郡。思平遣兵追之,至万剑树,乾贞自缢而死。思平俘其妻子亲属。帝好佛,岁岁建寺,铸佛万尊。后晋出帝甲辰开运元年帝崩,在位八年,子思英立。
|
|-
|}
===Duan Siyin 《文经皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siyin 《文经皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思英,后晋出帝甲辰开运元年卽位,明年,为出帝开运二年,改元文经。帝母杨氏桂仙娘没而为神,屡著灵应,封为楡城宣惠圣国母。是年,帝叔思良争位,废帝为僧,法名宏修大师。在位一年,叔思良立。一说思英素不肖,思平在日,常欲废之,不果。迨卽位,愈淫戏无度,群臣废之,而立思良。
|
|-
|}
===Duan Siliang 《圣慈文武皇帝 太祖之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siliang 《圣慈文武皇帝 太祖之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思良,后晋出帝乙巳开运二年卽位,明年,改元至治。后周太祖壬子广顺二年,帝崩,在位七年,子思聪立。
|
|-
|}
===Duan Sicong 《思聪 伪谥至道广慈皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sicong 《思聪 伪谥至道广慈皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思聪,后周太祖壬子广顺二年卽位,明年改元明德,又改元广德。宋太祖乙巳开宝二年,思聪卒,在位十七年,子素顺立。
|
|-
|}
===Duan Susun 《素顺》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Susun 《素顺》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素顺,宋太祖乙巳开宝二年卽位。明年,改元明政。先是,宋太祖丁卯乾德五年春,王全斌平蜀,还京师,请取云南,负地图进。太祖鉴唐之祸,以玉斧画大渡河为界,曰:「此外非吾有也。」由是段氏得据南诏,相安无事。太宗乙酉雍煕二年,素顺卒,在位十六年,子素英立。
|
|-
|}
===Duan Suyung 《素英 伪谥昭明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suyung 《素英 伪谥昭明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素英,宋太祖乙酉雍煕二年卽位。明年,改元广明,又改元明应、明圣、明统、明治。太宗至道二年,述『传灯录』。真宗己酉大中祥符二年,素英卒,在位二十四年,子素廉立。
|
|-
|}
===Duan Sulong 《素隆 伪谥秉义皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sulong 《素隆 伪谥秉义皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素隆,宋真宗壬戌干兴元年卽位,明年改元明通。仁宗丙寅天圣四年素隆禅位为僧,在位四年。侄素贞真立。
|
|-
|}
===Duan Suzhen 《素真 伪谥圣德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suzhen 《素真 伪谥圣德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素真,宋仁宗丙寅天圣四年卽位,明年改元正治。仁宗辛巳庆历元年素真禅位为僧,在位十五年,孙素兴立。
|
|-
|}
===Duan Suxing 《素兴 伪谥天明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suxing 《素兴 伪谥天明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Lianyi 《廉义 伪谥上德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Lianyi 《廉义 伪谥上德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|廉义,宋神宗乙卯熈宁八年卽位。明年,改元上德。遣使入贡于宋。熈宁十年,又改元广安,作八龙王会。神宗庚申元丰三年,杨义贞杀廉义而自立。计义在位五年,自义贞弑其主廉义而自立,簒位仅四月,鄯阐侯高智升命子清平官高升泰起东方爨僰兵,讨而诛之,立廉义之侄寿辉。
|
|-
|}
===Duan Shouhai 《寿辉 伪谥上明皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
===Duan Zhengming 《正明 思廉之孙 伪谥保定皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
==Da Zhongguo Generations 《大中国》==
===Gao Shentai 《高升泰 伪谥富有圣德表正皇帝》====
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|高升泰,宋哲宗甲戌绍圣元年,受大理国段正明之禅卽位。改国号曰大中国。明年,改元上治。升泰,岳侯高方之裔,大理点苍山莲花峰下芒涌溪人。将生,其父袭岳侯,智升往石云寺在点苍山白雪峰麓进香回,遇一老叟云:「尔家将生贵子,可速归。」智升至家,而升泰适生,心颇异之。及长,有材器,仕为清平官,兼九爽之事,誉望日重。思廉出游,猝遇烈风,吹踣其马。廉将坠,智深跃前扶之。廉德智升,赐以宫人及珠玉。杨允贤(判)〔叛〕,廉命智升讨之,以功加太保,封德侯,旋晋鄯阐侯,世袭。及杨义贞簒逆,智升令升泰起东方兵,诛义贞而立廉义之侄寿辉。辉以智升为布燮,升泰袭鄯阐侯。辉在位灾异迭兴,因禅位于思廉之孙正明。明为君不振,人心归高氏。遂请升泰为君,而正明禅以位焉。哲宗丙子绍圣三年,升泰在位二年,寝疾。遗命曰:「我之立国,以段氏之弱,我死,必以国仍还段氏,愼勿背我。」及卒,其子高泰明遵遗命,还位正明之弟正湻。段氏复兴,号后理国。高氏相之,政令皆出其门,国人称为高国主,段氏拥虚位而已。
|
|-
|}
==Houli Guo Generations 《后理国》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhengchen 《段正湻 大理国正明之弟 伪谥中宗文安皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正湻,宋哲宗丙子绍圣三年复得国,卽位,号后理国。以高泰明为相国,执政柄,高泰运为栅主。明年,改元天授。又改元开明,天政,文安,赦徭役。筑楚雄城,在今楚雄府城西北二里。以封高泰明之侄高明亮。徽宗癸未崇宁二年,遣高泰运奉表入宋,求经籍,得六十九家,药书六十二部。鄯阐李观音得来朝,进金马杖八十节,人民三万三千户。湻赐得八章礼衣,龙头剑,擢为安东将军。蔚按:蒙氏时有安东将军,季李珠所筑安东城,在今大理府赵州城东二里。缅人、波斯、昆仑三国进白象及香物。十月,彗星见西方,大疫。徽宗戊子大观二年,正湻禅位为僧,在位十二年,子和誉立。
|
|-
|和誉又名正严 封云南节度使大理国王,伪谥宪宗宣仁皇帝
|
|-
|和誉,宋徽宗戊子大观二年卽位。明年,改元日新。又改元文治、永嘉、保天、广运。七月中元节,各方贡金银、罗绮、珍宝、犀象万计,牛马遍点苍。徽宗辛卯政和元年,地大震,损十六寺。三十七部判叛〕,高相国泰明讨平之。使四子高明清居鄯阐镇守。政和五年,缅人进金花、犀象。政和六年。遣儒官钟震、黄渐赍敕褒高泰朋相国忠贞,封平国公。是年,遣使入贡于宋。高泰明卒,封国师。泰明生八子,高智昌以罪流死。其下伊、何二人谋为执仇,乘誉入寺进香,图弑逆,事露被收。誉嘉二人之义,赦之,为立义士冢。高泰运立,主国事。六月,三日并出。政和丁酉七年,命子紫琮充进奉使,入贡于宋。诏遣使册封誉为金紫光禄大夫、检校司空、云南节度使、上柱国、大理国王。徽宗己亥宣和元年正月,彗出,慕宁、远、矣、破、马等叛。三月,出师征之,兵败。三十七部蛮复叛。陷鄯阐,高明清死之。郡臣以高升泰侄商量成有德,请立为相,号中国公。徽宗丙午靖康元年五月,金星入月,大火,焚三千九百家。南宋高宗丙辰绍兴六年,王遣使贡象马于宋,广西经畧安抚使奏之,诏护送行在,优礼答之。绍兴十六年三月十四日,大雾,历二十四日方开。高宗丁卯绍兴十七年,王老,因诸子内争外叛、遂禅位为僧,在位三十九年。子正兴立。
|
|-
|}
===Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|正兴,南宋高宗丁卯绍兴十七年卽位。明年,改元永贞,又改元大宝、龙兴、盛明、建德。高量成让相位与侄寿贞,退老楚雄城。人化其德,名城曰德江城。孝宗癸未隆兴元年三月,寿贞卒。寿昌立为中国公。孝宗壬辰乾道八年四月,重雾,十六日方开。正兴禅位为僧,在位二十五年,子智兴立。
|
|-
|}
===Zhixing 《智兴 伪谥宣宗功极皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixig 《智兴 伪谥宣宗功极皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智兴,南宋孝宗壬辰乾道八年卽位,明年,改元利贞。又改元盛德、嘉会、元亨、安定。遣李观音得等至广西横山砦今在广西南宁府江上。求市马。李观音得夺寿昌位,与侄贞明。阿机起兵夺贞明位,还寿昌。贞明遂据鹤庆,号明国公,伪谥义地威天聪明仁帝。高妙音自白崖起兵,据鄯阐。时有妙音之甥成贤、成正二人来谒,意在夺鄯阐。妙音觉之,与之盟于天王庙。二人口含丁香叶,出庙吐之曰:「盟非我也,叶也。」未几,二人起兵,方战,见白马将斩之。白马将,乃庙中二力士也。光宗庚戌绍熙元年,修十六寺。宁宗乙卯庆元元年,修龙首、龙尾二关,三阳城。宁宗庚申庆元六年,智兴卒,在位二十八年,子智廉立。
|
|-
|}
===Zhilian 《智廉 伪谥享天皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhilian 《智廉 伪谥享天皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智廉,南宋宁宗庚申庆元六年卽位。明年,改元凤历。又改元元寿。使人入宋求『大藏经』一千四百六十五部,置五华楼。宁宗乙丑开禧元年,智廉卒,在位五年。弟智祥立。
|
|-
|}
===Zhixiang 《智祥 伪谥神宗皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixiang 《智祥 伪谥神宗皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智祥,南宋宁宗乙丑开禧元年卽位。明年,改元天开。又改元天辅、仁寿。征三十七蛮部,至寻甸平,河水绝流。理宗丁酉嘉(禧)〔熙〕元年,封高隆鄯阐王,以高泰祥为相国,以光日为演习。大府主将也。举贤育才,时和年丰,称治国焉。理宗戊戍嘉(禧)〔熙〕二年,智祥禅位为僧,在位三十三年。子祥兴立。
|
|-
|}
===Xiangxing 《祥兴 伪谥孝义皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|祥兴,南宋理宗戊戌嘉(禧)〔熙〕二年卽位。明年,改元道隆。理宗甲辰湻佑四年,蒙古兵出灵关,伐大理。祥兴遣将高禾迎战,禾败死之。段连佑归宋,宋遣使吊祭,致经书、银缎,为高禾拒蒙古兵战殁也。理宗辛亥湻佑十一年,为蒙古宪宗蒙哥之元年,祥兴卒,在位十三年。子兴智立。
|
|-
|}
===Xingzhi 《兴智 赠天定贤王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|兴智,南宋理宗辛亥湻佑十一年卽位。明年,改元利正。又改元兴正、天定。是年,南宋理宗壬子湻佑十二年,为蒙古宪宗之二年七月丙午,太弟忽必烈等奉宪宗命,伐大理。受制专征,以大将兀良合台总督军务。八月,次临洮,由六盘逾吐番,凡行山谷二千馀里无人之境。先遣王律术、王侯、王鉴来谕大理,道阻而还。九月,次忒刺,分三道进。兀良合台率西道兵,由晏当路,诸王抄合也只烈率东道兵,由白蛮,忽必烈率劲骑,由中道。乙巳,至满陀城,留其辎重。十月,过大渡河。十一月,至白蛮打郭砦。十二月,再遣三使入大理,招兴智,皆被杀。智命相国高泰祥守金沙江,与蒙古将伯颜不花、虎儿敦等相持。忽必烈命众以革囊潜济江,破吐番,渉摩荻,出石门,所过降之,遂进薄大理。泰祥回军,奉兴智拒战,不胜。蒙古兵入上关。智奔鄯阐,泰祥退至统失逻先为姚安府,府裁,今为姚州,属楚雄府。募兵于三十七部未至,而蒙古兵已长(躯)〔驱〕而入,泰祥被执大理,不屈,乃斩于五华楼下。祥临刑叹日:「段运不回,天使其然,为臣殒首,盖其分也。」时白日正午,忽云起雷震,天鼓大鸣,忽必烈曰:「忠臣也。」泰祥夫人段氏,抱孤儿高琼、高长寿等伸诉。忽必烈目儿顾左右曰:「此忠臣后,宜善视之。」许以世其官。高泰祥为大中国升泰九世孙。遂灭段氏而有其地,得五城、八府、蛮部三十有七。乘胜入吐蕃,降其酋。明年,南宋理宗癸丑宝佑元年,为蒙古宪宗之三年,忽必烈班师。大将兀良合台拔鄯阐,获兴智以献,宪宗命赦之,封为摩诃罗嵯,管领八方,仍守其地,世袭总管。计兴智在位二年,宪宗授兀良合台银印,加大元帅,还镇大理。以刘时中为宣抚使,与兴智同安辑焉。南宋理宗庚申景定元年,为蒙古世祖忽必烈之中统元年,兴智率其季弟段信苴福北行,朝于世祖,道卒。计为总管又七年。蒙古遣使来祭吊,文曰:「段氏承八姓正位,归有新统,旣顺天时以向义,犹得国王以栖迟,实国家待远方之仁,由贤王能左右之义。受命以来,朝夕愓励。赖尔维勤,用征不廷,正当共享亨嘉之运,胡意遽罹霜露之灾,呜呼!当朕未集大统,乃为叔季之国。兹旣承景运,合正君臣之称,参录不替于子孙,诏禄宜昭于典册,特遣太常省祭,赠为后理国向义天定贤王段公,尚赖神麻,永保祚土。所赠王爵,后不为例。」明年,南宋理宗辛酉景定二年。为蒙古世祖中统二年,世祖敕授王之弟信苴日则段实。总管守大理。命之曰:「向率我以临尔境众据国人之请,因从城下之盟,款附而忠勤益著。庸示至优之礼,以彰同视之仁。可革帝号,锡以虎符,总理大理、鄯阐、威楚、统矢、会川、建昌、腾越诸郡,抚恤已附之民,招集未降之国,卿其勉之。」
|
|-
|按:段氏后理国,自段正湻复国,起宋哲宗丙子绍圣三年,讫南宋理宗癸丑(实)[宝应元年,传八世,共一百五十七年。
|
|-
|总计段氏大理、后理二国,传二十二世,共三百零十五年。
|
|-
|增订南诏野史下卷
|
|-
|}
==Hu Weixianmen Wing DynastyRevisions《大淸湖南武陵胡 蔚羡门订正》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hu Weixianmen Wing Dynasty Revisions《大淸湖南武陵胡 蔚羡门订正》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段氏总管除天定贤王段兴智受封总管七年外起段信苴日卽段实讫段世,共袭十二世。
|
|-
|段实一名信苴日。
|
|-
|段实,于南宋理宗景定二年,蒙古世祖之中统二年,入朝于世祖,袭总管,赐虎符,领大理、威楚、鄯阐、统矢、会川、建昌、腾越等城,自万户以下皆受节制。南宋理宗癸亥景定四年,为元世祖中统四年,蒙古设大理都元帅府,命昔撒昔总制鬼国、大理两路。理宗甲子景定五年,为世祖至元元年,妖僧舍利威结威楚、统矢、鄯阐及三十七蛮部叛,实讨之,大破于威楚、统矢、安宁等处,又破释多罗十馀万众于洱河海口。南宋度宗丁卯咸湻三年,蒙古世祖至元四年,以皇第五子忽哥赤为云南王,镇大理。至元五年,忽哥赤受命与安南国王讨占城、真腊。南宋度宗咸湻六年,世祖至元七年,置大理路军民总管府。南宋度宗辛未咸湻七年,为蒙古世祖至元八年冬十一月,世祖改国号曰元。云南王忽哥赤为元帅寳和丁所杀。元伐金齿、缥甸,降之。分大理三十七蛮部为南北中三路,遣阿鲁忒儿宣抚大理,招谕诸蛮。南宋度宗辛未咸湻十年,元世祖至元十一年,封宗室脱忽鲁为云南王,命云南行省平章政事赛典赤建云南各衙门。妖僧舍利威复叛,实遣石买等诡为商贾,执贽往见,挺矛鏦杀之,枭首于市。元世祖赐实白金及金织纹衣。南宋恭宗丙子德佑二年,元世祖至元十三年,授实为大理等处宣抚使。缅甸叛犯永昌,元命纳速剌丁赛典赤之长子,后封延安王。伐之,破砦三百,因天暑,还师。复命诸王相吾答儿、右丞太卜、参政也罕的斤伐缅,招讨使法烈先驱造舟于阿若、阿禾两江,进拔江头、太公二城,金齿、乌蒙皆降。南宋帝昺庚辰祥兴二年春二月,为元世祖忽必烈之至元十七年,宋亡,元入主中国。以忽哥赤之子也先帖木儿为云南王。命忙兀鲁徵八百媳妇。缅败忽都帖木儿兵,诏思、播土官田、杨二处兵助讨之。命征缅官番听云南王节制。至元辛巳十八年实率子阿庆入觐,元祖嘉其忠,晋大理、威楚、金齿等处宣慰使都元帅。升辞,复拜为云南诸路行中书省参知政事,留阿庆宿卫东宫。至元壬午十九年,实受敕迎征缅师,于金齿病卒。诏以其弟忠为大理宣慰使兼军民万户府,赠实为武定公。实任职二十二年。
|
|-
|}
===Duan Zhong《段忠 实之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhong《段忠 实之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段忠,元世祖癸未至元二十年袭。是年,忠随元元帅阔木征芒部、两林蛮及会川等处,破贼立功,元授忠为善阐酋,赐虎符。元置邦牙宣慰司于蒲甘城,命云南王也先帖木儿率招讨使怯烈总兵三千往镇之。忠奉云南王命伐武定。冬十二月忠卒,以实之子阿庆为大理金齿等处宣慰司都元帅、佩金虎符,封宣武将军,晋镇国上将军,尚公主。遣归,复授云南行省参政。忠任职一年。
|
|-
|段庆卽阿庆。实之子
|
|
|-
|段庆,元世祖甲申至元二十一年袭。至元二十五年以云南王也先帖木儿移镇大理,进封营王。至元二十七年冬十月,封皇孙甘剌麻为梁王,镇云南。至元二十九年改封梁王甘剌麻为晋王,镇北边。至元三十年,封甘剌麻之子松山镇云南。至元三十一年世祖崩,孙铁木耳立,是为成宗。成宗丙申元贞二年,置彻里路,卽车里军民宣慰使司。令与八百犬牙相制。秋八百叛命,也先不花征之。成宗己亥大德三年,云南水西土官宋隆济叛,贵州知州张怀德战死。云南行省麻九儿讨之,追杀贼首撒月,斩首五百级。庆奉敕征交趾,平之。入朝,带僧左黎同往,适成宗手疽甚,黎以法水洗之,立愈。帝欲试其术,乃掘地窖,令八人潜其中击鼓,佯云有怪,召黎治之,黎行法,顷之不闻鼓声,启窖视之,则八人已死。帝敬其法,封为国师。大德四年,缅人僧哥伦作乱。缅酋执其兄阿散哥也,寻释去,阿散乃率其党杀酋。酋次子奔诉京师,诏遣薛超兀儿率行省兵讨之。大德五年,金齿、八百叛,不输粮,杀官吏,元命右丞刘深、哈剌带、郑佑等征之。刘深协求水西土妇节金三千两、马三千匹,土官宋隆济遂叛,围深等于穷谷中,梁王阔率兵救,解之。冬,云南地大震,御史陈天祥谏伐西南夷,不报。大德七年,罢徵八百,免右丞刘深官,收符印。左丞相哈剌哈孙议深徼名首衅,丧师辱国,劝帝诛深,遂杀之。深卽往以兵逼南宋帝昺于谢女峡者。大德八年,立平云南碑于点苍山。顺元宣抚宋阿重获其叛叔宋隆济,朝命升职,赐衣一袭。滇池有蛟,化少年淫妇女,有神僧赵伽罗者,命黑胡神擒之,至噀水见形,斩之。神卽土主也。成宗丙午大德十年,罗雄土官阿那龙少叛,据越州。今在曲靖府南六十里,本唐之悦州,其川名鲁望。命右丞汪惟能讨之,追至曲靖,斩那龙少。是年庆卒,弟正袭。庆任职四十三年。
|
|-
|}
===Duan Zheng 《段正 庆之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zheng 《段正 庆之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正,元成宗丁未大德十一十年袭。正招蒙化山中生爨入籍。元授正为参政,仍大理军民总管。晋宁建盘龙寺。有神僧觉照者,段氏族人,号莲峰,游东山见龙潭绝幽胜,乃咒龙令徙。龙去,水涸,建寺其地。蔚按:莲峰僧于顺帝之至正末入定塔中。武宗海山戊申至大元年,沾益、乌蒙地大震,三日并出。至大二年三月,梁王松山风疾,诏封皇第七子西平王奥鲁赤之孙老的代镇云南。仁宗爱育黎拔力八达壬子皇庆元年,诏罢徵八百。皇庆癸丑二年冬十月,学士李孟奏准开科,三年一试。时九成殿生芝,天下共取士三百名,每榜云南取五名,内蒙古二名,塞目二名,汉人一名。以八月二十日初场,二十三日次场,二十六日三场。仁宗乙卯延佑二年十一月,封武宗子和世珠为周王,出镇云南。仁宗丙辰延佑三年,正卒,庆子隆袭。正任职十年。
|
|-
|}
===Duan Long 《段隆 庆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Long 《段隆 庆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段隆,元仁宗丁巳延佑四年袭,元授隆为大理军民总管。延佑己未六年,云南行省奏:「夷俗:凡土官无子,卽以妻代管。请听之。」诏曰可。延佑庚申七年,封甘剌麻孙王禅为云南王。英宗硕德八喇癸亥至治三年,进封王禅为梁王,封其子帖木儿不花为云南王。是年八月,诸王按梯不花、索孛罗、月鲁铁木儿等及御史大夫铁失弑帝于南坡行幄。九月泰定帝也孙铁木儿卽位。十二月流诸王月鲁铁木儿于云南。泰定四年,洱海有水怪,牛猪形短项金睛,兴水为患。大理一道人向隆取黄金百镒,隆与之,乃以金为索,沉于河,怪卽日徙于浪穹宁河。按:『六诏灵源记』云:宁河无底。明宣德间,有渔人李应捕鱼,网得金索,旋得旋断。一渔者诫之曰:可止矣。应贪甚,尽曵之,索将穷,惊其怪,风浪陡作,应并舟倶溺,至今为患。文宗图帖睦尔庚午至顺元年,以豫王阿忒思纳失里出镇云南。诸王秃坚据云南叛,杀廉访使,自称云南王。元诏枢密帖木儿讨之,发朵甘思等处兵分道进。至四川建昌、罗罗斯,权寻甸府官曲术集义兵讨秃坚,败贼伯忽于马龙,追至金马山,擒之。是年,隆以老退闲,子俊袭。隆任职十四年。
|
|-
|}
===Duan Jun 《段俊 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Jun 《段俊 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段俊,元文宗辛未至顺
二年袭,元授俊为云南行省平章。乌撒部奏:「云南驿输征甚苦,愿属四川。」奏下参政贾敦煕议之。是年俊卒,族弟义袭。俊任职一年。
|
|-
|}
===Duan Yi 《段义 俊之族弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Yi 《段义 俊之族弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段义,元文宗壬申至顺三年袭,朝命止授为承务郞、蒙化州知州。是年阿容禾叛于中庆路,义助兵讨平之,以功升参政。九月,乌蒙土官禄馀寇顺元,云南行省遣都事那海奉诏往谕,授馀为参政。冬十一月,云南行省奏:「国马每月上寅日给盐,饮之无病。因伯忽反,盐不给,马多死。」诏四川以盐给之。是年义卒,隆子光袭。义任职一年。
|
|-
|}
===Duan Guang 《段光 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Guang 《段光 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段光,元顺帝妥权帖睦尔癸酉元统元年袭,朝命止授为承务郞、蒙化州知州。番兵作乱,孟州判官李生等守白崖,値高蓬新败番兵,乗胜长驱破河尾关。光率兵大败之,斩馘无算,河水尽赤,为之不流,得战马甲仗数千。光赋凯旋诗云:「雨锁金门百里城,神州花木管弦声。齐天苍岳参云峻,界地楡河射月明。梵宇三千朝呗朗,招提八百夜香淸。恒沙善果心无异,何患愚夷治不平。」元统二年,光以先与梁王把匝剌瓦尔密孛罗因分域构隙,至是遣张希矫、杨生、张连等发兵攻梁王,不胜,士卒多死,希矫等遁归。顺帝至元元年,梁王侵大理,光自督兵与战于昆弥山卽今大理府赵州南之定西岭,梁王大败。凯还,侍翰杨天甫作『长寿仙曲』上光云:「蒙氏钟王气,驾驭万乗唐。南龙光对北金锁,东洱水朝西点苍,四面固金汤。江绿春杨柳,岸淸古雪霜。屏障龙吟梅破王,竹林鹤立菊舒黄,四季景如妆。此生诚庆幸,有眼睹明王。」光大喜,设宴谢之。顺帝辛巳至正元年,玉案山生水小赤犬,群走如飞。段雄正曰:「此天狗星所化,大兵压境之兆。」经二年方绝。又下铁雨山石,民屋倶穿,人値之多击死。梁王刺杀段氏臣高蓬。先是,光令蓬督兵罗那关,梁王使人暗招之,蓬不从,答之诗云:「寄语下番梁王翁,檄书何苦招高蓬,身为五岳嵩山主,智过六丁缩地公,铁甲铁盔持铁槊,花鞍花索驭花骢,但挥眼前黄石阵,孤云击破几千重。」梁王忌之,乃重贿蓬庖人,刺杀之。顺帝甲申至正四年,光卒,弟功袭。光任职十二年。
|
|-
|}
===Duan Gong 《段功 光之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Gong 《段功 光之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段功,元顺帝乙酉至正五年袭,朝命止授为承务郞、蒙化州知州。至正六年,木邦夷思可叛。元命河南参政贾敦熈督师会云南路兵讨之,以功为前锋,屡战克捷。叙功升功为大理总管,寻升参政。至正癸巳十三年,红巾贼流入建昌,旁掠云南边地。阿次失里讨平之。至正十五年三月,元窜太师脱脱于云南。中书右丞哈麻、御史袁赛因不花等陷之也。十二月,左丞相哈麻矫诏杀脱脱于阿轻乞之地,时年四十二岁,天下寃之,两日相荡。是年,梁王宫中有怪。左右启王曰:「盘龙寺僧莲峰,能驱邪。」王礼请至,行法,怪息。王喜,留宫中供养,至夜密问之曰:「今中原纷乱,后事如何?」僧曰:「二十年后祚尽矣。」至期明师果南下。至正十六年,黑井有毒龙,兴水溢井,损民居。莲峰建寺,书铁符沉井中,害息。又宁州有虎咥人,莲峰洒净水驱虎远去,明日虎果去。七月,元以四川廉访使蒲机云为云南诸路廉访使。至正癸卯二十三年三月,红巾贼明玉珍率其党李芝麻同弟明二等将兵三万攻云南。入金马山,梁王把匝剌瓦尔密奔楚雄。四月,梁王发中庆,至石碑村,红巾入城,梁王闻报,感而自咏云:「野无靑草有黄尘,道侧仍多战死人。触目伤心无限事,鸡山还似旧时春。」随命陜西参政车力帖木儿拒之,擒明二。时四方乘机窃发,群盗满山,功乃谋于外外杨智,字渊海者,同稽于卜,卜告吉。又得子宗、子秀兵至,功遂从梁王进兵,吕合败红巾于关滩江。红巾收合馀衂再战,杀段氏之骁将铁万户,又有江心庄人杨胜力战死。梁王为文祭之曰:「生于江心,为我门户,我旧不识,用备其数,能卫社稷,春秋与之,惟忠惟烈,尔则处之,噫! 义重于生,生必有死,丈夫之事,识者有几。愿气作山河,魂归苍洱,英杰复生,以保我之昆裔。」祭毕而哭,一军感泣。是夜,红巾屯古田寺,功令人焚寺,红巾乱,以铁骑捣之,死者大半,追至回蹬关,又大破之。副将谢得攻安宁,功力战杀二千人,谢得奔中庆。于夜功谍者拾得一书,乃明玉珍母寄珍书云:「自尔去后,老母平安,征云南务要得之。兵粮不足,随后发来,不可轻回。」功阅书,令杨智易其辞曰:「自尔去后,老母不安,臣下乱法。又闻中国人马入界,非止一处。尔须急回,迟则难保。大夏天统元年,太后平安书。」遂募亡命者赍书往。有打金箔人陈惠愿行,惟虑老母在。功许养其母,惠遂往。玉珍得书,挥之去令回报,迨夜,玉珍旋军。功追摄至七星关,大破其众。梁王回中庆,奏升功为云南行省平章,以主阿妻之。一日主与宴酣,歌『金指环』云:「将星挺生扶寳阙,寳阙金枝接玉叶。灵辉彻南北东西,皓皓中天光映月。玉文金印大如斗,犹唐贵主结配偶。父王永寿同碧鸡,豪杰长作擎天手。」功久居梁王府,嫡妻高夫人在大理作词寄功云:「风卷残云,九霄冉冉逐。龙池无偶,水云一片绿。寂寞倚帏屏,春雨纷纷促。蜀锦半间,鸳鸯独自宿,珊瑚枕冷,泪滴针穿目,好难禁。将军一去无度,身与影立,影与身独,盼将军只恐乐极生悲寃鬼哭。」至正二十四年春,功还大理,至洱海金鸡庙,夫人遣人适来报生子,功喜,作歌曰:「去时野火通山赤,凯歌回奏梁王怿。自冬抵此又阳春,时物变迁今又昔。归来草色绿无数,桃花正秾柳苞絮。杜鹃啼处日如年,声声只促人归去。」至正二十五年,功思新婚,欲往梁王所。员外杨智于壁间题诗留功,张希矫亦上书留行。功曰:「寳剑岂埋荒土物耶!」矫苦留不已,功怒流矫于顺州。顺州,前明属鹤庆府,今裁在永北厅城西一百二十里。唐时地名牛睒。遂与夫人别,倍道至中庆。梁王疑之,私议曰:「平章此来,得无有吞金马咽碧鸡之心。」其下有姤功者复谗构之。王与阿谋欲以孔雀胆毒功。私泄之,愿与西归。(今)〔令〕功周防,功不信。是年滇大旱,人言定远有禅僧连精,通瑜伽秘密敎,能降龙役鬼。启梁王,王遣人迎至,僧设坛祈雨,咒毕,钵中出一小蛇,遂大雨。王大喜,酬以金帛,辞,役鬼荷担,行空而去。顺帝丙午至正二十六年春,中原盗蠭起,临安廉访使支渭兴三恳休,梁王不允,遣使金闾慰,赐羔羊。渭兴自咏曰:「年高才薄忝淸流,欲挂朝冠不自由。且喜壮怀无诉谍,从敎行道有鸣驺。故园花木无由见,何日干戈定得休。九十春光还欲暮,放怀聊与醉金瓯。」重午节,梁王宫门外观射柳,随侍文武赐宴,支渭兴诗贺曰:「平地如席草如茵,少年将军酒半醺。朱鬣马穿人影过,绿杨枝逐箭锋分。旌旗色映宫前瓦,鼓角声飘海上云。何日鲸鲵倶授首,普天偃武共修文。」七月,梁王偕功东寺讲经,至通济桥,功马逸,王乘机令番将掖杀之。阿闻之恸哭曰:「昨灯下吾犹言,云南施宗施秀二人以胭花殡命,奈何不信。今果然。」命侍女锦被包之,以王礼敛送归大理。诗挽之云:「吾家住在雁门深,一片间云到滇海。心悬明月照靑天,靑天不语今三岁。黄嵩历乱苍山秋,误我一生踏里彩。华言锦被也。吐噜吐噜段阿奴,施宗施秀同奴歹。云片波潾不见人,押不芦花华言起死灵草也。颜色改。肉屏华言骆驼也。独坐细思量,西山铁立华言松林也。风潇洒。」功丧旣行,阿遂不食死,以殉焉。其家臣员外杨智渊海闻而亦死之。智临死诗曰:「半战功名百战身,不堪今日总红尘。死生自古皆由命,祸福于今岂怨人。蝴蝶梦残滇海月,杜鹃啼破点苍春。哀怜永诀云南土,絮酒还敎洒泪频。」明洪武间都督冯诚经功墓,亦歩原韵题诗,吊之曰:「田横五百剑孤身,转眼关山半委尘。北阙玉楼召客记,南滇粉壁说诗人。苍山夜黑云遮月,金马天寒鸟怨春。共惜平章迷绣幕,至今愁听水声频。」功死,长子宝自称平章,立于大理。功任蜀二十二年。
|
|-
|}
===Duan Bao《段宝 功之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Bao《段宝 功之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段宝,于元顺帝丙午至正二十六年八月,因父功为梁王所害,遂自称平章,立于大理。是年,梁王开科取士,以支渭兴主试事。梁王复听谗,诛锄段族。梁段旣结仇,数数构兵。鹤庆知事杨升调和二家,自金鸡庙分界,南属梁王,北属段氏,力劝息兵,百姓稍宁。至正丁未二十七年四月,梁王生日,群臣称贺。王宴于昆明池上,省宪官献诗曰:「贤君添算宴嘉宾,幄殿先施巨海滨。万里晴天开绵绣,一川芳草踏麒麟。笙歌暖送金杯酒,铠仗寛围玉佩人。醉饱百官咸稽首,愿王高寿过千春。」中庆路土主庙圮,梁王重修,立牌纪事。先是,至正十二年庙为耆民杨光所修。至二十三年红巾贼入滇,陷中庆,毁民居,庙亦被焚。梁王欲并段氏,遣人剌宝,弗得。又令平章矢剌七攻大理,皆不克。乃遣使通好,奏授宝为云南右丞,以和之。红巾复入滇,梁王命叔铁木的罕赍敕借兵于宝,宝答书曰:「杀虎母还喂虎子,分狙栗自诈狙,公假途灭虢,献璧吞虞,金印玉书,设钓鱼之香饵,绣阁艳女,备揜雉之网罗。况平章已死,只遗一奴一獒,奴可配阿妃,獒可配华黎氏。二事许诺,当借大兵。不然,金马山换作点苍山,昆明海改作西洱海,兵来矣。」书后又附一诗云:「烽火狼烟信不符,骊山一举任枝梧。平章枉挂红罗帐,员外空题粉壁图。凤去岐山祥兆隐,麟戕大野瑞光无。自从界限鸿沟后,成败兴亡不属吾。」梁王读而深恨之。是年,明太祖取燕京,元顺帝北遁,元亡。明太祖戊申洪武元年,梁王复通好于宝,辞甚卑逊,宝许之和。时有蛮舍兴者,自元江攻入鄯阐,王惧欲出奔,宝以唇齿之故率兵救之,击走舍兴。王德宝,升为武定公。敕曰:「段宝归附而来,忠勤懋著,父子秉忠,征讨克捷,乃于戎马倥偬之中,干戈纷扰之际,不第远朝且兼平乱。宜示至优之数,以彰匡济之勋,兹特升宝为武定公,仍总管大理军民府。尔其不负初心,永保世爵,以光大尔赤城于无穷。宣光元年敕。」云云。宣光乃故元顺帝太子立于应昌年号也。太祖洪武辛亥四年,宝降于太祖,上奏云:「臣闻有天下者为天下之主,有列土者为列土之君。卑臣宝虽隔万里之遥,每切中原之向。大理有二帝三皇之后,一方九姓之传,汉晋六朝以来,大蒙国受封于前唐,残唐五季而终,二理国继守于两宋,臣祖思平等恪共藩复,贡礼屡修于中土,华风远畅于边隅。迨至故元,不尚仁义,专事暴残。顺帝已遁北方,梁王犹祸鄯阐。迩闻明主奉天承运,御极南京,中原太平,边徼宁乂。意者中国有圣人,履尭舜之正统,陋汉唐之浅图,天时人事然也。或命臣依汉唐故例,岁贡天朝,或仿元代职名,俾守旧土。庶深谷回阳,幽扄照日,八方浴德,六合同春,垂怜边境,救恤一方。欲修进贡,恐触明威,合待事体之定,专候圣旨之颁,谨此。」专差段贞、王伯鹘驰奏以闻。太祖诏谕答之。洪武五年,宝女兄名羌娜,小名僧奴,又名宝姑者,适建昌土官阿黎。先是,羌娜绣一旗,至是将嫁,以旗付宝嘱曰:「母常语我云尔父为梁王所害,必当报仇,惟望尔辈长大。我闻母言,故绣此旗已五年矣!今我嫁至夫家,收拾建昌、东川军马,飞报若到,女急来应,愼勿违焉。」临行,又以二诗别宝云:「珊瑚钩起出深闺,满目潸然泪湿衣。氷鉴银台前长大,金枝玉叶下芳菲。鸟飞兔走频来往,桂秀梅香不暂移。惆怅同胞未忍别,应知恨重点苍低。」「何彼秾兮花正红,香车独去洱河东。鸿飞雪岫难经目,风刺霜林易割胸。云白天高连水远,月新春叠与秋重。一作闺里绣旗寃父魄,天边提剑属儿曹。泪珠恰似通宵雨,千里关山几处逢。一作须知恨重苍山小,回首寒云千万重。」洪武辛酉十四年四月,国中巫女歌曰:「莫道君为山海主,山海笑谐谐。园中花谢千万朶,别有明主来。」数日,宝卒,子明袭。宝任职十四年。
|
|-
|}
===Duan Ming《段明 宝之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Ming《段明 宝之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段明,明太祖洪武辛酉十四年四月袭,梁王授明为宣慰使。九月,明太祖命颖川侯溥友德,列侯曹正、王弼、金朝兴,都督郭英、张铨等,率师三十万征云南。帝出饯于龙江。友德至湖广,分遣都督胡海洋、陈桓等领兵五万,由四川永宁趋乌撒。友德等率大军由辰沅趋贵州。进攻普定,擒土酋安瓒,诸苗蛮犵狫闻风迎降。十二月,溥友德等兵至普安,攻下之,进至曲靖。先是,梁王把匝剌瓦尔密遣其司徒平章达里麻将精兵十馀万屯曲靖,以拒明师。沐英曰:「彼谓我师疲于深入,未有虞心,乃可破也。」友德然之,遂倍道进师。将至白石江,忽大雾四塞,冲雾及江而上。顷之雾雾,则两军相望,达里麻见之大惊,以为神军飞至,拥军阵于南岸。沐英分遣一军,沂流潜渡,出其阵后,吹铜角,树旗帜,为疑兵山谷间。达里麻急撤阵后,军以御之,上军阵乱。友德等趣师济江,一涌而渡,旣渡,整列进战。敌众披靡,生擒达里麻,横尸十馀里,俘其众二万人,友德悉慰遣之。友德进击乌撒,分遣沐英等趣云南。梁王闻达里麻破,弃城走晋宁州,忽忽纳岩,寻入滇池岛中,先缢其妃,自饮药不死,投水死之。父老收塟云南城西三十里浄耳山,土人立庙妙音寺侧。后至嘉靖间,拆庙材修社学,乃因旧址为小寺祀之。云南右丞观音保以城降。英等入城,秋毫无犯。收梁王金印并符信图籍,安抚其民。友德亦自曲靖循格孤山而北,以应永宁之兵。时元右丞实卜闻胡海洋等进自永宁,乃聚兵赤水河,以拒之。海洋等造木筏,夜半济河,而友德亦至,实卜遁去。友德令将士于乌撒筑城,版锸方具。蛮众复合,斩首三千馀级,馀众溃散。遂城乌撒,得七星关,以通毕节。又克可渡河,于是东川、乌蒙、芒部诸蛮震惧,望风降附。先是,洪武壬子五年正月,帝遣翰林待制王禕、行参政吴云持诏谕云南梁王,令奉版图来归。梁王初不从,后有降意。至洪武六年十二月,会元太子爱猷识里达刺立于汉北,使侍郞脱脱征饷于云南,脱脱觇知梁王有二心,因以危言逼王,杀使臣以绝其念,王遂杀禕,父老收尸塟地藏寺北。吴云奉使时,会梁王遣铁知院等二十人使沙漠,为边将所获,帝乃释二十人,令与云倶行。至沙塘口,二十人谋曰:「吾等奉使不达,被执而还,罪必死。」乃说云令胡服编发,诈为元使。又逼令改制书,共给梁王。云不从,以死自誓,亦被害。梁王遣人收云骨,塟给孤独寺,及事闻,帝震怒,故有是役。按:王禕字子充,浙江金华府义乌县人。建文时赐谥文节,永乐登极,凡建文设施尽革,遂削禕谥。后至正统中,义乌县丞刘杰奏请,加奉使云南死节臣恤典,禕赐谥文忠。吴云字友云,江苏常州府宜兴县人。至弘治中,赠谥忠节,并祀云南,敕赐为二忠祠。是年冬十二月,明卒,叔世袭。明任职一年。
|
|-
|段世 宝之弟,明之叔
|
|-
| 段(氏)〔世〕,明太祖壬戌洪武十五年袭。二月,世闻鄯阐破,梁王已死,又以沐英等兵略寻甸、临安、澄江、元江、楚雄、洱海,次第皆下,进逼大理,乃遣使致书,请依唐宋故事,奉正朔为外臣。友德不听,答书谕令速降。凡三致书,世怒,遂遣都使张元亨、州判李洪赴军前下战书。畧云:「鄯阐危甚登天,大理险倍投海。英如汉武,昔战仅置益州;雄若胡元,设官止于中庆。取之易而守之难,莫若依吾请乞册封,定为进贡,始为良策。吾实武人,不通经史,前代得失则餍闻也。恭惟麾下振耀皇威,功不亚于孔明,才克比于方叔。涤山川之旧染,历代所未有也。况吾与尔旣无杀父之仇,又无财债之怨,无故交战,真乃不祥。尔屯威楚,彼处之民有何罪焉?若耗人之食,是绝其命;取人之财,是刳其心;摅人妻女,是乱人伦,则吾之应,不得已也。爰念尔等皆中国之人,其中岂无一二达士。得此何益?不得何损?西南之地,号为不毛,易动难安。今春气渐暄,烟瘴渐起,不须杀尔,四五月间,雨霖河泛,尔粮尽气敝,十散九死。形如鬼魅,色如黑漆,欲活不能,汝之进退狼狈矣。莫若乘此,天晴地乾,早寻活路。宁作中原鬼,莫作边地魂,尔宜图之。后理国段明顿首。」书后继一诗云:「长驱虎旅势威宣,深入不毛取暴残。汉武故营旗影灭,唐宗遗垒角声寒。方今天下平犹易,自古云南守独难。拟欲华夷归一统,经纶度量必须寛。」友德、英等览书大怒,拘其使。左副将军蓝玉等率师径进,兵至品甸,世恃田庵和尚有术,列兵五万扼下关。沐英自将攻之,不克。乃命王弼,率兵出洱水之东,趋上关,英以兵缀下关,为犄角势。别遣胡海洋将一军夜度,从石门间绕道出点苍山后,縁崖而上张旗帜。迟明,英先驱,渡河斩关而入,海洋之师亦从山而下,腹背夹攻。世众惊溃,拔其城,世就擒,并执明之二子苴仁、苴义,时二月二十三日也。于是沐英等分兵取鹤庆、丽江,破石门关,荡金齿,所有摩、和泥、车里、品缅等部相率归附。又略建昌,故元平章月普帖木儿降。闰二月,赐云南各土官冠带及诰敕,使任本州岛知州等官。四月,乌撒、东川、芒部诸蛮复叛,溥友德、沐英会兵进讨,斩首三万馀级,诸蛮来降,云南悉平。以乌撒、乌蒙、芒部地近四川,分隶之。九月,土官杨苴等叛,紏众至二十万,攻云南城。都督谢熊、指挥冯诚婴城固守。沐英自乌撒移兵讨之,斩首六万馀级,擒四千馀人,诸部悉定。洪武癸亥十六年二月,故元右丞普颜笃同土酋高大一作天惠叛,据佛光砦。蔚按:佛光砦卽佛光山,山半有洞,可容万人。又名一女关。昔诸葛武侯曾擒孟获于此。在大理府浪穹县东二十里。也先不花叛,据邓川州。溥友德率郭英平之。又定蒙化州,过金沙江,攻北胜府,今永北厅。擒故元平章隔生。于是丽江府、拒津等州皆平,前后斩首一万三千级,蛮民降者四十万户。帝遣耿炳文谕溥友德、蓝玉等班师,沐英留镇云南,别命列侯王志、仇成、张龙分赴寻甸各府,缮城池,立屯堡,安辑人民。是年,械送世并明之二子苴仁、苴义赴京。世临行,以诗别故人杨朝彦云:「雄兵一日破重关,父子流离瞬息间。别后欲知相忆处,锦江流水彩潺潺。」洪武甲子十七年四月,溥友德等班师至京,论平云南功,进封溥友德为颖国公,胡海洋东川侯,陈桓普定侯,张翼鹤庆侯,蓝玉、仇成、王弼、张龙等并赐铁券,子孙世袭。吴复、金朝兴先卒,倶授世袭侯爵,铁券加禄并同。馀升职赐金帛有差。以世、苴仁、苴义见帝,帝诛其头目,谕苴仁、苴义及世曰:「尔祖宝,昔年曾有降表,朕不忍废。」乃授苴仁官雁门卫镇抚,赐名归仁,苴义官武昌卫镇抚,赐名归义。世任职一年,段氏世土,至此而绝。帝又封其族段保为云龙州土知州。
|
|-
|按:段氏袭总管十二世,起南宋理宗辛酉景定二年,为蒙古世祖中统二年,讫明太祖壬戌洪武十五年,共一百二十二年。
|
|-
|}
==Notable Officials from Nanzhao through the Generations《南诏历代名宦》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Notable Officials from Nanzhao through the Generations《南诏历代名宦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|张元,汉元帝时守。 张翕,东汉明帝时守。 郑纯,同时。 王追,东汉顺帝时守。 王伉,后汉时永昌郡丞。 吕凯,同时永昌郡功曹。 前有文齐、吴霸、陈立,后有张亮、刘宠、犍为费诗,巴东马忠皆著勋绩。 李毅,晋惠帝光煕元年为宁州刺史,政治明达,五苓夷反时病卒,其女秀有父才,领州事。至怀帝时赠少府谥威侯。 王逊东,晋明帝大宁元年为晋宁守,华夷畏服。夷叛,死之。州人以中子坚领州事,官至平西安南将军。
|
|-
|汉盛览,字长通,叶楡今大理府太和县。人,受学司马相如,著赋心四卷。同时叶楡张叔,天资奇颖,书过目成诵。俗不知学,叔每病之。闻司马相如至若水,蔚按:『水经注』:若水南经云南郡之遂久县,县废,在今大理府宾川州城东北一百里,古称白门,置于汉时,今为金沙江巡检司地。遂负笈往从之,受经归敎乡人。 隗叔通,叶楡人,性至孝,母好饮江水,通日入江取水,维艰。滩水忽出平石,涉取甚便,人谓之孝子石。 东汉许叔,一作叔重。昆明人,明帝时入中国,受五经归,为本郡敎授。 尹珍,字道真,平彝人,桓帝时入中国,负笈从许愼受经学,还敎乡人。 唐尹仇寛,叶楡人,德宗贞元间为蒙氏淸平官,入朝陈地图,贡方物,唐拜为左散骑常侍,封高溪郡侯。 张志成,昆明人,文宗太和间入蜀,学王羲之草书,归敎国人。 元王升,昆明人,曲靖宣慰副使学政名时。 段文瑞,澄江人,读书尽孝,诏旌其门,仕至临安总管。 杨惠,楚雄人,孝母感神,诏旌其门。 张景云,昆明人,仕至临安经历。 陈宝,平彝人,仕至尚书。尹贡,南宁人,仕至尚书。以上三人皆德政名时。 元朝进士王楫、李近仁、段天祥、李天佑、李郁五人,皆三甲同进士出身。
|
|-
|}
==Ethnic Groups of Nanzhao==
===Baimin《白民》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baimin《白民》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有阿白、白儿子、民家等名。白国之后,卽滇中之土著。妇女出门,携伞障面,谓之避嫌。宴客,切肉拌蒜,名曰食生。馀同汉人。女镶边衣,以银花银吊为饰。
|There is the '''Ā''' '''Bái (阿白)''', '''Bái Erzǐ''' ('''白儿子'''), '''Mínjiā''' ('''民家''') and other names. The descendants of the '''Bái Kingdom''' are precisely the indigenous peoples of Central Yunnan. [When] women go out, they bring an umbrella to block their faces, this is called '''Bìxián''' ('''避嫌; avoiding suspicion'''). [When] hosting a banquet, they cut meat and garlic, this is called '''Shíshēng''' ('''食生; eating raw'''). The rest are similar to Han people. Women wear embroidered clothes, they use silver flowers and silver hangings as decoration.
|-
|}
===Pu Ren《蒲人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽古百濮,周书所谓微卢彭濮也,后讹为蒲。质黑,鸟音。男子淸布褁头,衣套头衣,膝系黑滕;妇人挽发为髻,脑后戴靑绿磁珠,花布围腰,短裙,系海十数围。带刀弩长牌,不畏深渊,或浮以渡。婚娶长幼跳蹈,吹芦笙为孔雀舞,婿家立标竿,上悬彩绣荷包,中贮五谷银钱等者,两家男妇大小争缘取之,以得者为胜。又有野蒲、普蛮、朴子蛮等类,性尤凶悍,男子以布二幅结于左胁,另用布一幅合缝挂身;以红布搭右肩蔽腰以下。今顺宁府多此种。
|Anciently this was the '''Baipu (百濮)''', the '''Book of Zhou (周書)''' mentions the '''Wēi''' '''(微), Lú''' '''(卢),''' '''Péng''' '''(彭)''' and '''Pú''' '''(濮)'''. Later errors [turned it] into '''Pú (蒲)'''. By nature they are black and their language [resembles] birds. Men wrap clean/clear<ref>Likely referring to white cloth.</ref> cloth on their head and dress in tunic garments that are put over the head. They bind their knees with black rattan. Women roll up [their] hair as a topknot. At the back of the head, they wear clear blue-green porcelain beads. Printed cloth encircles the waist; they wear short skirts, connecting abundantly ten [or more] encirclements. They carry knives, bows and long shields. They are unafraid of deep abysses perhap even floating across it. At wedding ceremonies old and young alike jump and stamp, they play the reed pipe for the '''peacock dance'''. At the bridegroom's house they erect a pole, on it a bright embroidered purse is hung. Inside it stores the five crops, silver coins and other things. The two families of men and women, old and young, vie to fetch it. Once obtained, the person is victorious. Once more, there is the '''Wild Pú (野蒲), Pŭ mán (普蛮)''', '''Pú Zǐ mán (朴子蛮)''' and other types. Their nature is outstandingly fierce. The men tie two lengths of cloth at the left flank, [and] another length of cloth is stitched together and hangs off the body. There is red cloth to hang on the right shoulder to cover the body below the waist. Nowadays '''Shùnníng''' '''(顺宁)''' prefecture has many people of this type.<ref>Modern Day Fengqing County in Southwestern Yunnan. 鳳慶縣. Historically close to the Wa peoples and Austroasiatic population.</ref>
|-
|}
===Bo Ren《僰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名百夷,又名摆夷。性耐暑热,居多在棘下。本澜沧江外夷人。有水旱二种:水僰夷近水好浴,剃后发,蓄前发,盘髻如瓢,故又名瓢头僰夷;旱僰夷山居耕猎,又名汉僰夷。男靑布褁头,簪花;妇女不施胭粉,自然白晳,盘发辫,红绿包头,饰以五彩线须,衣五色衣,桶裙绣边。其俗贱女贵男,头目妻数百人,庶民亦数十,耕织贸易,皆妇人任之。凡婚娶,男女相悦而议聘,一成匹配,不肃而严。如夫妇不睦,听夫付之一物为凭,然后改适。有邪术,能使男子千里不忘,其法不外传也。
|
|-
|}
===Lahu《猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu《猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|爨蛮卢鹿之裔,猓猡其讹音也。以五月为春。信鬼尚巫,巫有大觋皤,拜禡白马之号。卜用雄鸡两髀骨,骨有细窍,刺以竹签,视多寡向背之势以定吉凶。其部长妻曰耐得,勇士曰苴可。每岁六月廿四日,名火把节,燃松炬,照村砦田庐。男椎髻镊须,耳环佩刀;妇披发短衣,桶裙,披羊皮。
|
|-
|}
===Bai Lahu《白猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Bai Lahu《白猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名撒马都,卽西爨白蛮。知读书,能文字,舌音淸便,多冒汉人。见尊长披羊皮,故嫁女授羊皮一帐。短衣革履,胸挂花包。妇人花衣桶裙,靑布蒙头,饰以海贝、锡铃。
|
|-
|}
===Hei Lahu《黑猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽东爨乌蛮。其祝以铃,其占以草。男挽发贯耳,披毡佩刀;妇人贵者衣套头衣,方领如井字,无襟带,自头罩下,长曳地尺许,披黑羊皮,饰以铃索。
|
|-
|}
===Qian Lahu《乾猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以山居得名。每食插筯饭中,仰天跪拜为报本。好勇喜斗,杀人偿以财。服饰同黑猓猡,妇人项挂一羊毛筐,行住纽毛为绵。以织毯。
|
|-
|}
===Hai Lahu《海猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hai Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名坝猓猡,以种水田得名。盖土人以水为海,以平田为坝也。居家俭朴,知读书。服饰如汉人,妇如白猓猡。
|
|-
|}
===Miao Lahu《妙猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Miao Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多土官之裔,有营长、官奴、火头等称。男挽发贯耳;妇人桶裙无裤,穿套头衣,前不揜胫,后长曳地,衣边火焰,弯曲如旗尾。居茅舍,中堂作火炉,父子妇姑,围炉而卧。又有一种,戴鹊帽者,名猓落蛮;白布褁胫者,曰白脚猓猡。
|
|-
|}
===Ge Lahu《葛猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Ge Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名大头猓猡。男以靑布丈许裹发为大头,女戴布花线箍。婚嫁步行,妇避伯,不避翁。亦有顶盔擐甲,乘马佩刀,以劫抢为生者。然居家尊卑有序,会食以跪为敬。
|
|-
|}
===Azhela Lahu《阿者猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《阿者猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆耳环手钏,衣短裤,披羊皮。婚娶,婿亲负女以归。
|Men and women each wear earrings and hand bracelets. Their clothes are short pants with sheepskin drapes. At weedings, the bridegroom's realtives carry the women back.
|-
|}
===Awu Lahu《阿乌猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Awu Lahu《阿乌猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆耳环手钏,衣短裤,披羊皮。婚娶,婿亲负女以归。
|
|-
|}
===Luwu Lahu《鲁屋猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|耕种射猎为生。男短衣木屐,女长裙跣足。
|
|-
|}
===Sami Lahu《撒米猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Sami Lahu《撒米猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居山,耕瘠负薪,近水,捕鱼时给。面多黧黑,男挽发如鬏,毛褐被毡,佩短刀。女披靑布单,短裙,长裤。又有鲁兀、老乌、撒完、洒泥、阿蝎、阿系等类,衣饰风俗畧同。
|
|-
|}
===Liaowu Lahu《老牾猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Liaowu Lahu《老牾猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽罗婺,又名罗午、罗武。男披发贯耳,披毡佩刀,穿火草布衣;女辫髪垂肩,饰以海贝砗磲,穿火草布裙。无床帏被褥,以松毛籍地而卧。
|
|-
|}
===Lahu Hei《猓黑 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu Hei《猓黑 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蒲蛮别种。择丛篁深处,结茅而居。蜂虫鼠蛤,无所不食,以荞稗为上品。又有大猓黑、小猓黑,岩居野处,猿猱同类。
|
|-
|}
===Putu《普特》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Putu《普特》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以渔为业,舟不盈丈,而炊爨、牲畜、资生之具,无不咸备。泅水出没,口衔手捉,皆巨鱼也。今云南府省城西碧鸡山下,多有此种。
|
|-
|}
===Diyang Gui《地羊鬼 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Diyang Gui《地羊鬼 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦僰人类也。短发黄睛,奸狡嗜利。与人相仇,能行妖术,以木石易人心肾,或以一帚系衣后,变形为象、马、猪、羊、猫、犬等物。稍畏惧之,卽为所魅,入人腹中,食五脏,或潜至人家,偷窃财物,食婴儿。知者一手捉之,一手痛殴,必复为人,夺其帚縻之,彼必以家赀之半匄脱。或有娶其女者,夫每出,必问归期,卽饵以毒,如期而归,更以药觧,否则毒发而死。交易失信,及私窥其要女者,必毒之。此种元江州为甚。
|
|-
|}
===Wo Ni《窝泥》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Wo Ni《窝泥》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有和泥、(干)〔斡〕泥、哈泥、路弼等名。黑白两种,风俗畧同。男戴麦杆帽,穿火草布衣,耳环,跣足;妇女辫发数绺,海贝、杂珠,盘旋为髻,套衣桶裙。善养猪,其猪小耳短身,长不过三十筋,肉肥腯,名窝泥猪。婚用媒妁,路遇野兽,则返而他求。嫁则以红藤束膝为识。勤生啬用,每积贝一百二十索为一窖,临死嘱其子曰:「积贝若干,汝取某窖,馀留我为来生用。」死则以雌雄鸡各一殉。又有一种名糯比,与此同,其生者名哥泥,亦名瓦黑,好勇尚斗,能咒人使病。
|
|-
|}
===Achang《阿昌》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Achang《阿昌》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名峨昌。男短衣披布单,女长衣无裤,腰缠红藤。占用竹三十三枝,畧如筮仪。嗜酒,觅禽兽虫豸生啖之。旧俗兄死弟妻嫂,后有罗扳砦百夫长早正死,其妻方艾自誓不失节,饿而死,其风遂革。又有小阿昌,其俗畧同。
|
|-
|}
===Acheng《阿成》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Acheng《阿成》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男短衣,女桶裙,以树皮代瓦。婚用牛羊,至女家以水泼女足为定。
|
|-
|}
===Biju《比苴》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Biju《比苴》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|僰夷别种。男耳环革屐,女白帨束发,缠叠如仰螺。构楼而居近水,极寒犹浴。丧尚绯,夫死,妻不再嫁,名曰鬼妻。又有白布缠足者,名白脚僰夷,亦名孔荅;茜齿,文身,髠者,名光头僰夷;额上黥刺月牙纹,盖习车里之俗,所谓雕题也。
|
|-
|}
===Heipu《黑舗 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heipu《黑舗 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名黑普,俗同窝泥,形容黧黑,怕见汉人。畜山羊,作竹器,一切床几櫈杌,备极精巧。
|
|-
|}
===Heiqian Yi《黑乾夷 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heiqian Yi《黑乾夷 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男椎髻麻衣,耳环垂肩;女以毛褐细带,编如筛罩,首饰以海贝、砗磲,衣领亦然。婚配,男吹芦笙,女弹口琴,唱和调悦,先野合,后媒妁。
|
|-
|}
===Shansu《山苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Shansu《山苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男披发跣足,女椎髻蒙头。语似鸟音,形如猿猴。潜居深山,种荞、麻,或工或猎,夷中之最苦者。
|
|-
|}
===Chusu《车苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Chusu《车苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名扯苏,傍岩临水。男短衣皮履,女长裙无裤。种荞稗,绩线为业,以羊毛占(睛)〔晴〕雨。
|
|-
|}
===Laji《喇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Laji《喇鸡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名喇记。黑布帽白衫。好楼居,孟春作土主会,客至,掘鼠及虾蟆为敬。其在交趾者,男善枪,女善弩,多充交兵。又有白喇鸡,男女倶穿五色氆氇,食山虫、水蛇等物。
|
|-
|}
===Lawu《喇五 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Lawu《喇五 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰喇乌,又曰喇鲁。男如摆夷,女如窝泥,构楼临水而居。上人下畜,名曰掌房。其在腾越州者,食巨蟒、毒虫,或取蜂糟食之。
|
|-
|}
===Manla《獛喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Manla《獛喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男插鸡毛,女裹首巾,皆披羊皮,不浣濯。婚配先野合。每采蒙肚花蒙肚花树皮如藓,能毒人。生景东厅,今不产矣。欲人醉死则醉采,欲人狂死则狂采,以毒人。又一种在王弄山者,名马喇
|
|-
|}
===Hala《哈喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Manla《獛喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女黑色,不知盥栉。妇女红黑藤缠腰数十围,产子以竹兜盛之,负于肩。又有古喇、杜喇,色尤甚,言语不通,略似人形而已。
|
|-
|}
===Jiala《戞喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Jiala《戞喇》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|悍好猎,居山巅,户不正出,迎山开门,不留馀粟。
|
|-
|}
===Kala《卡喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kala《卡喇
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰卡腊,男穿耳挽发,佩短刀;女短衣无裤,胫著彩色折裤。聚族而居,耕种鬻薪。
|
|-
|}
===Kasui《卡隋》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kasui《卡隋》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名卡高,性顽钝,喜歌舞。男女多野合。婚娶通媒妁之日,议聘金,多至数百。娶后子孙犹有代祖父偿聘金者。
|
|-
|}
===Kawa《卡瓦》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kawa《卡瓦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多在顺宁、永昌二郡,辣蒜江外。貌()〔丑〕性恶,猎人以祭。商贾出腾越州,入木邦者必经其地,呼为卡利瓦。有生熟二种,生者劫掠,熟者保路。
|
|-
|}
===Xifan《西番》===
{| class="wikitable" style="text-align:center; width:80%;"
|Xifan《西番》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽土番,亦名巴苴,居金沙江边。性悍戾,善弩,男女辫发百绺,不知栉沭。男以藤缠左肘,披琵琶毡,暑热不脱;女以海贝砗磲磁珠饰于项。又有野西番,更不可制。
|
|-
|}
===Guzong《古宗》===
{| class="wikitable" style="text-align:center; width:80%;"
|Guzong《古宗》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名狤猔,西番别种。皆辫发百绺,男戴红缨,穿氆氇,挂铜铃佩刀,女饰以珊瑚、银泡,披腊瓦被单,皆穿乌拉鞾。经年一栉,栉必牲祭。春夏种荞稗,秋冬赶牛马,取牛羊乳酥,调油茶而食,名曰ø。又有小古宗,喜猎饮酒,馀畧同。
|
|-
|}
===Kuceng《苦葱》===
{| class="wikitable" style="text-align:center; width:80%;"
|Kuceng《苦葱》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|面丑。男麻衣短裤,女短衣桶裙,亦有衣裤相连者。耕山采薬为生。所佩环手篐,自幼至老不释,死以殉。
|
|-
|}
===Mo《摩》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mo《摩》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|乌蛮别种。性湻朴,鸟音,男剃发戴帽,长领布衣;女高髻,或戴黑漆尖帽,短衣长裙。畜牛羊,产射香。同类仇杀,妇女登场一劝卽止。岁暮杀牛羊相邀,一客不至为耻。今有读书入泮者。
|
|-
|}
===Li《力》===
{| class="wikitable" style="text-align:center; width:80%;"
|Li《力》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽。衣麻,披毡,岩居穴处。利刀毒矢,刻不离身,登山捷若猿猱。以土和蜜充饥,得野兽卽生食。尤善弩,每令其妇负小木盾前行,自后射之,中盾而不伤妇,以此制服西番。野力披发插羽,尤悍。
|
|-
|}
===Zhe《遮》===
{| class="wikitable" style="text-align:center; width:80%;"
|Zhe《遮》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆穿耳,挽发。喜华彩衣,盘旋蔽体。每饮食必精洁。而长于弓弩,尤善鸟铳。
|
|-
|}
===Jiezi《羯子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|自孟养流入。环眼鸟队,散发,缠藤,耳带大环,首插鸡羽,无衣裤,腹下以麻布一幅围之。负弩佩刀,喊声如犬。又有结,耳带象牙大环,红布围头,衣半身衫,袒右臂,亦其类也。
|
|-
|}
===Muji《拇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦作。形丑恶,妇女尤甚。椎髻插羽,佩刀负弩。猎食猿狙。见人有蓄,思盗,先用鸡骨卜,吉则徃,否则止。
|
|-
|}
===Mocha《摩察》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mocha《摩察》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Manqie《嫚且》===
{| class="wikitable" style="text-align:center; width:80%;"
|Manqie《嫚且》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Local People《土人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Local People《土人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|(思)〔男〕絮袄佩刀弩,女披毡朿皮索,饥则紧缚之。婚姻以刀甲为聘,披发见舅姑。有争者告天,沸汤投物,以手捉之,曲则糜烂,直者无恙。
|
|-
|}
===Nong ren《侬人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nong ren《侬人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|侬智高部落之裔。男束发短衣,女短衣密扣,腰缠红裹肚。性狡,漆齿,出入佩刀,长技在铳。
|
|-
|}
===Sha ren《沙人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Sha ren《沙人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|越析夷也,又名蒙嶲。男辫发长衣,女以挑花白布蒙头,腰围红布。出入佩刀,耕田、射猎,所居掌房。丧服用红,祭肉弃不食。又有黑沙人,白沙人。聘用牛,旣婚之夕,男女不同室,及回女家,有娠方归。
|
|-
|}
===Luo ren《𤡑人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤡑人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男束发披毡,女短衣露腹,缠红藤,腰系沙罗布裙,上短下长,男女同耕。
|
|-
|}
===Cun ren《狆人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Cun ren《狆人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男缠头跣足,女靑布缠头,畧如僧帽,缀以海贝,彩布衣裙,著大尖鞋。构楼而居,甘犬嗜鼠。又有罗缅、麦岔、叠吗、喇毛等类,顽良不一,衣饰风俗同
|
|-
|}
===Nu ren《怒人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nu ren《怒人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居永昌怒江内外。其江深险,四序皆燠,赤地生烟。每二月瘴气腾空,两堤草头交结不开,名交头瘴。男子面多黄瘦,刚狠好杀猎,或采黄连为生,鲜及中寿。妇人披发红藤勒首。每年贡麂皮二十张、山驴皮十张、黄蜡八十筋、麻布三十庹,以代赋税。
|
|-
|}
===Luo ren《𤞰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤞰人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江府鹤庆州大雪山外。男女披发,树叶为衣,耳穿七孔,坠以木环。与怒人接壤,畏怒人,不敢越界。
|
|-
|}
===Wild people《野人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Wild people《野人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|永昌界外。居无室庐,宿于树巅。赤发黄睛,首戴骨圏,插雉羽,手足腹皆缠红藤,以幅布或树皮揜下体。勾刀大刃,捕禽兽蛇虫,生食之。逢人卽杀。
|
|-
|}
===Laodao《老挝》===
{| class="wikitable" style="text-align:center; width:80%;"
|Laodao《老挝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南掌国夷类。戴藤篾黑漆帽,宽二尺许,短衣无裤,用杂色布一疋,从膝下兜绕,围结胸前,名打抄子。妇女耳贯大黑漆圏,塞以野花。
|
|-
|}
===Liemi《列密》===
{| class="wikitable" style="text-align:center; width:80%;"
|Liemi《列密
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽利米。刀耕火种,精射猎,得鼠雀生啖之。男篾帽皂衣,女辫发赤足。出外披花布,以蔽其身。
|
|-
|}
===Lama《喇嘛》===
{| class="wikitable" style="text-align:center; width:80%;"
|Lama《喇嘛》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江、鹤庆多有之。来自西藏,招本境摩为徒。有红黄二敎,红弱黄强。毡帽褊衫,各如其色。
|
|-
|}
===Miaozhi《苗子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|三苗之后,有九种,黔省最多,流入滇中者,惟仲家花苗而已。束发耳环,未婚者缚楮皮于额,或插鸡毛。女布冠套头衣,桶裙,皆用五彩桃花布为之。每岁孟春跳月,男吹芦笙,女振铃唱和,并肩舞蹈,终日不倦。或以彩为球,视所欢者掷之,暮则同归,比晓乃散,然后议婚。节序击铜鼓,吹呐叭,聚赛神,书契惟数目字,及六十花甲子同,馀不同。
|
|-
|}
===Tuliao《土獠》===
{| class="wikitable" style="text-align:center; width:80%;"
|Tuliao《土獠
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其属本在黔、蜀、粤西之交,流入滇中。男首裹靑布,白衣领缀红布一方,妇人冠红巾,衣花绣。性粗桀,好蛊魔之术,其虫夜飞如星,光芒摇曳,射入窓棂,触者病。
|
|-
|}
===Jiaoren《交人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiaoren《交人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|安南国之类。男箬笠蕉扇,衣裳楚楚;女面貌颇雅,手贯牙钏,长衣长裙,以红帕蒙头,皆辫发靸鞋。读诗书习礼,仪婚丧之事,倶仿中国。
|
|-
|}
===Burmese people《缅人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|缅甸国流入者。有老缅、阿瓦、猛别、雍会、普干、摆古、得楞子等类。长于鸟铳,其火药用麦面傅之,迅疾无声。又有缅目者,称为莽纪,断发文身,漆齿穿耳,蟒衣跣足,头带红缎一方,性喜花草。
|
|-
|}
==References==
{{reflist}}
[[Category:Chinese literature]]
[[Category:Non-fiction books]]
[[Category:Medieval historical works]]
[[Category:Works originally in Chinese]]
[[Category:Pages with foreign language text]]
[[Category:Indigenous peoples]]
[[Category:Guidebooks]]
[[Category:History of China]]
[[Category:Wars]]
[[Category:Diplomacy of China]]
[[Category:Subject:Military history]]
[[zh:蛮书]]
hkdq6wipwevljlnwlddmswmbegt2nnz
4674828
4674826
2026-10-07T09:07:18Z
Taitesena
3485636
Short Lahu
4674828
wikitext
text/x-wiki
__NOTOC__
{{incomplete translation}}
{{Translation header
| title = Unofficial History of Nanzhao (南诏野史)
| author = Yang Shen (杨慎)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes =
}}
== Front Matter ==
# [[Unofficial History of Nanzhao/Translator's Note|Translator's Note]]
# [[Unofficial History of Nanzhao/Influences|Historical Context]]
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Authorship
|-
! scope="col" | Original
! scope="col" | Translation
|-
|增订南诏野史上卷 明 四川新都杨愼升庵编辑
|
|-
|}
===The Title of Nanzhao 《南诏之称===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Title of Nanzhao 《南诏之称》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蛮夷称王曰诏。先时滇有六诏,各据其地。六诏中蒙舍诏最强,后并吞五诏,故独称南诏。
|
|-
|六诏考六诏之地,东西四千里,南北二千九百里
|
|-
|蒙舍诏蒙细奴逻立国,居蒙舍川,地在永昌、姚州之间,处五诏之南。后奴逻曾孙皮逻阁并吞五诏,独称南诏。今蒙化厅是邆赕诏丰咩立国,居邓川。今大理府邓川州是施浪诏施望欠立国。居{{浪穹弥茨河蒙次和山,今大理府浪穹县是浪穹诏丰时立国,居浪穹。后其孙铎罗望迁剑川,改称剑浪诏。今丽江府属剑川州地是越析诏波冲立国。亦称摩诏。又号花马国。居嶲州。今丽江府是后,其兄之子于赠渡泸,邑于龙佉河蒙嶲诏嶲辅立国。居越嶲,今四川宁远府,越嶲厅是
|
|-
|}
===The Territorial Divisions of Nanzhao 《南诏分野》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Territorial Divisions of Nanzhao 《南诏分野》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|在天井鬼入参一度,汉书。次鹑首末位晋书。丽中台上位北斗开阳一星。宋书。在地乃梁州裔土,蜀之苑囿。河图纬。
|
|-
|}
===The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周鄯阐国、白崖国、昆弥国。战国时滇国,汉西南夷、益州、白子国。后汉建宁国。晋、宋、齐、梁、陈,宁州。隋昆州。唐初,南宁、六诏,唐文宗太和间,名鄯阐府。宋仍名南诏。元名中庆。明名云南省。
|
|-
| 国朝因之。按:汉武帝元狩元年,彩云见南中,在今大理府赵州之白崖。云南之名始此。唐元宗间问蒙舍诏盛逻皮之相张建一作俭成住何处?曰:「南边云下。」因命为云南。又元宗见祥云起,名祥州。今大理府之云南县也。
|
|-
|}
=== General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|鄯阐国蒙苴颂,昆弥国庄蹻、仁果、龙佑那据于周、秦、汉迄六朝。细奴逻据于唐。郑买嗣、赵善政、杨于贞、段思平、高升泰曁正湻,相继据于唐末迄
南宋。凡历有九姓,而雍闓、孟获不与焉。段氏与南宋理宗壬子湻佑十三年为蒙古所灭,而段实于理宗景定二年袭总管,传十二世,明太祖壬戌洪武十五年平云南,擒段世,并段段明之二子苴仁、苴义。赐苴仁官雁门卫镇抚,苴义官武昌卫镇抚,段氏之世土方绝,而又别封其族人段保为大理府云龙州土知州。国朝尚有袭土职者。
|
|-
|}
=== Titles and Official System of Nanzhao《南诏称谓官制》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Titles and Official System of Nanzhao《南诏称谓官制》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南诏称帝曰骠信,王曰诏,自称曰元,称后曰信么,亦曰九么,妃曰进武,兄曰容,弟曰钟,下曰昶。其设官则有把国事八人,曰坦绰,曰布燮,曰九赞,谓之清平官。曰酋望,曰正酋望,曰员外酋望,曰大(将军)〔军将〕,曰员外。又设九爽之名,爽,省也。功爽主官人,宗爽主户籍,万爽主财用,慈爽主礼,引爽主宾客,幕爽主兵,罚爽主刑,厥爽主工作,禾爽主商贾,皆清平官、酋望、大军将兼之。以清平官子弟为羽仪长八人,清平官见王不得佩剑,惟羽仪长佩之。又有六曹长二人,曹长有功升大军将,凡十二人。又立三托:巨托主仓廪,气托主马,禄托主牛。大府主将曰演习,副曰演览;中府主将曰缮裔,副曰缮览;下府主将曰澹酋,副曰澹览;小府王将日幕撝,副曰幕览。每府有陀酋,陀酋卽掌书记判官之类。外有八节度使:日弄栋节度使,今楚雄府姚州。曰银生节度使,今景东厅及鎭沅州地是。曰永昌节度使,今永昌府是。曰丽水节度使,今丽江府是。曰剑川节度使,今丽江府剑川州是。曰东川节度使,今东川府府是。曰通海节度使,今临安府通海县是。曰拓东节度使。今云南府昆阳州北平定乡,蒙氏子凤伽异曾筑城于此地。又有二都督:曰会川都督,今四川宁远府会理州地是。曰通海都督。又设十睑,蛮语谓州为睑。苴音斜。羊睑,又名羊睑,卽今大理府太和县。赵州睑,今大理府赵州。白崖睑,又名勃弄睑,今赵州之白崖。,云南睑,今大理府云南县。蒙舍睑,今蒙化厅。大厘睑,又名史睑,今太和县喜州。邆川睑,今大理府邓川州。品澹睑,蒙秦睑,矣和睑。三睑未详其地。○蔚按:别本十睑中苴羊睑、赵州睑、白崖睑而下,作义督睑,今剑川州;威远睑,今普洱府威远厅南;河东睑,末详其地;越睑,今永昌府腾越州;北方睑,又名成偈睑,今永北厅;楼头睑,今四川叙永厅,属永宁县;路睑,今楚雄府广通县;与云南睑以下七睑异。○按:又考此七睑中,其越睑、北方睑、楼头睑、路睑凡四睑,见于『汉地里志』及『唐书?南蛮传』中,睑并作赕,音闪,字旣不同,音又各异,似非列于十睑之数。凡人丁壮者皆为战卒。王之亲兵曰朱弩佉苴,音蛆。按:元微之白乐天乐府皆作佉嗟,未审孰是。佉苴,韦带也。每兵百人置罗苴子统一人,戴朱鞮鍪,负犀革铜盾而跣足。自大军将以至曹长,皆系金佉苴尚绛紫,有功加锦,又有功加金波罗。卽虎皮。民兵号白衣,凡民兵出以望苴蛮为先驱。
|
|-
|}
===Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|因远部。威远睑治,其地总名和泥,今元江府是。休腊部。今临安府河西县。嶍峨部。今临安府嶍峨县。屈中部。今临安府阿迷州。溪处甸部、伴溪落恐部。今倶为长官司,属临安府。铁容甸部。今为亏容长官司。官桂思陀部。今为思陀甸长官司,皆属临安府。王弄部、强现三部。今属开化府。师宗部。今广西州师安县。弥勒部。今广西州弥勒县。吉输部、袖恶部。倶在弥勒县地。维摩部。卽广西府维摩州。州裁,今属广西州地。罗雄部。今曲靖府罗平州。纳垢州。今曲靖府马龙州。落温部。今曲靖府陆凉州。磨弥部。今曲靖府沾益州。仁德部。今曲靖府寻甸州。夜苴部卽曲靖府亦佐县,县裁,今归罗平州。强宗部。卽澄江府阳宗县,县裁,今归河阳县。步雄部。今澄江府江川县。罗伽部。卽步雄部分地。休制部。今澄江府新兴州。落蒙州。今澄江府路南州。弥沙部、邑市部。皆落蒙部子孙分治之。阳城堡部。今云南府晋宁州。罗部。今云南府罗次县。乾矢部、罗婺部。倶在武定府曲州,州裁,今属武定州。华竹部。今武定州元谋县。洪农碌券部。今武定州禄劝县。掌鸠法块部在禄劝县城东五里。○以上三十五部在迤东地。白鹿部。今楚雄府。谋统部。今丽江府鹤庆州。○以上二部在迤西地。
|
|-
|}
==Nanzhao through the Generations《南诏历代》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Nanzhao through the Generations《南诏历代》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|白古记:西天天竺摩竭国阿育王骠苴音斜。低娶欠蒙亏为妻,生低蒙苴。苴生九子,长子蒙苴,附罗十六国之祖;次子蒙苴廉,吐蕃之祖;三子蒙苴诺,汉人之祖;四子蒙苴酬,东蛮之祖;五子蒙苴笃,生十二子,七圣五贤,蒙氏之祖;六子蒙苴托,狮子国之祖;七子蒙苴林,交趾国之祖;八子蒙苴颂,白子国仁果之祖;九子蒙苴閦初六切。白夷之祖。○『哀牢今永昌府。夷传』:哀牢蛮蒙伽独捕鱼易罗池在永昌府城南。溺死。其妻沙壹一作壶。往哭之水边,触一浮木,有感而妊,产十子。后携子至池上,木化为龙,人言曰:「我子安在?」九子惊走,独季子背龙而坐,龙舐其背。蛮语谓背为九,坐为隆,故名之曰九隆氏。哀牢山一名天井山,在永昌府。下有妇名奴波息,生十女,九隆弟兄娶之,立为十姓:董、洪、段、施、何、王、张、杨、李、赵,皆刻画其身象龙文,于衣后著尾。子孙繁衍,居九龙山山在永昌府城南。溪谷间,分九十九部,而南诏出焉。
|
|-
|}
===Shanchan Guo《鄯阐国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shanchan Guo《鄯阐国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周时立国,年代久远,其姓名世次莫考。
|
|-
|}
===Baiya Guo《白崖国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baiya Guo《白崖国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|西天天竺摩竭国阿育王低蒙苴第八子,蒙苴颂居白崖,因地名,号白崖国,传世莫考。后昆弥氏继之,号昆弥国。
|
|-
|昆弥国一名拜国。
|
|-
|昆弥氏,传世姓名莫考。战国时,楚将庄蹻据滇,并有其地,号滇国。
|
|-
|}
===Dian Guo《滇国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dian Guo《滇国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|战国时,楚顷襄王命将庄蹻范蔚宗后汉书作庄豪。将兵循江上,略巴、蜀、黔中以西,蹻至以兵威畧定滇地属楚。欲归报,会秦司马错攻楚,黔中道塞。蹻遂以其众王滇,号滇国,踞之。后有王常羌者好佛,国势不振。法令不行,国人遂推白崖国蒙苴颂之后,白饭王之裔仁果为王,治白崖,于是两国角立。后仁果奉汉,封为白子国。
|
|-
|}
===Baizi Guo《白子国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baizi Guo《白子国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|汉武帝通西南夷,遣使至滇,求身毒国。滇王常羌问使者曰:「汉孰与我大?」使者还报,武帝怒其言不逊。时白崖国蒙苴颂之后,天竺国白饭王之裔仁果者,为众所推立于白崖。武帝乃册封仁果为王,号白子国。后迁于澄江,今澄江府。迨龙佑那继之,号建宁国。○又一说:白子国之先,有阿育国,王能乘云,上天娶天女,生三子,长季二子封于金马、碧鸡,独封仲子于苍洱之间,崇奉佛敎,不茹晕,日食白饭,人因称为白饭王。迨后有仁果者,汉封为滇王,号白子国。又十五世至龙佑那,后汉诸葛武侯南征,次白崖,以佑那为酋长,赐姓张氏,仍统其民,号建宁国。
|
|-
|}
===Jianning Guo《建宁国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|后汉后皇帝乙巳建兴三年,益州耆帅雍闓,假鬼术杀建宁太守王昂,归东吴,吴王孙权以闓为永昌守。后汉诸葛武侯南征,至白崖,杀雍闓,擒孟获,乃封白子国王仁果十五世孙龙佑那为酋长,赐姓张氏,于白崖筑建宁城,蔚按建宁城废址在今大理府赵州之弥渡。号建宁国,立铁柱蔚按:今弥渡有铁柱宫,铁柱尚存。先为建宁国王张乐进求甫铸,后南诏蒙世隆复重铸,名曰天尊柱,高八尺。并『南中纪功碑』,铭其背曰:「万岁之后胜我者过此」。迨至隋时,行军总管太平公史万岁征南宁夷爨玩,西破三十馀部,至此,见其碑铭,命左右踣之。其碑跌,中复有志曰:「史万岁不应踣吾碑」。万岁惊异,复树碑,祭拜而去。后张龙佑那仍迁国澄江,传三十二世至十七世孙张乐进求,唐太宗己酉贞观二十三年封为首领大将军。后见蒙舍川蒙细奴罗有奇相,遂妻以女,逊国与之。奴罗自称奇嘉王,建号大蒙国,又称南诏。
|
|-
|}
==Nanzhao《南诏国》==
===13 Generations of Nanzhao 《南诏大蒙国传十三世》 ===
{| class="wikitable" style="text-align:center; width:80%;"
|+ 13 Generations of Nanzhao 《南诏大蒙国传十三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|细奴一作农。逻一作罗。 伪谥高祖奇嘉王
|
|-
|细奴逻,又名独罗消,西天天竺摩竭国阿育王低蒙苴第五子蒙苴笃之三十六世孙。生有奇相。唐太宗贞观初,其父舍龙尨,又名龙伽独,将奴逻自哀牢避难至蒙舍川,耕于巍山。今蒙化厅之巍宝山。一日,有老僧,美髯,冠赤莲冠,披袈裟,持钵至奴逻家乞食。时奴逻与子逻盛炎方耕巍山之下,其姑与妇将往饁。见僧乞食,遂食之。再炊往饁,僧坐不去。姑妇持饷中道,僧已在彼,复乞食,姑妇又食之。返而复炊,持饁至巍山,则见僧坐盘石上,前有靑牛,左白象,右白马,上覆云气。云中二童子,一执铁杖于左,一执方金镜于右。姑妇惊喜,复以所饷供之。僧问何所愿?姑妇不知对。僧曰:「奕叶相承」。及趣奴逻等至,则但见一人持钵,坐五色云中,而盘石上惟馀衣痕及牛象马之迹耳。奴逻素有祥异,会唐封首领大将军建宁国王张乐进求,以诸葛武侯所立白崖铁柱,岁久剥蚀重铸之。因社会祭柱,柱顶故有金镂鸟,忽能飞,集奴逻左肩,相诫勿动,八日乃去。众骇异,谓天意有属。进求遂妻以女,举国逊之。于唐太宗己酉,贞观二十三年卽位,年三十二岁,建号大蒙国,称奇嘉王,据南诏。高宗庚戌永徽元年,建都蒙舍川,于巃{山+于}山在今蒙化厅西北三十五里。筑巃山+于城。永徽癸丑四年,遣逻盛炎入朝唐,诏授奴逻为巍州今蒙化厅刺史,赐以锦袍。大勃弄今大理府赵州白崖。酋杨承顚寇麻州,在今曲靖府马龙州城北里许。唐命郞州唐贞观初,分牂牁郡北界置郞州,后改名播州,卽今贵州遵义府。又有郞州,在今云南县地。道行军总管赵孝祖讨之。孝祖先入小勃弄,今云南县地。酋长没盛迎战,孝祖斩之。进至大勃弄,攻其城,破之,擒杨承顚,改云南县为匡州,领勃弄、匡州二县。高宗显庆二年,凤鸣于浪穹罗浮山,乃改名为凤羽山,在大理府浪穹县西南三十里,又名鸟吊山。见『水经注』。封十二圣贤为十二山神。时澄江人波罗旁有经济才,用为文臣;郭郡矣素以勇略闻,用为武臣。又有杨波远者,相传为东汉时人,常骑三角靑牛,号神明大士,能知盐泉,滇中盐泉多为波远所开创。奴逻在位,遵唐正朔。高宗甲戌上元元年,奴逻卒,在位二十六年,子逻盛炎立。
|
|-
|逻盛炎又名逻晟。伪谥世宗兴宗王。
|
|-
| 逻盛炎。唐高宗甲戌上元元年卽位,年四十岁,以张建成为相。明年,盛炎临朝,元宗壬子先天元年,姚州蛮叛归吐蕃。唐命御史李知古讨之,筑城立州县。知古诛豪杰,掠子女,蛮怨,引土蕃,攻杀知古,于姚嶲路绝,而盛炎独奉唐正朔。是年,盛炎卒,在位三十九年,子盛逻皮立。
|
|-
|}
===Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|盛逻皮,唐元宗壬子先天元年卽位,年四十岁。明年为元宗癸丑开元元年,唐授逻皮为特进,封台登郡王今四川宁远府冕宁县地。设官征商税。开元二年,遣张建成入朝于唐。立土主庙。开元九年,皮叛唐。开元十四年,立庙祀晋右将军王羲之为圣人。元宗戊辰开元十六年,逻皮卒,在位十六年,子皮逻阁立。
|
|-
|皮逻一作罗阁石刻作归义王魁乐觉封云南王。
|
|-
|皮逻阁,唐元宗戊辰开元十六年卽位,年三十一岁。开元十八年,灭五诏,自称南诏王。先是,蒙氏恐三十七蛮部不服,选亲族为五诏。未几五诏抗命,逻阁遂赂剑南节度使王昱,求合六诏为一。昱奏于朝,许之。逻阁乃豫建松明大楼,祀祖于上。使人谕五诏曰:「六月二十四日乃星回节蔚按『大理郡志』汉元封间,叶楡妇阿南者为酋长,曼阿娜之妻。娜为汉将郭世忠所杀,欲妻南。南曰:能从三事,当许汝一作幕次祭故夫;一焚故夫衣,易君新衣;一令国人皆知我以礼嫁。忠如其言。明日,聚国人张松幕祭其夫。下置火,南藏刃出,俟火炽焚夫衣,卽引刀刃自断其颈,仆火中,时六月二十五日也。国人哀之,故岁以是日燃炬吊之,名为星回节云。是又当为二十五日。当祭祖,不赴者罪。」四诏听命。惟越析诏波冲之兄子于赠,远不赴会,而邆赕诏丰哶孙{辵+皮}逻邆之妻慈善者,止逻邆勿赴。邆不听。慈善不得已,以铁钏穿于邆臂而行。二十四日,逻邆及施浪诏施望欠弟施望千、浪穹诏丰时孙锋罗望、蒙嶲诏嶲辅子罗原皆至逻阁所。逻阁偕登楼祭祖,祭后享胙食生饮酒,迨晚,四诏尽醉。逻阁独下楼,焚钱遽纵火,火发,兵围之,四诏皆焚死。逻阁遣使至四诏所,报焚钱失火,四诏被焚,状令各诏收骨。四诏妻至,莫辨其骨。独慈善因铁钏得焉,携归葬之。逻阁旣灭四诏,取各诏宫人,念慈善慧而甚美,遣兵围其城,迫取之。慈善曰:「吾岂忘夫事仇者?」闭城坚守,半月城中食尽,慈善度不能支,卽自杀,时七月二十三日也。逻阁嘉其节,乃封赠为宁北妃,并旌其城曰德源城。城废址在今大理府邓川州城东北二里许。开元戊寅二十六年,逻阁破吐蕃及弥蛮,入朝,元宗礼之,加封为特进,云南王,越国公,开府仪同三司,赐名归义,并锦袍金钿带七事。王归国,以兵逐洱河蛮,筑太和城,今大理府城南十五里太和村地是。又筑大厘城今大理府城北四十里喜州是。守之,尽有云南之地。唐授王子阁逻凤右领军卫大将军兼阳瓜州刺史。开元二十七年,明矫叛,破剑川、浪穹、永昌。开元二十八年,王讨朋矫,平之。开元辛已二十九年,王自蒙舍川迁居太和城,立龙首、卽今上关。龙尾卽今下关。二关。唐加阁逻凤为左领军卫大将军。元宗癸未天宝二年,筑羊苴哶城于太和城之北。卽今大理府城。唐迁阁逻凤为左金吾卫大将军,寻拜特进都知兵马大将军。天宝甲申三载,西方进狮子皮。唐加阁逻凤为上柱国。天宝乙酉四载十月,城永昌。天宝丙戌五载,王遣孙凤伽异入唐,唐授伽异为鸿胪少卿,妻以宗室女,赐龟兹乐一部,元宗戊子天宝七载,王卒,在位二十年,子阁逻凤立。
|
|-
|阁罗凤一作觉乐凤。按:『德化碑』云:「家居阁罗凤」,则是取地名以为名也。袭封云南王,伪谥神武王。始建元。
|
|-
|
阁罗凤,唐元宗天宝戊子七载卽位,年三十六岁。唐遣中使黎敬义持节册凤袭封云南王,敕置阳瓜州于蒙舍川,加授
凤伽异为上卿兼阳瓜州刺史,都知兵马大将军。天宝庚寅九载,王率妻子往谒都督李宓,过云南,太守张虔陀私之,又多徵求。王表虔陀之罪,中官贾奇俊抑之,不得达。王复遣将军杨罗顚等连表控告。元宗仍不省。凤怒,遣大将军王毗双、罗时等发兵攻虔陀。虔陀饮鸩死;遂取姚州,并夷州三十二。获唐嶲州西泸令郑回以归,爱其才,用为清平官。天宝辛卯十载,唐命剑南节度使鲜于仲通将兵八万征云南。凤赴泸南在楚雄府姚州之城北一百五十里。谢罪,愿还所俘掠,请罢兵。仲通不许,分三道而进。仲通自南溪路,大将李晖自会同路,都督王知进自步头路。今临安府地。凤就安宁,再伸衷悃。仲通不听,兵至曲州、靖州。二州今为曲靖府地。凤复遣首领杨子芬、参军江如之赍状,言若不罢兵,卽当归吐蕃,恐云南非唐有。仲通终不许,囚其使,进薄白崖城。别遣大将王天运统师绕出点苍山后。凤遣
凤伽异及大军将段俭魏迎山后师,自逆战于西洱河。唐兵大败,死者六万人,王天运战殁,仲通仅以身免。凤乃叛唐,建元长寿。遣弟阁陂和尚及子铎传、酋望赵佺邓、杨传磨侔等,并子弟六十人献凯吐蕃。陂有神术,人马往来吐蕃,不过朝夕之顷。天宝十一载正月一日,遣宰相倚祥叶乐持金冠、锦袍、金宝带、金帐状、安扛伞鞍、银兽器皿、珂贝、珠毯、衣服、駞马、牛鞻等物至邓川,以凤为兄弟之国,册为赞普钟南国大诏,给金印,称东帝。并授凤伽异大瑟瑟告身,都知兵马大将。凤遂改是年为赞普钟元年。发人口百户于浪穹,筑白崖睑城,又遣兵攻掠安宁。天宝甲午十三载六月,唐命前云南郡都督兼侍御史剑南留后李宓、广府节度使何履光等,率十道兵再征云南。兵逼邓川,凤遣凤伽异、段俭魏迎战于江口。时神川都知兵马使论绮里徐救兵已至巴蹻山,遂诱宓深入,内外夹击。宓粮尽,士卒饥疲,引还。凤以精兵追战,唐全军覆没,李宓被执,沉江死,何履光遁去。凤因进取嶲州会同郡,据清溪关,以破越析。此二役也,皆凤弟阁陂和尚及凤妃白氏行妖术,展帕拍手而笑,韩陀僧用钵法,以故唐兵再败。时唐先后丧师已二十馀万,凤乃敛战胔,筑京观于龙尾关河尾,名万人冢,立碑大书「唐天宝战亡士卒之墓」。而唐宰相杨国忠更揜败以捷闻,叙战功。令清平官郑回撰『德化碑』,唐流寓御史杜光庭书。立石太和国门外,明其不得已叛唐归吐蕃之故。天宝乙未十四载冬十一月,东平郡王安禄山反于范阳,凤乘机以兵取蜀卭州,筑卭子城,及丽水金宝城。升段俭魏为清平官,赐名忠国,旋拜相国。代宗甲辰广德二年,羊苴哶城成,凤名之曰大理城,又名紫城。代宗乙巳永泰元年凤伽异筑云南城卽今云南府省城。又筑拓东城,今云南府昆阳州北平定乡。遂以兵攻陷曲靖。代宗丁已大历十二年,永昌牛生三角,羊生四角,鸡九足,井有光。建观音寺于白崖。先是,逻盛炎时,相国张建成欲于白崖建寺,卜之吉。又地下有三戳观音,上截在西,中截在东,下截在东南。因盛炎旋卒,不果建。至是建寺,掘之果然。代宗戊午大历十三年,阁罗凤卒,在位三十年。因子凤伽异先死,后追谥悼惠王。孙异牟寻立。
|
|-
|异牟寻改国号曰大理国。封云南王,又封南诏王 伪赠廪孝桓王
|
|-
|异牟寻,唐代宗戊午大历十三年卽位,年二十四岁。明年改元见龙,又改上元,率兵三万取蜀为东府,又连土番入寇。唐命神策都将李晟击破之。师还,自称南诏王。德宗甲子兴元元年,牟寻迁居史城,卽大厘城。改号大理国,自称日东王。封岳读,以叶楡今大理府。点苍山为中岳,乌蛮今东川府。乌龙山一名绛云弄山,在今禄劝县东北三百里。为东岳,银生府今景东厅。蒙乐山一名无量山,在厅北九十里。为南岳,又封南安州今楚雄府属。神石亦为南岳,越赕今永昌府腾越州。高黎贡山一名昆仑隅,在腾越、潞江之间。为西岳,嶲州今丽江府是。雪山一名玉龙山,在府西北二十里。为北岳。封金沙江源出吐蓄旄牛徼外犂牛石下,本名犂牛河,又名犂水,讹为丽水。经丽江府、鹤庆州、姚州而东北达于四川马湖府之马湖,卽『山海经』所谓若水。『水经注』云:若水经云南之遂久县,卽今金沙江巡检司地。昔黄帝长子昌意德劣,不足绍承天位,降居斯水为诸侯,娶蜀山氏女,生颛顼于若水之阳,疑卽其地也。祀在武定州,兰沧江源出吐蕃鹿石山下,本名鹿沧,又名兰沧。兰沧讹为浪沧。自丽江府度云龙州至永昌府,东经顺宁府,达于车里,过交趾地而入于南海。祀在丽江府,黑惠江在顺宁府之东入狼沧江,而达于南海。祀在顺宁府,怒江源出西域雍望,奔流而下,深不可测。夏月多瘴,经怒夷地入丽江府境野人界。至永昌府境,乃名潞江。祀在水昌府,为四渎,各建神祠。又立三皇庙。德宗丙寅贞元二年,设官立九爽三托。考疆域,其地东至于铜柱、铁桥、蟠桃、玉楡,东南至于交趾国,南至于骠国,西南至于木落山,西至于太石,西北至于吐蕃,北至于神川,东北至于黔巫。八分之地,属以八演,皆中国降人为之经画者。贞元丁卯三年,寻居大理城。命子弟师事郑回。时寻苦吐蕃徵求无厌,会李泌劝德宗招云南以断吐蕃右臂。帝从之,命韦皋为西川节度使,皋受命招抚群蛮。郑回因说寻归唐,寻以为然。皋遣谍者致书于寻,吐蕃知而疑之,乃责南诏大臣为质。寻愈怨。于是,决计归唐。皋以闻,德宗乃命皋作书谕寻。是年四月,吐番破蜀,来征兵,蔚按:卽吐蕃劫浑瑊清水盟之岁。寻谢绝之。贞元五年,寻遣乌蛮勿邓大鬼主苴梦冲、两林都大鬼主直那时聘于皋,因入朝。皋遣其属崔佐时报之。时吐蕃使数十人先在,佐时至,寻令更衣入。佐时不可,曰:「天朝大使。岂衣夷衣?」寻不得已,夜迎之。佐时至,大宣诏旨,令寻斩番使,去其所立之号。寻遂与佐时盟于点苍山下。贞元九年,寻遣使上表,请从韦皋袭吐蕃。诏册封为云南王,以韦皋为云南安抚使。王遣使诣皋,献夷中歌。贞元十年,吐蕃徵兵于王,王阳示寡弱,以兵三千应之,自将数万人踵其后。正月,袭吐蕃,战于神州,断铁桥,在巨津废州,今丽江府西北地。取十六城,俘其五王,降众十馀万,获军资甲仗无算。遂遣弟凑罗栋、清平官尹仇宽献捷于唐,并献地图、纳贡及吐蕃所给金印,请复号南诏。于是,唐以祠部郞中袁滋为中丞,赐金紫充册使。赐王银窠金印,印文曰:「贞元册南诏印」。王北面跪受。宴使者,出元宗天宝五载所赐王父凤伽异银跳脱马头盘数物,并指老笛工、歌女曰:「皇帝所赐龟兹乐,惟二人在耳!」使者日:「南诏世荷唐恩,当深思祖考子孙勿替,尽忠皇唐。」王对曰:「敢不敬使者之命。」随遣清平官尹辅首入谢,献铎鞘、郁刀、生金、瑟瑟、牛黄、氎、纺丝、越赕绕伦马。蔚按:铎鞘,疑当作择矟,状如残月,有孔旁达,出丽水,饰以金,月祭之血,所击无不洞。段柯古『酉阳杂俎』云:南蛮有毒槊无刀刃,状如朽铁,中人无血立死。言自天而下,入地丈馀,祭地乃掘得之,云云。疑卽铎矟,毒为铎字之讹,槊字本同矟宇也。郁刀铸时以毒药并冶,取莹耀如星者,凡十年乃成,淬以马血,镂金犀饰镡首,伤人卽死。因浪人所铸,又名浪剑,夷中甚宝之。七月,又攻吐蕃,并破施蛮、顺蛮,施蛮、顺蛮卽施浪、浪穹二诏之后,自南诏并吞五诏,五诏之后不复称诏,止称蛮。俘其王置白崖城。贞元十二年,取越赕,置软化城。贞元十四年,请以大臣子弟质于朝,韦皋却之。固请,乃尽舍成都,遣就学。贞元十五年,王开白国北方赕地,今永北厅。徙弥河白蛮及罗落摩蛮实之,号剑羌。是年,王从韦皋再败吐蕃于铁桥。初,王谋击吐蕃,以邆川、卽今邓川州。宁北卽今浪穹县。等城当寇冲,乃峭山深堑,修战备。至是吐蕃谋袭南诏,王告于皋,遣将屯黎州、嶲州以应之。吐蕃引兵攻嶲州,皋严兵以守,别遣将袭击,降其帅,吐蕃惧,退至铁桥。王令人毒其水,吐蕃人马多死,退屯三泸水,王与皋部将杜毗罗击败之。贞元十六年,王率子寻阁劝入朝于唐,召对延英殿,进奉圣乐舞,德宗御麟德殿观之。贞元十七年,王夜绝泸水,斩吐蕃屯卒,又合鬼主破之于泸西。吐蕃大惧,欲悉师收嶲州,以绝南诏。王谓韦皋曰:「吐蕃声取嶲州,实窥云南,请进军羊苴咩城。」皋督诸将分道与王会,陈兵深入,拔木波城。前后凡克城七,焚堡百五十所,斩获无算,生擒论莽热,献于唐,并进铠甲十五万。皋班师,帝遣中使慰抚王。王自是比年贡方物,唐帝深礼之焉。贞元十九年,王封云南金马碧鸡二山之神为景帝,建妙音寺塔,筑大理雪峰长城。宪宗戊子元和三年七月,王卒。唐遣使祭吊,在位三十年,子寻阁劝立。
|
|-
|寻阁一作觉劝又名新觉劝。 袭封南诏王 伪谥孝惠王
|
|-
|寻阁劝,唐宪宗戊子元和三年卽位,年三十一岁。唐册劝袭封南诏王,赐元和金印。宪宗己丑元和四年正月,改元应道,群臣上尊号曰骠信,以鄯阐为东京,大理为西京,重修曲靖崇真寺。寺为晋代所建。十一月王卒,在位一年。子劝龙晟立。
|
|-
|}
===Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝龙晟,唐宪宗己丑元和四年卽位,年十二岁。唐册袭封南诏王。明年,改元龙兴。铸佛三尊,送佛顶峰寺,用金三千两。元和九年,晨寇嘉定州,有飞天神兵破之。先是,节度使杜元颖守成都时,时滇兵至嘉定之沐源州,忽自惊溃。蜀军获一夷卒问之,云适见遍山神兵,一神将长斧坐二鬼上,声若迅雷,故尔惊走。至是神复现形,自后追杀,卽时死酋长二人。盖嘉定向有飞天神庙,两破滇兵者,皆此神也。宪宗丙申元和十一年,晟淫虐失道,弄栋节度使王嵯巅弑之,时年仅十九岁,唐命少监李铣祭吊,在位七年,弟劝利立。
|
|-
|}
===Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝利,唐宪宗丙申元和十一年卽位,年十五岁。唐册袭封南诏王。王嵯巅东寇。明年,改元全义。元和十三年,厚赏王嵯巅,赐姓蒙,封太容。元和十四年,废王嵯巅,赦其罪,命敬信三宝,为清平官。元和十五年,又改元大丰。重修崇圣寺。五月,大雨霖,龙首、龙尾二关倾。除洱河水怪,建龙屋塔。高十二丈。按:『白古记』:唐时洱河有妖蛇,名薄劫,兴大水淹城。蒙国王出示:有能灭之者,赏半官库,子孙世免差徭。部民有段赤城者愿灭蛇,缚刃人水,蛇吞之,人与蛇皆死,水患息。王令人剖蛇腹,取赤城骨葬之,建塔其上,毁蛇骨灰塔,名为灵塔。在今大理府城南龙尾关内点苍山马耳峰下羊皮村。每年有蛇党起风来剥塔灰。时有谣曰:赤城卖硬土。今『龙王庙碑』云:洱河龙王段赤城云。永昌生两头牛。穆宗甲辰长庆四年,赐南诏王金印。是年王卒于东京,在位八年,弟丰佑立。丰佑慕中国之风,独不肯连父名。丰佑石刻作劝丰佑 册封滇王 伪谥昭成王
|
|-
|
丰佑,唐穆宗甲辰长庆四年卽位,年七岁。唐遣京兆少尹韦审规持节册封为滇王。王遣洪成酋等人谢。明年,改元保合,又改元天启。西僧赞陀啒哆建鹤庆元化寺。先是,鹤庆地水淹,僧杖刺东隅泄之。水中得樟木,刻为佛,咒之忽灵,远近名曰活佛。按:活佛,后至明成化间,福建莆田林俊为云南宪副闻之,亲至寺中,将佛火之,得金数百两入官,又毁他寺三百,人呼为林劈佛。建常平仓,筑邓川城。敬宗乙巳宝历元年,重修大理崇圣寺一名三塔寺。成先是,王嵯巅广寺基方七里。圣僧李成眉贤者建立三塔,高三十丈。佛一万一千四百,屋八百九十,铜四万五百九十筋。元和十五年经始,至是工竣。塔顶旧有铁柱款识云:「贞观六年尉迟敬德监造」,盖寺之建久矣。重修云南东寺塔,高百五十尺,西寺塔高八十尺,二寺亦贞观间将作大匠尉迟敬德所建。文宗丁未太和元年,王母出家,法名惠海。太和二年,用银五千,铸佛一堂,废道敎。太和己酉三年,僧梦岛造永昌卧佛,长丈六。六月朔,星落如雨。命王嵯巅等寇蜀。先是,西川节度使杜元颖失士卒心,军逃入南诏,因此知蜀虚实。佑遂遣嵯巅等攻蜀,陷嶲、戎、卭三州,攻成都,止西郛十日,掠经书、宝货、子女无算,蜀中残敝。并寇梓州、蜀州。佑上表于唐,请诛元颖。唐改云南为鄯阐府。卽今云南府省城。太和四年,唐贬杜元颖循州司马,以义成节度使李德裕为西川节度使。裕至西川,建筹边楼,日召习边事者访问,凡山川险要,南道与蛮相入者图之左,西道与吐蕃相接者图之右,不啻身尝经历焉。乃奏请留北兵以重镇守,修甲胄、备器械。率户二百取一人习战,作雄边子弟等十一军。筑仗义、御侮、柔远诸城以扼要害,复卭崃关,徙嶲州治台登,以夺蛮险。令转卭、雅粟以十月而运,先夏而至,人不苦瘴,边境始安。至是使人于佑,责归所俘。太和五年五月,佑归所俘西川四千人于德裕。太和六年,佑掠骠国民三千,徙之拓东城。武宗乙丑会昌元年,佑遣军将晟君筑横渠道自磨用江至于鹤拓,灌东皋及城阳田,与龙佉江合流入于河,谓之锦浪江。又潴点苍山玉局峰顶之南为池,谓之高河,又名冯河。更导山泉共泄流为川,灌田数万顷,民得耕种之利。会昌六年九月,佑攻陷安南,经略使裴元裕死之。宣宗丁卯大宗元年,佑妃卒,佑郁郁不乐,臣下请选妃女备后宫。得罗部今云南府罗次县。一美女进之,有宠。女好佛,建罗次寺,至今灵异。六月大旱,佑令僧寿海祈雨。僧曰:「昔汤旱七年,六事自责,天雨七日。今王酒色妄杀,天怒不雨。王如改悔,天雨自至,何以祈为?」佑如僧言,自责自改,数日果雨。佑女至崇圣寺进香,回至城西,为一乘白马人摄去,寻之不得。佑告于西僧赞陀啒哆,哆曰此山神也。乃设灯照之,果在苍山下。哆怒欲行法,移山于河。山神惧,献宝珠供佛,佑乃已。大中十二年,佑遣段酋迁陷安南都护府。遣段宗榜救缅。榜,汤今云南府宜良县地。人,佑之勇将。先是,狮子国侵缅;屡求救,至是许之。按:缅甸卽汉之掸国,唐之骠国,其历代莫考。当宋元之时,屡败王师。明太祖洪武十年,缅头目招扳南进贡。十九年,使行人司钱古训赍诏立宣尉司。二十年,缅犯景东。二十一年,犯他郞甸,沐英命都指挥宁正平之。三月,犯定边,沐英同都督冯诚平之。景泰三年,王骥赏缅孟养地。缅喜,乃擒献麓川贼。嘉靖初,缅火烧赍金牌官,中终年猖獗海上,遂至难制。○考自永昌府腾越州入缅,止三十四程。腾越一日南甸、一日罗必斯、一日郞、一日甸头、一日甸尾、一日蒙腰、一日甸蓝、一日蒙怜路、一日空地、一日蒙来路、一日大市、一日龙江、一日锅地、一日人列渡、一日江头城、一日景怜、一日及、一日马来城、一日赖当、一日山头、一日甸头、一日阿只、一日吴细辰、一日折弓、一日阿越。由阿越下水,九日卽至缅城。其地有五大城,江头、太公二城之外,又有马来、安正国、蒲甘缅王三城。酋住金楼,民住竹楼。其下称酋为卜剌浪,称酋妻为米泼剌。酋出人乘轿,水有舟筏。官名有招孟、招彔、招刚三等。官无大小,倶金银花宝带。无弓箭。其水有金沙江,险恶,缅恃以为固。涸时,亦仅五里。俗敬佛,重罪对佛发誓,凭僧处断。○入缅又有三道:一由潞江西上;一由腾越七日至麓川;一由景东从木通甸至湾甸渡入芒市,十日至麓川。○此外从潞江上流蒙来渡至景乐沿河有小渡十馀处,皆可通。又有三道:一由天步马,一由湾甸,一由阿郊地界,皆可入缅。宣宗己卯大中十三年,陷播州。李德裕旣贬死,西川节度使所任皆非人,侥佯边功,发兵十万袭滇,自建昌入,佑命子世隆为坦绰,同王嵯巅迎战于古宗,今丽江府铁桥以北地。杀唐兵数万人,立铜柱于界上。世隆之母,佑妃也,出家号师摩矣。尝随佑至罗浮山白城,建一寺,南壁画一龙,是夜龙动,几损寺,妃乃复画一柱锁之,始定。按:妃本渔家女,喜浴。为妃后,仍常泛舟西洱河,屏人潜浴于水,感金龙与交,生世隆。隆七岁,拳握始开,有文在其掌曰:通番打汉。古宗之战,唐帝惧世隆为患,妻以宗室女,伺察其所为。女以世隆年庚潜送于帝。帝使太史推之,知其感龙精而生。是年,丰佑卒于东京,在位三十五年。子世隆立,以王嵯巅摄政。段宗榜救缅,回至腾越,闻佑卒,世隆立,嵯巅摄政,移书王嵯巅曰:「天启不幸,驾崩嗣幼,闻公摄政,国家之福。榜救缅以败狮子国。缅酬金佛,当得敬迎。奈中国无人,惟公望重。榜抵国门之日,烦亲迎佛,与国增光。」云云。嵯巅不知是谋,至日迎之。榜令巅拜佛,突斩之于佛前。讨其弑劝隆晟之罪也。榜熔佛得金数千两。时有缅人奉香火者在榜,默祝曰:「愿世代奉敬,今不如愿,惟愿世尊轮生,灭彼国祚。」后果生郑买嗣篡国,灭蒙氏。
|
|-
|世隆『唐书』作酋龙。 伪谥景庄皇帝僭称帝始此,以后郑、赵、杨、段、高五姓之国咸效之。
|
|-
|世隆,唐宣宗己卯大中十三年卽位,年十六岁。明年,为懿宗庚辰咸通元年,改元建极。改西京曰中都,东京曰上都。先是,德宗贞元间,西川节度使韦皋开道通南诏,令岁入贡。异牟寻、寻阁劝二世事唐唯谨,迨劝龙晟及丰[佑],又数数扰边,大为唐患。又以世隆之名犯太宗、元宗庙讳。唐不册封,隆益致怨望。至是自称皇帝,遣兵取乌蛮、僰、爨之地,置东川郡。前节度使杜悰变韦皋制度,侵扰蛮中。隆绝朝贡,寇播州。至是李福为节度使,隆遣清平官董成至成都,移书于福。成与福抗礼,福囚之。上闻,有诏释成,召至京师,见便殿,遣还。咸通二年,遣兵陷安南。左仆射同平章事杜悰言:「西川兵弱,南诏强盛,未可轻绝。宜遣使祭吊,谕令改名,行册礼。帝肯之。会隆复寇嶲州,遂止。咸通三年,隆亲寇蜀,取万寿寺石佛归。时高真寺僧崇模有神术,从征。军中乏粮,又値岁暮,士卒思归,僧咒沙成米,咒水成酒,士卒各醉饱。一日僧化蝶回国乱宫,世隆妻以书达隆。隆答曰:妖若再来,令宫人于其衣背绣蝶。后僧复至,宫人绣之。隆见僧衣有蝶,令斩之。刑七次,首不殊。僧自云:用茅锯之乃断。果然。人见僧魂化一黑鹏飞去,盖僧本高真寺鹏巢中所得之儿也。咸通四年,寇西川。咸通五年,陷安南、邕管。咸通六年,陷嶲州。咸通七年,复攻安南。岭南西道节度使高骈救之,隆兵大败,骈遂定安南。咸通十年,隆遣使杨酋庆等入朝,谢释董成之囚。归成都俘三千人。定边节度使李师望杀其使,隆怒,率众攻蜀,陷嘉州。咸通十一年正月,陷黎州,入卭徕关,围雅州,击卭州,遂进攻成都。次眉州,西川节度使卢耽畏众寡不敌,通使请降。继而唐遣东川节度使颜庆复、大将宋威等率兵来战。世隆败屯星宿山,宋威戍沱江。隆迎战于毗桥,不胜,趋沱江,中伏。城中又出突将,夜火隆营,夺升仙梁。隆大败,奔双流江,无梁以渡,乃伪请和,三日梁成而济。咸通辛卯十二年,立鄯阐王宫。咸通壬辰十三年,于白崖诸葛武侯所立铁柱之地,铸天尊柱,高八尺。蔚昔年曾至铁柱宫,其地界白崖、弥渡、蒙化三境之间。其柱刻字云:建极十三年岁次壬辰四月朔庚子十四日癸丑建立。咸通十四年,攻黔中。又寇西川,作浮梁济大渡河,防河兵马使黄景复伏兵,半渡击败之。会隆国中新兵继至,接战,景复败走。隆进兵陷黎州,入卭徕关。遂遣王保诚等四十人谩书诣剑南节度使牛丛,欲假道入朝,请憩蜀王故殿。丛囚其使三十八人,释酇咙及段酋迁二人还。隆乃退兵至新津而旋。僖宗乙未乾符二年,攻雅州。西川节度使高骈追至大渡河,大败之,俘酋长五十人,收复黎州、卭徕关,斩黄景复以狥。乾符三年,遣使诣高骈请和,不许,斩使者一人。隆怒,自是唐使至不拜,惟拜和尚。骈知之,乃遣僧景仙往谕公主事,隆乃下拜定盟。禧宗丁酉乾符四年二月,复寇蜀,高骈御退之。骈又结吐蓄尚延心嗢、末鲁褥月等为间,筑戎川州、马湖沭沐源川、大渡河三城,列屯拒险,料壮卒为平夷军。世隆气夺,因恚发疽,卒于越嶲景净寺,在位十八年,子隆舜立。
|
|-
|}
===Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆舜,唐僖宗丁酉乾符四年卽位,年十七岁。明年,改元贞明,又改元嵯耶、承知、大同,改国号曰大封民国。遣使于唐请和,诏许之。自劝龙晟至世隆以来,侵蜀伐安南,用兵五十馀年,帑藏不给,横敛于民,上下倶困。舜立,耽于酒色,委政臣下,故愿求和于唐,乃遣段宝诣岭南节度使辛谠,请修好。谠奏,许之,以息边患。乾符六年,遣使于唐求和亲,无表,只用牒,称弟不称臣。唐帝召百官议,礼部侍郞崔澹曰:「南诏无礼,恐贻后笑。」使者上书与澹争。帝谕解之。议者谓中国多故,南诏寖强,不若权与和亲。便从之。僖宗庚子广明元年春正月,唐命宗正少卿李龟年来和亲。僖宗辛丑中和元年,上表款附。中和癸卯三年,唐以宗室女为安化长公主,妻隆舜,僖宗乙已光启元年,遣宰相赵隆眉、清平官杨奇鲲、段义宗三人,朝唐帝行在,且迎公主。高骈在淮阳飞章上言:「三人南诏心腹。宜止而酖之。」唐帝从其言。隆眉等死,南诏遂不复振矣。是年昆仑国进美女,舜嬖之。光启二年地震,龙首、龙尾二关、三阳城皆崩。昭宗己巳乾宁四年,隆舜多内嬖,常信谗以诛其下,淫虐日甚。竖臣杨登弑之于东京,在位二十年,子舜化贞立。
|
|-
|}
===Shunhuazhen舜化贞 伪谥孝哀帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|舜化贞,唐昭宗丁巳乾宁四年卽位,年二十一岁。明年,改元中兴。上书于唐,朝廷欲报之。利州刺史王建上言:「臣在西南,彼必不敢犯塞,小夷何足辱诏书。」遂止。昭宗光化二年,立五学敎主。十一月,诛杨登,族其家。光化庚申三年,铸崇圣寺丈六观音,清平官郑买嗣合十六国铜所铸,蜀人李嘉亭成像。一说唐天宝间,崇圣寺有僧募造丈六观音像,未就。夜忽雨,旦视之,铜也,卽取以铸像。像成,白光弥覆凡三日夜,至今人称为雨铜观音。唐昭宗壬戌天复二年,舜化贞卒,一说实郑买嗣弑之。,在位五年。化贞有一子,生甫八月,郑买嗣主国事,遂启贞妻曰:「母后深宫,群臣无主,臣当抱太子临朝。」贞妻是其言,以子付之。买嗣抱子出,潜手伤其阴,子哭不已,乃送回宫中。明日,子死。贞妻疑而诘之,买嗣怀不安,遽起兵杀蒙氏亲族八百人于五华楼下,遂簒立焉。
|
|-
|按:蒙氏南诏大蒙国,自细奴逻禅立,起唐太宗己酉贞观二十三年,讫昭宗壬戌天复二年,传十三世,共二百五十五年。
|
|-
|}
==Dachanghe Generations《大长和国 传三世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dachanghe Generations《大长和国 传三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|郑买嗣又名。 伪谥圣明文武威德桓皇帝。
|
|-
|郑买嗣,又名,唐巂州西泸令陷南诏臣蒙氏,为清平官郑回之七世孙。
隆舜时历官侍中,权势日重。隆舜巡幸无度,留买嗣守国,遂专政柄。舜化贞时为相,化贞卒,嗣贼杀其子,簒蒙国,于唐昭宗壬戌天复二年十二月卽位,年四十二岁,国号大长和,仍都大理。明年,建元安国。后梁太祖开平丁卯元年,建普明寺。开平三年,铸佛一万尊,送寺祈福,为杀蒙氏八百人故也。开平四年八月,买嗣卒,在位八年,子仁旻立。
|
|-
|}
===Renmin 《仁旻 伪谥肃文太上皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|仁旻,后梁太祖庚午开平四年卽位,年二十二岁。明年,改元始元,又改元天瑞、景星、安和、贞佑、初历。末帝甲戌乾化三年,旻攻蜀。蜀高祖王建发兵拒之,旻兵大败,溺水使者万馀人。后唐庄宗癸未开同光元年,施宫寺灾,僧智照撰『封民三宝记』。同光二年旻以朱鬃白马求婚于南汉刘龑,龑以增城公主妻之。明宗丙戌天成元年八月,仁旻饵金丹,躁怒,常杀人,遂暴卒,在位十六年,子隆亶立。
|
|-
|}
===Longdan 《隆亶 伪谥恭惠帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆亶,后唐明宗丙戌天成元年卽位,年十二岁,明年,改元天应。明宗戊子天成三年,东川节度使杨乾贞入朝,弑隆亶而立赵善政,计亶在位二年。
|
|-
|按:郑氏大长和国,自买嗣簒位,起唐昭宗癸亥天复三年,讫后唐明宗戊子天成三年,传三世,共二十六年。
|
|-
|大天兴国一作兴源国。 一世
|
|
|}
==Dayining Generations《大义宁国 一世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Yang Qianzhen 《杨乾贞 伪谥肃恭帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|杨乾贞于后唐明宗己丑天成四年夺大天兴国赵善政之位,改国号曰大义宁国,建元兴圣,又改元大命。乾贞萂村人。今大理府宾川州所属地。母名弥彔,有美色,蒙隆舜私焉。有孕,适渔人杨氏,生乾贞,后又生诏。其父捕鱼,贞立船头,见水中有人龙衣冠冕,左右有凤鸟,白光拥护,乃呼父视之。父见是贞之影,大奇之。长仕郑氏,官至东川节度使。至是夺善政位而自立。贞在位,贪暴特甚,中外咸怨。后晋高祖丁酉天复二年,通海节度使段思平起兵讨之。贞遣弟杨诏等五人出拒。诏兵败,乾贞出奔。思平遂得位,寻赦其罪,废为僧。计贞在位八年。
|
|-
|}
==Dali Generations《大理国 传十四世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siping《太祖圣神文武皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段思平,其先武威郡北人,世为南诏蒙氏将。唐元宗辛卯天宝十载,及甲午天宝十三载,唐再伐云南,云南王蒙
阁逻凤命世子凤伽异、大军将段俭魏迎战于点苍山及西洱河,两败唐兵。以功升俭魏为清平官,赐名忠国,寻拜相,六传而至思平。其母因过江,水泛触浮木,若有感而娠,生思平,并其弟思良。思平为幕览,小府副将也。常游山中,得为帝之谶,又每多异徵。时东川节度使杨乾贞之弟杨诏者已贵,闻而忌之,使人贼思平。思平逃匿于崇恩寺,在大理府城南九里。捕者追至,见蛛网盈寺门,不入,故得脱。后积战功,使为通海节度使。后唐明宗己丑天成四年,杨乾贞夺赵善政之位。受诏之谮,常欲除思平。平卜于秀山神祠,就其舅爨判自匿。后晋高祖丙申天福元年,乾贞索捕思平甚急。会善政臣守高方,素与思平善,密遣人招思平。思平与其弟思良、军师董迦罗走就之。皆裂冠,变姓名,为猎者,牵一犬至品甸波大村今大理府云南县地。宿旅舍。舍有戟,生牛革裹之,是夜风起,戟忽洞革出。思平惊曰:「是何銛利?得非神戟乎!」问主人曰:「戟何为?」曰:「以防夜耳。」曰:「防夜莫若犬。」遂以犬易戟去。行至叶镜湖,湖在大理府云南县地得神马。饥取野桃而食,核上有虫啮「靑昔」二字,思平解为十二月二十一日,意其吉兆。于是急趋而前,借兵于东方黑爨三十七蛮部,会于石城,今曲靖府是。以董迦罗为军师。兵集之期,适十二月二十一日也。所向皆克,遂进攻大理,讨干贞。时诏等陈兵据桥,军不能过。思平夜忽得三梦:人无首;玉瓶无耳;镜破。觉而告其下。迦罗觧之曰:君乃丈夫,去首为天;玉瓶去耳为王;镜破则无对者,此神示吉兆。是日,有被缨浣沙妇,指渡处曰:「人从我江尾,马从三沙矣,尔国名大理。」从之,乃得过江,击诏等杀之。乾贞闻诏等军败,出奔。思平卽位,时天福丁酉二年也,年四十四岁。建号大理国,建元文德,仍都大理。天福三年封董迦罗为相国,封高方为岳侯,分治成纪、巨桥等地。封爨判为巴甸侯。祠秀山神,免东方三十七蛮部徭役,赦国中凡有罪无子孙者。天福四年,赦杨乾贞罪,废为僧。一说乾贞败后,挈其妻子奔永昌郡。思平遣兵追之,至万剑树,乾贞自缢而死。思平俘其妻子亲属。帝好佛,岁岁建寺,铸佛万尊。后晋出帝甲辰开运元年帝崩,在位八年,子思英立。
|
|-
|}
===Duan Siyin 《文经皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siyin 《文经皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思英,后晋出帝甲辰开运元年卽位,明年,为出帝开运二年,改元文经。帝母杨氏桂仙娘没而为神,屡著灵应,封为楡城宣惠圣国母。是年,帝叔思良争位,废帝为僧,法名宏修大师。在位一年,叔思良立。一说思英素不肖,思平在日,常欲废之,不果。迨卽位,愈淫戏无度,群臣废之,而立思良。
|
|-
|}
===Duan Siliang 《圣慈文武皇帝 太祖之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siliang 《圣慈文武皇帝 太祖之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思良,后晋出帝乙巳开运二年卽位,明年,改元至治。后周太祖壬子广顺二年,帝崩,在位七年,子思聪立。
|
|-
|}
===Duan Sicong 《思聪 伪谥至道广慈皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sicong 《思聪 伪谥至道广慈皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思聪,后周太祖壬子广顺二年卽位,明年改元明德,又改元广德。宋太祖乙巳开宝二年,思聪卒,在位十七年,子素顺立。
|
|-
|}
===Duan Susun 《素顺》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Susun 《素顺》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素顺,宋太祖乙巳开宝二年卽位。明年,改元明政。先是,宋太祖丁卯乾德五年春,王全斌平蜀,还京师,请取云南,负地图进。太祖鉴唐之祸,以玉斧画大渡河为界,曰:「此外非吾有也。」由是段氏得据南诏,相安无事。太宗乙酉雍煕二年,素顺卒,在位十六年,子素英立。
|
|-
|}
===Duan Suyung 《素英 伪谥昭明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suyung 《素英 伪谥昭明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素英,宋太祖乙酉雍煕二年卽位。明年,改元广明,又改元明应、明圣、明统、明治。太宗至道二年,述『传灯录』。真宗己酉大中祥符二年,素英卒,在位二十四年,子素廉立。
|
|-
|}
===Duan Sulong 《素隆 伪谥秉义皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sulong 《素隆 伪谥秉义皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素隆,宋真宗壬戌干兴元年卽位,明年改元明通。仁宗丙寅天圣四年素隆禅位为僧,在位四年。侄素贞真立。
|
|-
|}
===Duan Suzhen 《素真 伪谥圣德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suzhen 《素真 伪谥圣德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素真,宋仁宗丙寅天圣四年卽位,明年改元正治。仁宗辛巳庆历元年素真禅位为僧,在位十五年,孙素兴立。
|
|-
|}
===Duan Suxing 《素兴 伪谥天明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suxing 《素兴 伪谥天明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Lianyi 《廉义 伪谥上德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Lianyi 《廉义 伪谥上德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|廉义,宋神宗乙卯熈宁八年卽位。明年,改元上德。遣使入贡于宋。熈宁十年,又改元广安,作八龙王会。神宗庚申元丰三年,杨义贞杀廉义而自立。计义在位五年,自义贞弑其主廉义而自立,簒位仅四月,鄯阐侯高智升命子清平官高升泰起东方爨僰兵,讨而诛之,立廉义之侄寿辉。
|
|-
|}
===Duan Shouhai 《寿辉 伪谥上明皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
===Duan Zhengming 《正明 思廉之孙 伪谥保定皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
==Da Zhongguo Generations 《大中国》==
===Gao Shentai 《高升泰 伪谥富有圣德表正皇帝》====
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|高升泰,宋哲宗甲戌绍圣元年,受大理国段正明之禅卽位。改国号曰大中国。明年,改元上治。升泰,岳侯高方之裔,大理点苍山莲花峰下芒涌溪人。将生,其父袭岳侯,智升往石云寺在点苍山白雪峰麓进香回,遇一老叟云:「尔家将生贵子,可速归。」智升至家,而升泰适生,心颇异之。及长,有材器,仕为清平官,兼九爽之事,誉望日重。思廉出游,猝遇烈风,吹踣其马。廉将坠,智深跃前扶之。廉德智升,赐以宫人及珠玉。杨允贤(判)〔叛〕,廉命智升讨之,以功加太保,封德侯,旋晋鄯阐侯,世袭。及杨义贞簒逆,智升令升泰起东方兵,诛义贞而立廉义之侄寿辉。辉以智升为布燮,升泰袭鄯阐侯。辉在位灾异迭兴,因禅位于思廉之孙正明。明为君不振,人心归高氏。遂请升泰为君,而正明禅以位焉。哲宗丙子绍圣三年,升泰在位二年,寝疾。遗命曰:「我之立国,以段氏之弱,我死,必以国仍还段氏,愼勿背我。」及卒,其子高泰明遵遗命,还位正明之弟正湻。段氏复兴,号后理国。高氏相之,政令皆出其门,国人称为高国主,段氏拥虚位而已。
|
|-
|}
==Houli Guo Generations 《后理国》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhengchen 《段正湻 大理国正明之弟 伪谥中宗文安皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正湻,宋哲宗丙子绍圣三年复得国,卽位,号后理国。以高泰明为相国,执政柄,高泰运为栅主。明年,改元天授。又改元开明,天政,文安,赦徭役。筑楚雄城,在今楚雄府城西北二里。以封高泰明之侄高明亮。徽宗癸未崇宁二年,遣高泰运奉表入宋,求经籍,得六十九家,药书六十二部。鄯阐李观音得来朝,进金马杖八十节,人民三万三千户。湻赐得八章礼衣,龙头剑,擢为安东将军。蔚按:蒙氏时有安东将军,季李珠所筑安东城,在今大理府赵州城东二里。缅人、波斯、昆仑三国进白象及香物。十月,彗星见西方,大疫。徽宗戊子大观二年,正湻禅位为僧,在位十二年,子和誉立。
|
|-
|和誉又名正严 封云南节度使大理国王,伪谥宪宗宣仁皇帝
|
|-
|和誉,宋徽宗戊子大观二年卽位。明年,改元日新。又改元文治、永嘉、保天、广运。七月中元节,各方贡金银、罗绮、珍宝、犀象万计,牛马遍点苍。徽宗辛卯政和元年,地大震,损十六寺。三十七部判叛〕,高相国泰明讨平之。使四子高明清居鄯阐镇守。政和五年,缅人进金花、犀象。政和六年。遣儒官钟震、黄渐赍敕褒高泰朋相国忠贞,封平国公。是年,遣使入贡于宋。高泰明卒,封国师。泰明生八子,高智昌以罪流死。其下伊、何二人谋为执仇,乘誉入寺进香,图弑逆,事露被收。誉嘉二人之义,赦之,为立义士冢。高泰运立,主国事。六月,三日并出。政和丁酉七年,命子紫琮充进奉使,入贡于宋。诏遣使册封誉为金紫光禄大夫、检校司空、云南节度使、上柱国、大理国王。徽宗己亥宣和元年正月,彗出,慕宁、远、矣、破、马等叛。三月,出师征之,兵败。三十七部蛮复叛。陷鄯阐,高明清死之。郡臣以高升泰侄商量成有德,请立为相,号中国公。徽宗丙午靖康元年五月,金星入月,大火,焚三千九百家。南宋高宗丙辰绍兴六年,王遣使贡象马于宋,广西经畧安抚使奏之,诏护送行在,优礼答之。绍兴十六年三月十四日,大雾,历二十四日方开。高宗丁卯绍兴十七年,王老,因诸子内争外叛、遂禅位为僧,在位三十九年。子正兴立。
|
|-
|}
===Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|正兴,南宋高宗丁卯绍兴十七年卽位。明年,改元永贞,又改元大宝、龙兴、盛明、建德。高量成让相位与侄寿贞,退老楚雄城。人化其德,名城曰德江城。孝宗癸未隆兴元年三月,寿贞卒。寿昌立为中国公。孝宗壬辰乾道八年四月,重雾,十六日方开。正兴禅位为僧,在位二十五年,子智兴立。
|
|-
|}
===Zhixing 《智兴 伪谥宣宗功极皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixig 《智兴 伪谥宣宗功极皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智兴,南宋孝宗壬辰乾道八年卽位,明年,改元利贞。又改元盛德、嘉会、元亨、安定。遣李观音得等至广西横山砦今在广西南宁府江上。求市马。李观音得夺寿昌位,与侄贞明。阿机起兵夺贞明位,还寿昌。贞明遂据鹤庆,号明国公,伪谥义地威天聪明仁帝。高妙音自白崖起兵,据鄯阐。时有妙音之甥成贤、成正二人来谒,意在夺鄯阐。妙音觉之,与之盟于天王庙。二人口含丁香叶,出庙吐之曰:「盟非我也,叶也。」未几,二人起兵,方战,见白马将斩之。白马将,乃庙中二力士也。光宗庚戌绍熙元年,修十六寺。宁宗乙卯庆元元年,修龙首、龙尾二关,三阳城。宁宗庚申庆元六年,智兴卒,在位二十八年,子智廉立。
|
|-
|}
===Zhilian 《智廉 伪谥享天皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhilian 《智廉 伪谥享天皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智廉,南宋宁宗庚申庆元六年卽位。明年,改元凤历。又改元元寿。使人入宋求『大藏经』一千四百六十五部,置五华楼。宁宗乙丑开禧元年,智廉卒,在位五年。弟智祥立。
|
|-
|}
===Zhixiang 《智祥 伪谥神宗皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixiang 《智祥 伪谥神宗皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智祥,南宋宁宗乙丑开禧元年卽位。明年,改元天开。又改元天辅、仁寿。征三十七蛮部,至寻甸平,河水绝流。理宗丁酉嘉(禧)〔熙〕元年,封高隆鄯阐王,以高泰祥为相国,以光日为演习。大府主将也。举贤育才,时和年丰,称治国焉。理宗戊戍嘉(禧)〔熙〕二年,智祥禅位为僧,在位三十三年。子祥兴立。
|
|-
|}
===Xiangxing 《祥兴 伪谥孝义皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|祥兴,南宋理宗戊戌嘉(禧)〔熙〕二年卽位。明年,改元道隆。理宗甲辰湻佑四年,蒙古兵出灵关,伐大理。祥兴遣将高禾迎战,禾败死之。段连佑归宋,宋遣使吊祭,致经书、银缎,为高禾拒蒙古兵战殁也。理宗辛亥湻佑十一年,为蒙古宪宗蒙哥之元年,祥兴卒,在位十三年。子兴智立。
|
|-
|}
===Xingzhi 《兴智 赠天定贤王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|兴智,南宋理宗辛亥湻佑十一年卽位。明年,改元利正。又改元兴正、天定。是年,南宋理宗壬子湻佑十二年,为蒙古宪宗之二年七月丙午,太弟忽必烈等奉宪宗命,伐大理。受制专征,以大将兀良合台总督军务。八月,次临洮,由六盘逾吐番,凡行山谷二千馀里无人之境。先遣王律术、王侯、王鉴来谕大理,道阻而还。九月,次忒刺,分三道进。兀良合台率西道兵,由晏当路,诸王抄合也只烈率东道兵,由白蛮,忽必烈率劲骑,由中道。乙巳,至满陀城,留其辎重。十月,过大渡河。十一月,至白蛮打郭砦。十二月,再遣三使入大理,招兴智,皆被杀。智命相国高泰祥守金沙江,与蒙古将伯颜不花、虎儿敦等相持。忽必烈命众以革囊潜济江,破吐番,渉摩荻,出石门,所过降之,遂进薄大理。泰祥回军,奉兴智拒战,不胜。蒙古兵入上关。智奔鄯阐,泰祥退至统失逻先为姚安府,府裁,今为姚州,属楚雄府。募兵于三十七部未至,而蒙古兵已长(躯)〔驱〕而入,泰祥被执大理,不屈,乃斩于五华楼下。祥临刑叹日:「段运不回,天使其然,为臣殒首,盖其分也。」时白日正午,忽云起雷震,天鼓大鸣,忽必烈曰:「忠臣也。」泰祥夫人段氏,抱孤儿高琼、高长寿等伸诉。忽必烈目儿顾左右曰:「此忠臣后,宜善视之。」许以世其官。高泰祥为大中国升泰九世孙。遂灭段氏而有其地,得五城、八府、蛮部三十有七。乘胜入吐蕃,降其酋。明年,南宋理宗癸丑宝佑元年,为蒙古宪宗之三年,忽必烈班师。大将兀良合台拔鄯阐,获兴智以献,宪宗命赦之,封为摩诃罗嵯,管领八方,仍守其地,世袭总管。计兴智在位二年,宪宗授兀良合台银印,加大元帅,还镇大理。以刘时中为宣抚使,与兴智同安辑焉。南宋理宗庚申景定元年,为蒙古世祖忽必烈之中统元年,兴智率其季弟段信苴福北行,朝于世祖,道卒。计为总管又七年。蒙古遣使来祭吊,文曰:「段氏承八姓正位,归有新统,旣顺天时以向义,犹得国王以栖迟,实国家待远方之仁,由贤王能左右之义。受命以来,朝夕愓励。赖尔维勤,用征不廷,正当共享亨嘉之运,胡意遽罹霜露之灾,呜呼!当朕未集大统,乃为叔季之国。兹旣承景运,合正君臣之称,参录不替于子孙,诏禄宜昭于典册,特遣太常省祭,赠为后理国向义天定贤王段公,尚赖神麻,永保祚土。所赠王爵,后不为例。」明年,南宋理宗辛酉景定二年。为蒙古世祖中统二年,世祖敕授王之弟信苴日则段实。总管守大理。命之曰:「向率我以临尔境众据国人之请,因从城下之盟,款附而忠勤益著。庸示至优之礼,以彰同视之仁。可革帝号,锡以虎符,总理大理、鄯阐、威楚、统矢、会川、建昌、腾越诸郡,抚恤已附之民,招集未降之国,卿其勉之。」
|
|-
|按:段氏后理国,自段正湻复国,起宋哲宗丙子绍圣三年,讫南宋理宗癸丑(实)[宝应元年,传八世,共一百五十七年。
|
|-
|总计段氏大理、后理二国,传二十二世,共三百零十五年。
|
|-
|增订南诏野史下卷
|
|-
|}
==Hu Weixianmen Wing DynastyRevisions《大淸湖南武陵胡 蔚羡门订正》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hu Weixianmen Wing Dynasty Revisions《大淸湖南武陵胡 蔚羡门订正》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段氏总管除天定贤王段兴智受封总管七年外起段信苴日卽段实讫段世,共袭十二世。
|
|-
|段实一名信苴日。
|
|-
|段实,于南宋理宗景定二年,蒙古世祖之中统二年,入朝于世祖,袭总管,赐虎符,领大理、威楚、鄯阐、统矢、会川、建昌、腾越等城,自万户以下皆受节制。南宋理宗癸亥景定四年,为元世祖中统四年,蒙古设大理都元帅府,命昔撒昔总制鬼国、大理两路。理宗甲子景定五年,为世祖至元元年,妖僧舍利威结威楚、统矢、鄯阐及三十七蛮部叛,实讨之,大破于威楚、统矢、安宁等处,又破释多罗十馀万众于洱河海口。南宋度宗丁卯咸湻三年,蒙古世祖至元四年,以皇第五子忽哥赤为云南王,镇大理。至元五年,忽哥赤受命与安南国王讨占城、真腊。南宋度宗咸湻六年,世祖至元七年,置大理路军民总管府。南宋度宗辛未咸湻七年,为蒙古世祖至元八年冬十一月,世祖改国号曰元。云南王忽哥赤为元帅寳和丁所杀。元伐金齿、缥甸,降之。分大理三十七蛮部为南北中三路,遣阿鲁忒儿宣抚大理,招谕诸蛮。南宋度宗辛未咸湻十年,元世祖至元十一年,封宗室脱忽鲁为云南王,命云南行省平章政事赛典赤建云南各衙门。妖僧舍利威复叛,实遣石买等诡为商贾,执贽往见,挺矛鏦杀之,枭首于市。元世祖赐实白金及金织纹衣。南宋恭宗丙子德佑二年,元世祖至元十三年,授实为大理等处宣抚使。缅甸叛犯永昌,元命纳速剌丁赛典赤之长子,后封延安王。伐之,破砦三百,因天暑,还师。复命诸王相吾答儿、右丞太卜、参政也罕的斤伐缅,招讨使法烈先驱造舟于阿若、阿禾两江,进拔江头、太公二城,金齿、乌蒙皆降。南宋帝昺庚辰祥兴二年春二月,为元世祖忽必烈之至元十七年,宋亡,元入主中国。以忽哥赤之子也先帖木儿为云南王。命忙兀鲁徵八百媳妇。缅败忽都帖木儿兵,诏思、播土官田、杨二处兵助讨之。命征缅官番听云南王节制。至元辛巳十八年实率子阿庆入觐,元祖嘉其忠,晋大理、威楚、金齿等处宣慰使都元帅。升辞,复拜为云南诸路行中书省参知政事,留阿庆宿卫东宫。至元壬午十九年,实受敕迎征缅师,于金齿病卒。诏以其弟忠为大理宣慰使兼军民万户府,赠实为武定公。实任职二十二年。
|
|-
|}
===Duan Zhong《段忠 实之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhong《段忠 实之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段忠,元世祖癸未至元二十年袭。是年,忠随元元帅阔木征芒部、两林蛮及会川等处,破贼立功,元授忠为善阐酋,赐虎符。元置邦牙宣慰司于蒲甘城,命云南王也先帖木儿率招讨使怯烈总兵三千往镇之。忠奉云南王命伐武定。冬十二月忠卒,以实之子阿庆为大理金齿等处宣慰司都元帅、佩金虎符,封宣武将军,晋镇国上将军,尚公主。遣归,复授云南行省参政。忠任职一年。
|
|-
|段庆卽阿庆。实之子
|
|
|-
|段庆,元世祖甲申至元二十一年袭。至元二十五年以云南王也先帖木儿移镇大理,进封营王。至元二十七年冬十月,封皇孙甘剌麻为梁王,镇云南。至元二十九年改封梁王甘剌麻为晋王,镇北边。至元三十年,封甘剌麻之子松山镇云南。至元三十一年世祖崩,孙铁木耳立,是为成宗。成宗丙申元贞二年,置彻里路,卽车里军民宣慰使司。令与八百犬牙相制。秋八百叛命,也先不花征之。成宗己亥大德三年,云南水西土官宋隆济叛,贵州知州张怀德战死。云南行省麻九儿讨之,追杀贼首撒月,斩首五百级。庆奉敕征交趾,平之。入朝,带僧左黎同往,适成宗手疽甚,黎以法水洗之,立愈。帝欲试其术,乃掘地窖,令八人潜其中击鼓,佯云有怪,召黎治之,黎行法,顷之不闻鼓声,启窖视之,则八人已死。帝敬其法,封为国师。大德四年,缅人僧哥伦作乱。缅酋执其兄阿散哥也,寻释去,阿散乃率其党杀酋。酋次子奔诉京师,诏遣薛超兀儿率行省兵讨之。大德五年,金齿、八百叛,不输粮,杀官吏,元命右丞刘深、哈剌带、郑佑等征之。刘深协求水西土妇节金三千两、马三千匹,土官宋隆济遂叛,围深等于穷谷中,梁王阔率兵救,解之。冬,云南地大震,御史陈天祥谏伐西南夷,不报。大德七年,罢徵八百,免右丞刘深官,收符印。左丞相哈剌哈孙议深徼名首衅,丧师辱国,劝帝诛深,遂杀之。深卽往以兵逼南宋帝昺于谢女峡者。大德八年,立平云南碑于点苍山。顺元宣抚宋阿重获其叛叔宋隆济,朝命升职,赐衣一袭。滇池有蛟,化少年淫妇女,有神僧赵伽罗者,命黑胡神擒之,至噀水见形,斩之。神卽土主也。成宗丙午大德十年,罗雄土官阿那龙少叛,据越州。今在曲靖府南六十里,本唐之悦州,其川名鲁望。命右丞汪惟能讨之,追至曲靖,斩那龙少。是年庆卒,弟正袭。庆任职四十三年。
|
|-
|}
===Duan Zheng 《段正 庆之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zheng 《段正 庆之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正,元成宗丁未大德十一十年袭。正招蒙化山中生爨入籍。元授正为参政,仍大理军民总管。晋宁建盘龙寺。有神僧觉照者,段氏族人,号莲峰,游东山见龙潭绝幽胜,乃咒龙令徙。龙去,水涸,建寺其地。蔚按:莲峰僧于顺帝之至正末入定塔中。武宗海山戊申至大元年,沾益、乌蒙地大震,三日并出。至大二年三月,梁王松山风疾,诏封皇第七子西平王奥鲁赤之孙老的代镇云南。仁宗爱育黎拔力八达壬子皇庆元年,诏罢徵八百。皇庆癸丑二年冬十月,学士李孟奏准开科,三年一试。时九成殿生芝,天下共取士三百名,每榜云南取五名,内蒙古二名,塞目二名,汉人一名。以八月二十日初场,二十三日次场,二十六日三场。仁宗乙卯延佑二年十一月,封武宗子和世珠为周王,出镇云南。仁宗丙辰延佑三年,正卒,庆子隆袭。正任职十年。
|
|-
|}
===Duan Long 《段隆 庆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Long 《段隆 庆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段隆,元仁宗丁巳延佑四年袭,元授隆为大理军民总管。延佑己未六年,云南行省奏:「夷俗:凡土官无子,卽以妻代管。请听之。」诏曰可。延佑庚申七年,封甘剌麻孙王禅为云南王。英宗硕德八喇癸亥至治三年,进封王禅为梁王,封其子帖木儿不花为云南王。是年八月,诸王按梯不花、索孛罗、月鲁铁木儿等及御史大夫铁失弑帝于南坡行幄。九月泰定帝也孙铁木儿卽位。十二月流诸王月鲁铁木儿于云南。泰定四年,洱海有水怪,牛猪形短项金睛,兴水为患。大理一道人向隆取黄金百镒,隆与之,乃以金为索,沉于河,怪卽日徙于浪穹宁河。按:『六诏灵源记』云:宁河无底。明宣德间,有渔人李应捕鱼,网得金索,旋得旋断。一渔者诫之曰:可止矣。应贪甚,尽曵之,索将穷,惊其怪,风浪陡作,应并舟倶溺,至今为患。文宗图帖睦尔庚午至顺元年,以豫王阿忒思纳失里出镇云南。诸王秃坚据云南叛,杀廉访使,自称云南王。元诏枢密帖木儿讨之,发朵甘思等处兵分道进。至四川建昌、罗罗斯,权寻甸府官曲术集义兵讨秃坚,败贼伯忽于马龙,追至金马山,擒之。是年,隆以老退闲,子俊袭。隆任职十四年。
|
|-
|}
===Duan Jun 《段俊 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Jun 《段俊 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段俊,元文宗辛未至顺
二年袭,元授俊为云南行省平章。乌撒部奏:「云南驿输征甚苦,愿属四川。」奏下参政贾敦煕议之。是年俊卒,族弟义袭。俊任职一年。
|
|-
|}
===Duan Yi 《段义 俊之族弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Yi 《段义 俊之族弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段义,元文宗壬申至顺三年袭,朝命止授为承务郞、蒙化州知州。是年阿容禾叛于中庆路,义助兵讨平之,以功升参政。九月,乌蒙土官禄馀寇顺元,云南行省遣都事那海奉诏往谕,授馀为参政。冬十一月,云南行省奏:「国马每月上寅日给盐,饮之无病。因伯忽反,盐不给,马多死。」诏四川以盐给之。是年义卒,隆子光袭。义任职一年。
|
|-
|}
===Duan Guang 《段光 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Guang 《段光 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段光,元顺帝妥权帖睦尔癸酉元统元年袭,朝命止授为承务郞、蒙化州知州。番兵作乱,孟州判官李生等守白崖,値高蓬新败番兵,乗胜长驱破河尾关。光率兵大败之,斩馘无算,河水尽赤,为之不流,得战马甲仗数千。光赋凯旋诗云:「雨锁金门百里城,神州花木管弦声。齐天苍岳参云峻,界地楡河射月明。梵宇三千朝呗朗,招提八百夜香淸。恒沙善果心无异,何患愚夷治不平。」元统二年,光以先与梁王把匝剌瓦尔密孛罗因分域构隙,至是遣张希矫、杨生、张连等发兵攻梁王,不胜,士卒多死,希矫等遁归。顺帝至元元年,梁王侵大理,光自督兵与战于昆弥山卽今大理府赵州南之定西岭,梁王大败。凯还,侍翰杨天甫作『长寿仙曲』上光云:「蒙氏钟王气,驾驭万乗唐。南龙光对北金锁,东洱水朝西点苍,四面固金汤。江绿春杨柳,岸淸古雪霜。屏障龙吟梅破王,竹林鹤立菊舒黄,四季景如妆。此生诚庆幸,有眼睹明王。」光大喜,设宴谢之。顺帝辛巳至正元年,玉案山生水小赤犬,群走如飞。段雄正曰:「此天狗星所化,大兵压境之兆。」经二年方绝。又下铁雨山石,民屋倶穿,人値之多击死。梁王刺杀段氏臣高蓬。先是,光令蓬督兵罗那关,梁王使人暗招之,蓬不从,答之诗云:「寄语下番梁王翁,檄书何苦招高蓬,身为五岳嵩山主,智过六丁缩地公,铁甲铁盔持铁槊,花鞍花索驭花骢,但挥眼前黄石阵,孤云击破几千重。」梁王忌之,乃重贿蓬庖人,刺杀之。顺帝甲申至正四年,光卒,弟功袭。光任职十二年。
|
|-
|}
===Duan Gong 《段功 光之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Gong 《段功 光之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段功,元顺帝乙酉至正五年袭,朝命止授为承务郞、蒙化州知州。至正六年,木邦夷思可叛。元命河南参政贾敦熈督师会云南路兵讨之,以功为前锋,屡战克捷。叙功升功为大理总管,寻升参政。至正癸巳十三年,红巾贼流入建昌,旁掠云南边地。阿次失里讨平之。至正十五年三月,元窜太师脱脱于云南。中书右丞哈麻、御史袁赛因不花等陷之也。十二月,左丞相哈麻矫诏杀脱脱于阿轻乞之地,时年四十二岁,天下寃之,两日相荡。是年,梁王宫中有怪。左右启王曰:「盘龙寺僧莲峰,能驱邪。」王礼请至,行法,怪息。王喜,留宫中供养,至夜密问之曰:「今中原纷乱,后事如何?」僧曰:「二十年后祚尽矣。」至期明师果南下。至正十六年,黑井有毒龙,兴水溢井,损民居。莲峰建寺,书铁符沉井中,害息。又宁州有虎咥人,莲峰洒净水驱虎远去,明日虎果去。七月,元以四川廉访使蒲机云为云南诸路廉访使。至正癸卯二十三年三月,红巾贼明玉珍率其党李芝麻同弟明二等将兵三万攻云南。入金马山,梁王把匝剌瓦尔密奔楚雄。四月,梁王发中庆,至石碑村,红巾入城,梁王闻报,感而自咏云:「野无靑草有黄尘,道侧仍多战死人。触目伤心无限事,鸡山还似旧时春。」随命陜西参政车力帖木儿拒之,擒明二。时四方乘机窃发,群盗满山,功乃谋于外外杨智,字渊海者,同稽于卜,卜告吉。又得子宗、子秀兵至,功遂从梁王进兵,吕合败红巾于关滩江。红巾收合馀衂再战,杀段氏之骁将铁万户,又有江心庄人杨胜力战死。梁王为文祭之曰:「生于江心,为我门户,我旧不识,用备其数,能卫社稷,春秋与之,惟忠惟烈,尔则处之,噫! 义重于生,生必有死,丈夫之事,识者有几。愿气作山河,魂归苍洱,英杰复生,以保我之昆裔。」祭毕而哭,一军感泣。是夜,红巾屯古田寺,功令人焚寺,红巾乱,以铁骑捣之,死者大半,追至回蹬关,又大破之。副将谢得攻安宁,功力战杀二千人,谢得奔中庆。于夜功谍者拾得一书,乃明玉珍母寄珍书云:「自尔去后,老母平安,征云南务要得之。兵粮不足,随后发来,不可轻回。」功阅书,令杨智易其辞曰:「自尔去后,老母不安,臣下乱法。又闻中国人马入界,非止一处。尔须急回,迟则难保。大夏天统元年,太后平安书。」遂募亡命者赍书往。有打金箔人陈惠愿行,惟虑老母在。功许养其母,惠遂往。玉珍得书,挥之去令回报,迨夜,玉珍旋军。功追摄至七星关,大破其众。梁王回中庆,奏升功为云南行省平章,以主阿妻之。一日主与宴酣,歌『金指环』云:「将星挺生扶寳阙,寳阙金枝接玉叶。灵辉彻南北东西,皓皓中天光映月。玉文金印大如斗,犹唐贵主结配偶。父王永寿同碧鸡,豪杰长作擎天手。」功久居梁王府,嫡妻高夫人在大理作词寄功云:「风卷残云,九霄冉冉逐。龙池无偶,水云一片绿。寂寞倚帏屏,春雨纷纷促。蜀锦半间,鸳鸯独自宿,珊瑚枕冷,泪滴针穿目,好难禁。将军一去无度,身与影立,影与身独,盼将军只恐乐极生悲寃鬼哭。」至正二十四年春,功还大理,至洱海金鸡庙,夫人遣人适来报生子,功喜,作歌曰:「去时野火通山赤,凯歌回奏梁王怿。自冬抵此又阳春,时物变迁今又昔。归来草色绿无数,桃花正秾柳苞絮。杜鹃啼处日如年,声声只促人归去。」至正二十五年,功思新婚,欲往梁王所。员外杨智于壁间题诗留功,张希矫亦上书留行。功曰:「寳剑岂埋荒土物耶!」矫苦留不已,功怒流矫于顺州。顺州,前明属鹤庆府,今裁在永北厅城西一百二十里。唐时地名牛睒。遂与夫人别,倍道至中庆。梁王疑之,私议曰:「平章此来,得无有吞金马咽碧鸡之心。」其下有姤功者复谗构之。王与阿谋欲以孔雀胆毒功。私泄之,愿与西归。(今)〔令〕功周防,功不信。是年滇大旱,人言定远有禅僧连精,通瑜伽秘密敎,能降龙役鬼。启梁王,王遣人迎至,僧设坛祈雨,咒毕,钵中出一小蛇,遂大雨。王大喜,酬以金帛,辞,役鬼荷担,行空而去。顺帝丙午至正二十六年春,中原盗蠭起,临安廉访使支渭兴三恳休,梁王不允,遣使金闾慰,赐羔羊。渭兴自咏曰:「年高才薄忝淸流,欲挂朝冠不自由。且喜壮怀无诉谍,从敎行道有鸣驺。故园花木无由见,何日干戈定得休。九十春光还欲暮,放怀聊与醉金瓯。」重午节,梁王宫门外观射柳,随侍文武赐宴,支渭兴诗贺曰:「平地如席草如茵,少年将军酒半醺。朱鬣马穿人影过,绿杨枝逐箭锋分。旌旗色映宫前瓦,鼓角声飘海上云。何日鲸鲵倶授首,普天偃武共修文。」七月,梁王偕功东寺讲经,至通济桥,功马逸,王乘机令番将掖杀之。阿闻之恸哭曰:「昨灯下吾犹言,云南施宗施秀二人以胭花殡命,奈何不信。今果然。」命侍女锦被包之,以王礼敛送归大理。诗挽之云:「吾家住在雁门深,一片间云到滇海。心悬明月照靑天,靑天不语今三岁。黄嵩历乱苍山秋,误我一生踏里彩。华言锦被也。吐噜吐噜段阿奴,施宗施秀同奴歹。云片波潾不见人,押不芦花华言起死灵草也。颜色改。肉屏华言骆驼也。独坐细思量,西山铁立华言松林也。风潇洒。」功丧旣行,阿遂不食死,以殉焉。其家臣员外杨智渊海闻而亦死之。智临死诗曰:「半战功名百战身,不堪今日总红尘。死生自古皆由命,祸福于今岂怨人。蝴蝶梦残滇海月,杜鹃啼破点苍春。哀怜永诀云南土,絮酒还敎洒泪频。」明洪武间都督冯诚经功墓,亦歩原韵题诗,吊之曰:「田横五百剑孤身,转眼关山半委尘。北阙玉楼召客记,南滇粉壁说诗人。苍山夜黑云遮月,金马天寒鸟怨春。共惜平章迷绣幕,至今愁听水声频。」功死,长子宝自称平章,立于大理。功任蜀二十二年。
|
|-
|}
===Duan Bao《段宝 功之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Bao《段宝 功之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段宝,于元顺帝丙午至正二十六年八月,因父功为梁王所害,遂自称平章,立于大理。是年,梁王开科取士,以支渭兴主试事。梁王复听谗,诛锄段族。梁段旣结仇,数数构兵。鹤庆知事杨升调和二家,自金鸡庙分界,南属梁王,北属段氏,力劝息兵,百姓稍宁。至正丁未二十七年四月,梁王生日,群臣称贺。王宴于昆明池上,省宪官献诗曰:「贤君添算宴嘉宾,幄殿先施巨海滨。万里晴天开绵绣,一川芳草踏麒麟。笙歌暖送金杯酒,铠仗寛围玉佩人。醉饱百官咸稽首,愿王高寿过千春。」中庆路土主庙圮,梁王重修,立牌纪事。先是,至正十二年庙为耆民杨光所修。至二十三年红巾贼入滇,陷中庆,毁民居,庙亦被焚。梁王欲并段氏,遣人剌宝,弗得。又令平章矢剌七攻大理,皆不克。乃遣使通好,奏授宝为云南右丞,以和之。红巾复入滇,梁王命叔铁木的罕赍敕借兵于宝,宝答书曰:「杀虎母还喂虎子,分狙栗自诈狙,公假途灭虢,献璧吞虞,金印玉书,设钓鱼之香饵,绣阁艳女,备揜雉之网罗。况平章已死,只遗一奴一獒,奴可配阿妃,獒可配华黎氏。二事许诺,当借大兵。不然,金马山换作点苍山,昆明海改作西洱海,兵来矣。」书后又附一诗云:「烽火狼烟信不符,骊山一举任枝梧。平章枉挂红罗帐,员外空题粉壁图。凤去岐山祥兆隐,麟戕大野瑞光无。自从界限鸿沟后,成败兴亡不属吾。」梁王读而深恨之。是年,明太祖取燕京,元顺帝北遁,元亡。明太祖戊申洪武元年,梁王复通好于宝,辞甚卑逊,宝许之和。时有蛮舍兴者,自元江攻入鄯阐,王惧欲出奔,宝以唇齿之故率兵救之,击走舍兴。王德宝,升为武定公。敕曰:「段宝归附而来,忠勤懋著,父子秉忠,征讨克捷,乃于戎马倥偬之中,干戈纷扰之际,不第远朝且兼平乱。宜示至优之数,以彰匡济之勋,兹特升宝为武定公,仍总管大理军民府。尔其不负初心,永保世爵,以光大尔赤城于无穷。宣光元年敕。」云云。宣光乃故元顺帝太子立于应昌年号也。太祖洪武辛亥四年,宝降于太祖,上奏云:「臣闻有天下者为天下之主,有列土者为列土之君。卑臣宝虽隔万里之遥,每切中原之向。大理有二帝三皇之后,一方九姓之传,汉晋六朝以来,大蒙国受封于前唐,残唐五季而终,二理国继守于两宋,臣祖思平等恪共藩复,贡礼屡修于中土,华风远畅于边隅。迨至故元,不尚仁义,专事暴残。顺帝已遁北方,梁王犹祸鄯阐。迩闻明主奉天承运,御极南京,中原太平,边徼宁乂。意者中国有圣人,履尭舜之正统,陋汉唐之浅图,天时人事然也。或命臣依汉唐故例,岁贡天朝,或仿元代职名,俾守旧土。庶深谷回阳,幽扄照日,八方浴德,六合同春,垂怜边境,救恤一方。欲修进贡,恐触明威,合待事体之定,专候圣旨之颁,谨此。」专差段贞、王伯鹘驰奏以闻。太祖诏谕答之。洪武五年,宝女兄名羌娜,小名僧奴,又名宝姑者,适建昌土官阿黎。先是,羌娜绣一旗,至是将嫁,以旗付宝嘱曰:「母常语我云尔父为梁王所害,必当报仇,惟望尔辈长大。我闻母言,故绣此旗已五年矣!今我嫁至夫家,收拾建昌、东川军马,飞报若到,女急来应,愼勿违焉。」临行,又以二诗别宝云:「珊瑚钩起出深闺,满目潸然泪湿衣。氷鉴银台前长大,金枝玉叶下芳菲。鸟飞兔走频来往,桂秀梅香不暂移。惆怅同胞未忍别,应知恨重点苍低。」「何彼秾兮花正红,香车独去洱河东。鸿飞雪岫难经目,风刺霜林易割胸。云白天高连水远,月新春叠与秋重。一作闺里绣旗寃父魄,天边提剑属儿曹。泪珠恰似通宵雨,千里关山几处逢。一作须知恨重苍山小,回首寒云千万重。」洪武辛酉十四年四月,国中巫女歌曰:「莫道君为山海主,山海笑谐谐。园中花谢千万朶,别有明主来。」数日,宝卒,子明袭。宝任职十四年。
|
|-
|}
===Duan Ming《段明 宝之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Ming《段明 宝之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段明,明太祖洪武辛酉十四年四月袭,梁王授明为宣慰使。九月,明太祖命颖川侯溥友德,列侯曹正、王弼、金朝兴,都督郭英、张铨等,率师三十万征云南。帝出饯于龙江。友德至湖广,分遣都督胡海洋、陈桓等领兵五万,由四川永宁趋乌撒。友德等率大军由辰沅趋贵州。进攻普定,擒土酋安瓒,诸苗蛮犵狫闻风迎降。十二月,溥友德等兵至普安,攻下之,进至曲靖。先是,梁王把匝剌瓦尔密遣其司徒平章达里麻将精兵十馀万屯曲靖,以拒明师。沐英曰:「彼谓我师疲于深入,未有虞心,乃可破也。」友德然之,遂倍道进师。将至白石江,忽大雾四塞,冲雾及江而上。顷之雾雾,则两军相望,达里麻见之大惊,以为神军飞至,拥军阵于南岸。沐英分遣一军,沂流潜渡,出其阵后,吹铜角,树旗帜,为疑兵山谷间。达里麻急撤阵后,军以御之,上军阵乱。友德等趣师济江,一涌而渡,旣渡,整列进战。敌众披靡,生擒达里麻,横尸十馀里,俘其众二万人,友德悉慰遣之。友德进击乌撒,分遣沐英等趣云南。梁王闻达里麻破,弃城走晋宁州,忽忽纳岩,寻入滇池岛中,先缢其妃,自饮药不死,投水死之。父老收塟云南城西三十里浄耳山,土人立庙妙音寺侧。后至嘉靖间,拆庙材修社学,乃因旧址为小寺祀之。云南右丞观音保以城降。英等入城,秋毫无犯。收梁王金印并符信图籍,安抚其民。友德亦自曲靖循格孤山而北,以应永宁之兵。时元右丞实卜闻胡海洋等进自永宁,乃聚兵赤水河,以拒之。海洋等造木筏,夜半济河,而友德亦至,实卜遁去。友德令将士于乌撒筑城,版锸方具。蛮众复合,斩首三千馀级,馀众溃散。遂城乌撒,得七星关,以通毕节。又克可渡河,于是东川、乌蒙、芒部诸蛮震惧,望风降附。先是,洪武壬子五年正月,帝遣翰林待制王禕、行参政吴云持诏谕云南梁王,令奉版图来归。梁王初不从,后有降意。至洪武六年十二月,会元太子爱猷识里达刺立于汉北,使侍郞脱脱征饷于云南,脱脱觇知梁王有二心,因以危言逼王,杀使臣以绝其念,王遂杀禕,父老收尸塟地藏寺北。吴云奉使时,会梁王遣铁知院等二十人使沙漠,为边将所获,帝乃释二十人,令与云倶行。至沙塘口,二十人谋曰:「吾等奉使不达,被执而还,罪必死。」乃说云令胡服编发,诈为元使。又逼令改制书,共给梁王。云不从,以死自誓,亦被害。梁王遣人收云骨,塟给孤独寺,及事闻,帝震怒,故有是役。按:王禕字子充,浙江金华府义乌县人。建文时赐谥文节,永乐登极,凡建文设施尽革,遂削禕谥。后至正统中,义乌县丞刘杰奏请,加奉使云南死节臣恤典,禕赐谥文忠。吴云字友云,江苏常州府宜兴县人。至弘治中,赠谥忠节,并祀云南,敕赐为二忠祠。是年冬十二月,明卒,叔世袭。明任职一年。
|
|-
|段世 宝之弟,明之叔
|
|-
| 段(氏)〔世〕,明太祖壬戌洪武十五年袭。二月,世闻鄯阐破,梁王已死,又以沐英等兵略寻甸、临安、澄江、元江、楚雄、洱海,次第皆下,进逼大理,乃遣使致书,请依唐宋故事,奉正朔为外臣。友德不听,答书谕令速降。凡三致书,世怒,遂遣都使张元亨、州判李洪赴军前下战书。畧云:「鄯阐危甚登天,大理险倍投海。英如汉武,昔战仅置益州;雄若胡元,设官止于中庆。取之易而守之难,莫若依吾请乞册封,定为进贡,始为良策。吾实武人,不通经史,前代得失则餍闻也。恭惟麾下振耀皇威,功不亚于孔明,才克比于方叔。涤山川之旧染,历代所未有也。况吾与尔旣无杀父之仇,又无财债之怨,无故交战,真乃不祥。尔屯威楚,彼处之民有何罪焉?若耗人之食,是绝其命;取人之财,是刳其心;摅人妻女,是乱人伦,则吾之应,不得已也。爰念尔等皆中国之人,其中岂无一二达士。得此何益?不得何损?西南之地,号为不毛,易动难安。今春气渐暄,烟瘴渐起,不须杀尔,四五月间,雨霖河泛,尔粮尽气敝,十散九死。形如鬼魅,色如黑漆,欲活不能,汝之进退狼狈矣。莫若乘此,天晴地乾,早寻活路。宁作中原鬼,莫作边地魂,尔宜图之。后理国段明顿首。」书后继一诗云:「长驱虎旅势威宣,深入不毛取暴残。汉武故营旗影灭,唐宗遗垒角声寒。方今天下平犹易,自古云南守独难。拟欲华夷归一统,经纶度量必须寛。」友德、英等览书大怒,拘其使。左副将军蓝玉等率师径进,兵至品甸,世恃田庵和尚有术,列兵五万扼下关。沐英自将攻之,不克。乃命王弼,率兵出洱水之东,趋上关,英以兵缀下关,为犄角势。别遣胡海洋将一军夜度,从石门间绕道出点苍山后,縁崖而上张旗帜。迟明,英先驱,渡河斩关而入,海洋之师亦从山而下,腹背夹攻。世众惊溃,拔其城,世就擒,并执明之二子苴仁、苴义,时二月二十三日也。于是沐英等分兵取鹤庆、丽江,破石门关,荡金齿,所有摩、和泥、车里、品缅等部相率归附。又略建昌,故元平章月普帖木儿降。闰二月,赐云南各土官冠带及诰敕,使任本州岛知州等官。四月,乌撒、东川、芒部诸蛮复叛,溥友德、沐英会兵进讨,斩首三万馀级,诸蛮来降,云南悉平。以乌撒、乌蒙、芒部地近四川,分隶之。九月,土官杨苴等叛,紏众至二十万,攻云南城。都督谢熊、指挥冯诚婴城固守。沐英自乌撒移兵讨之,斩首六万馀级,擒四千馀人,诸部悉定。洪武癸亥十六年二月,故元右丞普颜笃同土酋高大一作天惠叛,据佛光砦。蔚按:佛光砦卽佛光山,山半有洞,可容万人。又名一女关。昔诸葛武侯曾擒孟获于此。在大理府浪穹县东二十里。也先不花叛,据邓川州。溥友德率郭英平之。又定蒙化州,过金沙江,攻北胜府,今永北厅。擒故元平章隔生。于是丽江府、拒津等州皆平,前后斩首一万三千级,蛮民降者四十万户。帝遣耿炳文谕溥友德、蓝玉等班师,沐英留镇云南,别命列侯王志、仇成、张龙分赴寻甸各府,缮城池,立屯堡,安辑人民。是年,械送世并明之二子苴仁、苴义赴京。世临行,以诗别故人杨朝彦云:「雄兵一日破重关,父子流离瞬息间。别后欲知相忆处,锦江流水彩潺潺。」洪武甲子十七年四月,溥友德等班师至京,论平云南功,进封溥友德为颖国公,胡海洋东川侯,陈桓普定侯,张翼鹤庆侯,蓝玉、仇成、王弼、张龙等并赐铁券,子孙世袭。吴复、金朝兴先卒,倶授世袭侯爵,铁券加禄并同。馀升职赐金帛有差。以世、苴仁、苴义见帝,帝诛其头目,谕苴仁、苴义及世曰:「尔祖宝,昔年曾有降表,朕不忍废。」乃授苴仁官雁门卫镇抚,赐名归仁,苴义官武昌卫镇抚,赐名归义。世任职一年,段氏世土,至此而绝。帝又封其族段保为云龙州土知州。
|
|-
|按:段氏袭总管十二世,起南宋理宗辛酉景定二年,为蒙古世祖中统二年,讫明太祖壬戌洪武十五年,共一百二十二年。
|
|-
|}
==Notable Officials from Nanzhao through the Generations《南诏历代名宦》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Notable Officials from Nanzhao through the Generations《南诏历代名宦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|张元,汉元帝时守。 张翕,东汉明帝时守。 郑纯,同时。 王追,东汉顺帝时守。 王伉,后汉时永昌郡丞。 吕凯,同时永昌郡功曹。 前有文齐、吴霸、陈立,后有张亮、刘宠、犍为费诗,巴东马忠皆著勋绩。 李毅,晋惠帝光煕元年为宁州刺史,政治明达,五苓夷反时病卒,其女秀有父才,领州事。至怀帝时赠少府谥威侯。 王逊东,晋明帝大宁元年为晋宁守,华夷畏服。夷叛,死之。州人以中子坚领州事,官至平西安南将军。
|
|-
|汉盛览,字长通,叶楡今大理府太和县。人,受学司马相如,著赋心四卷。同时叶楡张叔,天资奇颖,书过目成诵。俗不知学,叔每病之。闻司马相如至若水,蔚按:『水经注』:若水南经云南郡之遂久县,县废,在今大理府宾川州城东北一百里,古称白门,置于汉时,今为金沙江巡检司地。遂负笈往从之,受经归敎乡人。 隗叔通,叶楡人,性至孝,母好饮江水,通日入江取水,维艰。滩水忽出平石,涉取甚便,人谓之孝子石。 东汉许叔,一作叔重。昆明人,明帝时入中国,受五经归,为本郡敎授。 尹珍,字道真,平彝人,桓帝时入中国,负笈从许愼受经学,还敎乡人。 唐尹仇寛,叶楡人,德宗贞元间为蒙氏淸平官,入朝陈地图,贡方物,唐拜为左散骑常侍,封高溪郡侯。 张志成,昆明人,文宗太和间入蜀,学王羲之草书,归敎国人。 元王升,昆明人,曲靖宣慰副使学政名时。 段文瑞,澄江人,读书尽孝,诏旌其门,仕至临安总管。 杨惠,楚雄人,孝母感神,诏旌其门。 张景云,昆明人,仕至临安经历。 陈宝,平彝人,仕至尚书。尹贡,南宁人,仕至尚书。以上三人皆德政名时。 元朝进士王楫、李近仁、段天祥、李天佑、李郁五人,皆三甲同进士出身。
|
|-
|}
==Ethnic Groups of Nanzhao==
===Baimin《白民》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baimin《白民》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有阿白、白儿子、民家等名。白国之后,卽滇中之土著。妇女出门,携伞障面,谓之避嫌。宴客,切肉拌蒜,名曰食生。馀同汉人。女镶边衣,以银花银吊为饰。
|There is the '''Ā''' '''Bái (阿白)''', '''Bái Erzǐ''' ('''白儿子'''), '''Mínjiā''' ('''民家''') and other names. The descendants of the '''Bái Kingdom''' are precisely the indigenous peoples of Central Yunnan. [When] women go out, they bring an umbrella to block their faces, this is called '''Bìxián''' ('''避嫌; avoiding suspicion'''). [When] hosting a banquet, they cut meat and garlic, this is called '''Shíshēng''' ('''食生; eating raw'''). The rest are similar to Han people. Women wear embroidered clothes, they use silver flowers and silver hangings as decoration.
|-
|}
===Pu Ren《蒲人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽古百濮,周书所谓微卢彭濮也,后讹为蒲。质黑,鸟音。男子淸布褁头,衣套头衣,膝系黑滕;妇人挽发为髻,脑后戴靑绿磁珠,花布围腰,短裙,系海十数围。带刀弩长牌,不畏深渊,或浮以渡。婚娶长幼跳蹈,吹芦笙为孔雀舞,婿家立标竿,上悬彩绣荷包,中贮五谷银钱等者,两家男妇大小争缘取之,以得者为胜。又有野蒲、普蛮、朴子蛮等类,性尤凶悍,男子以布二幅结于左胁,另用布一幅合缝挂身;以红布搭右肩蔽腰以下。今顺宁府多此种。
|Anciently this was the '''Baipu (百濮)''', the '''Book of Zhou (周書)''' mentions the '''Wēi''' '''(微), Lú''' '''(卢),''' '''Péng''' '''(彭)''' and '''Pú''' '''(濮)'''. Later errors [turned it] into '''Pú (蒲)'''. By nature they are black and their language [resembles] birds. Men wrap clean/clear<ref>Likely referring to white cloth.</ref> cloth on their head and dress in tunic garments that are put over the head. They bind their knees with black rattan. Women roll up [their] hair as a topknot. At the back of the head, they wear clear blue-green porcelain beads. Printed cloth encircles the waist; they wear short skirts, connecting abundantly ten [or more] encirclements. They carry knives, bows and long shields. They are unafraid of deep abysses perhap even floating across it. At wedding ceremonies old and young alike jump and stamp, they play the reed pipe for the '''peacock dance'''. At the bridegroom's house they erect a pole, on it a bright embroidered purse is hung. Inside it stores the five crops, silver coins and other things. The two families of men and women, old and young, vie to fetch it. Once obtained, the person is victorious. Once more, there is the '''Wild Pú (野蒲), Pŭ mán (普蛮)''', '''Pú Zǐ mán (朴子蛮)''' and other types. Their nature is outstandingly fierce. The men tie two lengths of cloth at the left flank, [and] another length of cloth is stitched together and hangs off the body. There is red cloth to hang on the right shoulder to cover the body below the waist. Nowadays '''Shùnníng''' '''(顺宁)''' prefecture has many people of this type.<ref>Modern Day Fengqing County in Southwestern Yunnan. 鳳慶縣. Historically close to the Wa peoples and Austroasiatic population.</ref>
|-
|}
===Bo Ren《僰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名百夷,又名摆夷。性耐暑热,居多在棘下。本澜沧江外夷人。有水旱二种:水僰夷近水好浴,剃后发,蓄前发,盘髻如瓢,故又名瓢头僰夷;旱僰夷山居耕猎,又名汉僰夷。男靑布褁头,簪花;妇女不施胭粉,自然白晳,盘发辫,红绿包头,饰以五彩线须,衣五色衣,桶裙绣边。其俗贱女贵男,头目妻数百人,庶民亦数十,耕织贸易,皆妇人任之。凡婚娶,男女相悦而议聘,一成匹配,不肃而严。如夫妇不睦,听夫付之一物为凭,然后改适。有邪术,能使男子千里不忘,其法不外传也。
|
|-
|}
===Lahu《猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu《猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|爨蛮卢鹿之裔,猓猡其讹音也。以五月为春。信鬼尚巫,巫有大觋皤,拜禡白马之号。卜用雄鸡两髀骨,骨有细窍,刺以竹签,视多寡向背之势以定吉凶。其部长妻曰耐得,勇士曰苴可。每岁六月廿四日,名火把节,燃松炬,照村砦田庐。男椎髻镊须,耳环佩刀;妇披发短衣,桶裙,披羊皮。
|
|-
|}
===Bai Lahu《白猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Bai Lahu《白猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名撒马都,卽西爨白蛮。知读书,能文字,舌音淸便,多冒汉人。见尊长披羊皮,故嫁女授羊皮一帐。短衣革履,胸挂花包。妇人花衣桶裙,靑布蒙头,饰以海贝、锡铃。
|
|-
|}
===Hei Lahu《黑猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽东爨乌蛮。其祝以铃,其占以草。男挽发贯耳,披毡佩刀;妇人贵者衣套头衣,方领如井字,无襟带,自头罩下,长曳地尺许,披黑羊皮,饰以铃索。
|
|-
|}
===Qian Lahu《乾猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以山居得名。每食插筯饭中,仰天跪拜为报本。好勇喜斗,杀人偿以财。服饰同黑猓猡,妇人项挂一羊毛筐,行住纽毛为绵。以织毯。
|
|-
|}
===Hai Lahu《海猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hai Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名坝猓猡,以种水田得名。盖土人以水为海,以平田为坝也。居家俭朴,知读书。服饰如汉人,妇如白猓猡。
|
|-
|}
===Miao Lahu《妙猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Miao Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多土官之裔,有营长、官奴、火头等称。男挽发贯耳;妇人桶裙无裤,穿套头衣,前不揜胫,后长曳地,衣边火焰,弯曲如旗尾。居茅舍,中堂作火炉,父子妇姑,围炉而卧。又有一种,戴鹊帽者,名猓落蛮;白布褁胫者,曰白脚猓猡。
|
|-
|}
===Ge Lahu《葛猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Ge Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名大头猓猡。男以靑布丈许裹发为大头,女戴布花线箍。婚嫁步行,妇避伯,不避翁。亦有顶盔擐甲,乘马佩刀,以劫抢为生者。然居家尊卑有序,会食以跪为敬。
|
|-
|}
===Azhela Lahu《阿者猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《阿者猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆耳环手钏,衣短裤,披羊皮。婚娶,婿亲负女以归。
|Men and women each wear earrings and hand bracelets. Their clothes are short pants with sheepskin drapes. At weedings, the bridegroom's realtives carry the women back.
|-
|}
===Awu Lahu《阿乌猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Awu Lahu《阿乌猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|性狡好獵。多蓄牛羊。每砦設官房一所,婚嫁並集其中。男短衣,女長衣,倶裹頭,貫耳,出入帶刀弩。
|They are cunning in nature and fond of hunting. They raise many cattle and sheep. Every stockaded settlement has an official building for marriages to be held within. Men's clothes are short, women's clothes are long. Both wrap their heads, pierce their ears. When going out, they carry knives and bows.
|-
|}
===Luwu Lahu《鲁屋猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|耕种射猎为生。男短衣木屐,女长裙跣足。
|They make a living by cultivation, shooting and hunting. Men wear short garments and wooden clogs, women wear long skirts and tread barefoot.
|-
|}
===Sami Lahu《撒米猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Sami Lahu《撒米猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居山,耕瘠负薪,近水,捕鱼时给。面多黧黑,男挽发如鬏,毛褐被毡,佩短刀。女披靑布单,短裙,长裤。又有鲁兀、老乌、撒完、洒泥、阿蝎、阿系等类,衣饰风俗畧同。
|
|-
|}
===Liaowu Lahu《老牾猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Liaowu Lahu《老牾猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽罗婺,又名罗午、罗武。男披发贯耳,披毡佩刀,穿火草布衣;女辫髪垂肩,饰以海贝砗磲,穿火草布裙。无床帏被褥,以松毛籍地而卧。
|
|-
|}
===Lahu Hei《猓黑 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu Hei《猓黑 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蒲蛮别种。择丛篁深处,结茅而居。蜂虫鼠蛤,无所不食,以荞稗为上品。又有大猓黑、小猓黑,岩居野处,猿猱同类。
|
|-
|}
===Putu《普特》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Putu《普特》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以渔为业,舟不盈丈,而炊爨、牲畜、资生之具,无不咸备。泅水出没,口衔手捉,皆巨鱼也。今云南府省城西碧鸡山下,多有此种。
|
|-
|}
===Diyang Gui《地羊鬼 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Diyang Gui《地羊鬼 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦僰人类也。短发黄睛,奸狡嗜利。与人相仇,能行妖术,以木石易人心肾,或以一帚系衣后,变形为象、马、猪、羊、猫、犬等物。稍畏惧之,卽为所魅,入人腹中,食五脏,或潜至人家,偷窃财物,食婴儿。知者一手捉之,一手痛殴,必复为人,夺其帚縻之,彼必以家赀之半匄脱。或有娶其女者,夫每出,必问归期,卽饵以毒,如期而归,更以药觧,否则毒发而死。交易失信,及私窥其要女者,必毒之。此种元江州为甚。
|
|-
|}
===Wo Ni《窝泥》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Wo Ni《窝泥》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有和泥、(干)〔斡〕泥、哈泥、路弼等名。黑白两种,风俗畧同。男戴麦杆帽,穿火草布衣,耳环,跣足;妇女辫发数绺,海贝、杂珠,盘旋为髻,套衣桶裙。善养猪,其猪小耳短身,长不过三十筋,肉肥腯,名窝泥猪。婚用媒妁,路遇野兽,则返而他求。嫁则以红藤束膝为识。勤生啬用,每积贝一百二十索为一窖,临死嘱其子曰:「积贝若干,汝取某窖,馀留我为来生用。」死则以雌雄鸡各一殉。又有一种名糯比,与此同,其生者名哥泥,亦名瓦黑,好勇尚斗,能咒人使病。
|
|-
|}
===Achang《阿昌》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Achang《阿昌》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名峨昌。男短衣披布单,女长衣无裤,腰缠红藤。占用竹三十三枝,畧如筮仪。嗜酒,觅禽兽虫豸生啖之。旧俗兄死弟妻嫂,后有罗扳砦百夫长早正死,其妻方艾自誓不失节,饿而死,其风遂革。又有小阿昌,其俗畧同。
|
|-
|}
===Acheng《阿成》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Acheng《阿成》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男短衣,女桶裙,以树皮代瓦。婚用牛羊,至女家以水泼女足为定。
|
|-
|}
===Biju《比苴》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Biju《比苴》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|僰夷别种。男耳环革屐,女白帨束发,缠叠如仰螺。构楼而居近水,极寒犹浴。丧尚绯,夫死,妻不再嫁,名曰鬼妻。又有白布缠足者,名白脚僰夷,亦名孔荅;茜齿,文身,髠者,名光头僰夷;额上黥刺月牙纹,盖习车里之俗,所谓雕题也。
|
|-
|}
===Heipu《黑舗 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heipu《黑舗 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名黑普,俗同窝泥,形容黧黑,怕见汉人。畜山羊,作竹器,一切床几櫈杌,备极精巧。
|
|-
|}
===Heiqian Yi《黑乾夷 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heiqian Yi《黑乾夷 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男椎髻麻衣,耳环垂肩;女以毛褐细带,编如筛罩,首饰以海贝、砗磲,衣领亦然。婚配,男吹芦笙,女弹口琴,唱和调悦,先野合,后媒妁。
|
|-
|}
===Shansu《山苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Shansu《山苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男披发跣足,女椎髻蒙头。语似鸟音,形如猿猴。潜居深山,种荞、麻,或工或猎,夷中之最苦者。
|
|-
|}
===Chusu《车苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Chusu《车苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名扯苏,傍岩临水。男短衣皮履,女长裙无裤。种荞稗,绩线为业,以羊毛占(睛)〔晴〕雨。
|
|-
|}
===Laji《喇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Laji《喇鸡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名喇记。黑布帽白衫。好楼居,孟春作土主会,客至,掘鼠及虾蟆为敬。其在交趾者,男善枪,女善弩,多充交兵。又有白喇鸡,男女倶穿五色氆氇,食山虫、水蛇等物。
|
|-
|}
===Lawu《喇五 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Lawu《喇五 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰喇乌,又曰喇鲁。男如摆夷,女如窝泥,构楼临水而居。上人下畜,名曰掌房。其在腾越州者,食巨蟒、毒虫,或取蜂糟食之。
|
|-
|}
===Manla《獛喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Manla《獛喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男插鸡毛,女裹首巾,皆披羊皮,不浣濯。婚配先野合。每采蒙肚花蒙肚花树皮如藓,能毒人。生景东厅,今不产矣。欲人醉死则醉采,欲人狂死则狂采,以毒人。又一种在王弄山者,名马喇
|
|-
|}
===Hala《哈喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Manla《獛喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女黑色,不知盥栉。妇女红黑藤缠腰数十围,产子以竹兜盛之,负于肩。又有古喇、杜喇,色尤甚,言语不通,略似人形而已。
|
|-
|}
===Jiala《戞喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Jiala《戞喇》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|悍好猎,居山巅,户不正出,迎山开门,不留馀粟。
|
|-
|}
===Kala《卡喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kala《卡喇
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰卡腊,男穿耳挽发,佩短刀;女短衣无裤,胫著彩色折裤。聚族而居,耕种鬻薪。
|
|-
|}
===Kasui《卡隋》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kasui《卡隋》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名卡高,性顽钝,喜歌舞。男女多野合。婚娶通媒妁之日,议聘金,多至数百。娶后子孙犹有代祖父偿聘金者。
|
|-
|}
===Kawa《卡瓦》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kawa《卡瓦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多在顺宁、永昌二郡,辣蒜江外。貌()〔丑〕性恶,猎人以祭。商贾出腾越州,入木邦者必经其地,呼为卡利瓦。有生熟二种,生者劫掠,熟者保路。
|
|-
|}
===Xifan《西番》===
{| class="wikitable" style="text-align:center; width:80%;"
|Xifan《西番》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽土番,亦名巴苴,居金沙江边。性悍戾,善弩,男女辫发百绺,不知栉沭。男以藤缠左肘,披琵琶毡,暑热不脱;女以海贝砗磲磁珠饰于项。又有野西番,更不可制。
|
|-
|}
===Guzong《古宗》===
{| class="wikitable" style="text-align:center; width:80%;"
|Guzong《古宗》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名狤猔,西番别种。皆辫发百绺,男戴红缨,穿氆氇,挂铜铃佩刀,女饰以珊瑚、银泡,披腊瓦被单,皆穿乌拉鞾。经年一栉,栉必牲祭。春夏种荞稗,秋冬赶牛马,取牛羊乳酥,调油茶而食,名曰ø。又有小古宗,喜猎饮酒,馀畧同。
|
|-
|}
===Kuceng《苦葱》===
{| class="wikitable" style="text-align:center; width:80%;"
|Kuceng《苦葱》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|面丑。男麻衣短裤,女短衣桶裙,亦有衣裤相连者。耕山采薬为生。所佩环手篐,自幼至老不释,死以殉。
|
|-
|}
===Mo《摩》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mo《摩》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|乌蛮别种。性湻朴,鸟音,男剃发戴帽,长领布衣;女高髻,或戴黑漆尖帽,短衣长裙。畜牛羊,产射香。同类仇杀,妇女登场一劝卽止。岁暮杀牛羊相邀,一客不至为耻。今有读书入泮者。
|
|-
|}
===Li《力》===
{| class="wikitable" style="text-align:center; width:80%;"
|Li《力》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽。衣麻,披毡,岩居穴处。利刀毒矢,刻不离身,登山捷若猿猱。以土和蜜充饥,得野兽卽生食。尤善弩,每令其妇负小木盾前行,自后射之,中盾而不伤妇,以此制服西番。野力披发插羽,尤悍。
|
|-
|}
===Zhe《遮》===
{| class="wikitable" style="text-align:center; width:80%;"
|Zhe《遮》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆穿耳,挽发。喜华彩衣,盘旋蔽体。每饮食必精洁。而长于弓弩,尤善鸟铳。
|
|-
|}
===Jiezi《羯子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|自孟养流入。环眼鸟队,散发,缠藤,耳带大环,首插鸡羽,无衣裤,腹下以麻布一幅围之。负弩佩刀,喊声如犬。又有结,耳带象牙大环,红布围头,衣半身衫,袒右臂,亦其类也。
|
|-
|}
===Muji《拇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦作。形丑恶,妇女尤甚。椎髻插羽,佩刀负弩。猎食猿狙。见人有蓄,思盗,先用鸡骨卜,吉则徃,否则止。
|
|-
|}
===Mocha《摩察》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mocha《摩察》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Manqie《嫚且》===
{| class="wikitable" style="text-align:center; width:80%;"
|Manqie《嫚且》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Local People《土人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Local People《土人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|(思)〔男〕絮袄佩刀弩,女披毡朿皮索,饥则紧缚之。婚姻以刀甲为聘,披发见舅姑。有争者告天,沸汤投物,以手捉之,曲则糜烂,直者无恙。
|
|-
|}
===Nong ren《侬人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nong ren《侬人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|侬智高部落之裔。男束发短衣,女短衣密扣,腰缠红裹肚。性狡,漆齿,出入佩刀,长技在铳。
|
|-
|}
===Sha ren《沙人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Sha ren《沙人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|越析夷也,又名蒙嶲。男辫发长衣,女以挑花白布蒙头,腰围红布。出入佩刀,耕田、射猎,所居掌房。丧服用红,祭肉弃不食。又有黑沙人,白沙人。聘用牛,旣婚之夕,男女不同室,及回女家,有娠方归。
|
|-
|}
===Luo ren《𤡑人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤡑人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男束发披毡,女短衣露腹,缠红藤,腰系沙罗布裙,上短下长,男女同耕。
|
|-
|}
===Cun ren《狆人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Cun ren《狆人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男缠头跣足,女靑布缠头,畧如僧帽,缀以海贝,彩布衣裙,著大尖鞋。构楼而居,甘犬嗜鼠。又有罗缅、麦岔、叠吗、喇毛等类,顽良不一,衣饰风俗同
|
|-
|}
===Nu ren《怒人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nu ren《怒人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居永昌怒江内外。其江深险,四序皆燠,赤地生烟。每二月瘴气腾空,两堤草头交结不开,名交头瘴。男子面多黄瘦,刚狠好杀猎,或采黄连为生,鲜及中寿。妇人披发红藤勒首。每年贡麂皮二十张、山驴皮十张、黄蜡八十筋、麻布三十庹,以代赋税。
|
|-
|}
===Luo ren《𤞰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤞰人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江府鹤庆州大雪山外。男女披发,树叶为衣,耳穿七孔,坠以木环。与怒人接壤,畏怒人,不敢越界。
|
|-
|}
===Wild people《野人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Wild people《野人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|永昌界外。居无室庐,宿于树巅。赤发黄睛,首戴骨圏,插雉羽,手足腹皆缠红藤,以幅布或树皮揜下体。勾刀大刃,捕禽兽蛇虫,生食之。逢人卽杀。
|
|-
|}
===Laodao《老挝》===
{| class="wikitable" style="text-align:center; width:80%;"
|Laodao《老挝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南掌国夷类。戴藤篾黑漆帽,宽二尺许,短衣无裤,用杂色布一疋,从膝下兜绕,围结胸前,名打抄子。妇女耳贯大黑漆圏,塞以野花。
|
|-
|}
===Liemi《列密》===
{| class="wikitable" style="text-align:center; width:80%;"
|Liemi《列密
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽利米。刀耕火种,精射猎,得鼠雀生啖之。男篾帽皂衣,女辫发赤足。出外披花布,以蔽其身。
|
|-
|}
===Lama《喇嘛》===
{| class="wikitable" style="text-align:center; width:80%;"
|Lama《喇嘛》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江、鹤庆多有之。来自西藏,招本境摩为徒。有红黄二敎,红弱黄强。毡帽褊衫,各如其色。
|
|-
|}
===Miaozhi《苗子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|三苗之后,有九种,黔省最多,流入滇中者,惟仲家花苗而已。束发耳环,未婚者缚楮皮于额,或插鸡毛。女布冠套头衣,桶裙,皆用五彩桃花布为之。每岁孟春跳月,男吹芦笙,女振铃唱和,并肩舞蹈,终日不倦。或以彩为球,视所欢者掷之,暮则同归,比晓乃散,然后议婚。节序击铜鼓,吹呐叭,聚赛神,书契惟数目字,及六十花甲子同,馀不同。
|
|-
|}
===Tuliao《土獠》===
{| class="wikitable" style="text-align:center; width:80%;"
|Tuliao《土獠
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其属本在黔、蜀、粤西之交,流入滇中。男首裹靑布,白衣领缀红布一方,妇人冠红巾,衣花绣。性粗桀,好蛊魔之术,其虫夜飞如星,光芒摇曳,射入窓棂,触者病。
|
|-
|}
===Jiaoren《交人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiaoren《交人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|安南国之类。男箬笠蕉扇,衣裳楚楚;女面貌颇雅,手贯牙钏,长衣长裙,以红帕蒙头,皆辫发靸鞋。读诗书习礼,仪婚丧之事,倶仿中国。
|
|-
|}
===Burmese people《缅人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|缅甸国流入者。有老缅、阿瓦、猛别、雍会、普干、摆古、得楞子等类。长于鸟铳,其火药用麦面傅之,迅疾无声。又有缅目者,称为莽纪,断发文身,漆齿穿耳,蟒衣跣足,头带红缎一方,性喜花草。
|
|-
|}
==References==
{{reflist}}
[[Category:Chinese literature]]
[[Category:Non-fiction books]]
[[Category:Medieval historical works]]
[[Category:Works originally in Chinese]]
[[Category:Pages with foreign language text]]
[[Category:Indigenous peoples]]
[[Category:Guidebooks]]
[[Category:History of China]]
[[Category:Wars]]
[[Category:Diplomacy of China]]
[[Category:Subject:Military history]]
[[zh:蛮书]]
a6e1xqvit20a4b5gsyb6fus0p311arc
4674838
4674828
2026-10-07T09:29:07Z
Taitesena
3485636
/* Hala《哈喇 》 */
4674838
wikitext
text/x-wiki
__NOTOC__
{{incomplete translation}}
{{Translation header
| title = Unofficial History of Nanzhao (南诏野史)
| author = Yang Shen (杨慎)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes =
}}
== Front Matter ==
# [[Unofficial History of Nanzhao/Translator's Note|Translator's Note]]
# [[Unofficial History of Nanzhao/Influences|Historical Context]]
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Authorship
|-
! scope="col" | Original
! scope="col" | Translation
|-
|增订南诏野史上卷 明 四川新都杨愼升庵编辑
|
|-
|}
===The Title of Nanzhao 《南诏之称===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Title of Nanzhao 《南诏之称》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蛮夷称王曰诏。先时滇有六诏,各据其地。六诏中蒙舍诏最强,后并吞五诏,故独称南诏。
|
|-
|六诏考六诏之地,东西四千里,南北二千九百里
|
|-
|蒙舍诏蒙细奴逻立国,居蒙舍川,地在永昌、姚州之间,处五诏之南。后奴逻曾孙皮逻阁并吞五诏,独称南诏。今蒙化厅是邆赕诏丰咩立国,居邓川。今大理府邓川州是施浪诏施望欠立国。居{{浪穹弥茨河蒙次和山,今大理府浪穹县是浪穹诏丰时立国,居浪穹。后其孙铎罗望迁剑川,改称剑浪诏。今丽江府属剑川州地是越析诏波冲立国。亦称摩诏。又号花马国。居嶲州。今丽江府是后,其兄之子于赠渡泸,邑于龙佉河蒙嶲诏嶲辅立国。居越嶲,今四川宁远府,越嶲厅是
|
|-
|}
===The Territorial Divisions of Nanzhao 《南诏分野》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Territorial Divisions of Nanzhao 《南诏分野》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|在天井鬼入参一度,汉书。次鹑首末位晋书。丽中台上位北斗开阳一星。宋书。在地乃梁州裔土,蜀之苑囿。河图纬。
|
|-
|}
===The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周鄯阐国、白崖国、昆弥国。战国时滇国,汉西南夷、益州、白子国。后汉建宁国。晋、宋、齐、梁、陈,宁州。隋昆州。唐初,南宁、六诏,唐文宗太和间,名鄯阐府。宋仍名南诏。元名中庆。明名云南省。
|
|-
| 国朝因之。按:汉武帝元狩元年,彩云见南中,在今大理府赵州之白崖。云南之名始此。唐元宗间问蒙舍诏盛逻皮之相张建一作俭成住何处?曰:「南边云下。」因命为云南。又元宗见祥云起,名祥州。今大理府之云南县也。
|
|-
|}
=== General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|鄯阐国蒙苴颂,昆弥国庄蹻、仁果、龙佑那据于周、秦、汉迄六朝。细奴逻据于唐。郑买嗣、赵善政、杨于贞、段思平、高升泰曁正湻,相继据于唐末迄
南宋。凡历有九姓,而雍闓、孟获不与焉。段氏与南宋理宗壬子湻佑十三年为蒙古所灭,而段实于理宗景定二年袭总管,传十二世,明太祖壬戌洪武十五年平云南,擒段世,并段段明之二子苴仁、苴义。赐苴仁官雁门卫镇抚,苴义官武昌卫镇抚,段氏之世土方绝,而又别封其族人段保为大理府云龙州土知州。国朝尚有袭土职者。
|
|-
|}
=== Titles and Official System of Nanzhao《南诏称谓官制》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Titles and Official System of Nanzhao《南诏称谓官制》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南诏称帝曰骠信,王曰诏,自称曰元,称后曰信么,亦曰九么,妃曰进武,兄曰容,弟曰钟,下曰昶。其设官则有把国事八人,曰坦绰,曰布燮,曰九赞,谓之清平官。曰酋望,曰正酋望,曰员外酋望,曰大(将军)〔军将〕,曰员外。又设九爽之名,爽,省也。功爽主官人,宗爽主户籍,万爽主财用,慈爽主礼,引爽主宾客,幕爽主兵,罚爽主刑,厥爽主工作,禾爽主商贾,皆清平官、酋望、大军将兼之。以清平官子弟为羽仪长八人,清平官见王不得佩剑,惟羽仪长佩之。又有六曹长二人,曹长有功升大军将,凡十二人。又立三托:巨托主仓廪,气托主马,禄托主牛。大府主将曰演习,副曰演览;中府主将曰缮裔,副曰缮览;下府主将曰澹酋,副曰澹览;小府王将日幕撝,副曰幕览。每府有陀酋,陀酋卽掌书记判官之类。外有八节度使:日弄栋节度使,今楚雄府姚州。曰银生节度使,今景东厅及鎭沅州地是。曰永昌节度使,今永昌府是。曰丽水节度使,今丽江府是。曰剑川节度使,今丽江府剑川州是。曰东川节度使,今东川府府是。曰通海节度使,今临安府通海县是。曰拓东节度使。今云南府昆阳州北平定乡,蒙氏子凤伽异曾筑城于此地。又有二都督:曰会川都督,今四川宁远府会理州地是。曰通海都督。又设十睑,蛮语谓州为睑。苴音斜。羊睑,又名羊睑,卽今大理府太和县。赵州睑,今大理府赵州。白崖睑,又名勃弄睑,今赵州之白崖。,云南睑,今大理府云南县。蒙舍睑,今蒙化厅。大厘睑,又名史睑,今太和县喜州。邆川睑,今大理府邓川州。品澹睑,蒙秦睑,矣和睑。三睑未详其地。○蔚按:别本十睑中苴羊睑、赵州睑、白崖睑而下,作义督睑,今剑川州;威远睑,今普洱府威远厅南;河东睑,末详其地;越睑,今永昌府腾越州;北方睑,又名成偈睑,今永北厅;楼头睑,今四川叙永厅,属永宁县;路睑,今楚雄府广通县;与云南睑以下七睑异。○按:又考此七睑中,其越睑、北方睑、楼头睑、路睑凡四睑,见于『汉地里志』及『唐书?南蛮传』中,睑并作赕,音闪,字旣不同,音又各异,似非列于十睑之数。凡人丁壮者皆为战卒。王之亲兵曰朱弩佉苴,音蛆。按:元微之白乐天乐府皆作佉嗟,未审孰是。佉苴,韦带也。每兵百人置罗苴子统一人,戴朱鞮鍪,负犀革铜盾而跣足。自大军将以至曹长,皆系金佉苴尚绛紫,有功加锦,又有功加金波罗。卽虎皮。民兵号白衣,凡民兵出以望苴蛮为先驱。
|
|-
|}
===Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|因远部。威远睑治,其地总名和泥,今元江府是。休腊部。今临安府河西县。嶍峨部。今临安府嶍峨县。屈中部。今临安府阿迷州。溪处甸部、伴溪落恐部。今倶为长官司,属临安府。铁容甸部。今为亏容长官司。官桂思陀部。今为思陀甸长官司,皆属临安府。王弄部、强现三部。今属开化府。师宗部。今广西州师安县。弥勒部。今广西州弥勒县。吉输部、袖恶部。倶在弥勒县地。维摩部。卽广西府维摩州。州裁,今属广西州地。罗雄部。今曲靖府罗平州。纳垢州。今曲靖府马龙州。落温部。今曲靖府陆凉州。磨弥部。今曲靖府沾益州。仁德部。今曲靖府寻甸州。夜苴部卽曲靖府亦佐县,县裁,今归罗平州。强宗部。卽澄江府阳宗县,县裁,今归河阳县。步雄部。今澄江府江川县。罗伽部。卽步雄部分地。休制部。今澄江府新兴州。落蒙州。今澄江府路南州。弥沙部、邑市部。皆落蒙部子孙分治之。阳城堡部。今云南府晋宁州。罗部。今云南府罗次县。乾矢部、罗婺部。倶在武定府曲州,州裁,今属武定州。华竹部。今武定州元谋县。洪农碌券部。今武定州禄劝县。掌鸠法块部在禄劝县城东五里。○以上三十五部在迤东地。白鹿部。今楚雄府。谋统部。今丽江府鹤庆州。○以上二部在迤西地。
|
|-
|}
==Nanzhao through the Generations《南诏历代》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Nanzhao through the Generations《南诏历代》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|白古记:西天天竺摩竭国阿育王骠苴音斜。低娶欠蒙亏为妻,生低蒙苴。苴生九子,长子蒙苴,附罗十六国之祖;次子蒙苴廉,吐蕃之祖;三子蒙苴诺,汉人之祖;四子蒙苴酬,东蛮之祖;五子蒙苴笃,生十二子,七圣五贤,蒙氏之祖;六子蒙苴托,狮子国之祖;七子蒙苴林,交趾国之祖;八子蒙苴颂,白子国仁果之祖;九子蒙苴閦初六切。白夷之祖。○『哀牢今永昌府。夷传』:哀牢蛮蒙伽独捕鱼易罗池在永昌府城南。溺死。其妻沙壹一作壶。往哭之水边,触一浮木,有感而妊,产十子。后携子至池上,木化为龙,人言曰:「我子安在?」九子惊走,独季子背龙而坐,龙舐其背。蛮语谓背为九,坐为隆,故名之曰九隆氏。哀牢山一名天井山,在永昌府。下有妇名奴波息,生十女,九隆弟兄娶之,立为十姓:董、洪、段、施、何、王、张、杨、李、赵,皆刻画其身象龙文,于衣后著尾。子孙繁衍,居九龙山山在永昌府城南。溪谷间,分九十九部,而南诏出焉。
|
|-
|}
===Shanchan Guo《鄯阐国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shanchan Guo《鄯阐国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周时立国,年代久远,其姓名世次莫考。
|
|-
|}
===Baiya Guo《白崖国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baiya Guo《白崖国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|西天天竺摩竭国阿育王低蒙苴第八子,蒙苴颂居白崖,因地名,号白崖国,传世莫考。后昆弥氏继之,号昆弥国。
|
|-
|昆弥国一名拜国。
|
|-
|昆弥氏,传世姓名莫考。战国时,楚将庄蹻据滇,并有其地,号滇国。
|
|-
|}
===Dian Guo《滇国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dian Guo《滇国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|战国时,楚顷襄王命将庄蹻范蔚宗后汉书作庄豪。将兵循江上,略巴、蜀、黔中以西,蹻至以兵威畧定滇地属楚。欲归报,会秦司马错攻楚,黔中道塞。蹻遂以其众王滇,号滇国,踞之。后有王常羌者好佛,国势不振。法令不行,国人遂推白崖国蒙苴颂之后,白饭王之裔仁果为王,治白崖,于是两国角立。后仁果奉汉,封为白子国。
|
|-
|}
===Baizi Guo《白子国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baizi Guo《白子国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|汉武帝通西南夷,遣使至滇,求身毒国。滇王常羌问使者曰:「汉孰与我大?」使者还报,武帝怒其言不逊。时白崖国蒙苴颂之后,天竺国白饭王之裔仁果者,为众所推立于白崖。武帝乃册封仁果为王,号白子国。后迁于澄江,今澄江府。迨龙佑那继之,号建宁国。○又一说:白子国之先,有阿育国,王能乘云,上天娶天女,生三子,长季二子封于金马、碧鸡,独封仲子于苍洱之间,崇奉佛敎,不茹晕,日食白饭,人因称为白饭王。迨后有仁果者,汉封为滇王,号白子国。又十五世至龙佑那,后汉诸葛武侯南征,次白崖,以佑那为酋长,赐姓张氏,仍统其民,号建宁国。
|
|-
|}
===Jianning Guo《建宁国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|后汉后皇帝乙巳建兴三年,益州耆帅雍闓,假鬼术杀建宁太守王昂,归东吴,吴王孙权以闓为永昌守。后汉诸葛武侯南征,至白崖,杀雍闓,擒孟获,乃封白子国王仁果十五世孙龙佑那为酋长,赐姓张氏,于白崖筑建宁城,蔚按建宁城废址在今大理府赵州之弥渡。号建宁国,立铁柱蔚按:今弥渡有铁柱宫,铁柱尚存。先为建宁国王张乐进求甫铸,后南诏蒙世隆复重铸,名曰天尊柱,高八尺。并『南中纪功碑』,铭其背曰:「万岁之后胜我者过此」。迨至隋时,行军总管太平公史万岁征南宁夷爨玩,西破三十馀部,至此,见其碑铭,命左右踣之。其碑跌,中复有志曰:「史万岁不应踣吾碑」。万岁惊异,复树碑,祭拜而去。后张龙佑那仍迁国澄江,传三十二世至十七世孙张乐进求,唐太宗己酉贞观二十三年封为首领大将军。后见蒙舍川蒙细奴罗有奇相,遂妻以女,逊国与之。奴罗自称奇嘉王,建号大蒙国,又称南诏。
|
|-
|}
==Nanzhao《南诏国》==
===13 Generations of Nanzhao 《南诏大蒙国传十三世》 ===
{| class="wikitable" style="text-align:center; width:80%;"
|+ 13 Generations of Nanzhao 《南诏大蒙国传十三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|细奴一作农。逻一作罗。 伪谥高祖奇嘉王
|
|-
|细奴逻,又名独罗消,西天天竺摩竭国阿育王低蒙苴第五子蒙苴笃之三十六世孙。生有奇相。唐太宗贞观初,其父舍龙尨,又名龙伽独,将奴逻自哀牢避难至蒙舍川,耕于巍山。今蒙化厅之巍宝山。一日,有老僧,美髯,冠赤莲冠,披袈裟,持钵至奴逻家乞食。时奴逻与子逻盛炎方耕巍山之下,其姑与妇将往饁。见僧乞食,遂食之。再炊往饁,僧坐不去。姑妇持饷中道,僧已在彼,复乞食,姑妇又食之。返而复炊,持饁至巍山,则见僧坐盘石上,前有靑牛,左白象,右白马,上覆云气。云中二童子,一执铁杖于左,一执方金镜于右。姑妇惊喜,复以所饷供之。僧问何所愿?姑妇不知对。僧曰:「奕叶相承」。及趣奴逻等至,则但见一人持钵,坐五色云中,而盘石上惟馀衣痕及牛象马之迹耳。奴逻素有祥异,会唐封首领大将军建宁国王张乐进求,以诸葛武侯所立白崖铁柱,岁久剥蚀重铸之。因社会祭柱,柱顶故有金镂鸟,忽能飞,集奴逻左肩,相诫勿动,八日乃去。众骇异,谓天意有属。进求遂妻以女,举国逊之。于唐太宗己酉,贞观二十三年卽位,年三十二岁,建号大蒙国,称奇嘉王,据南诏。高宗庚戌永徽元年,建都蒙舍川,于巃{山+于}山在今蒙化厅西北三十五里。筑巃山+于城。永徽癸丑四年,遣逻盛炎入朝唐,诏授奴逻为巍州今蒙化厅刺史,赐以锦袍。大勃弄今大理府赵州白崖。酋杨承顚寇麻州,在今曲靖府马龙州城北里许。唐命郞州唐贞观初,分牂牁郡北界置郞州,后改名播州,卽今贵州遵义府。又有郞州,在今云南县地。道行军总管赵孝祖讨之。孝祖先入小勃弄,今云南县地。酋长没盛迎战,孝祖斩之。进至大勃弄,攻其城,破之,擒杨承顚,改云南县为匡州,领勃弄、匡州二县。高宗显庆二年,凤鸣于浪穹罗浮山,乃改名为凤羽山,在大理府浪穹县西南三十里,又名鸟吊山。见『水经注』。封十二圣贤为十二山神。时澄江人波罗旁有经济才,用为文臣;郭郡矣素以勇略闻,用为武臣。又有杨波远者,相传为东汉时人,常骑三角靑牛,号神明大士,能知盐泉,滇中盐泉多为波远所开创。奴逻在位,遵唐正朔。高宗甲戌上元元年,奴逻卒,在位二十六年,子逻盛炎立。
|
|-
|逻盛炎又名逻晟。伪谥世宗兴宗王。
|
|-
| 逻盛炎。唐高宗甲戌上元元年卽位,年四十岁,以张建成为相。明年,盛炎临朝,元宗壬子先天元年,姚州蛮叛归吐蕃。唐命御史李知古讨之,筑城立州县。知古诛豪杰,掠子女,蛮怨,引土蕃,攻杀知古,于姚嶲路绝,而盛炎独奉唐正朔。是年,盛炎卒,在位三十九年,子盛逻皮立。
|
|-
|}
===Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|盛逻皮,唐元宗壬子先天元年卽位,年四十岁。明年为元宗癸丑开元元年,唐授逻皮为特进,封台登郡王今四川宁远府冕宁县地。设官征商税。开元二年,遣张建成入朝于唐。立土主庙。开元九年,皮叛唐。开元十四年,立庙祀晋右将军王羲之为圣人。元宗戊辰开元十六年,逻皮卒,在位十六年,子皮逻阁立。
|
|-
|皮逻一作罗阁石刻作归义王魁乐觉封云南王。
|
|-
|皮逻阁,唐元宗戊辰开元十六年卽位,年三十一岁。开元十八年,灭五诏,自称南诏王。先是,蒙氏恐三十七蛮部不服,选亲族为五诏。未几五诏抗命,逻阁遂赂剑南节度使王昱,求合六诏为一。昱奏于朝,许之。逻阁乃豫建松明大楼,祀祖于上。使人谕五诏曰:「六月二十四日乃星回节蔚按『大理郡志』汉元封间,叶楡妇阿南者为酋长,曼阿娜之妻。娜为汉将郭世忠所杀,欲妻南。南曰:能从三事,当许汝一作幕次祭故夫;一焚故夫衣,易君新衣;一令国人皆知我以礼嫁。忠如其言。明日,聚国人张松幕祭其夫。下置火,南藏刃出,俟火炽焚夫衣,卽引刀刃自断其颈,仆火中,时六月二十五日也。国人哀之,故岁以是日燃炬吊之,名为星回节云。是又当为二十五日。当祭祖,不赴者罪。」四诏听命。惟越析诏波冲之兄子于赠,远不赴会,而邆赕诏丰哶孙{辵+皮}逻邆之妻慈善者,止逻邆勿赴。邆不听。慈善不得已,以铁钏穿于邆臂而行。二十四日,逻邆及施浪诏施望欠弟施望千、浪穹诏丰时孙锋罗望、蒙嶲诏嶲辅子罗原皆至逻阁所。逻阁偕登楼祭祖,祭后享胙食生饮酒,迨晚,四诏尽醉。逻阁独下楼,焚钱遽纵火,火发,兵围之,四诏皆焚死。逻阁遣使至四诏所,报焚钱失火,四诏被焚,状令各诏收骨。四诏妻至,莫辨其骨。独慈善因铁钏得焉,携归葬之。逻阁旣灭四诏,取各诏宫人,念慈善慧而甚美,遣兵围其城,迫取之。慈善曰:「吾岂忘夫事仇者?」闭城坚守,半月城中食尽,慈善度不能支,卽自杀,时七月二十三日也。逻阁嘉其节,乃封赠为宁北妃,并旌其城曰德源城。城废址在今大理府邓川州城东北二里许。开元戊寅二十六年,逻阁破吐蕃及弥蛮,入朝,元宗礼之,加封为特进,云南王,越国公,开府仪同三司,赐名归义,并锦袍金钿带七事。王归国,以兵逐洱河蛮,筑太和城,今大理府城南十五里太和村地是。又筑大厘城今大理府城北四十里喜州是。守之,尽有云南之地。唐授王子阁逻凤右领军卫大将军兼阳瓜州刺史。开元二十七年,明矫叛,破剑川、浪穹、永昌。开元二十八年,王讨朋矫,平之。开元辛已二十九年,王自蒙舍川迁居太和城,立龙首、卽今上关。龙尾卽今下关。二关。唐加阁逻凤为左领军卫大将军。元宗癸未天宝二年,筑羊苴哶城于太和城之北。卽今大理府城。唐迁阁逻凤为左金吾卫大将军,寻拜特进都知兵马大将军。天宝甲申三载,西方进狮子皮。唐加阁逻凤为上柱国。天宝乙酉四载十月,城永昌。天宝丙戌五载,王遣孙凤伽异入唐,唐授伽异为鸿胪少卿,妻以宗室女,赐龟兹乐一部,元宗戊子天宝七载,王卒,在位二十年,子阁逻凤立。
|
|-
|阁罗凤一作觉乐凤。按:『德化碑』云:「家居阁罗凤」,则是取地名以为名也。袭封云南王,伪谥神武王。始建元。
|
|-
|
阁罗凤,唐元宗天宝戊子七载卽位,年三十六岁。唐遣中使黎敬义持节册凤袭封云南王,敕置阳瓜州于蒙舍川,加授
凤伽异为上卿兼阳瓜州刺史,都知兵马大将军。天宝庚寅九载,王率妻子往谒都督李宓,过云南,太守张虔陀私之,又多徵求。王表虔陀之罪,中官贾奇俊抑之,不得达。王复遣将军杨罗顚等连表控告。元宗仍不省。凤怒,遣大将军王毗双、罗时等发兵攻虔陀。虔陀饮鸩死;遂取姚州,并夷州三十二。获唐嶲州西泸令郑回以归,爱其才,用为清平官。天宝辛卯十载,唐命剑南节度使鲜于仲通将兵八万征云南。凤赴泸南在楚雄府姚州之城北一百五十里。谢罪,愿还所俘掠,请罢兵。仲通不许,分三道而进。仲通自南溪路,大将李晖自会同路,都督王知进自步头路。今临安府地。凤就安宁,再伸衷悃。仲通不听,兵至曲州、靖州。二州今为曲靖府地。凤复遣首领杨子芬、参军江如之赍状,言若不罢兵,卽当归吐蕃,恐云南非唐有。仲通终不许,囚其使,进薄白崖城。别遣大将王天运统师绕出点苍山后。凤遣
凤伽异及大军将段俭魏迎山后师,自逆战于西洱河。唐兵大败,死者六万人,王天运战殁,仲通仅以身免。凤乃叛唐,建元长寿。遣弟阁陂和尚及子铎传、酋望赵佺邓、杨传磨侔等,并子弟六十人献凯吐蕃。陂有神术,人马往来吐蕃,不过朝夕之顷。天宝十一载正月一日,遣宰相倚祥叶乐持金冠、锦袍、金宝带、金帐状、安扛伞鞍、银兽器皿、珂贝、珠毯、衣服、駞马、牛鞻等物至邓川,以凤为兄弟之国,册为赞普钟南国大诏,给金印,称东帝。并授凤伽异大瑟瑟告身,都知兵马大将。凤遂改是年为赞普钟元年。发人口百户于浪穹,筑白崖睑城,又遣兵攻掠安宁。天宝甲午十三载六月,唐命前云南郡都督兼侍御史剑南留后李宓、广府节度使何履光等,率十道兵再征云南。兵逼邓川,凤遣凤伽异、段俭魏迎战于江口。时神川都知兵马使论绮里徐救兵已至巴蹻山,遂诱宓深入,内外夹击。宓粮尽,士卒饥疲,引还。凤以精兵追战,唐全军覆没,李宓被执,沉江死,何履光遁去。凤因进取嶲州会同郡,据清溪关,以破越析。此二役也,皆凤弟阁陂和尚及凤妃白氏行妖术,展帕拍手而笑,韩陀僧用钵法,以故唐兵再败。时唐先后丧师已二十馀万,凤乃敛战胔,筑京观于龙尾关河尾,名万人冢,立碑大书「唐天宝战亡士卒之墓」。而唐宰相杨国忠更揜败以捷闻,叙战功。令清平官郑回撰『德化碑』,唐流寓御史杜光庭书。立石太和国门外,明其不得已叛唐归吐蕃之故。天宝乙未十四载冬十一月,东平郡王安禄山反于范阳,凤乘机以兵取蜀卭州,筑卭子城,及丽水金宝城。升段俭魏为清平官,赐名忠国,旋拜相国。代宗甲辰广德二年,羊苴哶城成,凤名之曰大理城,又名紫城。代宗乙巳永泰元年凤伽异筑云南城卽今云南府省城。又筑拓东城,今云南府昆阳州北平定乡。遂以兵攻陷曲靖。代宗丁已大历十二年,永昌牛生三角,羊生四角,鸡九足,井有光。建观音寺于白崖。先是,逻盛炎时,相国张建成欲于白崖建寺,卜之吉。又地下有三戳观音,上截在西,中截在东,下截在东南。因盛炎旋卒,不果建。至是建寺,掘之果然。代宗戊午大历十三年,阁罗凤卒,在位三十年。因子凤伽异先死,后追谥悼惠王。孙异牟寻立。
|
|-
|异牟寻改国号曰大理国。封云南王,又封南诏王 伪赠廪孝桓王
|
|-
|异牟寻,唐代宗戊午大历十三年卽位,年二十四岁。明年改元见龙,又改上元,率兵三万取蜀为东府,又连土番入寇。唐命神策都将李晟击破之。师还,自称南诏王。德宗甲子兴元元年,牟寻迁居史城,卽大厘城。改号大理国,自称日东王。封岳读,以叶楡今大理府。点苍山为中岳,乌蛮今东川府。乌龙山一名绛云弄山,在今禄劝县东北三百里。为东岳,银生府今景东厅。蒙乐山一名无量山,在厅北九十里。为南岳,又封南安州今楚雄府属。神石亦为南岳,越赕今永昌府腾越州。高黎贡山一名昆仑隅,在腾越、潞江之间。为西岳,嶲州今丽江府是。雪山一名玉龙山,在府西北二十里。为北岳。封金沙江源出吐蓄旄牛徼外犂牛石下,本名犂牛河,又名犂水,讹为丽水。经丽江府、鹤庆州、姚州而东北达于四川马湖府之马湖,卽『山海经』所谓若水。『水经注』云:若水经云南之遂久县,卽今金沙江巡检司地。昔黄帝长子昌意德劣,不足绍承天位,降居斯水为诸侯,娶蜀山氏女,生颛顼于若水之阳,疑卽其地也。祀在武定州,兰沧江源出吐蕃鹿石山下,本名鹿沧,又名兰沧。兰沧讹为浪沧。自丽江府度云龙州至永昌府,东经顺宁府,达于车里,过交趾地而入于南海。祀在丽江府,黑惠江在顺宁府之东入狼沧江,而达于南海。祀在顺宁府,怒江源出西域雍望,奔流而下,深不可测。夏月多瘴,经怒夷地入丽江府境野人界。至永昌府境,乃名潞江。祀在水昌府,为四渎,各建神祠。又立三皇庙。德宗丙寅贞元二年,设官立九爽三托。考疆域,其地东至于铜柱、铁桥、蟠桃、玉楡,东南至于交趾国,南至于骠国,西南至于木落山,西至于太石,西北至于吐蕃,北至于神川,东北至于黔巫。八分之地,属以八演,皆中国降人为之经画者。贞元丁卯三年,寻居大理城。命子弟师事郑回。时寻苦吐蕃徵求无厌,会李泌劝德宗招云南以断吐蕃右臂。帝从之,命韦皋为西川节度使,皋受命招抚群蛮。郑回因说寻归唐,寻以为然。皋遣谍者致书于寻,吐蕃知而疑之,乃责南诏大臣为质。寻愈怨。于是,决计归唐。皋以闻,德宗乃命皋作书谕寻。是年四月,吐番破蜀,来征兵,蔚按:卽吐蕃劫浑瑊清水盟之岁。寻谢绝之。贞元五年,寻遣乌蛮勿邓大鬼主苴梦冲、两林都大鬼主直那时聘于皋,因入朝。皋遣其属崔佐时报之。时吐蕃使数十人先在,佐时至,寻令更衣入。佐时不可,曰:「天朝大使。岂衣夷衣?」寻不得已,夜迎之。佐时至,大宣诏旨,令寻斩番使,去其所立之号。寻遂与佐时盟于点苍山下。贞元九年,寻遣使上表,请从韦皋袭吐蕃。诏册封为云南王,以韦皋为云南安抚使。王遣使诣皋,献夷中歌。贞元十年,吐蕃徵兵于王,王阳示寡弱,以兵三千应之,自将数万人踵其后。正月,袭吐蕃,战于神州,断铁桥,在巨津废州,今丽江府西北地。取十六城,俘其五王,降众十馀万,获军资甲仗无算。遂遣弟凑罗栋、清平官尹仇宽献捷于唐,并献地图、纳贡及吐蕃所给金印,请复号南诏。于是,唐以祠部郞中袁滋为中丞,赐金紫充册使。赐王银窠金印,印文曰:「贞元册南诏印」。王北面跪受。宴使者,出元宗天宝五载所赐王父凤伽异银跳脱马头盘数物,并指老笛工、歌女曰:「皇帝所赐龟兹乐,惟二人在耳!」使者日:「南诏世荷唐恩,当深思祖考子孙勿替,尽忠皇唐。」王对曰:「敢不敬使者之命。」随遣清平官尹辅首入谢,献铎鞘、郁刀、生金、瑟瑟、牛黄、氎、纺丝、越赕绕伦马。蔚按:铎鞘,疑当作择矟,状如残月,有孔旁达,出丽水,饰以金,月祭之血,所击无不洞。段柯古『酉阳杂俎』云:南蛮有毒槊无刀刃,状如朽铁,中人无血立死。言自天而下,入地丈馀,祭地乃掘得之,云云。疑卽铎矟,毒为铎字之讹,槊字本同矟宇也。郁刀铸时以毒药并冶,取莹耀如星者,凡十年乃成,淬以马血,镂金犀饰镡首,伤人卽死。因浪人所铸,又名浪剑,夷中甚宝之。七月,又攻吐蕃,并破施蛮、顺蛮,施蛮、顺蛮卽施浪、浪穹二诏之后,自南诏并吞五诏,五诏之后不复称诏,止称蛮。俘其王置白崖城。贞元十二年,取越赕,置软化城。贞元十四年,请以大臣子弟质于朝,韦皋却之。固请,乃尽舍成都,遣就学。贞元十五年,王开白国北方赕地,今永北厅。徙弥河白蛮及罗落摩蛮实之,号剑羌。是年,王从韦皋再败吐蕃于铁桥。初,王谋击吐蕃,以邆川、卽今邓川州。宁北卽今浪穹县。等城当寇冲,乃峭山深堑,修战备。至是吐蕃谋袭南诏,王告于皋,遣将屯黎州、嶲州以应之。吐蕃引兵攻嶲州,皋严兵以守,别遣将袭击,降其帅,吐蕃惧,退至铁桥。王令人毒其水,吐蕃人马多死,退屯三泸水,王与皋部将杜毗罗击败之。贞元十六年,王率子寻阁劝入朝于唐,召对延英殿,进奉圣乐舞,德宗御麟德殿观之。贞元十七年,王夜绝泸水,斩吐蕃屯卒,又合鬼主破之于泸西。吐蕃大惧,欲悉师收嶲州,以绝南诏。王谓韦皋曰:「吐蕃声取嶲州,实窥云南,请进军羊苴咩城。」皋督诸将分道与王会,陈兵深入,拔木波城。前后凡克城七,焚堡百五十所,斩获无算,生擒论莽热,献于唐,并进铠甲十五万。皋班师,帝遣中使慰抚王。王自是比年贡方物,唐帝深礼之焉。贞元十九年,王封云南金马碧鸡二山之神为景帝,建妙音寺塔,筑大理雪峰长城。宪宗戊子元和三年七月,王卒。唐遣使祭吊,在位三十年,子寻阁劝立。
|
|-
|寻阁一作觉劝又名新觉劝。 袭封南诏王 伪谥孝惠王
|
|-
|寻阁劝,唐宪宗戊子元和三年卽位,年三十一岁。唐册劝袭封南诏王,赐元和金印。宪宗己丑元和四年正月,改元应道,群臣上尊号曰骠信,以鄯阐为东京,大理为西京,重修曲靖崇真寺。寺为晋代所建。十一月王卒,在位一年。子劝龙晟立。
|
|-
|}
===Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝龙晟,唐宪宗己丑元和四年卽位,年十二岁。唐册袭封南诏王。明年,改元龙兴。铸佛三尊,送佛顶峰寺,用金三千两。元和九年,晨寇嘉定州,有飞天神兵破之。先是,节度使杜元颖守成都时,时滇兵至嘉定之沐源州,忽自惊溃。蜀军获一夷卒问之,云适见遍山神兵,一神将长斧坐二鬼上,声若迅雷,故尔惊走。至是神复现形,自后追杀,卽时死酋长二人。盖嘉定向有飞天神庙,两破滇兵者,皆此神也。宪宗丙申元和十一年,晟淫虐失道,弄栋节度使王嵯巅弑之,时年仅十九岁,唐命少监李铣祭吊,在位七年,弟劝利立。
|
|-
|}
===Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝利,唐宪宗丙申元和十一年卽位,年十五岁。唐册袭封南诏王。王嵯巅东寇。明年,改元全义。元和十三年,厚赏王嵯巅,赐姓蒙,封太容。元和十四年,废王嵯巅,赦其罪,命敬信三宝,为清平官。元和十五年,又改元大丰。重修崇圣寺。五月,大雨霖,龙首、龙尾二关倾。除洱河水怪,建龙屋塔。高十二丈。按:『白古记』:唐时洱河有妖蛇,名薄劫,兴大水淹城。蒙国王出示:有能灭之者,赏半官库,子孙世免差徭。部民有段赤城者愿灭蛇,缚刃人水,蛇吞之,人与蛇皆死,水患息。王令人剖蛇腹,取赤城骨葬之,建塔其上,毁蛇骨灰塔,名为灵塔。在今大理府城南龙尾关内点苍山马耳峰下羊皮村。每年有蛇党起风来剥塔灰。时有谣曰:赤城卖硬土。今『龙王庙碑』云:洱河龙王段赤城云。永昌生两头牛。穆宗甲辰长庆四年,赐南诏王金印。是年王卒于东京,在位八年,弟丰佑立。丰佑慕中国之风,独不肯连父名。丰佑石刻作劝丰佑 册封滇王 伪谥昭成王
|
|-
|
丰佑,唐穆宗甲辰长庆四年卽位,年七岁。唐遣京兆少尹韦审规持节册封为滇王。王遣洪成酋等人谢。明年,改元保合,又改元天启。西僧赞陀啒哆建鹤庆元化寺。先是,鹤庆地水淹,僧杖刺东隅泄之。水中得樟木,刻为佛,咒之忽灵,远近名曰活佛。按:活佛,后至明成化间,福建莆田林俊为云南宪副闻之,亲至寺中,将佛火之,得金数百两入官,又毁他寺三百,人呼为林劈佛。建常平仓,筑邓川城。敬宗乙巳宝历元年,重修大理崇圣寺一名三塔寺。成先是,王嵯巅广寺基方七里。圣僧李成眉贤者建立三塔,高三十丈。佛一万一千四百,屋八百九十,铜四万五百九十筋。元和十五年经始,至是工竣。塔顶旧有铁柱款识云:「贞观六年尉迟敬德监造」,盖寺之建久矣。重修云南东寺塔,高百五十尺,西寺塔高八十尺,二寺亦贞观间将作大匠尉迟敬德所建。文宗丁未太和元年,王母出家,法名惠海。太和二年,用银五千,铸佛一堂,废道敎。太和己酉三年,僧梦岛造永昌卧佛,长丈六。六月朔,星落如雨。命王嵯巅等寇蜀。先是,西川节度使杜元颖失士卒心,军逃入南诏,因此知蜀虚实。佑遂遣嵯巅等攻蜀,陷嶲、戎、卭三州,攻成都,止西郛十日,掠经书、宝货、子女无算,蜀中残敝。并寇梓州、蜀州。佑上表于唐,请诛元颖。唐改云南为鄯阐府。卽今云南府省城。太和四年,唐贬杜元颖循州司马,以义成节度使李德裕为西川节度使。裕至西川,建筹边楼,日召习边事者访问,凡山川险要,南道与蛮相入者图之左,西道与吐蕃相接者图之右,不啻身尝经历焉。乃奏请留北兵以重镇守,修甲胄、备器械。率户二百取一人习战,作雄边子弟等十一军。筑仗义、御侮、柔远诸城以扼要害,复卭崃关,徙嶲州治台登,以夺蛮险。令转卭、雅粟以十月而运,先夏而至,人不苦瘴,边境始安。至是使人于佑,责归所俘。太和五年五月,佑归所俘西川四千人于德裕。太和六年,佑掠骠国民三千,徙之拓东城。武宗乙丑会昌元年,佑遣军将晟君筑横渠道自磨用江至于鹤拓,灌东皋及城阳田,与龙佉江合流入于河,谓之锦浪江。又潴点苍山玉局峰顶之南为池,谓之高河,又名冯河。更导山泉共泄流为川,灌田数万顷,民得耕种之利。会昌六年九月,佑攻陷安南,经略使裴元裕死之。宣宗丁卯大宗元年,佑妃卒,佑郁郁不乐,臣下请选妃女备后宫。得罗部今云南府罗次县。一美女进之,有宠。女好佛,建罗次寺,至今灵异。六月大旱,佑令僧寿海祈雨。僧曰:「昔汤旱七年,六事自责,天雨七日。今王酒色妄杀,天怒不雨。王如改悔,天雨自至,何以祈为?」佑如僧言,自责自改,数日果雨。佑女至崇圣寺进香,回至城西,为一乘白马人摄去,寻之不得。佑告于西僧赞陀啒哆,哆曰此山神也。乃设灯照之,果在苍山下。哆怒欲行法,移山于河。山神惧,献宝珠供佛,佑乃已。大中十二年,佑遣段酋迁陷安南都护府。遣段宗榜救缅。榜,汤今云南府宜良县地。人,佑之勇将。先是,狮子国侵缅;屡求救,至是许之。按:缅甸卽汉之掸国,唐之骠国,其历代莫考。当宋元之时,屡败王师。明太祖洪武十年,缅头目招扳南进贡。十九年,使行人司钱古训赍诏立宣尉司。二十年,缅犯景东。二十一年,犯他郞甸,沐英命都指挥宁正平之。三月,犯定边,沐英同都督冯诚平之。景泰三年,王骥赏缅孟养地。缅喜,乃擒献麓川贼。嘉靖初,缅火烧赍金牌官,中终年猖獗海上,遂至难制。○考自永昌府腾越州入缅,止三十四程。腾越一日南甸、一日罗必斯、一日郞、一日甸头、一日甸尾、一日蒙腰、一日甸蓝、一日蒙怜路、一日空地、一日蒙来路、一日大市、一日龙江、一日锅地、一日人列渡、一日江头城、一日景怜、一日及、一日马来城、一日赖当、一日山头、一日甸头、一日阿只、一日吴细辰、一日折弓、一日阿越。由阿越下水,九日卽至缅城。其地有五大城,江头、太公二城之外,又有马来、安正国、蒲甘缅王三城。酋住金楼,民住竹楼。其下称酋为卜剌浪,称酋妻为米泼剌。酋出人乘轿,水有舟筏。官名有招孟、招彔、招刚三等。官无大小,倶金银花宝带。无弓箭。其水有金沙江,险恶,缅恃以为固。涸时,亦仅五里。俗敬佛,重罪对佛发誓,凭僧处断。○入缅又有三道:一由潞江西上;一由腾越七日至麓川;一由景东从木通甸至湾甸渡入芒市,十日至麓川。○此外从潞江上流蒙来渡至景乐沿河有小渡十馀处,皆可通。又有三道:一由天步马,一由湾甸,一由阿郊地界,皆可入缅。宣宗己卯大中十三年,陷播州。李德裕旣贬死,西川节度使所任皆非人,侥佯边功,发兵十万袭滇,自建昌入,佑命子世隆为坦绰,同王嵯巅迎战于古宗,今丽江府铁桥以北地。杀唐兵数万人,立铜柱于界上。世隆之母,佑妃也,出家号师摩矣。尝随佑至罗浮山白城,建一寺,南壁画一龙,是夜龙动,几损寺,妃乃复画一柱锁之,始定。按:妃本渔家女,喜浴。为妃后,仍常泛舟西洱河,屏人潜浴于水,感金龙与交,生世隆。隆七岁,拳握始开,有文在其掌曰:通番打汉。古宗之战,唐帝惧世隆为患,妻以宗室女,伺察其所为。女以世隆年庚潜送于帝。帝使太史推之,知其感龙精而生。是年,丰佑卒于东京,在位三十五年。子世隆立,以王嵯巅摄政。段宗榜救缅,回至腾越,闻佑卒,世隆立,嵯巅摄政,移书王嵯巅曰:「天启不幸,驾崩嗣幼,闻公摄政,国家之福。榜救缅以败狮子国。缅酬金佛,当得敬迎。奈中国无人,惟公望重。榜抵国门之日,烦亲迎佛,与国增光。」云云。嵯巅不知是谋,至日迎之。榜令巅拜佛,突斩之于佛前。讨其弑劝隆晟之罪也。榜熔佛得金数千两。时有缅人奉香火者在榜,默祝曰:「愿世代奉敬,今不如愿,惟愿世尊轮生,灭彼国祚。」后果生郑买嗣篡国,灭蒙氏。
|
|-
|世隆『唐书』作酋龙。 伪谥景庄皇帝僭称帝始此,以后郑、赵、杨、段、高五姓之国咸效之。
|
|-
|世隆,唐宣宗己卯大中十三年卽位,年十六岁。明年,为懿宗庚辰咸通元年,改元建极。改西京曰中都,东京曰上都。先是,德宗贞元间,西川节度使韦皋开道通南诏,令岁入贡。异牟寻、寻阁劝二世事唐唯谨,迨劝龙晟及丰[佑],又数数扰边,大为唐患。又以世隆之名犯太宗、元宗庙讳。唐不册封,隆益致怨望。至是自称皇帝,遣兵取乌蛮、僰、爨之地,置东川郡。前节度使杜悰变韦皋制度,侵扰蛮中。隆绝朝贡,寇播州。至是李福为节度使,隆遣清平官董成至成都,移书于福。成与福抗礼,福囚之。上闻,有诏释成,召至京师,见便殿,遣还。咸通二年,遣兵陷安南。左仆射同平章事杜悰言:「西川兵弱,南诏强盛,未可轻绝。宜遣使祭吊,谕令改名,行册礼。帝肯之。会隆复寇嶲州,遂止。咸通三年,隆亲寇蜀,取万寿寺石佛归。时高真寺僧崇模有神术,从征。军中乏粮,又値岁暮,士卒思归,僧咒沙成米,咒水成酒,士卒各醉饱。一日僧化蝶回国乱宫,世隆妻以书达隆。隆答曰:妖若再来,令宫人于其衣背绣蝶。后僧复至,宫人绣之。隆见僧衣有蝶,令斩之。刑七次,首不殊。僧自云:用茅锯之乃断。果然。人见僧魂化一黑鹏飞去,盖僧本高真寺鹏巢中所得之儿也。咸通四年,寇西川。咸通五年,陷安南、邕管。咸通六年,陷嶲州。咸通七年,复攻安南。岭南西道节度使高骈救之,隆兵大败,骈遂定安南。咸通十年,隆遣使杨酋庆等入朝,谢释董成之囚。归成都俘三千人。定边节度使李师望杀其使,隆怒,率众攻蜀,陷嘉州。咸通十一年正月,陷黎州,入卭徕关,围雅州,击卭州,遂进攻成都。次眉州,西川节度使卢耽畏众寡不敌,通使请降。继而唐遣东川节度使颜庆复、大将宋威等率兵来战。世隆败屯星宿山,宋威戍沱江。隆迎战于毗桥,不胜,趋沱江,中伏。城中又出突将,夜火隆营,夺升仙梁。隆大败,奔双流江,无梁以渡,乃伪请和,三日梁成而济。咸通辛卯十二年,立鄯阐王宫。咸通壬辰十三年,于白崖诸葛武侯所立铁柱之地,铸天尊柱,高八尺。蔚昔年曾至铁柱宫,其地界白崖、弥渡、蒙化三境之间。其柱刻字云:建极十三年岁次壬辰四月朔庚子十四日癸丑建立。咸通十四年,攻黔中。又寇西川,作浮梁济大渡河,防河兵马使黄景复伏兵,半渡击败之。会隆国中新兵继至,接战,景复败走。隆进兵陷黎州,入卭徕关。遂遣王保诚等四十人谩书诣剑南节度使牛丛,欲假道入朝,请憩蜀王故殿。丛囚其使三十八人,释酇咙及段酋迁二人还。隆乃退兵至新津而旋。僖宗乙未乾符二年,攻雅州。西川节度使高骈追至大渡河,大败之,俘酋长五十人,收复黎州、卭徕关,斩黄景复以狥。乾符三年,遣使诣高骈请和,不许,斩使者一人。隆怒,自是唐使至不拜,惟拜和尚。骈知之,乃遣僧景仙往谕公主事,隆乃下拜定盟。禧宗丁酉乾符四年二月,复寇蜀,高骈御退之。骈又结吐蓄尚延心嗢、末鲁褥月等为间,筑戎川州、马湖沭沐源川、大渡河三城,列屯拒险,料壮卒为平夷军。世隆气夺,因恚发疽,卒于越嶲景净寺,在位十八年,子隆舜立。
|
|-
|}
===Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆舜,唐僖宗丁酉乾符四年卽位,年十七岁。明年,改元贞明,又改元嵯耶、承知、大同,改国号曰大封民国。遣使于唐请和,诏许之。自劝龙晟至世隆以来,侵蜀伐安南,用兵五十馀年,帑藏不给,横敛于民,上下倶困。舜立,耽于酒色,委政臣下,故愿求和于唐,乃遣段宝诣岭南节度使辛谠,请修好。谠奏,许之,以息边患。乾符六年,遣使于唐求和亲,无表,只用牒,称弟不称臣。唐帝召百官议,礼部侍郞崔澹曰:「南诏无礼,恐贻后笑。」使者上书与澹争。帝谕解之。议者谓中国多故,南诏寖强,不若权与和亲。便从之。僖宗庚子广明元年春正月,唐命宗正少卿李龟年来和亲。僖宗辛丑中和元年,上表款附。中和癸卯三年,唐以宗室女为安化长公主,妻隆舜,僖宗乙已光启元年,遣宰相赵隆眉、清平官杨奇鲲、段义宗三人,朝唐帝行在,且迎公主。高骈在淮阳飞章上言:「三人南诏心腹。宜止而酖之。」唐帝从其言。隆眉等死,南诏遂不复振矣。是年昆仑国进美女,舜嬖之。光启二年地震,龙首、龙尾二关、三阳城皆崩。昭宗己巳乾宁四年,隆舜多内嬖,常信谗以诛其下,淫虐日甚。竖臣杨登弑之于东京,在位二十年,子舜化贞立。
|
|-
|}
===Shunhuazhen舜化贞 伪谥孝哀帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|舜化贞,唐昭宗丁巳乾宁四年卽位,年二十一岁。明年,改元中兴。上书于唐,朝廷欲报之。利州刺史王建上言:「臣在西南,彼必不敢犯塞,小夷何足辱诏书。」遂止。昭宗光化二年,立五学敎主。十一月,诛杨登,族其家。光化庚申三年,铸崇圣寺丈六观音,清平官郑买嗣合十六国铜所铸,蜀人李嘉亭成像。一说唐天宝间,崇圣寺有僧募造丈六观音像,未就。夜忽雨,旦视之,铜也,卽取以铸像。像成,白光弥覆凡三日夜,至今人称为雨铜观音。唐昭宗壬戌天复二年,舜化贞卒,一说实郑买嗣弑之。,在位五年。化贞有一子,生甫八月,郑买嗣主国事,遂启贞妻曰:「母后深宫,群臣无主,臣当抱太子临朝。」贞妻是其言,以子付之。买嗣抱子出,潜手伤其阴,子哭不已,乃送回宫中。明日,子死。贞妻疑而诘之,买嗣怀不安,遽起兵杀蒙氏亲族八百人于五华楼下,遂簒立焉。
|
|-
|按:蒙氏南诏大蒙国,自细奴逻禅立,起唐太宗己酉贞观二十三年,讫昭宗壬戌天复二年,传十三世,共二百五十五年。
|
|-
|}
==Dachanghe Generations《大长和国 传三世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dachanghe Generations《大长和国 传三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|郑买嗣又名。 伪谥圣明文武威德桓皇帝。
|
|-
|郑买嗣,又名,唐巂州西泸令陷南诏臣蒙氏,为清平官郑回之七世孙。
隆舜时历官侍中,权势日重。隆舜巡幸无度,留买嗣守国,遂专政柄。舜化贞时为相,化贞卒,嗣贼杀其子,簒蒙国,于唐昭宗壬戌天复二年十二月卽位,年四十二岁,国号大长和,仍都大理。明年,建元安国。后梁太祖开平丁卯元年,建普明寺。开平三年,铸佛一万尊,送寺祈福,为杀蒙氏八百人故也。开平四年八月,买嗣卒,在位八年,子仁旻立。
|
|-
|}
===Renmin 《仁旻 伪谥肃文太上皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|仁旻,后梁太祖庚午开平四年卽位,年二十二岁。明年,改元始元,又改元天瑞、景星、安和、贞佑、初历。末帝甲戌乾化三年,旻攻蜀。蜀高祖王建发兵拒之,旻兵大败,溺水使者万馀人。后唐庄宗癸未开同光元年,施宫寺灾,僧智照撰『封民三宝记』。同光二年旻以朱鬃白马求婚于南汉刘龑,龑以增城公主妻之。明宗丙戌天成元年八月,仁旻饵金丹,躁怒,常杀人,遂暴卒,在位十六年,子隆亶立。
|
|-
|}
===Longdan 《隆亶 伪谥恭惠帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆亶,后唐明宗丙戌天成元年卽位,年十二岁,明年,改元天应。明宗戊子天成三年,东川节度使杨乾贞入朝,弑隆亶而立赵善政,计亶在位二年。
|
|-
|按:郑氏大长和国,自买嗣簒位,起唐昭宗癸亥天复三年,讫后唐明宗戊子天成三年,传三世,共二十六年。
|
|-
|大天兴国一作兴源国。 一世
|
|
|}
==Dayining Generations《大义宁国 一世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Yang Qianzhen 《杨乾贞 伪谥肃恭帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|杨乾贞于后唐明宗己丑天成四年夺大天兴国赵善政之位,改国号曰大义宁国,建元兴圣,又改元大命。乾贞萂村人。今大理府宾川州所属地。母名弥彔,有美色,蒙隆舜私焉。有孕,适渔人杨氏,生乾贞,后又生诏。其父捕鱼,贞立船头,见水中有人龙衣冠冕,左右有凤鸟,白光拥护,乃呼父视之。父见是贞之影,大奇之。长仕郑氏,官至东川节度使。至是夺善政位而自立。贞在位,贪暴特甚,中外咸怨。后晋高祖丁酉天复二年,通海节度使段思平起兵讨之。贞遣弟杨诏等五人出拒。诏兵败,乾贞出奔。思平遂得位,寻赦其罪,废为僧。计贞在位八年。
|
|-
|}
==Dali Generations《大理国 传十四世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siping《太祖圣神文武皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段思平,其先武威郡北人,世为南诏蒙氏将。唐元宗辛卯天宝十载,及甲午天宝十三载,唐再伐云南,云南王蒙
阁逻凤命世子凤伽异、大军将段俭魏迎战于点苍山及西洱河,两败唐兵。以功升俭魏为清平官,赐名忠国,寻拜相,六传而至思平。其母因过江,水泛触浮木,若有感而娠,生思平,并其弟思良。思平为幕览,小府副将也。常游山中,得为帝之谶,又每多异徵。时东川节度使杨乾贞之弟杨诏者已贵,闻而忌之,使人贼思平。思平逃匿于崇恩寺,在大理府城南九里。捕者追至,见蛛网盈寺门,不入,故得脱。后积战功,使为通海节度使。后唐明宗己丑天成四年,杨乾贞夺赵善政之位。受诏之谮,常欲除思平。平卜于秀山神祠,就其舅爨判自匿。后晋高祖丙申天福元年,乾贞索捕思平甚急。会善政臣守高方,素与思平善,密遣人招思平。思平与其弟思良、军师董迦罗走就之。皆裂冠,变姓名,为猎者,牵一犬至品甸波大村今大理府云南县地。宿旅舍。舍有戟,生牛革裹之,是夜风起,戟忽洞革出。思平惊曰:「是何銛利?得非神戟乎!」问主人曰:「戟何为?」曰:「以防夜耳。」曰:「防夜莫若犬。」遂以犬易戟去。行至叶镜湖,湖在大理府云南县地得神马。饥取野桃而食,核上有虫啮「靑昔」二字,思平解为十二月二十一日,意其吉兆。于是急趋而前,借兵于东方黑爨三十七蛮部,会于石城,今曲靖府是。以董迦罗为军师。兵集之期,适十二月二十一日也。所向皆克,遂进攻大理,讨干贞。时诏等陈兵据桥,军不能过。思平夜忽得三梦:人无首;玉瓶无耳;镜破。觉而告其下。迦罗觧之曰:君乃丈夫,去首为天;玉瓶去耳为王;镜破则无对者,此神示吉兆。是日,有被缨浣沙妇,指渡处曰:「人从我江尾,马从三沙矣,尔国名大理。」从之,乃得过江,击诏等杀之。乾贞闻诏等军败,出奔。思平卽位,时天福丁酉二年也,年四十四岁。建号大理国,建元文德,仍都大理。天福三年封董迦罗为相国,封高方为岳侯,分治成纪、巨桥等地。封爨判为巴甸侯。祠秀山神,免东方三十七蛮部徭役,赦国中凡有罪无子孙者。天福四年,赦杨乾贞罪,废为僧。一说乾贞败后,挈其妻子奔永昌郡。思平遣兵追之,至万剑树,乾贞自缢而死。思平俘其妻子亲属。帝好佛,岁岁建寺,铸佛万尊。后晋出帝甲辰开运元年帝崩,在位八年,子思英立。
|
|-
|}
===Duan Siyin 《文经皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siyin 《文经皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思英,后晋出帝甲辰开运元年卽位,明年,为出帝开运二年,改元文经。帝母杨氏桂仙娘没而为神,屡著灵应,封为楡城宣惠圣国母。是年,帝叔思良争位,废帝为僧,法名宏修大师。在位一年,叔思良立。一说思英素不肖,思平在日,常欲废之,不果。迨卽位,愈淫戏无度,群臣废之,而立思良。
|
|-
|}
===Duan Siliang 《圣慈文武皇帝 太祖之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siliang 《圣慈文武皇帝 太祖之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思良,后晋出帝乙巳开运二年卽位,明年,改元至治。后周太祖壬子广顺二年,帝崩,在位七年,子思聪立。
|
|-
|}
===Duan Sicong 《思聪 伪谥至道广慈皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sicong 《思聪 伪谥至道广慈皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思聪,后周太祖壬子广顺二年卽位,明年改元明德,又改元广德。宋太祖乙巳开宝二年,思聪卒,在位十七年,子素顺立。
|
|-
|}
===Duan Susun 《素顺》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Susun 《素顺》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素顺,宋太祖乙巳开宝二年卽位。明年,改元明政。先是,宋太祖丁卯乾德五年春,王全斌平蜀,还京师,请取云南,负地图进。太祖鉴唐之祸,以玉斧画大渡河为界,曰:「此外非吾有也。」由是段氏得据南诏,相安无事。太宗乙酉雍煕二年,素顺卒,在位十六年,子素英立。
|
|-
|}
===Duan Suyung 《素英 伪谥昭明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suyung 《素英 伪谥昭明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素英,宋太祖乙酉雍煕二年卽位。明年,改元广明,又改元明应、明圣、明统、明治。太宗至道二年,述『传灯录』。真宗己酉大中祥符二年,素英卒,在位二十四年,子素廉立。
|
|-
|}
===Duan Sulong 《素隆 伪谥秉义皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sulong 《素隆 伪谥秉义皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素隆,宋真宗壬戌干兴元年卽位,明年改元明通。仁宗丙寅天圣四年素隆禅位为僧,在位四年。侄素贞真立。
|
|-
|}
===Duan Suzhen 《素真 伪谥圣德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suzhen 《素真 伪谥圣德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素真,宋仁宗丙寅天圣四年卽位,明年改元正治。仁宗辛巳庆历元年素真禅位为僧,在位十五年,孙素兴立。
|
|-
|}
===Duan Suxing 《素兴 伪谥天明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suxing 《素兴 伪谥天明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Lianyi 《廉义 伪谥上德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Lianyi 《廉义 伪谥上德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|廉义,宋神宗乙卯熈宁八年卽位。明年,改元上德。遣使入贡于宋。熈宁十年,又改元广安,作八龙王会。神宗庚申元丰三年,杨义贞杀廉义而自立。计义在位五年,自义贞弑其主廉义而自立,簒位仅四月,鄯阐侯高智升命子清平官高升泰起东方爨僰兵,讨而诛之,立廉义之侄寿辉。
|
|-
|}
===Duan Shouhai 《寿辉 伪谥上明皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
===Duan Zhengming 《正明 思廉之孙 伪谥保定皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
==Da Zhongguo Generations 《大中国》==
===Gao Shentai 《高升泰 伪谥富有圣德表正皇帝》====
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|高升泰,宋哲宗甲戌绍圣元年,受大理国段正明之禅卽位。改国号曰大中国。明年,改元上治。升泰,岳侯高方之裔,大理点苍山莲花峰下芒涌溪人。将生,其父袭岳侯,智升往石云寺在点苍山白雪峰麓进香回,遇一老叟云:「尔家将生贵子,可速归。」智升至家,而升泰适生,心颇异之。及长,有材器,仕为清平官,兼九爽之事,誉望日重。思廉出游,猝遇烈风,吹踣其马。廉将坠,智深跃前扶之。廉德智升,赐以宫人及珠玉。杨允贤(判)〔叛〕,廉命智升讨之,以功加太保,封德侯,旋晋鄯阐侯,世袭。及杨义贞簒逆,智升令升泰起东方兵,诛义贞而立廉义之侄寿辉。辉以智升为布燮,升泰袭鄯阐侯。辉在位灾异迭兴,因禅位于思廉之孙正明。明为君不振,人心归高氏。遂请升泰为君,而正明禅以位焉。哲宗丙子绍圣三年,升泰在位二年,寝疾。遗命曰:「我之立国,以段氏之弱,我死,必以国仍还段氏,愼勿背我。」及卒,其子高泰明遵遗命,还位正明之弟正湻。段氏复兴,号后理国。高氏相之,政令皆出其门,国人称为高国主,段氏拥虚位而已。
|
|-
|}
==Houli Guo Generations 《后理国》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhengchen 《段正湻 大理国正明之弟 伪谥中宗文安皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正湻,宋哲宗丙子绍圣三年复得国,卽位,号后理国。以高泰明为相国,执政柄,高泰运为栅主。明年,改元天授。又改元开明,天政,文安,赦徭役。筑楚雄城,在今楚雄府城西北二里。以封高泰明之侄高明亮。徽宗癸未崇宁二年,遣高泰运奉表入宋,求经籍,得六十九家,药书六十二部。鄯阐李观音得来朝,进金马杖八十节,人民三万三千户。湻赐得八章礼衣,龙头剑,擢为安东将军。蔚按:蒙氏时有安东将军,季李珠所筑安东城,在今大理府赵州城东二里。缅人、波斯、昆仑三国进白象及香物。十月,彗星见西方,大疫。徽宗戊子大观二年,正湻禅位为僧,在位十二年,子和誉立。
|
|-
|和誉又名正严 封云南节度使大理国王,伪谥宪宗宣仁皇帝
|
|-
|和誉,宋徽宗戊子大观二年卽位。明年,改元日新。又改元文治、永嘉、保天、广运。七月中元节,各方贡金银、罗绮、珍宝、犀象万计,牛马遍点苍。徽宗辛卯政和元年,地大震,损十六寺。三十七部判叛〕,高相国泰明讨平之。使四子高明清居鄯阐镇守。政和五年,缅人进金花、犀象。政和六年。遣儒官钟震、黄渐赍敕褒高泰朋相国忠贞,封平国公。是年,遣使入贡于宋。高泰明卒,封国师。泰明生八子,高智昌以罪流死。其下伊、何二人谋为执仇,乘誉入寺进香,图弑逆,事露被收。誉嘉二人之义,赦之,为立义士冢。高泰运立,主国事。六月,三日并出。政和丁酉七年,命子紫琮充进奉使,入贡于宋。诏遣使册封誉为金紫光禄大夫、检校司空、云南节度使、上柱国、大理国王。徽宗己亥宣和元年正月,彗出,慕宁、远、矣、破、马等叛。三月,出师征之,兵败。三十七部蛮复叛。陷鄯阐,高明清死之。郡臣以高升泰侄商量成有德,请立为相,号中国公。徽宗丙午靖康元年五月,金星入月,大火,焚三千九百家。南宋高宗丙辰绍兴六年,王遣使贡象马于宋,广西经畧安抚使奏之,诏护送行在,优礼答之。绍兴十六年三月十四日,大雾,历二十四日方开。高宗丁卯绍兴十七年,王老,因诸子内争外叛、遂禅位为僧,在位三十九年。子正兴立。
|
|-
|}
===Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|正兴,南宋高宗丁卯绍兴十七年卽位。明年,改元永贞,又改元大宝、龙兴、盛明、建德。高量成让相位与侄寿贞,退老楚雄城。人化其德,名城曰德江城。孝宗癸未隆兴元年三月,寿贞卒。寿昌立为中国公。孝宗壬辰乾道八年四月,重雾,十六日方开。正兴禅位为僧,在位二十五年,子智兴立。
|
|-
|}
===Zhixing 《智兴 伪谥宣宗功极皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixig 《智兴 伪谥宣宗功极皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智兴,南宋孝宗壬辰乾道八年卽位,明年,改元利贞。又改元盛德、嘉会、元亨、安定。遣李观音得等至广西横山砦今在广西南宁府江上。求市马。李观音得夺寿昌位,与侄贞明。阿机起兵夺贞明位,还寿昌。贞明遂据鹤庆,号明国公,伪谥义地威天聪明仁帝。高妙音自白崖起兵,据鄯阐。时有妙音之甥成贤、成正二人来谒,意在夺鄯阐。妙音觉之,与之盟于天王庙。二人口含丁香叶,出庙吐之曰:「盟非我也,叶也。」未几,二人起兵,方战,见白马将斩之。白马将,乃庙中二力士也。光宗庚戌绍熙元年,修十六寺。宁宗乙卯庆元元年,修龙首、龙尾二关,三阳城。宁宗庚申庆元六年,智兴卒,在位二十八年,子智廉立。
|
|-
|}
===Zhilian 《智廉 伪谥享天皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhilian 《智廉 伪谥享天皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智廉,南宋宁宗庚申庆元六年卽位。明年,改元凤历。又改元元寿。使人入宋求『大藏经』一千四百六十五部,置五华楼。宁宗乙丑开禧元年,智廉卒,在位五年。弟智祥立。
|
|-
|}
===Zhixiang 《智祥 伪谥神宗皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixiang 《智祥 伪谥神宗皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智祥,南宋宁宗乙丑开禧元年卽位。明年,改元天开。又改元天辅、仁寿。征三十七蛮部,至寻甸平,河水绝流。理宗丁酉嘉(禧)〔熙〕元年,封高隆鄯阐王,以高泰祥为相国,以光日为演习。大府主将也。举贤育才,时和年丰,称治国焉。理宗戊戍嘉(禧)〔熙〕二年,智祥禅位为僧,在位三十三年。子祥兴立。
|
|-
|}
===Xiangxing 《祥兴 伪谥孝义皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|祥兴,南宋理宗戊戌嘉(禧)〔熙〕二年卽位。明年,改元道隆。理宗甲辰湻佑四年,蒙古兵出灵关,伐大理。祥兴遣将高禾迎战,禾败死之。段连佑归宋,宋遣使吊祭,致经书、银缎,为高禾拒蒙古兵战殁也。理宗辛亥湻佑十一年,为蒙古宪宗蒙哥之元年,祥兴卒,在位十三年。子兴智立。
|
|-
|}
===Xingzhi 《兴智 赠天定贤王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|兴智,南宋理宗辛亥湻佑十一年卽位。明年,改元利正。又改元兴正、天定。是年,南宋理宗壬子湻佑十二年,为蒙古宪宗之二年七月丙午,太弟忽必烈等奉宪宗命,伐大理。受制专征,以大将兀良合台总督军务。八月,次临洮,由六盘逾吐番,凡行山谷二千馀里无人之境。先遣王律术、王侯、王鉴来谕大理,道阻而还。九月,次忒刺,分三道进。兀良合台率西道兵,由晏当路,诸王抄合也只烈率东道兵,由白蛮,忽必烈率劲骑,由中道。乙巳,至满陀城,留其辎重。十月,过大渡河。十一月,至白蛮打郭砦。十二月,再遣三使入大理,招兴智,皆被杀。智命相国高泰祥守金沙江,与蒙古将伯颜不花、虎儿敦等相持。忽必烈命众以革囊潜济江,破吐番,渉摩荻,出石门,所过降之,遂进薄大理。泰祥回军,奉兴智拒战,不胜。蒙古兵入上关。智奔鄯阐,泰祥退至统失逻先为姚安府,府裁,今为姚州,属楚雄府。募兵于三十七部未至,而蒙古兵已长(躯)〔驱〕而入,泰祥被执大理,不屈,乃斩于五华楼下。祥临刑叹日:「段运不回,天使其然,为臣殒首,盖其分也。」时白日正午,忽云起雷震,天鼓大鸣,忽必烈曰:「忠臣也。」泰祥夫人段氏,抱孤儿高琼、高长寿等伸诉。忽必烈目儿顾左右曰:「此忠臣后,宜善视之。」许以世其官。高泰祥为大中国升泰九世孙。遂灭段氏而有其地,得五城、八府、蛮部三十有七。乘胜入吐蕃,降其酋。明年,南宋理宗癸丑宝佑元年,为蒙古宪宗之三年,忽必烈班师。大将兀良合台拔鄯阐,获兴智以献,宪宗命赦之,封为摩诃罗嵯,管领八方,仍守其地,世袭总管。计兴智在位二年,宪宗授兀良合台银印,加大元帅,还镇大理。以刘时中为宣抚使,与兴智同安辑焉。南宋理宗庚申景定元年,为蒙古世祖忽必烈之中统元年,兴智率其季弟段信苴福北行,朝于世祖,道卒。计为总管又七年。蒙古遣使来祭吊,文曰:「段氏承八姓正位,归有新统,旣顺天时以向义,犹得国王以栖迟,实国家待远方之仁,由贤王能左右之义。受命以来,朝夕愓励。赖尔维勤,用征不廷,正当共享亨嘉之运,胡意遽罹霜露之灾,呜呼!当朕未集大统,乃为叔季之国。兹旣承景运,合正君臣之称,参录不替于子孙,诏禄宜昭于典册,特遣太常省祭,赠为后理国向义天定贤王段公,尚赖神麻,永保祚土。所赠王爵,后不为例。」明年,南宋理宗辛酉景定二年。为蒙古世祖中统二年,世祖敕授王之弟信苴日则段实。总管守大理。命之曰:「向率我以临尔境众据国人之请,因从城下之盟,款附而忠勤益著。庸示至优之礼,以彰同视之仁。可革帝号,锡以虎符,总理大理、鄯阐、威楚、统矢、会川、建昌、腾越诸郡,抚恤已附之民,招集未降之国,卿其勉之。」
|
|-
|按:段氏后理国,自段正湻复国,起宋哲宗丙子绍圣三年,讫南宋理宗癸丑(实)[宝应元年,传八世,共一百五十七年。
|
|-
|总计段氏大理、后理二国,传二十二世,共三百零十五年。
|
|-
|增订南诏野史下卷
|
|-
|}
==Hu Weixianmen Wing DynastyRevisions《大淸湖南武陵胡 蔚羡门订正》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hu Weixianmen Wing Dynasty Revisions《大淸湖南武陵胡 蔚羡门订正》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段氏总管除天定贤王段兴智受封总管七年外起段信苴日卽段实讫段世,共袭十二世。
|
|-
|段实一名信苴日。
|
|-
|段实,于南宋理宗景定二年,蒙古世祖之中统二年,入朝于世祖,袭总管,赐虎符,领大理、威楚、鄯阐、统矢、会川、建昌、腾越等城,自万户以下皆受节制。南宋理宗癸亥景定四年,为元世祖中统四年,蒙古设大理都元帅府,命昔撒昔总制鬼国、大理两路。理宗甲子景定五年,为世祖至元元年,妖僧舍利威结威楚、统矢、鄯阐及三十七蛮部叛,实讨之,大破于威楚、统矢、安宁等处,又破释多罗十馀万众于洱河海口。南宋度宗丁卯咸湻三年,蒙古世祖至元四年,以皇第五子忽哥赤为云南王,镇大理。至元五年,忽哥赤受命与安南国王讨占城、真腊。南宋度宗咸湻六年,世祖至元七年,置大理路军民总管府。南宋度宗辛未咸湻七年,为蒙古世祖至元八年冬十一月,世祖改国号曰元。云南王忽哥赤为元帅寳和丁所杀。元伐金齿、缥甸,降之。分大理三十七蛮部为南北中三路,遣阿鲁忒儿宣抚大理,招谕诸蛮。南宋度宗辛未咸湻十年,元世祖至元十一年,封宗室脱忽鲁为云南王,命云南行省平章政事赛典赤建云南各衙门。妖僧舍利威复叛,实遣石买等诡为商贾,执贽往见,挺矛鏦杀之,枭首于市。元世祖赐实白金及金织纹衣。南宋恭宗丙子德佑二年,元世祖至元十三年,授实为大理等处宣抚使。缅甸叛犯永昌,元命纳速剌丁赛典赤之长子,后封延安王。伐之,破砦三百,因天暑,还师。复命诸王相吾答儿、右丞太卜、参政也罕的斤伐缅,招讨使法烈先驱造舟于阿若、阿禾两江,进拔江头、太公二城,金齿、乌蒙皆降。南宋帝昺庚辰祥兴二年春二月,为元世祖忽必烈之至元十七年,宋亡,元入主中国。以忽哥赤之子也先帖木儿为云南王。命忙兀鲁徵八百媳妇。缅败忽都帖木儿兵,诏思、播土官田、杨二处兵助讨之。命征缅官番听云南王节制。至元辛巳十八年实率子阿庆入觐,元祖嘉其忠,晋大理、威楚、金齿等处宣慰使都元帅。升辞,复拜为云南诸路行中书省参知政事,留阿庆宿卫东宫。至元壬午十九年,实受敕迎征缅师,于金齿病卒。诏以其弟忠为大理宣慰使兼军民万户府,赠实为武定公。实任职二十二年。
|
|-
|}
===Duan Zhong《段忠 实之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhong《段忠 实之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段忠,元世祖癸未至元二十年袭。是年,忠随元元帅阔木征芒部、两林蛮及会川等处,破贼立功,元授忠为善阐酋,赐虎符。元置邦牙宣慰司于蒲甘城,命云南王也先帖木儿率招讨使怯烈总兵三千往镇之。忠奉云南王命伐武定。冬十二月忠卒,以实之子阿庆为大理金齿等处宣慰司都元帅、佩金虎符,封宣武将军,晋镇国上将军,尚公主。遣归,复授云南行省参政。忠任职一年。
|
|-
|段庆卽阿庆。实之子
|
|
|-
|段庆,元世祖甲申至元二十一年袭。至元二十五年以云南王也先帖木儿移镇大理,进封营王。至元二十七年冬十月,封皇孙甘剌麻为梁王,镇云南。至元二十九年改封梁王甘剌麻为晋王,镇北边。至元三十年,封甘剌麻之子松山镇云南。至元三十一年世祖崩,孙铁木耳立,是为成宗。成宗丙申元贞二年,置彻里路,卽车里军民宣慰使司。令与八百犬牙相制。秋八百叛命,也先不花征之。成宗己亥大德三年,云南水西土官宋隆济叛,贵州知州张怀德战死。云南行省麻九儿讨之,追杀贼首撒月,斩首五百级。庆奉敕征交趾,平之。入朝,带僧左黎同往,适成宗手疽甚,黎以法水洗之,立愈。帝欲试其术,乃掘地窖,令八人潜其中击鼓,佯云有怪,召黎治之,黎行法,顷之不闻鼓声,启窖视之,则八人已死。帝敬其法,封为国师。大德四年,缅人僧哥伦作乱。缅酋执其兄阿散哥也,寻释去,阿散乃率其党杀酋。酋次子奔诉京师,诏遣薛超兀儿率行省兵讨之。大德五年,金齿、八百叛,不输粮,杀官吏,元命右丞刘深、哈剌带、郑佑等征之。刘深协求水西土妇节金三千两、马三千匹,土官宋隆济遂叛,围深等于穷谷中,梁王阔率兵救,解之。冬,云南地大震,御史陈天祥谏伐西南夷,不报。大德七年,罢徵八百,免右丞刘深官,收符印。左丞相哈剌哈孙议深徼名首衅,丧师辱国,劝帝诛深,遂杀之。深卽往以兵逼南宋帝昺于谢女峡者。大德八年,立平云南碑于点苍山。顺元宣抚宋阿重获其叛叔宋隆济,朝命升职,赐衣一袭。滇池有蛟,化少年淫妇女,有神僧赵伽罗者,命黑胡神擒之,至噀水见形,斩之。神卽土主也。成宗丙午大德十年,罗雄土官阿那龙少叛,据越州。今在曲靖府南六十里,本唐之悦州,其川名鲁望。命右丞汪惟能讨之,追至曲靖,斩那龙少。是年庆卒,弟正袭。庆任职四十三年。
|
|-
|}
===Duan Zheng 《段正 庆之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zheng 《段正 庆之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正,元成宗丁未大德十一十年袭。正招蒙化山中生爨入籍。元授正为参政,仍大理军民总管。晋宁建盘龙寺。有神僧觉照者,段氏族人,号莲峰,游东山见龙潭绝幽胜,乃咒龙令徙。龙去,水涸,建寺其地。蔚按:莲峰僧于顺帝之至正末入定塔中。武宗海山戊申至大元年,沾益、乌蒙地大震,三日并出。至大二年三月,梁王松山风疾,诏封皇第七子西平王奥鲁赤之孙老的代镇云南。仁宗爱育黎拔力八达壬子皇庆元年,诏罢徵八百。皇庆癸丑二年冬十月,学士李孟奏准开科,三年一试。时九成殿生芝,天下共取士三百名,每榜云南取五名,内蒙古二名,塞目二名,汉人一名。以八月二十日初场,二十三日次场,二十六日三场。仁宗乙卯延佑二年十一月,封武宗子和世珠为周王,出镇云南。仁宗丙辰延佑三年,正卒,庆子隆袭。正任职十年。
|
|-
|}
===Duan Long 《段隆 庆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Long 《段隆 庆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段隆,元仁宗丁巳延佑四年袭,元授隆为大理军民总管。延佑己未六年,云南行省奏:「夷俗:凡土官无子,卽以妻代管。请听之。」诏曰可。延佑庚申七年,封甘剌麻孙王禅为云南王。英宗硕德八喇癸亥至治三年,进封王禅为梁王,封其子帖木儿不花为云南王。是年八月,诸王按梯不花、索孛罗、月鲁铁木儿等及御史大夫铁失弑帝于南坡行幄。九月泰定帝也孙铁木儿卽位。十二月流诸王月鲁铁木儿于云南。泰定四年,洱海有水怪,牛猪形短项金睛,兴水为患。大理一道人向隆取黄金百镒,隆与之,乃以金为索,沉于河,怪卽日徙于浪穹宁河。按:『六诏灵源记』云:宁河无底。明宣德间,有渔人李应捕鱼,网得金索,旋得旋断。一渔者诫之曰:可止矣。应贪甚,尽曵之,索将穷,惊其怪,风浪陡作,应并舟倶溺,至今为患。文宗图帖睦尔庚午至顺元年,以豫王阿忒思纳失里出镇云南。诸王秃坚据云南叛,杀廉访使,自称云南王。元诏枢密帖木儿讨之,发朵甘思等处兵分道进。至四川建昌、罗罗斯,权寻甸府官曲术集义兵讨秃坚,败贼伯忽于马龙,追至金马山,擒之。是年,隆以老退闲,子俊袭。隆任职十四年。
|
|-
|}
===Duan Jun 《段俊 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Jun 《段俊 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段俊,元文宗辛未至顺
二年袭,元授俊为云南行省平章。乌撒部奏:「云南驿输征甚苦,愿属四川。」奏下参政贾敦煕议之。是年俊卒,族弟义袭。俊任职一年。
|
|-
|}
===Duan Yi 《段义 俊之族弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Yi 《段义 俊之族弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段义,元文宗壬申至顺三年袭,朝命止授为承务郞、蒙化州知州。是年阿容禾叛于中庆路,义助兵讨平之,以功升参政。九月,乌蒙土官禄馀寇顺元,云南行省遣都事那海奉诏往谕,授馀为参政。冬十一月,云南行省奏:「国马每月上寅日给盐,饮之无病。因伯忽反,盐不给,马多死。」诏四川以盐给之。是年义卒,隆子光袭。义任职一年。
|
|-
|}
===Duan Guang 《段光 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Guang 《段光 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段光,元顺帝妥权帖睦尔癸酉元统元年袭,朝命止授为承务郞、蒙化州知州。番兵作乱,孟州判官李生等守白崖,値高蓬新败番兵,乗胜长驱破河尾关。光率兵大败之,斩馘无算,河水尽赤,为之不流,得战马甲仗数千。光赋凯旋诗云:「雨锁金门百里城,神州花木管弦声。齐天苍岳参云峻,界地楡河射月明。梵宇三千朝呗朗,招提八百夜香淸。恒沙善果心无异,何患愚夷治不平。」元统二年,光以先与梁王把匝剌瓦尔密孛罗因分域构隙,至是遣张希矫、杨生、张连等发兵攻梁王,不胜,士卒多死,希矫等遁归。顺帝至元元年,梁王侵大理,光自督兵与战于昆弥山卽今大理府赵州南之定西岭,梁王大败。凯还,侍翰杨天甫作『长寿仙曲』上光云:「蒙氏钟王气,驾驭万乗唐。南龙光对北金锁,东洱水朝西点苍,四面固金汤。江绿春杨柳,岸淸古雪霜。屏障龙吟梅破王,竹林鹤立菊舒黄,四季景如妆。此生诚庆幸,有眼睹明王。」光大喜,设宴谢之。顺帝辛巳至正元年,玉案山生水小赤犬,群走如飞。段雄正曰:「此天狗星所化,大兵压境之兆。」经二年方绝。又下铁雨山石,民屋倶穿,人値之多击死。梁王刺杀段氏臣高蓬。先是,光令蓬督兵罗那关,梁王使人暗招之,蓬不从,答之诗云:「寄语下番梁王翁,檄书何苦招高蓬,身为五岳嵩山主,智过六丁缩地公,铁甲铁盔持铁槊,花鞍花索驭花骢,但挥眼前黄石阵,孤云击破几千重。」梁王忌之,乃重贿蓬庖人,刺杀之。顺帝甲申至正四年,光卒,弟功袭。光任职十二年。
|
|-
|}
===Duan Gong 《段功 光之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Gong 《段功 光之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段功,元顺帝乙酉至正五年袭,朝命止授为承务郞、蒙化州知州。至正六年,木邦夷思可叛。元命河南参政贾敦熈督师会云南路兵讨之,以功为前锋,屡战克捷。叙功升功为大理总管,寻升参政。至正癸巳十三年,红巾贼流入建昌,旁掠云南边地。阿次失里讨平之。至正十五年三月,元窜太师脱脱于云南。中书右丞哈麻、御史袁赛因不花等陷之也。十二月,左丞相哈麻矫诏杀脱脱于阿轻乞之地,时年四十二岁,天下寃之,两日相荡。是年,梁王宫中有怪。左右启王曰:「盘龙寺僧莲峰,能驱邪。」王礼请至,行法,怪息。王喜,留宫中供养,至夜密问之曰:「今中原纷乱,后事如何?」僧曰:「二十年后祚尽矣。」至期明师果南下。至正十六年,黑井有毒龙,兴水溢井,损民居。莲峰建寺,书铁符沉井中,害息。又宁州有虎咥人,莲峰洒净水驱虎远去,明日虎果去。七月,元以四川廉访使蒲机云为云南诸路廉访使。至正癸卯二十三年三月,红巾贼明玉珍率其党李芝麻同弟明二等将兵三万攻云南。入金马山,梁王把匝剌瓦尔密奔楚雄。四月,梁王发中庆,至石碑村,红巾入城,梁王闻报,感而自咏云:「野无靑草有黄尘,道侧仍多战死人。触目伤心无限事,鸡山还似旧时春。」随命陜西参政车力帖木儿拒之,擒明二。时四方乘机窃发,群盗满山,功乃谋于外外杨智,字渊海者,同稽于卜,卜告吉。又得子宗、子秀兵至,功遂从梁王进兵,吕合败红巾于关滩江。红巾收合馀衂再战,杀段氏之骁将铁万户,又有江心庄人杨胜力战死。梁王为文祭之曰:「生于江心,为我门户,我旧不识,用备其数,能卫社稷,春秋与之,惟忠惟烈,尔则处之,噫! 义重于生,生必有死,丈夫之事,识者有几。愿气作山河,魂归苍洱,英杰复生,以保我之昆裔。」祭毕而哭,一军感泣。是夜,红巾屯古田寺,功令人焚寺,红巾乱,以铁骑捣之,死者大半,追至回蹬关,又大破之。副将谢得攻安宁,功力战杀二千人,谢得奔中庆。于夜功谍者拾得一书,乃明玉珍母寄珍书云:「自尔去后,老母平安,征云南务要得之。兵粮不足,随后发来,不可轻回。」功阅书,令杨智易其辞曰:「自尔去后,老母不安,臣下乱法。又闻中国人马入界,非止一处。尔须急回,迟则难保。大夏天统元年,太后平安书。」遂募亡命者赍书往。有打金箔人陈惠愿行,惟虑老母在。功许养其母,惠遂往。玉珍得书,挥之去令回报,迨夜,玉珍旋军。功追摄至七星关,大破其众。梁王回中庆,奏升功为云南行省平章,以主阿妻之。一日主与宴酣,歌『金指环』云:「将星挺生扶寳阙,寳阙金枝接玉叶。灵辉彻南北东西,皓皓中天光映月。玉文金印大如斗,犹唐贵主结配偶。父王永寿同碧鸡,豪杰长作擎天手。」功久居梁王府,嫡妻高夫人在大理作词寄功云:「风卷残云,九霄冉冉逐。龙池无偶,水云一片绿。寂寞倚帏屏,春雨纷纷促。蜀锦半间,鸳鸯独自宿,珊瑚枕冷,泪滴针穿目,好难禁。将军一去无度,身与影立,影与身独,盼将军只恐乐极生悲寃鬼哭。」至正二十四年春,功还大理,至洱海金鸡庙,夫人遣人适来报生子,功喜,作歌曰:「去时野火通山赤,凯歌回奏梁王怿。自冬抵此又阳春,时物变迁今又昔。归来草色绿无数,桃花正秾柳苞絮。杜鹃啼处日如年,声声只促人归去。」至正二十五年,功思新婚,欲往梁王所。员外杨智于壁间题诗留功,张希矫亦上书留行。功曰:「寳剑岂埋荒土物耶!」矫苦留不已,功怒流矫于顺州。顺州,前明属鹤庆府,今裁在永北厅城西一百二十里。唐时地名牛睒。遂与夫人别,倍道至中庆。梁王疑之,私议曰:「平章此来,得无有吞金马咽碧鸡之心。」其下有姤功者复谗构之。王与阿谋欲以孔雀胆毒功。私泄之,愿与西归。(今)〔令〕功周防,功不信。是年滇大旱,人言定远有禅僧连精,通瑜伽秘密敎,能降龙役鬼。启梁王,王遣人迎至,僧设坛祈雨,咒毕,钵中出一小蛇,遂大雨。王大喜,酬以金帛,辞,役鬼荷担,行空而去。顺帝丙午至正二十六年春,中原盗蠭起,临安廉访使支渭兴三恳休,梁王不允,遣使金闾慰,赐羔羊。渭兴自咏曰:「年高才薄忝淸流,欲挂朝冠不自由。且喜壮怀无诉谍,从敎行道有鸣驺。故园花木无由见,何日干戈定得休。九十春光还欲暮,放怀聊与醉金瓯。」重午节,梁王宫门外观射柳,随侍文武赐宴,支渭兴诗贺曰:「平地如席草如茵,少年将军酒半醺。朱鬣马穿人影过,绿杨枝逐箭锋分。旌旗色映宫前瓦,鼓角声飘海上云。何日鲸鲵倶授首,普天偃武共修文。」七月,梁王偕功东寺讲经,至通济桥,功马逸,王乘机令番将掖杀之。阿闻之恸哭曰:「昨灯下吾犹言,云南施宗施秀二人以胭花殡命,奈何不信。今果然。」命侍女锦被包之,以王礼敛送归大理。诗挽之云:「吾家住在雁门深,一片间云到滇海。心悬明月照靑天,靑天不语今三岁。黄嵩历乱苍山秋,误我一生踏里彩。华言锦被也。吐噜吐噜段阿奴,施宗施秀同奴歹。云片波潾不见人,押不芦花华言起死灵草也。颜色改。肉屏华言骆驼也。独坐细思量,西山铁立华言松林也。风潇洒。」功丧旣行,阿遂不食死,以殉焉。其家臣员外杨智渊海闻而亦死之。智临死诗曰:「半战功名百战身,不堪今日总红尘。死生自古皆由命,祸福于今岂怨人。蝴蝶梦残滇海月,杜鹃啼破点苍春。哀怜永诀云南土,絮酒还敎洒泪频。」明洪武间都督冯诚经功墓,亦歩原韵题诗,吊之曰:「田横五百剑孤身,转眼关山半委尘。北阙玉楼召客记,南滇粉壁说诗人。苍山夜黑云遮月,金马天寒鸟怨春。共惜平章迷绣幕,至今愁听水声频。」功死,长子宝自称平章,立于大理。功任蜀二十二年。
|
|-
|}
===Duan Bao《段宝 功之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Bao《段宝 功之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段宝,于元顺帝丙午至正二十六年八月,因父功为梁王所害,遂自称平章,立于大理。是年,梁王开科取士,以支渭兴主试事。梁王复听谗,诛锄段族。梁段旣结仇,数数构兵。鹤庆知事杨升调和二家,自金鸡庙分界,南属梁王,北属段氏,力劝息兵,百姓稍宁。至正丁未二十七年四月,梁王生日,群臣称贺。王宴于昆明池上,省宪官献诗曰:「贤君添算宴嘉宾,幄殿先施巨海滨。万里晴天开绵绣,一川芳草踏麒麟。笙歌暖送金杯酒,铠仗寛围玉佩人。醉饱百官咸稽首,愿王高寿过千春。」中庆路土主庙圮,梁王重修,立牌纪事。先是,至正十二年庙为耆民杨光所修。至二十三年红巾贼入滇,陷中庆,毁民居,庙亦被焚。梁王欲并段氏,遣人剌宝,弗得。又令平章矢剌七攻大理,皆不克。乃遣使通好,奏授宝为云南右丞,以和之。红巾复入滇,梁王命叔铁木的罕赍敕借兵于宝,宝答书曰:「杀虎母还喂虎子,分狙栗自诈狙,公假途灭虢,献璧吞虞,金印玉书,设钓鱼之香饵,绣阁艳女,备揜雉之网罗。况平章已死,只遗一奴一獒,奴可配阿妃,獒可配华黎氏。二事许诺,当借大兵。不然,金马山换作点苍山,昆明海改作西洱海,兵来矣。」书后又附一诗云:「烽火狼烟信不符,骊山一举任枝梧。平章枉挂红罗帐,员外空题粉壁图。凤去岐山祥兆隐,麟戕大野瑞光无。自从界限鸿沟后,成败兴亡不属吾。」梁王读而深恨之。是年,明太祖取燕京,元顺帝北遁,元亡。明太祖戊申洪武元年,梁王复通好于宝,辞甚卑逊,宝许之和。时有蛮舍兴者,自元江攻入鄯阐,王惧欲出奔,宝以唇齿之故率兵救之,击走舍兴。王德宝,升为武定公。敕曰:「段宝归附而来,忠勤懋著,父子秉忠,征讨克捷,乃于戎马倥偬之中,干戈纷扰之际,不第远朝且兼平乱。宜示至优之数,以彰匡济之勋,兹特升宝为武定公,仍总管大理军民府。尔其不负初心,永保世爵,以光大尔赤城于无穷。宣光元年敕。」云云。宣光乃故元顺帝太子立于应昌年号也。太祖洪武辛亥四年,宝降于太祖,上奏云:「臣闻有天下者为天下之主,有列土者为列土之君。卑臣宝虽隔万里之遥,每切中原之向。大理有二帝三皇之后,一方九姓之传,汉晋六朝以来,大蒙国受封于前唐,残唐五季而终,二理国继守于两宋,臣祖思平等恪共藩复,贡礼屡修于中土,华风远畅于边隅。迨至故元,不尚仁义,专事暴残。顺帝已遁北方,梁王犹祸鄯阐。迩闻明主奉天承运,御极南京,中原太平,边徼宁乂。意者中国有圣人,履尭舜之正统,陋汉唐之浅图,天时人事然也。或命臣依汉唐故例,岁贡天朝,或仿元代职名,俾守旧土。庶深谷回阳,幽扄照日,八方浴德,六合同春,垂怜边境,救恤一方。欲修进贡,恐触明威,合待事体之定,专候圣旨之颁,谨此。」专差段贞、王伯鹘驰奏以闻。太祖诏谕答之。洪武五年,宝女兄名羌娜,小名僧奴,又名宝姑者,适建昌土官阿黎。先是,羌娜绣一旗,至是将嫁,以旗付宝嘱曰:「母常语我云尔父为梁王所害,必当报仇,惟望尔辈长大。我闻母言,故绣此旗已五年矣!今我嫁至夫家,收拾建昌、东川军马,飞报若到,女急来应,愼勿违焉。」临行,又以二诗别宝云:「珊瑚钩起出深闺,满目潸然泪湿衣。氷鉴银台前长大,金枝玉叶下芳菲。鸟飞兔走频来往,桂秀梅香不暂移。惆怅同胞未忍别,应知恨重点苍低。」「何彼秾兮花正红,香车独去洱河东。鸿飞雪岫难经目,风刺霜林易割胸。云白天高连水远,月新春叠与秋重。一作闺里绣旗寃父魄,天边提剑属儿曹。泪珠恰似通宵雨,千里关山几处逢。一作须知恨重苍山小,回首寒云千万重。」洪武辛酉十四年四月,国中巫女歌曰:「莫道君为山海主,山海笑谐谐。园中花谢千万朶,别有明主来。」数日,宝卒,子明袭。宝任职十四年。
|
|-
|}
===Duan Ming《段明 宝之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Ming《段明 宝之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段明,明太祖洪武辛酉十四年四月袭,梁王授明为宣慰使。九月,明太祖命颖川侯溥友德,列侯曹正、王弼、金朝兴,都督郭英、张铨等,率师三十万征云南。帝出饯于龙江。友德至湖广,分遣都督胡海洋、陈桓等领兵五万,由四川永宁趋乌撒。友德等率大军由辰沅趋贵州。进攻普定,擒土酋安瓒,诸苗蛮犵狫闻风迎降。十二月,溥友德等兵至普安,攻下之,进至曲靖。先是,梁王把匝剌瓦尔密遣其司徒平章达里麻将精兵十馀万屯曲靖,以拒明师。沐英曰:「彼谓我师疲于深入,未有虞心,乃可破也。」友德然之,遂倍道进师。将至白石江,忽大雾四塞,冲雾及江而上。顷之雾雾,则两军相望,达里麻见之大惊,以为神军飞至,拥军阵于南岸。沐英分遣一军,沂流潜渡,出其阵后,吹铜角,树旗帜,为疑兵山谷间。达里麻急撤阵后,军以御之,上军阵乱。友德等趣师济江,一涌而渡,旣渡,整列进战。敌众披靡,生擒达里麻,横尸十馀里,俘其众二万人,友德悉慰遣之。友德进击乌撒,分遣沐英等趣云南。梁王闻达里麻破,弃城走晋宁州,忽忽纳岩,寻入滇池岛中,先缢其妃,自饮药不死,投水死之。父老收塟云南城西三十里浄耳山,土人立庙妙音寺侧。后至嘉靖间,拆庙材修社学,乃因旧址为小寺祀之。云南右丞观音保以城降。英等入城,秋毫无犯。收梁王金印并符信图籍,安抚其民。友德亦自曲靖循格孤山而北,以应永宁之兵。时元右丞实卜闻胡海洋等进自永宁,乃聚兵赤水河,以拒之。海洋等造木筏,夜半济河,而友德亦至,实卜遁去。友德令将士于乌撒筑城,版锸方具。蛮众复合,斩首三千馀级,馀众溃散。遂城乌撒,得七星关,以通毕节。又克可渡河,于是东川、乌蒙、芒部诸蛮震惧,望风降附。先是,洪武壬子五年正月,帝遣翰林待制王禕、行参政吴云持诏谕云南梁王,令奉版图来归。梁王初不从,后有降意。至洪武六年十二月,会元太子爱猷识里达刺立于汉北,使侍郞脱脱征饷于云南,脱脱觇知梁王有二心,因以危言逼王,杀使臣以绝其念,王遂杀禕,父老收尸塟地藏寺北。吴云奉使时,会梁王遣铁知院等二十人使沙漠,为边将所获,帝乃释二十人,令与云倶行。至沙塘口,二十人谋曰:「吾等奉使不达,被执而还,罪必死。」乃说云令胡服编发,诈为元使。又逼令改制书,共给梁王。云不从,以死自誓,亦被害。梁王遣人收云骨,塟给孤独寺,及事闻,帝震怒,故有是役。按:王禕字子充,浙江金华府义乌县人。建文时赐谥文节,永乐登极,凡建文设施尽革,遂削禕谥。后至正统中,义乌县丞刘杰奏请,加奉使云南死节臣恤典,禕赐谥文忠。吴云字友云,江苏常州府宜兴县人。至弘治中,赠谥忠节,并祀云南,敕赐为二忠祠。是年冬十二月,明卒,叔世袭。明任职一年。
|
|-
|段世 宝之弟,明之叔
|
|-
| 段(氏)〔世〕,明太祖壬戌洪武十五年袭。二月,世闻鄯阐破,梁王已死,又以沐英等兵略寻甸、临安、澄江、元江、楚雄、洱海,次第皆下,进逼大理,乃遣使致书,请依唐宋故事,奉正朔为外臣。友德不听,答书谕令速降。凡三致书,世怒,遂遣都使张元亨、州判李洪赴军前下战书。畧云:「鄯阐危甚登天,大理险倍投海。英如汉武,昔战仅置益州;雄若胡元,设官止于中庆。取之易而守之难,莫若依吾请乞册封,定为进贡,始为良策。吾实武人,不通经史,前代得失则餍闻也。恭惟麾下振耀皇威,功不亚于孔明,才克比于方叔。涤山川之旧染,历代所未有也。况吾与尔旣无杀父之仇,又无财债之怨,无故交战,真乃不祥。尔屯威楚,彼处之民有何罪焉?若耗人之食,是绝其命;取人之财,是刳其心;摅人妻女,是乱人伦,则吾之应,不得已也。爰念尔等皆中国之人,其中岂无一二达士。得此何益?不得何损?西南之地,号为不毛,易动难安。今春气渐暄,烟瘴渐起,不须杀尔,四五月间,雨霖河泛,尔粮尽气敝,十散九死。形如鬼魅,色如黑漆,欲活不能,汝之进退狼狈矣。莫若乘此,天晴地乾,早寻活路。宁作中原鬼,莫作边地魂,尔宜图之。后理国段明顿首。」书后继一诗云:「长驱虎旅势威宣,深入不毛取暴残。汉武故营旗影灭,唐宗遗垒角声寒。方今天下平犹易,自古云南守独难。拟欲华夷归一统,经纶度量必须寛。」友德、英等览书大怒,拘其使。左副将军蓝玉等率师径进,兵至品甸,世恃田庵和尚有术,列兵五万扼下关。沐英自将攻之,不克。乃命王弼,率兵出洱水之东,趋上关,英以兵缀下关,为犄角势。别遣胡海洋将一军夜度,从石门间绕道出点苍山后,縁崖而上张旗帜。迟明,英先驱,渡河斩关而入,海洋之师亦从山而下,腹背夹攻。世众惊溃,拔其城,世就擒,并执明之二子苴仁、苴义,时二月二十三日也。于是沐英等分兵取鹤庆、丽江,破石门关,荡金齿,所有摩、和泥、车里、品缅等部相率归附。又略建昌,故元平章月普帖木儿降。闰二月,赐云南各土官冠带及诰敕,使任本州岛知州等官。四月,乌撒、东川、芒部诸蛮复叛,溥友德、沐英会兵进讨,斩首三万馀级,诸蛮来降,云南悉平。以乌撒、乌蒙、芒部地近四川,分隶之。九月,土官杨苴等叛,紏众至二十万,攻云南城。都督谢熊、指挥冯诚婴城固守。沐英自乌撒移兵讨之,斩首六万馀级,擒四千馀人,诸部悉定。洪武癸亥十六年二月,故元右丞普颜笃同土酋高大一作天惠叛,据佛光砦。蔚按:佛光砦卽佛光山,山半有洞,可容万人。又名一女关。昔诸葛武侯曾擒孟获于此。在大理府浪穹县东二十里。也先不花叛,据邓川州。溥友德率郭英平之。又定蒙化州,过金沙江,攻北胜府,今永北厅。擒故元平章隔生。于是丽江府、拒津等州皆平,前后斩首一万三千级,蛮民降者四十万户。帝遣耿炳文谕溥友德、蓝玉等班师,沐英留镇云南,别命列侯王志、仇成、张龙分赴寻甸各府,缮城池,立屯堡,安辑人民。是年,械送世并明之二子苴仁、苴义赴京。世临行,以诗别故人杨朝彦云:「雄兵一日破重关,父子流离瞬息间。别后欲知相忆处,锦江流水彩潺潺。」洪武甲子十七年四月,溥友德等班师至京,论平云南功,进封溥友德为颖国公,胡海洋东川侯,陈桓普定侯,张翼鹤庆侯,蓝玉、仇成、王弼、张龙等并赐铁券,子孙世袭。吴复、金朝兴先卒,倶授世袭侯爵,铁券加禄并同。馀升职赐金帛有差。以世、苴仁、苴义见帝,帝诛其头目,谕苴仁、苴义及世曰:「尔祖宝,昔年曾有降表,朕不忍废。」乃授苴仁官雁门卫镇抚,赐名归仁,苴义官武昌卫镇抚,赐名归义。世任职一年,段氏世土,至此而绝。帝又封其族段保为云龙州土知州。
|
|-
|按:段氏袭总管十二世,起南宋理宗辛酉景定二年,为蒙古世祖中统二年,讫明太祖壬戌洪武十五年,共一百二十二年。
|
|-
|}
==Notable Officials from Nanzhao through the Generations《南诏历代名宦》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Notable Officials from Nanzhao through the Generations《南诏历代名宦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|张元,汉元帝时守。 张翕,东汉明帝时守。 郑纯,同时。 王追,东汉顺帝时守。 王伉,后汉时永昌郡丞。 吕凯,同时永昌郡功曹。 前有文齐、吴霸、陈立,后有张亮、刘宠、犍为费诗,巴东马忠皆著勋绩。 李毅,晋惠帝光煕元年为宁州刺史,政治明达,五苓夷反时病卒,其女秀有父才,领州事。至怀帝时赠少府谥威侯。 王逊东,晋明帝大宁元年为晋宁守,华夷畏服。夷叛,死之。州人以中子坚领州事,官至平西安南将军。
|
|-
|汉盛览,字长通,叶楡今大理府太和县。人,受学司马相如,著赋心四卷。同时叶楡张叔,天资奇颖,书过目成诵。俗不知学,叔每病之。闻司马相如至若水,蔚按:『水经注』:若水南经云南郡之遂久县,县废,在今大理府宾川州城东北一百里,古称白门,置于汉时,今为金沙江巡检司地。遂负笈往从之,受经归敎乡人。 隗叔通,叶楡人,性至孝,母好饮江水,通日入江取水,维艰。滩水忽出平石,涉取甚便,人谓之孝子石。 东汉许叔,一作叔重。昆明人,明帝时入中国,受五经归,为本郡敎授。 尹珍,字道真,平彝人,桓帝时入中国,负笈从许愼受经学,还敎乡人。 唐尹仇寛,叶楡人,德宗贞元间为蒙氏淸平官,入朝陈地图,贡方物,唐拜为左散骑常侍,封高溪郡侯。 张志成,昆明人,文宗太和间入蜀,学王羲之草书,归敎国人。 元王升,昆明人,曲靖宣慰副使学政名时。 段文瑞,澄江人,读书尽孝,诏旌其门,仕至临安总管。 杨惠,楚雄人,孝母感神,诏旌其门。 张景云,昆明人,仕至临安经历。 陈宝,平彝人,仕至尚书。尹贡,南宁人,仕至尚书。以上三人皆德政名时。 元朝进士王楫、李近仁、段天祥、李天佑、李郁五人,皆三甲同进士出身。
|
|-
|}
==Ethnic Groups of Nanzhao==
===Baimin《白民》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baimin《白民》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有阿白、白儿子、民家等名。白国之后,卽滇中之土著。妇女出门,携伞障面,谓之避嫌。宴客,切肉拌蒜,名曰食生。馀同汉人。女镶边衣,以银花银吊为饰。
|There is the '''Ā''' '''Bái (阿白)''', '''Bái Erzǐ''' ('''白儿子'''), '''Mínjiā''' ('''民家''') and other names. The descendants of the '''Bái Kingdom''' are precisely the indigenous peoples of Central Yunnan. [When] women go out, they bring an umbrella to block their faces, this is called '''Bìxián''' ('''避嫌; avoiding suspicion'''). [When] hosting a banquet, they cut meat and garlic, this is called '''Shíshēng''' ('''食生; eating raw'''). The rest are similar to Han people. Women wear embroidered clothes, they use silver flowers and silver hangings as decoration.
|-
|}
===Pu Ren《蒲人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽古百濮,周书所谓微卢彭濮也,后讹为蒲。质黑,鸟音。男子淸布褁头,衣套头衣,膝系黑滕;妇人挽发为髻,脑后戴靑绿磁珠,花布围腰,短裙,系海十数围。带刀弩长牌,不畏深渊,或浮以渡。婚娶长幼跳蹈,吹芦笙为孔雀舞,婿家立标竿,上悬彩绣荷包,中贮五谷银钱等者,两家男妇大小争缘取之,以得者为胜。又有野蒲、普蛮、朴子蛮等类,性尤凶悍,男子以布二幅结于左胁,另用布一幅合缝挂身;以红布搭右肩蔽腰以下。今顺宁府多此种。
|Anciently this was the '''Baipu (百濮)''', the '''Book of Zhou (周書)''' mentions the '''Wēi''' '''(微), Lú''' '''(卢),''' '''Péng''' '''(彭)''' and '''Pú''' '''(濮)'''. Later errors [turned it] into '''Pú (蒲)'''. By nature they are black and their language [resembles] birds. Men wrap clean/clear<ref>Likely referring to white cloth.</ref> cloth on their head and dress in tunic garments that are put over the head. They bind their knees with black rattan. Women roll up [their] hair as a topknot. At the back of the head, they wear clear blue-green porcelain beads. Printed cloth encircles the waist; they wear short skirts, connecting abundantly ten [or more] encirclements. They carry knives, bows and long shields. They are unafraid of deep abysses perhap even floating across it. At wedding ceremonies old and young alike jump and stamp, they play the reed pipe for the '''peacock dance'''. At the bridegroom's house they erect a pole, on it a bright embroidered purse is hung. Inside it stores the five crops, silver coins and other things. The two families of men and women, old and young, vie to fetch it. Once obtained, the person is victorious. Once more, there is the '''Wild Pú (野蒲), Pŭ mán (普蛮)''', '''Pú Zǐ mán (朴子蛮)''' and other types. Their nature is outstandingly fierce. The men tie two lengths of cloth at the left flank, [and] another length of cloth is stitched together and hangs off the body. There is red cloth to hang on the right shoulder to cover the body below the waist. Nowadays '''Shùnníng''' '''(顺宁)''' prefecture has many people of this type.<ref>Modern Day Fengqing County in Southwestern Yunnan. 鳳慶縣. Historically close to the Wa peoples and Austroasiatic population.</ref>
|-
|}
===Bo Ren《僰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名百夷,又名摆夷。性耐暑热,居多在棘下。本澜沧江外夷人。有水旱二种:水僰夷近水好浴,剃后发,蓄前发,盘髻如瓢,故又名瓢头僰夷;旱僰夷山居耕猎,又名汉僰夷。男靑布褁头,簪花;妇女不施胭粉,自然白晳,盘发辫,红绿包头,饰以五彩线须,衣五色衣,桶裙绣边。其俗贱女贵男,头目妻数百人,庶民亦数十,耕织贸易,皆妇人任之。凡婚娶,男女相悦而议聘,一成匹配,不肃而严。如夫妇不睦,听夫付之一物为凭,然后改适。有邪术,能使男子千里不忘,其法不外传也。
|
|-
|}
===Lahu《猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu《猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|爨蛮卢鹿之裔,猓猡其讹音也。以五月为春。信鬼尚巫,巫有大觋皤,拜禡白马之号。卜用雄鸡两髀骨,骨有细窍,刺以竹签,视多寡向背之势以定吉凶。其部长妻曰耐得,勇士曰苴可。每岁六月廿四日,名火把节,燃松炬,照村砦田庐。男椎髻镊须,耳环佩刀;妇披发短衣,桶裙,披羊皮。
|
|-
|}
===Bai Lahu《白猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Bai Lahu《白猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名撒马都,卽西爨白蛮。知读书,能文字,舌音淸便,多冒汉人。见尊长披羊皮,故嫁女授羊皮一帐。短衣革履,胸挂花包。妇人花衣桶裙,靑布蒙头,饰以海贝、锡铃。
|
|-
|}
===Hei Lahu《黑猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽东爨乌蛮。其祝以铃,其占以草。男挽发贯耳,披毡佩刀;妇人贵者衣套头衣,方领如井字,无襟带,自头罩下,长曳地尺许,披黑羊皮,饰以铃索。
|
|-
|}
===Qian Lahu《乾猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以山居得名。每食插筯饭中,仰天跪拜为报本。好勇喜斗,杀人偿以财。服饰同黑猓猡,妇人项挂一羊毛筐,行住纽毛为绵。以织毯。
|
|-
|}
===Hai Lahu《海猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hai Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名坝猓猡,以种水田得名。盖土人以水为海,以平田为坝也。居家俭朴,知读书。服饰如汉人,妇如白猓猡。
|
|-
|}
===Miao Lahu《妙猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Miao Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多土官之裔,有营长、官奴、火头等称。男挽发贯耳;妇人桶裙无裤,穿套头衣,前不揜胫,后长曳地,衣边火焰,弯曲如旗尾。居茅舍,中堂作火炉,父子妇姑,围炉而卧。又有一种,戴鹊帽者,名猓落蛮;白布褁胫者,曰白脚猓猡。
|
|-
|}
===Ge Lahu《葛猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Ge Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名大头猓猡。男以靑布丈许裹发为大头,女戴布花线箍。婚嫁步行,妇避伯,不避翁。亦有顶盔擐甲,乘马佩刀,以劫抢为生者。然居家尊卑有序,会食以跪为敬。
|
|-
|}
===Azhela Lahu《阿者猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《阿者猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆耳环手钏,衣短裤,披羊皮。婚娶,婿亲负女以归。
|Men and women each wear earrings and hand bracelets. Their clothes are short pants with sheepskin drapes. At weedings, the bridegroom's realtives carry the women back.
|-
|}
===Awu Lahu《阿乌猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Awu Lahu《阿乌猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|性狡好獵。多蓄牛羊。每砦設官房一所,婚嫁並集其中。男短衣,女長衣,倶裹頭,貫耳,出入帶刀弩。
|They are cunning in nature and fond of hunting. They raise many cattle and sheep. Every stockaded settlement has an official building for marriages to be held within. Men's clothes are short, women's clothes are long. Both wrap their heads, pierce their ears. When going out, they carry knives and bows.
|-
|}
===Luwu Lahu《鲁屋猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|耕种射猎为生。男短衣木屐,女长裙跣足。
|They make a living by cultivation, shooting and hunting. Men wear short garments and wooden clogs, women wear long skirts and tread barefoot.
|-
|}
===Sami Lahu《撒米猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Sami Lahu《撒米猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居山,耕瘠负薪,近水,捕鱼时给。面多黧黑,男挽发如鬏,毛褐被毡,佩短刀。女披靑布单,短裙,长裤。又有鲁兀、老乌、撒完、洒泥、阿蝎、阿系等类,衣饰风俗畧同。
|
|-
|}
===Liaowu Lahu《老牾猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Liaowu Lahu《老牾猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽罗婺,又名罗午、罗武。男披发贯耳,披毡佩刀,穿火草布衣;女辫髪垂肩,饰以海贝砗磲,穿火草布裙。无床帏被褥,以松毛籍地而卧。
|
|-
|}
===Lahu Hei《猓黑 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu Hei《猓黑 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蒲蛮别种。择丛篁深处,结茅而居。蜂虫鼠蛤,无所不食,以荞稗为上品。又有大猓黑、小猓黑,岩居野处,猿猱同类。
|
|-
|}
===Putu《普特》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Putu《普特》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以渔为业,舟不盈丈,而炊爨、牲畜、资生之具,无不咸备。泅水出没,口衔手捉,皆巨鱼也。今云南府省城西碧鸡山下,多有此种。
|
|-
|}
===Diyang Gui《地羊鬼 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Diyang Gui《地羊鬼 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦僰人类也。短发黄睛,奸狡嗜利。与人相仇,能行妖术,以木石易人心肾,或以一帚系衣后,变形为象、马、猪、羊、猫、犬等物。稍畏惧之,卽为所魅,入人腹中,食五脏,或潜至人家,偷窃财物,食婴儿。知者一手捉之,一手痛殴,必复为人,夺其帚縻之,彼必以家赀之半匄脱。或有娶其女者,夫每出,必问归期,卽饵以毒,如期而归,更以药觧,否则毒发而死。交易失信,及私窥其要女者,必毒之。此种元江州为甚。
|
|-
|}
===Wo Ni《窝泥》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Wo Ni《窝泥》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有和泥、(干)〔斡〕泥、哈泥、路弼等名。黑白两种,风俗畧同。男戴麦杆帽,穿火草布衣,耳环,跣足;妇女辫发数绺,海贝、杂珠,盘旋为髻,套衣桶裙。善养猪,其猪小耳短身,长不过三十筋,肉肥腯,名窝泥猪。婚用媒妁,路遇野兽,则返而他求。嫁则以红藤束膝为识。勤生啬用,每积贝一百二十索为一窖,临死嘱其子曰:「积贝若干,汝取某窖,馀留我为来生用。」死则以雌雄鸡各一殉。又有一种名糯比,与此同,其生者名哥泥,亦名瓦黑,好勇尚斗,能咒人使病。
|
|-
|}
===Achang《阿昌》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Achang《阿昌》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名峨昌。男短衣披布单,女长衣无裤,腰缠红藤。占用竹三十三枝,畧如筮仪。嗜酒,觅禽兽虫豸生啖之。旧俗兄死弟妻嫂,后有罗扳砦百夫长早正死,其妻方艾自誓不失节,饿而死,其风遂革。又有小阿昌,其俗畧同。
|
|-
|}
===Acheng《阿成》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Acheng《阿成》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男短衣,女桶裙,以树皮代瓦。婚用牛羊,至女家以水泼女足为定。
|
|-
|}
===Biju《比苴》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Biju《比苴》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|僰夷别种。男耳环革屐,女白帨束发,缠叠如仰螺。构楼而居近水,极寒犹浴。丧尚绯,夫死,妻不再嫁,名曰鬼妻。又有白布缠足者,名白脚僰夷,亦名孔荅;茜齿,文身,髠者,名光头僰夷;额上黥刺月牙纹,盖习车里之俗,所谓雕题也。
|
|-
|}
===Heipu《黑舗 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heipu《黑舗 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名黑普,俗同窝泥,形容黧黑,怕见汉人。畜山羊,作竹器,一切床几櫈杌,备极精巧。
|
|-
|}
===Heiqian Yi《黑乾夷 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heiqian Yi《黑乾夷 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男椎髻麻衣,耳环垂肩;女以毛褐细带,编如筛罩,首饰以海贝、砗磲,衣领亦然。婚配,男吹芦笙,女弹口琴,唱和调悦,先野合,后媒妁。
|
|-
|}
===Shansu《山苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Shansu《山苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男披发跣足,女椎髻蒙头。语似鸟音,形如猿猴。潜居深山,种荞、麻,或工或猎,夷中之最苦者。
|
|-
|}
===Chusu《车苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Chusu《车苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名扯苏,傍岩临水。男短衣皮履,女长裙无裤。种荞稗,绩线为业,以羊毛占(睛)〔晴〕雨。
|
|-
|}
===Laji《喇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Laji《喇鸡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名喇记。黑布帽白衫。好楼居,孟春作土主会,客至,掘鼠及虾蟆为敬。其在交趾者,男善枪,女善弩,多充交兵。又有白喇鸡,男女倶穿五色氆氇,食山虫、水蛇等物。
|
|-
|}
===Lawu《喇五 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Lawu《喇五 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰喇乌,又曰喇鲁。男如摆夷,女如窝泥,构楼临水而居。上人下畜,名曰掌房。其在腾越州者,食巨蟒、毒虫,或取蜂糟食之。
|
|-
|}
===Manla《獛喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Manla《獛喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男插鸡毛,女裹首巾,皆披羊皮,不浣濯。婚配先野合。每采蒙肚花蒙肚花树皮如藓,能毒人。生景东厅,今不产矣。欲人醉死则醉采,欲人狂死则狂采,以毒人。又一种在王弄山者,名马喇
|
|-
|}
===Hala《哈喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Hala《哈喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女黑色,不知盥栉。妇女红黑藤缠腰数十围,产子以竹兜盛之,负于肩。又有古喇、杜喇,色尤甚,言语不通,略似人形而已。
|Men and women are black in complexion and do not know how to wash or comb. Women use red-black rattan to bind around their waist 10 or so times. When they give birth, the child goes in a bamboo cradle carried on their shoulders. There are the <strong>Gǔlǎ (古喇)</strong>、<strong>Dùlǎ (杜喇)</strong>, who have complexions outstandingly dark. Their speech is unintelligible [to the author], they only barely appear human in appearance.
|-
|}
===Jiala《戞喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Jiala《戞喇》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|悍好猎,居山巅,户不正出,迎山开门,不留馀粟。
|They fiercely enjoy hunting and reside on mountain summits. Their doors do not face directly outward but face to face open towards the mountains. They do not retain any surplus grain.
|-
|}
===Kala《卡喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kala《卡喇
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰卡腊,男穿耳挽发,佩短刀;女短衣无裤,胫著彩色折裤。聚族而居,耕种鬻薪。
|Also known as '''Kǎlà (卡腊)''', men pierce their ears, tie their hair and wear short knives. Women wear short clothes without trousers and brightly coloured, multi-coloured folded leggings on their shins. They reside in clan communities, cultivating and selling firewood.
|-
|}
===Kasui《卡隋》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kasui《卡隋》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名卡高,性顽钝,喜歌舞。男女多野合。婚娶通媒妁之日,议聘金,多至数百。娶后子孙犹有代祖父偿聘金者。
|
|-
|}
===Kawa《卡瓦》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kawa《卡瓦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多在顺宁、永昌二郡,辣蒜江外。貌()〔丑〕性恶,猎人以祭。商贾出腾越州,入木邦者必经其地,呼为卡利瓦。有生熟二种,生者劫掠,熟者保路。
|
|-
|}
===Xifan《西番》===
{| class="wikitable" style="text-align:center; width:80%;"
|Xifan《西番》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽土番,亦名巴苴,居金沙江边。性悍戾,善弩,男女辫发百绺,不知栉沭。男以藤缠左肘,披琵琶毡,暑热不脱;女以海贝砗磲磁珠饰于项。又有野西番,更不可制。
|
|-
|}
===Guzong《古宗》===
{| class="wikitable" style="text-align:center; width:80%;"
|Guzong《古宗》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名狤猔,西番别种。皆辫发百绺,男戴红缨,穿氆氇,挂铜铃佩刀,女饰以珊瑚、银泡,披腊瓦被单,皆穿乌拉鞾。经年一栉,栉必牲祭。春夏种荞稗,秋冬赶牛马,取牛羊乳酥,调油茶而食,名曰ø。又有小古宗,喜猎饮酒,馀畧同。
|
|-
|}
===Kuceng《苦葱》===
{| class="wikitable" style="text-align:center; width:80%;"
|Kuceng《苦葱》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|面丑。男麻衣短裤,女短衣桶裙,亦有衣裤相连者。耕山采薬为生。所佩环手篐,自幼至老不释,死以殉。
|
|-
|}
===Mo《摩》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mo《摩》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|乌蛮别种。性湻朴,鸟音,男剃发戴帽,长领布衣;女高髻,或戴黑漆尖帽,短衣长裙。畜牛羊,产射香。同类仇杀,妇女登场一劝卽止。岁暮杀牛羊相邀,一客不至为耻。今有读书入泮者。
|
|-
|}
===Li《力》===
{| class="wikitable" style="text-align:center; width:80%;"
|Li《力》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽。衣麻,披毡,岩居穴处。利刀毒矢,刻不离身,登山捷若猿猱。以土和蜜充饥,得野兽卽生食。尤善弩,每令其妇负小木盾前行,自后射之,中盾而不伤妇,以此制服西番。野力披发插羽,尤悍。
|
|-
|}
===Zhe《遮》===
{| class="wikitable" style="text-align:center; width:80%;"
|Zhe《遮》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆穿耳,挽发。喜华彩衣,盘旋蔽体。每饮食必精洁。而长于弓弩,尤善鸟铳。
|
|-
|}
===Jiezi《羯子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|自孟养流入。环眼鸟队,散发,缠藤,耳带大环,首插鸡羽,无衣裤,腹下以麻布一幅围之。负弩佩刀,喊声如犬。又有结,耳带象牙大环,红布围头,衣半身衫,袒右臂,亦其类也。
|
|-
|}
===Muji《拇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦作。形丑恶,妇女尤甚。椎髻插羽,佩刀负弩。猎食猿狙。见人有蓄,思盗,先用鸡骨卜,吉则徃,否则止。
|
|-
|}
===Mocha《摩察》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mocha《摩察》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Manqie《嫚且》===
{| class="wikitable" style="text-align:center; width:80%;"
|Manqie《嫚且》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Local People《土人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Local People《土人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|(思)〔男〕絮袄佩刀弩,女披毡朿皮索,饥则紧缚之。婚姻以刀甲为聘,披发见舅姑。有争者告天,沸汤投物,以手捉之,曲则糜烂,直者无恙。
|
|-
|}
===Nong ren《侬人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nong ren《侬人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|侬智高部落之裔。男束发短衣,女短衣密扣,腰缠红裹肚。性狡,漆齿,出入佩刀,长技在铳。
|
|-
|}
===Sha ren《沙人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Sha ren《沙人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|越析夷也,又名蒙嶲。男辫发长衣,女以挑花白布蒙头,腰围红布。出入佩刀,耕田、射猎,所居掌房。丧服用红,祭肉弃不食。又有黑沙人,白沙人。聘用牛,旣婚之夕,男女不同室,及回女家,有娠方归。
|
|-
|}
===Luo ren《𤡑人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤡑人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男束发披毡,女短衣露腹,缠红藤,腰系沙罗布裙,上短下长,男女同耕。
|
|-
|}
===Cun ren《狆人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Cun ren《狆人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男缠头跣足,女靑布缠头,畧如僧帽,缀以海贝,彩布衣裙,著大尖鞋。构楼而居,甘犬嗜鼠。又有罗缅、麦岔、叠吗、喇毛等类,顽良不一,衣饰风俗同
|
|-
|}
===Nu ren《怒人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nu ren《怒人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居永昌怒江内外。其江深险,四序皆燠,赤地生烟。每二月瘴气腾空,两堤草头交结不开,名交头瘴。男子面多黄瘦,刚狠好杀猎,或采黄连为生,鲜及中寿。妇人披发红藤勒首。每年贡麂皮二十张、山驴皮十张、黄蜡八十筋、麻布三十庹,以代赋税。
|
|-
|}
===Luo ren《𤞰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤞰人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江府鹤庆州大雪山外。男女披发,树叶为衣,耳穿七孔,坠以木环。与怒人接壤,畏怒人,不敢越界。
|
|-
|}
===Wild people《野人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Wild people《野人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|永昌界外。居无室庐,宿于树巅。赤发黄睛,首戴骨圏,插雉羽,手足腹皆缠红藤,以幅布或树皮揜下体。勾刀大刃,捕禽兽蛇虫,生食之。逢人卽杀。
|
|-
|}
===Laodao《老挝》===
{| class="wikitable" style="text-align:center; width:80%;"
|Laodao《老挝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南掌国夷类。戴藤篾黑漆帽,宽二尺许,短衣无裤,用杂色布一疋,从膝下兜绕,围结胸前,名打抄子。妇女耳贯大黑漆圏,塞以野花。
|
|-
|}
===Liemi《列密》===
{| class="wikitable" style="text-align:center; width:80%;"
|Liemi《列密
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽利米。刀耕火种,精射猎,得鼠雀生啖之。男篾帽皂衣,女辫发赤足。出外披花布,以蔽其身。
|
|-
|}
===Lama《喇嘛》===
{| class="wikitable" style="text-align:center; width:80%;"
|Lama《喇嘛》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江、鹤庆多有之。来自西藏,招本境摩为徒。有红黄二敎,红弱黄强。毡帽褊衫,各如其色。
|
|-
|}
===Miaozhi《苗子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|三苗之后,有九种,黔省最多,流入滇中者,惟仲家花苗而已。束发耳环,未婚者缚楮皮于额,或插鸡毛。女布冠套头衣,桶裙,皆用五彩桃花布为之。每岁孟春跳月,男吹芦笙,女振铃唱和,并肩舞蹈,终日不倦。或以彩为球,视所欢者掷之,暮则同归,比晓乃散,然后议婚。节序击铜鼓,吹呐叭,聚赛神,书契惟数目字,及六十花甲子同,馀不同。
|
|-
|}
===Tuliao《土獠》===
{| class="wikitable" style="text-align:center; width:80%;"
|Tuliao《土獠
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其属本在黔、蜀、粤西之交,流入滇中。男首裹靑布,白衣领缀红布一方,妇人冠红巾,衣花绣。性粗桀,好蛊魔之术,其虫夜飞如星,光芒摇曳,射入窓棂,触者病。
|
|-
|}
===Jiaoren《交人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiaoren《交人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|安南国之类。男箬笠蕉扇,衣裳楚楚;女面貌颇雅,手贯牙钏,长衣长裙,以红帕蒙头,皆辫发靸鞋。读诗书习礼,仪婚丧之事,倶仿中国。
|
|-
|}
===Burmese people《缅人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|缅甸国流入者。有老缅、阿瓦、猛别、雍会、普干、摆古、得楞子等类。长于鸟铳,其火药用麦面傅之,迅疾无声。又有缅目者,称为莽纪,断发文身,漆齿穿耳,蟒衣跣足,头带红缎一方,性喜花草。
|
|-
|}
==References==
{{reflist}}
[[Category:Chinese literature]]
[[Category:Non-fiction books]]
[[Category:Medieval historical works]]
[[Category:Works originally in Chinese]]
[[Category:Pages with foreign language text]]
[[Category:Indigenous peoples]]
[[Category:Guidebooks]]
[[Category:History of China]]
[[Category:Wars]]
[[Category:Diplomacy of China]]
[[Category:Subject:Military history]]
[[zh:蛮书]]
5i42t79jnqrqu2pplnmk15385sq92xl
4674849
4674838
2026-10-07T10:15:25Z
Taitesena
3485636
/* Hala《哈喇 》 */ Research auxilliaries
4674849
wikitext
text/x-wiki
__NOTOC__
{{incomplete translation}}
{{Translation header
| title = Unofficial History of Nanzhao (南诏野史)
| author = Yang Shen (杨慎)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes =
}}
== Front Matter ==
# [[Unofficial History of Nanzhao/Translator's Note|Translator's Note]]
# [[Unofficial History of Nanzhao/Influences|Historical Context]]
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Authorship
|-
! scope="col" | Original
! scope="col" | Translation
|-
|增订南诏野史上卷 明 四川新都杨愼升庵编辑
|
|-
|}
===The Title of Nanzhao 《南诏之称===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Title of Nanzhao 《南诏之称》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蛮夷称王曰诏。先时滇有六诏,各据其地。六诏中蒙舍诏最强,后并吞五诏,故独称南诏。
|
|-
|六诏考六诏之地,东西四千里,南北二千九百里
|
|-
|蒙舍诏蒙细奴逻立国,居蒙舍川,地在永昌、姚州之间,处五诏之南。后奴逻曾孙皮逻阁并吞五诏,独称南诏。今蒙化厅是邆赕诏丰咩立国,居邓川。今大理府邓川州是施浪诏施望欠立国。居{{浪穹弥茨河蒙次和山,今大理府浪穹县是浪穹诏丰时立国,居浪穹。后其孙铎罗望迁剑川,改称剑浪诏。今丽江府属剑川州地是越析诏波冲立国。亦称摩诏。又号花马国。居嶲州。今丽江府是后,其兄之子于赠渡泸,邑于龙佉河蒙嶲诏嶲辅立国。居越嶲,今四川宁远府,越嶲厅是
|
|-
|}
===The Territorial Divisions of Nanzhao 《南诏分野》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Territorial Divisions of Nanzhao 《南诏分野》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|在天井鬼入参一度,汉书。次鹑首末位晋书。丽中台上位北斗开阳一星。宋书。在地乃梁州裔土,蜀之苑囿。河图纬。
|
|-
|}
===The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周鄯阐国、白崖国、昆弥国。战国时滇国,汉西南夷、益州、白子国。后汉建宁国。晋、宋、齐、梁、陈,宁州。隋昆州。唐初,南宁、六诏,唐文宗太和间,名鄯阐府。宋仍名南诏。元名中庆。明名云南省。
|
|-
| 国朝因之。按:汉武帝元狩元年,彩云见南中,在今大理府赵州之白崖。云南之名始此。唐元宗间问蒙舍诏盛逻皮之相张建一作俭成住何处?曰:「南边云下。」因命为云南。又元宗见祥云起,名祥州。今大理府之云南县也。
|
|-
|}
=== General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|鄯阐国蒙苴颂,昆弥国庄蹻、仁果、龙佑那据于周、秦、汉迄六朝。细奴逻据于唐。郑买嗣、赵善政、杨于贞、段思平、高升泰曁正湻,相继据于唐末迄
南宋。凡历有九姓,而雍闓、孟获不与焉。段氏与南宋理宗壬子湻佑十三年为蒙古所灭,而段实于理宗景定二年袭总管,传十二世,明太祖壬戌洪武十五年平云南,擒段世,并段段明之二子苴仁、苴义。赐苴仁官雁门卫镇抚,苴义官武昌卫镇抚,段氏之世土方绝,而又别封其族人段保为大理府云龙州土知州。国朝尚有袭土职者。
|
|-
|}
=== Titles and Official System of Nanzhao《南诏称谓官制》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Titles and Official System of Nanzhao《南诏称谓官制》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南诏称帝曰骠信,王曰诏,自称曰元,称后曰信么,亦曰九么,妃曰进武,兄曰容,弟曰钟,下曰昶。其设官则有把国事八人,曰坦绰,曰布燮,曰九赞,谓之清平官。曰酋望,曰正酋望,曰员外酋望,曰大(将军)〔军将〕,曰员外。又设九爽之名,爽,省也。功爽主官人,宗爽主户籍,万爽主财用,慈爽主礼,引爽主宾客,幕爽主兵,罚爽主刑,厥爽主工作,禾爽主商贾,皆清平官、酋望、大军将兼之。以清平官子弟为羽仪长八人,清平官见王不得佩剑,惟羽仪长佩之。又有六曹长二人,曹长有功升大军将,凡十二人。又立三托:巨托主仓廪,气托主马,禄托主牛。大府主将曰演习,副曰演览;中府主将曰缮裔,副曰缮览;下府主将曰澹酋,副曰澹览;小府王将日幕撝,副曰幕览。每府有陀酋,陀酋卽掌书记判官之类。外有八节度使:日弄栋节度使,今楚雄府姚州。曰银生节度使,今景东厅及鎭沅州地是。曰永昌节度使,今永昌府是。曰丽水节度使,今丽江府是。曰剑川节度使,今丽江府剑川州是。曰东川节度使,今东川府府是。曰通海节度使,今临安府通海县是。曰拓东节度使。今云南府昆阳州北平定乡,蒙氏子凤伽异曾筑城于此地。又有二都督:曰会川都督,今四川宁远府会理州地是。曰通海都督。又设十睑,蛮语谓州为睑。苴音斜。羊睑,又名羊睑,卽今大理府太和县。赵州睑,今大理府赵州。白崖睑,又名勃弄睑,今赵州之白崖。,云南睑,今大理府云南县。蒙舍睑,今蒙化厅。大厘睑,又名史睑,今太和县喜州。邆川睑,今大理府邓川州。品澹睑,蒙秦睑,矣和睑。三睑未详其地。○蔚按:别本十睑中苴羊睑、赵州睑、白崖睑而下,作义督睑,今剑川州;威远睑,今普洱府威远厅南;河东睑,末详其地;越睑,今永昌府腾越州;北方睑,又名成偈睑,今永北厅;楼头睑,今四川叙永厅,属永宁县;路睑,今楚雄府广通县;与云南睑以下七睑异。○按:又考此七睑中,其越睑、北方睑、楼头睑、路睑凡四睑,见于『汉地里志』及『唐书?南蛮传』中,睑并作赕,音闪,字旣不同,音又各异,似非列于十睑之数。凡人丁壮者皆为战卒。王之亲兵曰朱弩佉苴,音蛆。按:元微之白乐天乐府皆作佉嗟,未审孰是。佉苴,韦带也。每兵百人置罗苴子统一人,戴朱鞮鍪,负犀革铜盾而跣足。自大军将以至曹长,皆系金佉苴尚绛紫,有功加锦,又有功加金波罗。卽虎皮。民兵号白衣,凡民兵出以望苴蛮为先驱。
|
|-
|}
===Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|因远部。威远睑治,其地总名和泥,今元江府是。休腊部。今临安府河西县。嶍峨部。今临安府嶍峨县。屈中部。今临安府阿迷州。溪处甸部、伴溪落恐部。今倶为长官司,属临安府。铁容甸部。今为亏容长官司。官桂思陀部。今为思陀甸长官司,皆属临安府。王弄部、强现三部。今属开化府。师宗部。今广西州师安县。弥勒部。今广西州弥勒县。吉输部、袖恶部。倶在弥勒县地。维摩部。卽广西府维摩州。州裁,今属广西州地。罗雄部。今曲靖府罗平州。纳垢州。今曲靖府马龙州。落温部。今曲靖府陆凉州。磨弥部。今曲靖府沾益州。仁德部。今曲靖府寻甸州。夜苴部卽曲靖府亦佐县,县裁,今归罗平州。强宗部。卽澄江府阳宗县,县裁,今归河阳县。步雄部。今澄江府江川县。罗伽部。卽步雄部分地。休制部。今澄江府新兴州。落蒙州。今澄江府路南州。弥沙部、邑市部。皆落蒙部子孙分治之。阳城堡部。今云南府晋宁州。罗部。今云南府罗次县。乾矢部、罗婺部。倶在武定府曲州,州裁,今属武定州。华竹部。今武定州元谋县。洪农碌券部。今武定州禄劝县。掌鸠法块部在禄劝县城东五里。○以上三十五部在迤东地。白鹿部。今楚雄府。谋统部。今丽江府鹤庆州。○以上二部在迤西地。
|
|-
|}
==Nanzhao through the Generations《南诏历代》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Nanzhao through the Generations《南诏历代》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|白古记:西天天竺摩竭国阿育王骠苴音斜。低娶欠蒙亏为妻,生低蒙苴。苴生九子,长子蒙苴,附罗十六国之祖;次子蒙苴廉,吐蕃之祖;三子蒙苴诺,汉人之祖;四子蒙苴酬,东蛮之祖;五子蒙苴笃,生十二子,七圣五贤,蒙氏之祖;六子蒙苴托,狮子国之祖;七子蒙苴林,交趾国之祖;八子蒙苴颂,白子国仁果之祖;九子蒙苴閦初六切。白夷之祖。○『哀牢今永昌府。夷传』:哀牢蛮蒙伽独捕鱼易罗池在永昌府城南。溺死。其妻沙壹一作壶。往哭之水边,触一浮木,有感而妊,产十子。后携子至池上,木化为龙,人言曰:「我子安在?」九子惊走,独季子背龙而坐,龙舐其背。蛮语谓背为九,坐为隆,故名之曰九隆氏。哀牢山一名天井山,在永昌府。下有妇名奴波息,生十女,九隆弟兄娶之,立为十姓:董、洪、段、施、何、王、张、杨、李、赵,皆刻画其身象龙文,于衣后著尾。子孙繁衍,居九龙山山在永昌府城南。溪谷间,分九十九部,而南诏出焉。
|
|-
|}
===Shanchan Guo《鄯阐国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shanchan Guo《鄯阐国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周时立国,年代久远,其姓名世次莫考。
|
|-
|}
===Baiya Guo《白崖国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baiya Guo《白崖国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|西天天竺摩竭国阿育王低蒙苴第八子,蒙苴颂居白崖,因地名,号白崖国,传世莫考。后昆弥氏继之,号昆弥国。
|
|-
|昆弥国一名拜国。
|
|-
|昆弥氏,传世姓名莫考。战国时,楚将庄蹻据滇,并有其地,号滇国。
|
|-
|}
===Dian Guo《滇国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dian Guo《滇国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|战国时,楚顷襄王命将庄蹻范蔚宗后汉书作庄豪。将兵循江上,略巴、蜀、黔中以西,蹻至以兵威畧定滇地属楚。欲归报,会秦司马错攻楚,黔中道塞。蹻遂以其众王滇,号滇国,踞之。后有王常羌者好佛,国势不振。法令不行,国人遂推白崖国蒙苴颂之后,白饭王之裔仁果为王,治白崖,于是两国角立。后仁果奉汉,封为白子国。
|
|-
|}
===Baizi Guo《白子国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baizi Guo《白子国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|汉武帝通西南夷,遣使至滇,求身毒国。滇王常羌问使者曰:「汉孰与我大?」使者还报,武帝怒其言不逊。时白崖国蒙苴颂之后,天竺国白饭王之裔仁果者,为众所推立于白崖。武帝乃册封仁果为王,号白子国。后迁于澄江,今澄江府。迨龙佑那继之,号建宁国。○又一说:白子国之先,有阿育国,王能乘云,上天娶天女,生三子,长季二子封于金马、碧鸡,独封仲子于苍洱之间,崇奉佛敎,不茹晕,日食白饭,人因称为白饭王。迨后有仁果者,汉封为滇王,号白子国。又十五世至龙佑那,后汉诸葛武侯南征,次白崖,以佑那为酋长,赐姓张氏,仍统其民,号建宁国。
|
|-
|}
===Jianning Guo《建宁国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|后汉后皇帝乙巳建兴三年,益州耆帅雍闓,假鬼术杀建宁太守王昂,归东吴,吴王孙权以闓为永昌守。后汉诸葛武侯南征,至白崖,杀雍闓,擒孟获,乃封白子国王仁果十五世孙龙佑那为酋长,赐姓张氏,于白崖筑建宁城,蔚按建宁城废址在今大理府赵州之弥渡。号建宁国,立铁柱蔚按:今弥渡有铁柱宫,铁柱尚存。先为建宁国王张乐进求甫铸,后南诏蒙世隆复重铸,名曰天尊柱,高八尺。并『南中纪功碑』,铭其背曰:「万岁之后胜我者过此」。迨至隋时,行军总管太平公史万岁征南宁夷爨玩,西破三十馀部,至此,见其碑铭,命左右踣之。其碑跌,中复有志曰:「史万岁不应踣吾碑」。万岁惊异,复树碑,祭拜而去。后张龙佑那仍迁国澄江,传三十二世至十七世孙张乐进求,唐太宗己酉贞观二十三年封为首领大将军。后见蒙舍川蒙细奴罗有奇相,遂妻以女,逊国与之。奴罗自称奇嘉王,建号大蒙国,又称南诏。
|
|-
|}
==Nanzhao《南诏国》==
===13 Generations of Nanzhao 《南诏大蒙国传十三世》 ===
{| class="wikitable" style="text-align:center; width:80%;"
|+ 13 Generations of Nanzhao 《南诏大蒙国传十三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|细奴一作农。逻一作罗。 伪谥高祖奇嘉王
|
|-
|细奴逻,又名独罗消,西天天竺摩竭国阿育王低蒙苴第五子蒙苴笃之三十六世孙。生有奇相。唐太宗贞观初,其父舍龙尨,又名龙伽独,将奴逻自哀牢避难至蒙舍川,耕于巍山。今蒙化厅之巍宝山。一日,有老僧,美髯,冠赤莲冠,披袈裟,持钵至奴逻家乞食。时奴逻与子逻盛炎方耕巍山之下,其姑与妇将往饁。见僧乞食,遂食之。再炊往饁,僧坐不去。姑妇持饷中道,僧已在彼,复乞食,姑妇又食之。返而复炊,持饁至巍山,则见僧坐盘石上,前有靑牛,左白象,右白马,上覆云气。云中二童子,一执铁杖于左,一执方金镜于右。姑妇惊喜,复以所饷供之。僧问何所愿?姑妇不知对。僧曰:「奕叶相承」。及趣奴逻等至,则但见一人持钵,坐五色云中,而盘石上惟馀衣痕及牛象马之迹耳。奴逻素有祥异,会唐封首领大将军建宁国王张乐进求,以诸葛武侯所立白崖铁柱,岁久剥蚀重铸之。因社会祭柱,柱顶故有金镂鸟,忽能飞,集奴逻左肩,相诫勿动,八日乃去。众骇异,谓天意有属。进求遂妻以女,举国逊之。于唐太宗己酉,贞观二十三年卽位,年三十二岁,建号大蒙国,称奇嘉王,据南诏。高宗庚戌永徽元年,建都蒙舍川,于巃{山+于}山在今蒙化厅西北三十五里。筑巃山+于城。永徽癸丑四年,遣逻盛炎入朝唐,诏授奴逻为巍州今蒙化厅刺史,赐以锦袍。大勃弄今大理府赵州白崖。酋杨承顚寇麻州,在今曲靖府马龙州城北里许。唐命郞州唐贞观初,分牂牁郡北界置郞州,后改名播州,卽今贵州遵义府。又有郞州,在今云南县地。道行军总管赵孝祖讨之。孝祖先入小勃弄,今云南县地。酋长没盛迎战,孝祖斩之。进至大勃弄,攻其城,破之,擒杨承顚,改云南县为匡州,领勃弄、匡州二县。高宗显庆二年,凤鸣于浪穹罗浮山,乃改名为凤羽山,在大理府浪穹县西南三十里,又名鸟吊山。见『水经注』。封十二圣贤为十二山神。时澄江人波罗旁有经济才,用为文臣;郭郡矣素以勇略闻,用为武臣。又有杨波远者,相传为东汉时人,常骑三角靑牛,号神明大士,能知盐泉,滇中盐泉多为波远所开创。奴逻在位,遵唐正朔。高宗甲戌上元元年,奴逻卒,在位二十六年,子逻盛炎立。
|
|-
|逻盛炎又名逻晟。伪谥世宗兴宗王。
|
|-
| 逻盛炎。唐高宗甲戌上元元年卽位,年四十岁,以张建成为相。明年,盛炎临朝,元宗壬子先天元年,姚州蛮叛归吐蕃。唐命御史李知古讨之,筑城立州县。知古诛豪杰,掠子女,蛮怨,引土蕃,攻杀知古,于姚嶲路绝,而盛炎独奉唐正朔。是年,盛炎卒,在位三十九年,子盛逻皮立。
|
|-
|}
===Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|盛逻皮,唐元宗壬子先天元年卽位,年四十岁。明年为元宗癸丑开元元年,唐授逻皮为特进,封台登郡王今四川宁远府冕宁县地。设官征商税。开元二年,遣张建成入朝于唐。立土主庙。开元九年,皮叛唐。开元十四年,立庙祀晋右将军王羲之为圣人。元宗戊辰开元十六年,逻皮卒,在位十六年,子皮逻阁立。
|
|-
|皮逻一作罗阁石刻作归义王魁乐觉封云南王。
|
|-
|皮逻阁,唐元宗戊辰开元十六年卽位,年三十一岁。开元十八年,灭五诏,自称南诏王。先是,蒙氏恐三十七蛮部不服,选亲族为五诏。未几五诏抗命,逻阁遂赂剑南节度使王昱,求合六诏为一。昱奏于朝,许之。逻阁乃豫建松明大楼,祀祖于上。使人谕五诏曰:「六月二十四日乃星回节蔚按『大理郡志』汉元封间,叶楡妇阿南者为酋长,曼阿娜之妻。娜为汉将郭世忠所杀,欲妻南。南曰:能从三事,当许汝一作幕次祭故夫;一焚故夫衣,易君新衣;一令国人皆知我以礼嫁。忠如其言。明日,聚国人张松幕祭其夫。下置火,南藏刃出,俟火炽焚夫衣,卽引刀刃自断其颈,仆火中,时六月二十五日也。国人哀之,故岁以是日燃炬吊之,名为星回节云。是又当为二十五日。当祭祖,不赴者罪。」四诏听命。惟越析诏波冲之兄子于赠,远不赴会,而邆赕诏丰哶孙{辵+皮}逻邆之妻慈善者,止逻邆勿赴。邆不听。慈善不得已,以铁钏穿于邆臂而行。二十四日,逻邆及施浪诏施望欠弟施望千、浪穹诏丰时孙锋罗望、蒙嶲诏嶲辅子罗原皆至逻阁所。逻阁偕登楼祭祖,祭后享胙食生饮酒,迨晚,四诏尽醉。逻阁独下楼,焚钱遽纵火,火发,兵围之,四诏皆焚死。逻阁遣使至四诏所,报焚钱失火,四诏被焚,状令各诏收骨。四诏妻至,莫辨其骨。独慈善因铁钏得焉,携归葬之。逻阁旣灭四诏,取各诏宫人,念慈善慧而甚美,遣兵围其城,迫取之。慈善曰:「吾岂忘夫事仇者?」闭城坚守,半月城中食尽,慈善度不能支,卽自杀,时七月二十三日也。逻阁嘉其节,乃封赠为宁北妃,并旌其城曰德源城。城废址在今大理府邓川州城东北二里许。开元戊寅二十六年,逻阁破吐蕃及弥蛮,入朝,元宗礼之,加封为特进,云南王,越国公,开府仪同三司,赐名归义,并锦袍金钿带七事。王归国,以兵逐洱河蛮,筑太和城,今大理府城南十五里太和村地是。又筑大厘城今大理府城北四十里喜州是。守之,尽有云南之地。唐授王子阁逻凤右领军卫大将军兼阳瓜州刺史。开元二十七年,明矫叛,破剑川、浪穹、永昌。开元二十八年,王讨朋矫,平之。开元辛已二十九年,王自蒙舍川迁居太和城,立龙首、卽今上关。龙尾卽今下关。二关。唐加阁逻凤为左领军卫大将军。元宗癸未天宝二年,筑羊苴哶城于太和城之北。卽今大理府城。唐迁阁逻凤为左金吾卫大将军,寻拜特进都知兵马大将军。天宝甲申三载,西方进狮子皮。唐加阁逻凤为上柱国。天宝乙酉四载十月,城永昌。天宝丙戌五载,王遣孙凤伽异入唐,唐授伽异为鸿胪少卿,妻以宗室女,赐龟兹乐一部,元宗戊子天宝七载,王卒,在位二十年,子阁逻凤立。
|
|-
|阁罗凤一作觉乐凤。按:『德化碑』云:「家居阁罗凤」,则是取地名以为名也。袭封云南王,伪谥神武王。始建元。
|
|-
|
阁罗凤,唐元宗天宝戊子七载卽位,年三十六岁。唐遣中使黎敬义持节册凤袭封云南王,敕置阳瓜州于蒙舍川,加授
凤伽异为上卿兼阳瓜州刺史,都知兵马大将军。天宝庚寅九载,王率妻子往谒都督李宓,过云南,太守张虔陀私之,又多徵求。王表虔陀之罪,中官贾奇俊抑之,不得达。王复遣将军杨罗顚等连表控告。元宗仍不省。凤怒,遣大将军王毗双、罗时等发兵攻虔陀。虔陀饮鸩死;遂取姚州,并夷州三十二。获唐嶲州西泸令郑回以归,爱其才,用为清平官。天宝辛卯十载,唐命剑南节度使鲜于仲通将兵八万征云南。凤赴泸南在楚雄府姚州之城北一百五十里。谢罪,愿还所俘掠,请罢兵。仲通不许,分三道而进。仲通自南溪路,大将李晖自会同路,都督王知进自步头路。今临安府地。凤就安宁,再伸衷悃。仲通不听,兵至曲州、靖州。二州今为曲靖府地。凤复遣首领杨子芬、参军江如之赍状,言若不罢兵,卽当归吐蕃,恐云南非唐有。仲通终不许,囚其使,进薄白崖城。别遣大将王天运统师绕出点苍山后。凤遣
凤伽异及大军将段俭魏迎山后师,自逆战于西洱河。唐兵大败,死者六万人,王天运战殁,仲通仅以身免。凤乃叛唐,建元长寿。遣弟阁陂和尚及子铎传、酋望赵佺邓、杨传磨侔等,并子弟六十人献凯吐蕃。陂有神术,人马往来吐蕃,不过朝夕之顷。天宝十一载正月一日,遣宰相倚祥叶乐持金冠、锦袍、金宝带、金帐状、安扛伞鞍、银兽器皿、珂贝、珠毯、衣服、駞马、牛鞻等物至邓川,以凤为兄弟之国,册为赞普钟南国大诏,给金印,称东帝。并授凤伽异大瑟瑟告身,都知兵马大将。凤遂改是年为赞普钟元年。发人口百户于浪穹,筑白崖睑城,又遣兵攻掠安宁。天宝甲午十三载六月,唐命前云南郡都督兼侍御史剑南留后李宓、广府节度使何履光等,率十道兵再征云南。兵逼邓川,凤遣凤伽异、段俭魏迎战于江口。时神川都知兵马使论绮里徐救兵已至巴蹻山,遂诱宓深入,内外夹击。宓粮尽,士卒饥疲,引还。凤以精兵追战,唐全军覆没,李宓被执,沉江死,何履光遁去。凤因进取嶲州会同郡,据清溪关,以破越析。此二役也,皆凤弟阁陂和尚及凤妃白氏行妖术,展帕拍手而笑,韩陀僧用钵法,以故唐兵再败。时唐先后丧师已二十馀万,凤乃敛战胔,筑京观于龙尾关河尾,名万人冢,立碑大书「唐天宝战亡士卒之墓」。而唐宰相杨国忠更揜败以捷闻,叙战功。令清平官郑回撰『德化碑』,唐流寓御史杜光庭书。立石太和国门外,明其不得已叛唐归吐蕃之故。天宝乙未十四载冬十一月,东平郡王安禄山反于范阳,凤乘机以兵取蜀卭州,筑卭子城,及丽水金宝城。升段俭魏为清平官,赐名忠国,旋拜相国。代宗甲辰广德二年,羊苴哶城成,凤名之曰大理城,又名紫城。代宗乙巳永泰元年凤伽异筑云南城卽今云南府省城。又筑拓东城,今云南府昆阳州北平定乡。遂以兵攻陷曲靖。代宗丁已大历十二年,永昌牛生三角,羊生四角,鸡九足,井有光。建观音寺于白崖。先是,逻盛炎时,相国张建成欲于白崖建寺,卜之吉。又地下有三戳观音,上截在西,中截在东,下截在东南。因盛炎旋卒,不果建。至是建寺,掘之果然。代宗戊午大历十三年,阁罗凤卒,在位三十年。因子凤伽异先死,后追谥悼惠王。孙异牟寻立。
|
|-
|异牟寻改国号曰大理国。封云南王,又封南诏王 伪赠廪孝桓王
|
|-
|异牟寻,唐代宗戊午大历十三年卽位,年二十四岁。明年改元见龙,又改上元,率兵三万取蜀为东府,又连土番入寇。唐命神策都将李晟击破之。师还,自称南诏王。德宗甲子兴元元年,牟寻迁居史城,卽大厘城。改号大理国,自称日东王。封岳读,以叶楡今大理府。点苍山为中岳,乌蛮今东川府。乌龙山一名绛云弄山,在今禄劝县东北三百里。为东岳,银生府今景东厅。蒙乐山一名无量山,在厅北九十里。为南岳,又封南安州今楚雄府属。神石亦为南岳,越赕今永昌府腾越州。高黎贡山一名昆仑隅,在腾越、潞江之间。为西岳,嶲州今丽江府是。雪山一名玉龙山,在府西北二十里。为北岳。封金沙江源出吐蓄旄牛徼外犂牛石下,本名犂牛河,又名犂水,讹为丽水。经丽江府、鹤庆州、姚州而东北达于四川马湖府之马湖,卽『山海经』所谓若水。『水经注』云:若水经云南之遂久县,卽今金沙江巡检司地。昔黄帝长子昌意德劣,不足绍承天位,降居斯水为诸侯,娶蜀山氏女,生颛顼于若水之阳,疑卽其地也。祀在武定州,兰沧江源出吐蕃鹿石山下,本名鹿沧,又名兰沧。兰沧讹为浪沧。自丽江府度云龙州至永昌府,东经顺宁府,达于车里,过交趾地而入于南海。祀在丽江府,黑惠江在顺宁府之东入狼沧江,而达于南海。祀在顺宁府,怒江源出西域雍望,奔流而下,深不可测。夏月多瘴,经怒夷地入丽江府境野人界。至永昌府境,乃名潞江。祀在水昌府,为四渎,各建神祠。又立三皇庙。德宗丙寅贞元二年,设官立九爽三托。考疆域,其地东至于铜柱、铁桥、蟠桃、玉楡,东南至于交趾国,南至于骠国,西南至于木落山,西至于太石,西北至于吐蕃,北至于神川,东北至于黔巫。八分之地,属以八演,皆中国降人为之经画者。贞元丁卯三年,寻居大理城。命子弟师事郑回。时寻苦吐蕃徵求无厌,会李泌劝德宗招云南以断吐蕃右臂。帝从之,命韦皋为西川节度使,皋受命招抚群蛮。郑回因说寻归唐,寻以为然。皋遣谍者致书于寻,吐蕃知而疑之,乃责南诏大臣为质。寻愈怨。于是,决计归唐。皋以闻,德宗乃命皋作书谕寻。是年四月,吐番破蜀,来征兵,蔚按:卽吐蕃劫浑瑊清水盟之岁。寻谢绝之。贞元五年,寻遣乌蛮勿邓大鬼主苴梦冲、两林都大鬼主直那时聘于皋,因入朝。皋遣其属崔佐时报之。时吐蕃使数十人先在,佐时至,寻令更衣入。佐时不可,曰:「天朝大使。岂衣夷衣?」寻不得已,夜迎之。佐时至,大宣诏旨,令寻斩番使,去其所立之号。寻遂与佐时盟于点苍山下。贞元九年,寻遣使上表,请从韦皋袭吐蕃。诏册封为云南王,以韦皋为云南安抚使。王遣使诣皋,献夷中歌。贞元十年,吐蕃徵兵于王,王阳示寡弱,以兵三千应之,自将数万人踵其后。正月,袭吐蕃,战于神州,断铁桥,在巨津废州,今丽江府西北地。取十六城,俘其五王,降众十馀万,获军资甲仗无算。遂遣弟凑罗栋、清平官尹仇宽献捷于唐,并献地图、纳贡及吐蕃所给金印,请复号南诏。于是,唐以祠部郞中袁滋为中丞,赐金紫充册使。赐王银窠金印,印文曰:「贞元册南诏印」。王北面跪受。宴使者,出元宗天宝五载所赐王父凤伽异银跳脱马头盘数物,并指老笛工、歌女曰:「皇帝所赐龟兹乐,惟二人在耳!」使者日:「南诏世荷唐恩,当深思祖考子孙勿替,尽忠皇唐。」王对曰:「敢不敬使者之命。」随遣清平官尹辅首入谢,献铎鞘、郁刀、生金、瑟瑟、牛黄、氎、纺丝、越赕绕伦马。蔚按:铎鞘,疑当作择矟,状如残月,有孔旁达,出丽水,饰以金,月祭之血,所击无不洞。段柯古『酉阳杂俎』云:南蛮有毒槊无刀刃,状如朽铁,中人无血立死。言自天而下,入地丈馀,祭地乃掘得之,云云。疑卽铎矟,毒为铎字之讹,槊字本同矟宇也。郁刀铸时以毒药并冶,取莹耀如星者,凡十年乃成,淬以马血,镂金犀饰镡首,伤人卽死。因浪人所铸,又名浪剑,夷中甚宝之。七月,又攻吐蕃,并破施蛮、顺蛮,施蛮、顺蛮卽施浪、浪穹二诏之后,自南诏并吞五诏,五诏之后不复称诏,止称蛮。俘其王置白崖城。贞元十二年,取越赕,置软化城。贞元十四年,请以大臣子弟质于朝,韦皋却之。固请,乃尽舍成都,遣就学。贞元十五年,王开白国北方赕地,今永北厅。徙弥河白蛮及罗落摩蛮实之,号剑羌。是年,王从韦皋再败吐蕃于铁桥。初,王谋击吐蕃,以邆川、卽今邓川州。宁北卽今浪穹县。等城当寇冲,乃峭山深堑,修战备。至是吐蕃谋袭南诏,王告于皋,遣将屯黎州、嶲州以应之。吐蕃引兵攻嶲州,皋严兵以守,别遣将袭击,降其帅,吐蕃惧,退至铁桥。王令人毒其水,吐蕃人马多死,退屯三泸水,王与皋部将杜毗罗击败之。贞元十六年,王率子寻阁劝入朝于唐,召对延英殿,进奉圣乐舞,德宗御麟德殿观之。贞元十七年,王夜绝泸水,斩吐蕃屯卒,又合鬼主破之于泸西。吐蕃大惧,欲悉师收嶲州,以绝南诏。王谓韦皋曰:「吐蕃声取嶲州,实窥云南,请进军羊苴咩城。」皋督诸将分道与王会,陈兵深入,拔木波城。前后凡克城七,焚堡百五十所,斩获无算,生擒论莽热,献于唐,并进铠甲十五万。皋班师,帝遣中使慰抚王。王自是比年贡方物,唐帝深礼之焉。贞元十九年,王封云南金马碧鸡二山之神为景帝,建妙音寺塔,筑大理雪峰长城。宪宗戊子元和三年七月,王卒。唐遣使祭吊,在位三十年,子寻阁劝立。
|
|-
|寻阁一作觉劝又名新觉劝。 袭封南诏王 伪谥孝惠王
|
|-
|寻阁劝,唐宪宗戊子元和三年卽位,年三十一岁。唐册劝袭封南诏王,赐元和金印。宪宗己丑元和四年正月,改元应道,群臣上尊号曰骠信,以鄯阐为东京,大理为西京,重修曲靖崇真寺。寺为晋代所建。十一月王卒,在位一年。子劝龙晟立。
|
|-
|}
===Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝龙晟,唐宪宗己丑元和四年卽位,年十二岁。唐册袭封南诏王。明年,改元龙兴。铸佛三尊,送佛顶峰寺,用金三千两。元和九年,晨寇嘉定州,有飞天神兵破之。先是,节度使杜元颖守成都时,时滇兵至嘉定之沐源州,忽自惊溃。蜀军获一夷卒问之,云适见遍山神兵,一神将长斧坐二鬼上,声若迅雷,故尔惊走。至是神复现形,自后追杀,卽时死酋长二人。盖嘉定向有飞天神庙,两破滇兵者,皆此神也。宪宗丙申元和十一年,晟淫虐失道,弄栋节度使王嵯巅弑之,时年仅十九岁,唐命少监李铣祭吊,在位七年,弟劝利立。
|
|-
|}
===Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝利,唐宪宗丙申元和十一年卽位,年十五岁。唐册袭封南诏王。王嵯巅东寇。明年,改元全义。元和十三年,厚赏王嵯巅,赐姓蒙,封太容。元和十四年,废王嵯巅,赦其罪,命敬信三宝,为清平官。元和十五年,又改元大丰。重修崇圣寺。五月,大雨霖,龙首、龙尾二关倾。除洱河水怪,建龙屋塔。高十二丈。按:『白古记』:唐时洱河有妖蛇,名薄劫,兴大水淹城。蒙国王出示:有能灭之者,赏半官库,子孙世免差徭。部民有段赤城者愿灭蛇,缚刃人水,蛇吞之,人与蛇皆死,水患息。王令人剖蛇腹,取赤城骨葬之,建塔其上,毁蛇骨灰塔,名为灵塔。在今大理府城南龙尾关内点苍山马耳峰下羊皮村。每年有蛇党起风来剥塔灰。时有谣曰:赤城卖硬土。今『龙王庙碑』云:洱河龙王段赤城云。永昌生两头牛。穆宗甲辰长庆四年,赐南诏王金印。是年王卒于东京,在位八年,弟丰佑立。丰佑慕中国之风,独不肯连父名。丰佑石刻作劝丰佑 册封滇王 伪谥昭成王
|
|-
|
丰佑,唐穆宗甲辰长庆四年卽位,年七岁。唐遣京兆少尹韦审规持节册封为滇王。王遣洪成酋等人谢。明年,改元保合,又改元天启。西僧赞陀啒哆建鹤庆元化寺。先是,鹤庆地水淹,僧杖刺东隅泄之。水中得樟木,刻为佛,咒之忽灵,远近名曰活佛。按:活佛,后至明成化间,福建莆田林俊为云南宪副闻之,亲至寺中,将佛火之,得金数百两入官,又毁他寺三百,人呼为林劈佛。建常平仓,筑邓川城。敬宗乙巳宝历元年,重修大理崇圣寺一名三塔寺。成先是,王嵯巅广寺基方七里。圣僧李成眉贤者建立三塔,高三十丈。佛一万一千四百,屋八百九十,铜四万五百九十筋。元和十五年经始,至是工竣。塔顶旧有铁柱款识云:「贞观六年尉迟敬德监造」,盖寺之建久矣。重修云南东寺塔,高百五十尺,西寺塔高八十尺,二寺亦贞观间将作大匠尉迟敬德所建。文宗丁未太和元年,王母出家,法名惠海。太和二年,用银五千,铸佛一堂,废道敎。太和己酉三年,僧梦岛造永昌卧佛,长丈六。六月朔,星落如雨。命王嵯巅等寇蜀。先是,西川节度使杜元颖失士卒心,军逃入南诏,因此知蜀虚实。佑遂遣嵯巅等攻蜀,陷嶲、戎、卭三州,攻成都,止西郛十日,掠经书、宝货、子女无算,蜀中残敝。并寇梓州、蜀州。佑上表于唐,请诛元颖。唐改云南为鄯阐府。卽今云南府省城。太和四年,唐贬杜元颖循州司马,以义成节度使李德裕为西川节度使。裕至西川,建筹边楼,日召习边事者访问,凡山川险要,南道与蛮相入者图之左,西道与吐蕃相接者图之右,不啻身尝经历焉。乃奏请留北兵以重镇守,修甲胄、备器械。率户二百取一人习战,作雄边子弟等十一军。筑仗义、御侮、柔远诸城以扼要害,复卭崃关,徙嶲州治台登,以夺蛮险。令转卭、雅粟以十月而运,先夏而至,人不苦瘴,边境始安。至是使人于佑,责归所俘。太和五年五月,佑归所俘西川四千人于德裕。太和六年,佑掠骠国民三千,徙之拓东城。武宗乙丑会昌元年,佑遣军将晟君筑横渠道自磨用江至于鹤拓,灌东皋及城阳田,与龙佉江合流入于河,谓之锦浪江。又潴点苍山玉局峰顶之南为池,谓之高河,又名冯河。更导山泉共泄流为川,灌田数万顷,民得耕种之利。会昌六年九月,佑攻陷安南,经略使裴元裕死之。宣宗丁卯大宗元年,佑妃卒,佑郁郁不乐,臣下请选妃女备后宫。得罗部今云南府罗次县。一美女进之,有宠。女好佛,建罗次寺,至今灵异。六月大旱,佑令僧寿海祈雨。僧曰:「昔汤旱七年,六事自责,天雨七日。今王酒色妄杀,天怒不雨。王如改悔,天雨自至,何以祈为?」佑如僧言,自责自改,数日果雨。佑女至崇圣寺进香,回至城西,为一乘白马人摄去,寻之不得。佑告于西僧赞陀啒哆,哆曰此山神也。乃设灯照之,果在苍山下。哆怒欲行法,移山于河。山神惧,献宝珠供佛,佑乃已。大中十二年,佑遣段酋迁陷安南都护府。遣段宗榜救缅。榜,汤今云南府宜良县地。人,佑之勇将。先是,狮子国侵缅;屡求救,至是许之。按:缅甸卽汉之掸国,唐之骠国,其历代莫考。当宋元之时,屡败王师。明太祖洪武十年,缅头目招扳南进贡。十九年,使行人司钱古训赍诏立宣尉司。二十年,缅犯景东。二十一年,犯他郞甸,沐英命都指挥宁正平之。三月,犯定边,沐英同都督冯诚平之。景泰三年,王骥赏缅孟养地。缅喜,乃擒献麓川贼。嘉靖初,缅火烧赍金牌官,中终年猖獗海上,遂至难制。○考自永昌府腾越州入缅,止三十四程。腾越一日南甸、一日罗必斯、一日郞、一日甸头、一日甸尾、一日蒙腰、一日甸蓝、一日蒙怜路、一日空地、一日蒙来路、一日大市、一日龙江、一日锅地、一日人列渡、一日江头城、一日景怜、一日及、一日马来城、一日赖当、一日山头、一日甸头、一日阿只、一日吴细辰、一日折弓、一日阿越。由阿越下水,九日卽至缅城。其地有五大城,江头、太公二城之外,又有马来、安正国、蒲甘缅王三城。酋住金楼,民住竹楼。其下称酋为卜剌浪,称酋妻为米泼剌。酋出人乘轿,水有舟筏。官名有招孟、招彔、招刚三等。官无大小,倶金银花宝带。无弓箭。其水有金沙江,险恶,缅恃以为固。涸时,亦仅五里。俗敬佛,重罪对佛发誓,凭僧处断。○入缅又有三道:一由潞江西上;一由腾越七日至麓川;一由景东从木通甸至湾甸渡入芒市,十日至麓川。○此外从潞江上流蒙来渡至景乐沿河有小渡十馀处,皆可通。又有三道:一由天步马,一由湾甸,一由阿郊地界,皆可入缅。宣宗己卯大中十三年,陷播州。李德裕旣贬死,西川节度使所任皆非人,侥佯边功,发兵十万袭滇,自建昌入,佑命子世隆为坦绰,同王嵯巅迎战于古宗,今丽江府铁桥以北地。杀唐兵数万人,立铜柱于界上。世隆之母,佑妃也,出家号师摩矣。尝随佑至罗浮山白城,建一寺,南壁画一龙,是夜龙动,几损寺,妃乃复画一柱锁之,始定。按:妃本渔家女,喜浴。为妃后,仍常泛舟西洱河,屏人潜浴于水,感金龙与交,生世隆。隆七岁,拳握始开,有文在其掌曰:通番打汉。古宗之战,唐帝惧世隆为患,妻以宗室女,伺察其所为。女以世隆年庚潜送于帝。帝使太史推之,知其感龙精而生。是年,丰佑卒于东京,在位三十五年。子世隆立,以王嵯巅摄政。段宗榜救缅,回至腾越,闻佑卒,世隆立,嵯巅摄政,移书王嵯巅曰:「天启不幸,驾崩嗣幼,闻公摄政,国家之福。榜救缅以败狮子国。缅酬金佛,当得敬迎。奈中国无人,惟公望重。榜抵国门之日,烦亲迎佛,与国增光。」云云。嵯巅不知是谋,至日迎之。榜令巅拜佛,突斩之于佛前。讨其弑劝隆晟之罪也。榜熔佛得金数千两。时有缅人奉香火者在榜,默祝曰:「愿世代奉敬,今不如愿,惟愿世尊轮生,灭彼国祚。」后果生郑买嗣篡国,灭蒙氏。
|
|-
|世隆『唐书』作酋龙。 伪谥景庄皇帝僭称帝始此,以后郑、赵、杨、段、高五姓之国咸效之。
|
|-
|世隆,唐宣宗己卯大中十三年卽位,年十六岁。明年,为懿宗庚辰咸通元年,改元建极。改西京曰中都,东京曰上都。先是,德宗贞元间,西川节度使韦皋开道通南诏,令岁入贡。异牟寻、寻阁劝二世事唐唯谨,迨劝龙晟及丰[佑],又数数扰边,大为唐患。又以世隆之名犯太宗、元宗庙讳。唐不册封,隆益致怨望。至是自称皇帝,遣兵取乌蛮、僰、爨之地,置东川郡。前节度使杜悰变韦皋制度,侵扰蛮中。隆绝朝贡,寇播州。至是李福为节度使,隆遣清平官董成至成都,移书于福。成与福抗礼,福囚之。上闻,有诏释成,召至京师,见便殿,遣还。咸通二年,遣兵陷安南。左仆射同平章事杜悰言:「西川兵弱,南诏强盛,未可轻绝。宜遣使祭吊,谕令改名,行册礼。帝肯之。会隆复寇嶲州,遂止。咸通三年,隆亲寇蜀,取万寿寺石佛归。时高真寺僧崇模有神术,从征。军中乏粮,又値岁暮,士卒思归,僧咒沙成米,咒水成酒,士卒各醉饱。一日僧化蝶回国乱宫,世隆妻以书达隆。隆答曰:妖若再来,令宫人于其衣背绣蝶。后僧复至,宫人绣之。隆见僧衣有蝶,令斩之。刑七次,首不殊。僧自云:用茅锯之乃断。果然。人见僧魂化一黑鹏飞去,盖僧本高真寺鹏巢中所得之儿也。咸通四年,寇西川。咸通五年,陷安南、邕管。咸通六年,陷嶲州。咸通七年,复攻安南。岭南西道节度使高骈救之,隆兵大败,骈遂定安南。咸通十年,隆遣使杨酋庆等入朝,谢释董成之囚。归成都俘三千人。定边节度使李师望杀其使,隆怒,率众攻蜀,陷嘉州。咸通十一年正月,陷黎州,入卭徕关,围雅州,击卭州,遂进攻成都。次眉州,西川节度使卢耽畏众寡不敌,通使请降。继而唐遣东川节度使颜庆复、大将宋威等率兵来战。世隆败屯星宿山,宋威戍沱江。隆迎战于毗桥,不胜,趋沱江,中伏。城中又出突将,夜火隆营,夺升仙梁。隆大败,奔双流江,无梁以渡,乃伪请和,三日梁成而济。咸通辛卯十二年,立鄯阐王宫。咸通壬辰十三年,于白崖诸葛武侯所立铁柱之地,铸天尊柱,高八尺。蔚昔年曾至铁柱宫,其地界白崖、弥渡、蒙化三境之间。其柱刻字云:建极十三年岁次壬辰四月朔庚子十四日癸丑建立。咸通十四年,攻黔中。又寇西川,作浮梁济大渡河,防河兵马使黄景复伏兵,半渡击败之。会隆国中新兵继至,接战,景复败走。隆进兵陷黎州,入卭徕关。遂遣王保诚等四十人谩书诣剑南节度使牛丛,欲假道入朝,请憩蜀王故殿。丛囚其使三十八人,释酇咙及段酋迁二人还。隆乃退兵至新津而旋。僖宗乙未乾符二年,攻雅州。西川节度使高骈追至大渡河,大败之,俘酋长五十人,收复黎州、卭徕关,斩黄景复以狥。乾符三年,遣使诣高骈请和,不许,斩使者一人。隆怒,自是唐使至不拜,惟拜和尚。骈知之,乃遣僧景仙往谕公主事,隆乃下拜定盟。禧宗丁酉乾符四年二月,复寇蜀,高骈御退之。骈又结吐蓄尚延心嗢、末鲁褥月等为间,筑戎川州、马湖沭沐源川、大渡河三城,列屯拒险,料壮卒为平夷军。世隆气夺,因恚发疽,卒于越嶲景净寺,在位十八年,子隆舜立。
|
|-
|}
===Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆舜,唐僖宗丁酉乾符四年卽位,年十七岁。明年,改元贞明,又改元嵯耶、承知、大同,改国号曰大封民国。遣使于唐请和,诏许之。自劝龙晟至世隆以来,侵蜀伐安南,用兵五十馀年,帑藏不给,横敛于民,上下倶困。舜立,耽于酒色,委政臣下,故愿求和于唐,乃遣段宝诣岭南节度使辛谠,请修好。谠奏,许之,以息边患。乾符六年,遣使于唐求和亲,无表,只用牒,称弟不称臣。唐帝召百官议,礼部侍郞崔澹曰:「南诏无礼,恐贻后笑。」使者上书与澹争。帝谕解之。议者谓中国多故,南诏寖强,不若权与和亲。便从之。僖宗庚子广明元年春正月,唐命宗正少卿李龟年来和亲。僖宗辛丑中和元年,上表款附。中和癸卯三年,唐以宗室女为安化长公主,妻隆舜,僖宗乙已光启元年,遣宰相赵隆眉、清平官杨奇鲲、段义宗三人,朝唐帝行在,且迎公主。高骈在淮阳飞章上言:「三人南诏心腹。宜止而酖之。」唐帝从其言。隆眉等死,南诏遂不复振矣。是年昆仑国进美女,舜嬖之。光启二年地震,龙首、龙尾二关、三阳城皆崩。昭宗己巳乾宁四年,隆舜多内嬖,常信谗以诛其下,淫虐日甚。竖臣杨登弑之于东京,在位二十年,子舜化贞立。
|
|-
|}
===Shunhuazhen舜化贞 伪谥孝哀帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|舜化贞,唐昭宗丁巳乾宁四年卽位,年二十一岁。明年,改元中兴。上书于唐,朝廷欲报之。利州刺史王建上言:「臣在西南,彼必不敢犯塞,小夷何足辱诏书。」遂止。昭宗光化二年,立五学敎主。十一月,诛杨登,族其家。光化庚申三年,铸崇圣寺丈六观音,清平官郑买嗣合十六国铜所铸,蜀人李嘉亭成像。一说唐天宝间,崇圣寺有僧募造丈六观音像,未就。夜忽雨,旦视之,铜也,卽取以铸像。像成,白光弥覆凡三日夜,至今人称为雨铜观音。唐昭宗壬戌天复二年,舜化贞卒,一说实郑买嗣弑之。,在位五年。化贞有一子,生甫八月,郑买嗣主国事,遂启贞妻曰:「母后深宫,群臣无主,臣当抱太子临朝。」贞妻是其言,以子付之。买嗣抱子出,潜手伤其阴,子哭不已,乃送回宫中。明日,子死。贞妻疑而诘之,买嗣怀不安,遽起兵杀蒙氏亲族八百人于五华楼下,遂簒立焉。
|
|-
|按:蒙氏南诏大蒙国,自细奴逻禅立,起唐太宗己酉贞观二十三年,讫昭宗壬戌天复二年,传十三世,共二百五十五年。
|
|-
|}
==Dachanghe Generations《大长和国 传三世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dachanghe Generations《大长和国 传三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|郑买嗣又名。 伪谥圣明文武威德桓皇帝。
|
|-
|郑买嗣,又名,唐巂州西泸令陷南诏臣蒙氏,为清平官郑回之七世孙。
隆舜时历官侍中,权势日重。隆舜巡幸无度,留买嗣守国,遂专政柄。舜化贞时为相,化贞卒,嗣贼杀其子,簒蒙国,于唐昭宗壬戌天复二年十二月卽位,年四十二岁,国号大长和,仍都大理。明年,建元安国。后梁太祖开平丁卯元年,建普明寺。开平三年,铸佛一万尊,送寺祈福,为杀蒙氏八百人故也。开平四年八月,买嗣卒,在位八年,子仁旻立。
|
|-
|}
===Renmin 《仁旻 伪谥肃文太上皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|仁旻,后梁太祖庚午开平四年卽位,年二十二岁。明年,改元始元,又改元天瑞、景星、安和、贞佑、初历。末帝甲戌乾化三年,旻攻蜀。蜀高祖王建发兵拒之,旻兵大败,溺水使者万馀人。后唐庄宗癸未开同光元年,施宫寺灾,僧智照撰『封民三宝记』。同光二年旻以朱鬃白马求婚于南汉刘龑,龑以增城公主妻之。明宗丙戌天成元年八月,仁旻饵金丹,躁怒,常杀人,遂暴卒,在位十六年,子隆亶立。
|
|-
|}
===Longdan 《隆亶 伪谥恭惠帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆亶,后唐明宗丙戌天成元年卽位,年十二岁,明年,改元天应。明宗戊子天成三年,东川节度使杨乾贞入朝,弑隆亶而立赵善政,计亶在位二年。
|
|-
|按:郑氏大长和国,自买嗣簒位,起唐昭宗癸亥天复三年,讫后唐明宗戊子天成三年,传三世,共二十六年。
|
|-
|大天兴国一作兴源国。 一世
|
|
|}
==Dayining Generations《大义宁国 一世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Yang Qianzhen 《杨乾贞 伪谥肃恭帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|杨乾贞于后唐明宗己丑天成四年夺大天兴国赵善政之位,改国号曰大义宁国,建元兴圣,又改元大命。乾贞萂村人。今大理府宾川州所属地。母名弥彔,有美色,蒙隆舜私焉。有孕,适渔人杨氏,生乾贞,后又生诏。其父捕鱼,贞立船头,见水中有人龙衣冠冕,左右有凤鸟,白光拥护,乃呼父视之。父见是贞之影,大奇之。长仕郑氏,官至东川节度使。至是夺善政位而自立。贞在位,贪暴特甚,中外咸怨。后晋高祖丁酉天复二年,通海节度使段思平起兵讨之。贞遣弟杨诏等五人出拒。诏兵败,乾贞出奔。思平遂得位,寻赦其罪,废为僧。计贞在位八年。
|
|-
|}
==Dali Generations《大理国 传十四世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siping《太祖圣神文武皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段思平,其先武威郡北人,世为南诏蒙氏将。唐元宗辛卯天宝十载,及甲午天宝十三载,唐再伐云南,云南王蒙
阁逻凤命世子凤伽异、大军将段俭魏迎战于点苍山及西洱河,两败唐兵。以功升俭魏为清平官,赐名忠国,寻拜相,六传而至思平。其母因过江,水泛触浮木,若有感而娠,生思平,并其弟思良。思平为幕览,小府副将也。常游山中,得为帝之谶,又每多异徵。时东川节度使杨乾贞之弟杨诏者已贵,闻而忌之,使人贼思平。思平逃匿于崇恩寺,在大理府城南九里。捕者追至,见蛛网盈寺门,不入,故得脱。后积战功,使为通海节度使。后唐明宗己丑天成四年,杨乾贞夺赵善政之位。受诏之谮,常欲除思平。平卜于秀山神祠,就其舅爨判自匿。后晋高祖丙申天福元年,乾贞索捕思平甚急。会善政臣守高方,素与思平善,密遣人招思平。思平与其弟思良、军师董迦罗走就之。皆裂冠,变姓名,为猎者,牵一犬至品甸波大村今大理府云南县地。宿旅舍。舍有戟,生牛革裹之,是夜风起,戟忽洞革出。思平惊曰:「是何銛利?得非神戟乎!」问主人曰:「戟何为?」曰:「以防夜耳。」曰:「防夜莫若犬。」遂以犬易戟去。行至叶镜湖,湖在大理府云南县地得神马。饥取野桃而食,核上有虫啮「靑昔」二字,思平解为十二月二十一日,意其吉兆。于是急趋而前,借兵于东方黑爨三十七蛮部,会于石城,今曲靖府是。以董迦罗为军师。兵集之期,适十二月二十一日也。所向皆克,遂进攻大理,讨干贞。时诏等陈兵据桥,军不能过。思平夜忽得三梦:人无首;玉瓶无耳;镜破。觉而告其下。迦罗觧之曰:君乃丈夫,去首为天;玉瓶去耳为王;镜破则无对者,此神示吉兆。是日,有被缨浣沙妇,指渡处曰:「人从我江尾,马从三沙矣,尔国名大理。」从之,乃得过江,击诏等杀之。乾贞闻诏等军败,出奔。思平卽位,时天福丁酉二年也,年四十四岁。建号大理国,建元文德,仍都大理。天福三年封董迦罗为相国,封高方为岳侯,分治成纪、巨桥等地。封爨判为巴甸侯。祠秀山神,免东方三十七蛮部徭役,赦国中凡有罪无子孙者。天福四年,赦杨乾贞罪,废为僧。一说乾贞败后,挈其妻子奔永昌郡。思平遣兵追之,至万剑树,乾贞自缢而死。思平俘其妻子亲属。帝好佛,岁岁建寺,铸佛万尊。后晋出帝甲辰开运元年帝崩,在位八年,子思英立。
|
|-
|}
===Duan Siyin 《文经皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siyin 《文经皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思英,后晋出帝甲辰开运元年卽位,明年,为出帝开运二年,改元文经。帝母杨氏桂仙娘没而为神,屡著灵应,封为楡城宣惠圣国母。是年,帝叔思良争位,废帝为僧,法名宏修大师。在位一年,叔思良立。一说思英素不肖,思平在日,常欲废之,不果。迨卽位,愈淫戏无度,群臣废之,而立思良。
|
|-
|}
===Duan Siliang 《圣慈文武皇帝 太祖之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siliang 《圣慈文武皇帝 太祖之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思良,后晋出帝乙巳开运二年卽位,明年,改元至治。后周太祖壬子广顺二年,帝崩,在位七年,子思聪立。
|
|-
|}
===Duan Sicong 《思聪 伪谥至道广慈皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sicong 《思聪 伪谥至道广慈皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思聪,后周太祖壬子广顺二年卽位,明年改元明德,又改元广德。宋太祖乙巳开宝二年,思聪卒,在位十七年,子素顺立。
|
|-
|}
===Duan Susun 《素顺》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Susun 《素顺》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素顺,宋太祖乙巳开宝二年卽位。明年,改元明政。先是,宋太祖丁卯乾德五年春,王全斌平蜀,还京师,请取云南,负地图进。太祖鉴唐之祸,以玉斧画大渡河为界,曰:「此外非吾有也。」由是段氏得据南诏,相安无事。太宗乙酉雍煕二年,素顺卒,在位十六年,子素英立。
|
|-
|}
===Duan Suyung 《素英 伪谥昭明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suyung 《素英 伪谥昭明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素英,宋太祖乙酉雍煕二年卽位。明年,改元广明,又改元明应、明圣、明统、明治。太宗至道二年,述『传灯录』。真宗己酉大中祥符二年,素英卒,在位二十四年,子素廉立。
|
|-
|}
===Duan Sulong 《素隆 伪谥秉义皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sulong 《素隆 伪谥秉义皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素隆,宋真宗壬戌干兴元年卽位,明年改元明通。仁宗丙寅天圣四年素隆禅位为僧,在位四年。侄素贞真立。
|
|-
|}
===Duan Suzhen 《素真 伪谥圣德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suzhen 《素真 伪谥圣德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素真,宋仁宗丙寅天圣四年卽位,明年改元正治。仁宗辛巳庆历元年素真禅位为僧,在位十五年,孙素兴立。
|
|-
|}
===Duan Suxing 《素兴 伪谥天明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suxing 《素兴 伪谥天明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Lianyi 《廉义 伪谥上德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Lianyi 《廉义 伪谥上德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|廉义,宋神宗乙卯熈宁八年卽位。明年,改元上德。遣使入贡于宋。熈宁十年,又改元广安,作八龙王会。神宗庚申元丰三年,杨义贞杀廉义而自立。计义在位五年,自义贞弑其主廉义而自立,簒位仅四月,鄯阐侯高智升命子清平官高升泰起东方爨僰兵,讨而诛之,立廉义之侄寿辉。
|
|-
|}
===Duan Shouhai 《寿辉 伪谥上明皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
===Duan Zhengming 《正明 思廉之孙 伪谥保定皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
==Da Zhongguo Generations 《大中国》==
===Gao Shentai 《高升泰 伪谥富有圣德表正皇帝》====
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|高升泰,宋哲宗甲戌绍圣元年,受大理国段正明之禅卽位。改国号曰大中国。明年,改元上治。升泰,岳侯高方之裔,大理点苍山莲花峰下芒涌溪人。将生,其父袭岳侯,智升往石云寺在点苍山白雪峰麓进香回,遇一老叟云:「尔家将生贵子,可速归。」智升至家,而升泰适生,心颇异之。及长,有材器,仕为清平官,兼九爽之事,誉望日重。思廉出游,猝遇烈风,吹踣其马。廉将坠,智深跃前扶之。廉德智升,赐以宫人及珠玉。杨允贤(判)〔叛〕,廉命智升讨之,以功加太保,封德侯,旋晋鄯阐侯,世袭。及杨义贞簒逆,智升令升泰起东方兵,诛义贞而立廉义之侄寿辉。辉以智升为布燮,升泰袭鄯阐侯。辉在位灾异迭兴,因禅位于思廉之孙正明。明为君不振,人心归高氏。遂请升泰为君,而正明禅以位焉。哲宗丙子绍圣三年,升泰在位二年,寝疾。遗命曰:「我之立国,以段氏之弱,我死,必以国仍还段氏,愼勿背我。」及卒,其子高泰明遵遗命,还位正明之弟正湻。段氏复兴,号后理国。高氏相之,政令皆出其门,国人称为高国主,段氏拥虚位而已。
|
|-
|}
==Houli Guo Generations 《后理国》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhengchen 《段正湻 大理国正明之弟 伪谥中宗文安皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正湻,宋哲宗丙子绍圣三年复得国,卽位,号后理国。以高泰明为相国,执政柄,高泰运为栅主。明年,改元天授。又改元开明,天政,文安,赦徭役。筑楚雄城,在今楚雄府城西北二里。以封高泰明之侄高明亮。徽宗癸未崇宁二年,遣高泰运奉表入宋,求经籍,得六十九家,药书六十二部。鄯阐李观音得来朝,进金马杖八十节,人民三万三千户。湻赐得八章礼衣,龙头剑,擢为安东将军。蔚按:蒙氏时有安东将军,季李珠所筑安东城,在今大理府赵州城东二里。缅人、波斯、昆仑三国进白象及香物。十月,彗星见西方,大疫。徽宗戊子大观二年,正湻禅位为僧,在位十二年,子和誉立。
|
|-
|和誉又名正严 封云南节度使大理国王,伪谥宪宗宣仁皇帝
|
|-
|和誉,宋徽宗戊子大观二年卽位。明年,改元日新。又改元文治、永嘉、保天、广运。七月中元节,各方贡金银、罗绮、珍宝、犀象万计,牛马遍点苍。徽宗辛卯政和元年,地大震,损十六寺。三十七部判叛〕,高相国泰明讨平之。使四子高明清居鄯阐镇守。政和五年,缅人进金花、犀象。政和六年。遣儒官钟震、黄渐赍敕褒高泰朋相国忠贞,封平国公。是年,遣使入贡于宋。高泰明卒,封国师。泰明生八子,高智昌以罪流死。其下伊、何二人谋为执仇,乘誉入寺进香,图弑逆,事露被收。誉嘉二人之义,赦之,为立义士冢。高泰运立,主国事。六月,三日并出。政和丁酉七年,命子紫琮充进奉使,入贡于宋。诏遣使册封誉为金紫光禄大夫、检校司空、云南节度使、上柱国、大理国王。徽宗己亥宣和元年正月,彗出,慕宁、远、矣、破、马等叛。三月,出师征之,兵败。三十七部蛮复叛。陷鄯阐,高明清死之。郡臣以高升泰侄商量成有德,请立为相,号中国公。徽宗丙午靖康元年五月,金星入月,大火,焚三千九百家。南宋高宗丙辰绍兴六年,王遣使贡象马于宋,广西经畧安抚使奏之,诏护送行在,优礼答之。绍兴十六年三月十四日,大雾,历二十四日方开。高宗丁卯绍兴十七年,王老,因诸子内争外叛、遂禅位为僧,在位三十九年。子正兴立。
|
|-
|}
===Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|正兴,南宋高宗丁卯绍兴十七年卽位。明年,改元永贞,又改元大宝、龙兴、盛明、建德。高量成让相位与侄寿贞,退老楚雄城。人化其德,名城曰德江城。孝宗癸未隆兴元年三月,寿贞卒。寿昌立为中国公。孝宗壬辰乾道八年四月,重雾,十六日方开。正兴禅位为僧,在位二十五年,子智兴立。
|
|-
|}
===Zhixing 《智兴 伪谥宣宗功极皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixig 《智兴 伪谥宣宗功极皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智兴,南宋孝宗壬辰乾道八年卽位,明年,改元利贞。又改元盛德、嘉会、元亨、安定。遣李观音得等至广西横山砦今在广西南宁府江上。求市马。李观音得夺寿昌位,与侄贞明。阿机起兵夺贞明位,还寿昌。贞明遂据鹤庆,号明国公,伪谥义地威天聪明仁帝。高妙音自白崖起兵,据鄯阐。时有妙音之甥成贤、成正二人来谒,意在夺鄯阐。妙音觉之,与之盟于天王庙。二人口含丁香叶,出庙吐之曰:「盟非我也,叶也。」未几,二人起兵,方战,见白马将斩之。白马将,乃庙中二力士也。光宗庚戌绍熙元年,修十六寺。宁宗乙卯庆元元年,修龙首、龙尾二关,三阳城。宁宗庚申庆元六年,智兴卒,在位二十八年,子智廉立。
|
|-
|}
===Zhilian 《智廉 伪谥享天皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhilian 《智廉 伪谥享天皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智廉,南宋宁宗庚申庆元六年卽位。明年,改元凤历。又改元元寿。使人入宋求『大藏经』一千四百六十五部,置五华楼。宁宗乙丑开禧元年,智廉卒,在位五年。弟智祥立。
|
|-
|}
===Zhixiang 《智祥 伪谥神宗皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixiang 《智祥 伪谥神宗皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智祥,南宋宁宗乙丑开禧元年卽位。明年,改元天开。又改元天辅、仁寿。征三十七蛮部,至寻甸平,河水绝流。理宗丁酉嘉(禧)〔熙〕元年,封高隆鄯阐王,以高泰祥为相国,以光日为演习。大府主将也。举贤育才,时和年丰,称治国焉。理宗戊戍嘉(禧)〔熙〕二年,智祥禅位为僧,在位三十三年。子祥兴立。
|
|-
|}
===Xiangxing 《祥兴 伪谥孝义皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|祥兴,南宋理宗戊戌嘉(禧)〔熙〕二年卽位。明年,改元道隆。理宗甲辰湻佑四年,蒙古兵出灵关,伐大理。祥兴遣将高禾迎战,禾败死之。段连佑归宋,宋遣使吊祭,致经书、银缎,为高禾拒蒙古兵战殁也。理宗辛亥湻佑十一年,为蒙古宪宗蒙哥之元年,祥兴卒,在位十三年。子兴智立。
|
|-
|}
===Xingzhi 《兴智 赠天定贤王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|兴智,南宋理宗辛亥湻佑十一年卽位。明年,改元利正。又改元兴正、天定。是年,南宋理宗壬子湻佑十二年,为蒙古宪宗之二年七月丙午,太弟忽必烈等奉宪宗命,伐大理。受制专征,以大将兀良合台总督军务。八月,次临洮,由六盘逾吐番,凡行山谷二千馀里无人之境。先遣王律术、王侯、王鉴来谕大理,道阻而还。九月,次忒刺,分三道进。兀良合台率西道兵,由晏当路,诸王抄合也只烈率东道兵,由白蛮,忽必烈率劲骑,由中道。乙巳,至满陀城,留其辎重。十月,过大渡河。十一月,至白蛮打郭砦。十二月,再遣三使入大理,招兴智,皆被杀。智命相国高泰祥守金沙江,与蒙古将伯颜不花、虎儿敦等相持。忽必烈命众以革囊潜济江,破吐番,渉摩荻,出石门,所过降之,遂进薄大理。泰祥回军,奉兴智拒战,不胜。蒙古兵入上关。智奔鄯阐,泰祥退至统失逻先为姚安府,府裁,今为姚州,属楚雄府。募兵于三十七部未至,而蒙古兵已长(躯)〔驱〕而入,泰祥被执大理,不屈,乃斩于五华楼下。祥临刑叹日:「段运不回,天使其然,为臣殒首,盖其分也。」时白日正午,忽云起雷震,天鼓大鸣,忽必烈曰:「忠臣也。」泰祥夫人段氏,抱孤儿高琼、高长寿等伸诉。忽必烈目儿顾左右曰:「此忠臣后,宜善视之。」许以世其官。高泰祥为大中国升泰九世孙。遂灭段氏而有其地,得五城、八府、蛮部三十有七。乘胜入吐蕃,降其酋。明年,南宋理宗癸丑宝佑元年,为蒙古宪宗之三年,忽必烈班师。大将兀良合台拔鄯阐,获兴智以献,宪宗命赦之,封为摩诃罗嵯,管领八方,仍守其地,世袭总管。计兴智在位二年,宪宗授兀良合台银印,加大元帅,还镇大理。以刘时中为宣抚使,与兴智同安辑焉。南宋理宗庚申景定元年,为蒙古世祖忽必烈之中统元年,兴智率其季弟段信苴福北行,朝于世祖,道卒。计为总管又七年。蒙古遣使来祭吊,文曰:「段氏承八姓正位,归有新统,旣顺天时以向义,犹得国王以栖迟,实国家待远方之仁,由贤王能左右之义。受命以来,朝夕愓励。赖尔维勤,用征不廷,正当共享亨嘉之运,胡意遽罹霜露之灾,呜呼!当朕未集大统,乃为叔季之国。兹旣承景运,合正君臣之称,参录不替于子孙,诏禄宜昭于典册,特遣太常省祭,赠为后理国向义天定贤王段公,尚赖神麻,永保祚土。所赠王爵,后不为例。」明年,南宋理宗辛酉景定二年。为蒙古世祖中统二年,世祖敕授王之弟信苴日则段实。总管守大理。命之曰:「向率我以临尔境众据国人之请,因从城下之盟,款附而忠勤益著。庸示至优之礼,以彰同视之仁。可革帝号,锡以虎符,总理大理、鄯阐、威楚、统矢、会川、建昌、腾越诸郡,抚恤已附之民,招集未降之国,卿其勉之。」
|
|-
|按:段氏后理国,自段正湻复国,起宋哲宗丙子绍圣三年,讫南宋理宗癸丑(实)[宝应元年,传八世,共一百五十七年。
|
|-
|总计段氏大理、后理二国,传二十二世,共三百零十五年。
|
|-
|增订南诏野史下卷
|
|-
|}
==Hu Weixianmen Wing DynastyRevisions《大淸湖南武陵胡 蔚羡门订正》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hu Weixianmen Wing Dynasty Revisions《大淸湖南武陵胡 蔚羡门订正》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段氏总管除天定贤王段兴智受封总管七年外起段信苴日卽段实讫段世,共袭十二世。
|
|-
|段实一名信苴日。
|
|-
|段实,于南宋理宗景定二年,蒙古世祖之中统二年,入朝于世祖,袭总管,赐虎符,领大理、威楚、鄯阐、统矢、会川、建昌、腾越等城,自万户以下皆受节制。南宋理宗癸亥景定四年,为元世祖中统四年,蒙古设大理都元帅府,命昔撒昔总制鬼国、大理两路。理宗甲子景定五年,为世祖至元元年,妖僧舍利威结威楚、统矢、鄯阐及三十七蛮部叛,实讨之,大破于威楚、统矢、安宁等处,又破释多罗十馀万众于洱河海口。南宋度宗丁卯咸湻三年,蒙古世祖至元四年,以皇第五子忽哥赤为云南王,镇大理。至元五年,忽哥赤受命与安南国王讨占城、真腊。南宋度宗咸湻六年,世祖至元七年,置大理路军民总管府。南宋度宗辛未咸湻七年,为蒙古世祖至元八年冬十一月,世祖改国号曰元。云南王忽哥赤为元帅寳和丁所杀。元伐金齿、缥甸,降之。分大理三十七蛮部为南北中三路,遣阿鲁忒儿宣抚大理,招谕诸蛮。南宋度宗辛未咸湻十年,元世祖至元十一年,封宗室脱忽鲁为云南王,命云南行省平章政事赛典赤建云南各衙门。妖僧舍利威复叛,实遣石买等诡为商贾,执贽往见,挺矛鏦杀之,枭首于市。元世祖赐实白金及金织纹衣。南宋恭宗丙子德佑二年,元世祖至元十三年,授实为大理等处宣抚使。缅甸叛犯永昌,元命纳速剌丁赛典赤之长子,后封延安王。伐之,破砦三百,因天暑,还师。复命诸王相吾答儿、右丞太卜、参政也罕的斤伐缅,招讨使法烈先驱造舟于阿若、阿禾两江,进拔江头、太公二城,金齿、乌蒙皆降。南宋帝昺庚辰祥兴二年春二月,为元世祖忽必烈之至元十七年,宋亡,元入主中国。以忽哥赤之子也先帖木儿为云南王。命忙兀鲁徵八百媳妇。缅败忽都帖木儿兵,诏思、播土官田、杨二处兵助讨之。命征缅官番听云南王节制。至元辛巳十八年实率子阿庆入觐,元祖嘉其忠,晋大理、威楚、金齿等处宣慰使都元帅。升辞,复拜为云南诸路行中书省参知政事,留阿庆宿卫东宫。至元壬午十九年,实受敕迎征缅师,于金齿病卒。诏以其弟忠为大理宣慰使兼军民万户府,赠实为武定公。实任职二十二年。
|
|-
|}
===Duan Zhong《段忠 实之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhong《段忠 实之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段忠,元世祖癸未至元二十年袭。是年,忠随元元帅阔木征芒部、两林蛮及会川等处,破贼立功,元授忠为善阐酋,赐虎符。元置邦牙宣慰司于蒲甘城,命云南王也先帖木儿率招讨使怯烈总兵三千往镇之。忠奉云南王命伐武定。冬十二月忠卒,以实之子阿庆为大理金齿等处宣慰司都元帅、佩金虎符,封宣武将军,晋镇国上将军,尚公主。遣归,复授云南行省参政。忠任职一年。
|
|-
|段庆卽阿庆。实之子
|
|
|-
|段庆,元世祖甲申至元二十一年袭。至元二十五年以云南王也先帖木儿移镇大理,进封营王。至元二十七年冬十月,封皇孙甘剌麻为梁王,镇云南。至元二十九年改封梁王甘剌麻为晋王,镇北边。至元三十年,封甘剌麻之子松山镇云南。至元三十一年世祖崩,孙铁木耳立,是为成宗。成宗丙申元贞二年,置彻里路,卽车里军民宣慰使司。令与八百犬牙相制。秋八百叛命,也先不花征之。成宗己亥大德三年,云南水西土官宋隆济叛,贵州知州张怀德战死。云南行省麻九儿讨之,追杀贼首撒月,斩首五百级。庆奉敕征交趾,平之。入朝,带僧左黎同往,适成宗手疽甚,黎以法水洗之,立愈。帝欲试其术,乃掘地窖,令八人潜其中击鼓,佯云有怪,召黎治之,黎行法,顷之不闻鼓声,启窖视之,则八人已死。帝敬其法,封为国师。大德四年,缅人僧哥伦作乱。缅酋执其兄阿散哥也,寻释去,阿散乃率其党杀酋。酋次子奔诉京师,诏遣薛超兀儿率行省兵讨之。大德五年,金齿、八百叛,不输粮,杀官吏,元命右丞刘深、哈剌带、郑佑等征之。刘深协求水西土妇节金三千两、马三千匹,土官宋隆济遂叛,围深等于穷谷中,梁王阔率兵救,解之。冬,云南地大震,御史陈天祥谏伐西南夷,不报。大德七年,罢徵八百,免右丞刘深官,收符印。左丞相哈剌哈孙议深徼名首衅,丧师辱国,劝帝诛深,遂杀之。深卽往以兵逼南宋帝昺于谢女峡者。大德八年,立平云南碑于点苍山。顺元宣抚宋阿重获其叛叔宋隆济,朝命升职,赐衣一袭。滇池有蛟,化少年淫妇女,有神僧赵伽罗者,命黑胡神擒之,至噀水见形,斩之。神卽土主也。成宗丙午大德十年,罗雄土官阿那龙少叛,据越州。今在曲靖府南六十里,本唐之悦州,其川名鲁望。命右丞汪惟能讨之,追至曲靖,斩那龙少。是年庆卒,弟正袭。庆任职四十三年。
|
|-
|}
===Duan Zheng 《段正 庆之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zheng 《段正 庆之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正,元成宗丁未大德十一十年袭。正招蒙化山中生爨入籍。元授正为参政,仍大理军民总管。晋宁建盘龙寺。有神僧觉照者,段氏族人,号莲峰,游东山见龙潭绝幽胜,乃咒龙令徙。龙去,水涸,建寺其地。蔚按:莲峰僧于顺帝之至正末入定塔中。武宗海山戊申至大元年,沾益、乌蒙地大震,三日并出。至大二年三月,梁王松山风疾,诏封皇第七子西平王奥鲁赤之孙老的代镇云南。仁宗爱育黎拔力八达壬子皇庆元年,诏罢徵八百。皇庆癸丑二年冬十月,学士李孟奏准开科,三年一试。时九成殿生芝,天下共取士三百名,每榜云南取五名,内蒙古二名,塞目二名,汉人一名。以八月二十日初场,二十三日次场,二十六日三场。仁宗乙卯延佑二年十一月,封武宗子和世珠为周王,出镇云南。仁宗丙辰延佑三年,正卒,庆子隆袭。正任职十年。
|
|-
|}
===Duan Long 《段隆 庆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Long 《段隆 庆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段隆,元仁宗丁巳延佑四年袭,元授隆为大理军民总管。延佑己未六年,云南行省奏:「夷俗:凡土官无子,卽以妻代管。请听之。」诏曰可。延佑庚申七年,封甘剌麻孙王禅为云南王。英宗硕德八喇癸亥至治三年,进封王禅为梁王,封其子帖木儿不花为云南王。是年八月,诸王按梯不花、索孛罗、月鲁铁木儿等及御史大夫铁失弑帝于南坡行幄。九月泰定帝也孙铁木儿卽位。十二月流诸王月鲁铁木儿于云南。泰定四年,洱海有水怪,牛猪形短项金睛,兴水为患。大理一道人向隆取黄金百镒,隆与之,乃以金为索,沉于河,怪卽日徙于浪穹宁河。按:『六诏灵源记』云:宁河无底。明宣德间,有渔人李应捕鱼,网得金索,旋得旋断。一渔者诫之曰:可止矣。应贪甚,尽曵之,索将穷,惊其怪,风浪陡作,应并舟倶溺,至今为患。文宗图帖睦尔庚午至顺元年,以豫王阿忒思纳失里出镇云南。诸王秃坚据云南叛,杀廉访使,自称云南王。元诏枢密帖木儿讨之,发朵甘思等处兵分道进。至四川建昌、罗罗斯,权寻甸府官曲术集义兵讨秃坚,败贼伯忽于马龙,追至金马山,擒之。是年,隆以老退闲,子俊袭。隆任职十四年。
|
|-
|}
===Duan Jun 《段俊 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Jun 《段俊 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段俊,元文宗辛未至顺
二年袭,元授俊为云南行省平章。乌撒部奏:「云南驿输征甚苦,愿属四川。」奏下参政贾敦煕议之。是年俊卒,族弟义袭。俊任职一年。
|
|-
|}
===Duan Yi 《段义 俊之族弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Yi 《段义 俊之族弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段义,元文宗壬申至顺三年袭,朝命止授为承务郞、蒙化州知州。是年阿容禾叛于中庆路,义助兵讨平之,以功升参政。九月,乌蒙土官禄馀寇顺元,云南行省遣都事那海奉诏往谕,授馀为参政。冬十一月,云南行省奏:「国马每月上寅日给盐,饮之无病。因伯忽反,盐不给,马多死。」诏四川以盐给之。是年义卒,隆子光袭。义任职一年。
|
|-
|}
===Duan Guang 《段光 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Guang 《段光 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段光,元顺帝妥权帖睦尔癸酉元统元年袭,朝命止授为承务郞、蒙化州知州。番兵作乱,孟州判官李生等守白崖,値高蓬新败番兵,乗胜长驱破河尾关。光率兵大败之,斩馘无算,河水尽赤,为之不流,得战马甲仗数千。光赋凯旋诗云:「雨锁金门百里城,神州花木管弦声。齐天苍岳参云峻,界地楡河射月明。梵宇三千朝呗朗,招提八百夜香淸。恒沙善果心无异,何患愚夷治不平。」元统二年,光以先与梁王把匝剌瓦尔密孛罗因分域构隙,至是遣张希矫、杨生、张连等发兵攻梁王,不胜,士卒多死,希矫等遁归。顺帝至元元年,梁王侵大理,光自督兵与战于昆弥山卽今大理府赵州南之定西岭,梁王大败。凯还,侍翰杨天甫作『长寿仙曲』上光云:「蒙氏钟王气,驾驭万乗唐。南龙光对北金锁,东洱水朝西点苍,四面固金汤。江绿春杨柳,岸淸古雪霜。屏障龙吟梅破王,竹林鹤立菊舒黄,四季景如妆。此生诚庆幸,有眼睹明王。」光大喜,设宴谢之。顺帝辛巳至正元年,玉案山生水小赤犬,群走如飞。段雄正曰:「此天狗星所化,大兵压境之兆。」经二年方绝。又下铁雨山石,民屋倶穿,人値之多击死。梁王刺杀段氏臣高蓬。先是,光令蓬督兵罗那关,梁王使人暗招之,蓬不从,答之诗云:「寄语下番梁王翁,檄书何苦招高蓬,身为五岳嵩山主,智过六丁缩地公,铁甲铁盔持铁槊,花鞍花索驭花骢,但挥眼前黄石阵,孤云击破几千重。」梁王忌之,乃重贿蓬庖人,刺杀之。顺帝甲申至正四年,光卒,弟功袭。光任职十二年。
|
|-
|}
===Duan Gong 《段功 光之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Gong 《段功 光之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段功,元顺帝乙酉至正五年袭,朝命止授为承务郞、蒙化州知州。至正六年,木邦夷思可叛。元命河南参政贾敦熈督师会云南路兵讨之,以功为前锋,屡战克捷。叙功升功为大理总管,寻升参政。至正癸巳十三年,红巾贼流入建昌,旁掠云南边地。阿次失里讨平之。至正十五年三月,元窜太师脱脱于云南。中书右丞哈麻、御史袁赛因不花等陷之也。十二月,左丞相哈麻矫诏杀脱脱于阿轻乞之地,时年四十二岁,天下寃之,两日相荡。是年,梁王宫中有怪。左右启王曰:「盘龙寺僧莲峰,能驱邪。」王礼请至,行法,怪息。王喜,留宫中供养,至夜密问之曰:「今中原纷乱,后事如何?」僧曰:「二十年后祚尽矣。」至期明师果南下。至正十六年,黑井有毒龙,兴水溢井,损民居。莲峰建寺,书铁符沉井中,害息。又宁州有虎咥人,莲峰洒净水驱虎远去,明日虎果去。七月,元以四川廉访使蒲机云为云南诸路廉访使。至正癸卯二十三年三月,红巾贼明玉珍率其党李芝麻同弟明二等将兵三万攻云南。入金马山,梁王把匝剌瓦尔密奔楚雄。四月,梁王发中庆,至石碑村,红巾入城,梁王闻报,感而自咏云:「野无靑草有黄尘,道侧仍多战死人。触目伤心无限事,鸡山还似旧时春。」随命陜西参政车力帖木儿拒之,擒明二。时四方乘机窃发,群盗满山,功乃谋于外外杨智,字渊海者,同稽于卜,卜告吉。又得子宗、子秀兵至,功遂从梁王进兵,吕合败红巾于关滩江。红巾收合馀衂再战,杀段氏之骁将铁万户,又有江心庄人杨胜力战死。梁王为文祭之曰:「生于江心,为我门户,我旧不识,用备其数,能卫社稷,春秋与之,惟忠惟烈,尔则处之,噫! 义重于生,生必有死,丈夫之事,识者有几。愿气作山河,魂归苍洱,英杰复生,以保我之昆裔。」祭毕而哭,一军感泣。是夜,红巾屯古田寺,功令人焚寺,红巾乱,以铁骑捣之,死者大半,追至回蹬关,又大破之。副将谢得攻安宁,功力战杀二千人,谢得奔中庆。于夜功谍者拾得一书,乃明玉珍母寄珍书云:「自尔去后,老母平安,征云南务要得之。兵粮不足,随后发来,不可轻回。」功阅书,令杨智易其辞曰:「自尔去后,老母不安,臣下乱法。又闻中国人马入界,非止一处。尔须急回,迟则难保。大夏天统元年,太后平安书。」遂募亡命者赍书往。有打金箔人陈惠愿行,惟虑老母在。功许养其母,惠遂往。玉珍得书,挥之去令回报,迨夜,玉珍旋军。功追摄至七星关,大破其众。梁王回中庆,奏升功为云南行省平章,以主阿妻之。一日主与宴酣,歌『金指环』云:「将星挺生扶寳阙,寳阙金枝接玉叶。灵辉彻南北东西,皓皓中天光映月。玉文金印大如斗,犹唐贵主结配偶。父王永寿同碧鸡,豪杰长作擎天手。」功久居梁王府,嫡妻高夫人在大理作词寄功云:「风卷残云,九霄冉冉逐。龙池无偶,水云一片绿。寂寞倚帏屏,春雨纷纷促。蜀锦半间,鸳鸯独自宿,珊瑚枕冷,泪滴针穿目,好难禁。将军一去无度,身与影立,影与身独,盼将军只恐乐极生悲寃鬼哭。」至正二十四年春,功还大理,至洱海金鸡庙,夫人遣人适来报生子,功喜,作歌曰:「去时野火通山赤,凯歌回奏梁王怿。自冬抵此又阳春,时物变迁今又昔。归来草色绿无数,桃花正秾柳苞絮。杜鹃啼处日如年,声声只促人归去。」至正二十五年,功思新婚,欲往梁王所。员外杨智于壁间题诗留功,张希矫亦上书留行。功曰:「寳剑岂埋荒土物耶!」矫苦留不已,功怒流矫于顺州。顺州,前明属鹤庆府,今裁在永北厅城西一百二十里。唐时地名牛睒。遂与夫人别,倍道至中庆。梁王疑之,私议曰:「平章此来,得无有吞金马咽碧鸡之心。」其下有姤功者复谗构之。王与阿谋欲以孔雀胆毒功。私泄之,愿与西归。(今)〔令〕功周防,功不信。是年滇大旱,人言定远有禅僧连精,通瑜伽秘密敎,能降龙役鬼。启梁王,王遣人迎至,僧设坛祈雨,咒毕,钵中出一小蛇,遂大雨。王大喜,酬以金帛,辞,役鬼荷担,行空而去。顺帝丙午至正二十六年春,中原盗蠭起,临安廉访使支渭兴三恳休,梁王不允,遣使金闾慰,赐羔羊。渭兴自咏曰:「年高才薄忝淸流,欲挂朝冠不自由。且喜壮怀无诉谍,从敎行道有鸣驺。故园花木无由见,何日干戈定得休。九十春光还欲暮,放怀聊与醉金瓯。」重午节,梁王宫门外观射柳,随侍文武赐宴,支渭兴诗贺曰:「平地如席草如茵,少年将军酒半醺。朱鬣马穿人影过,绿杨枝逐箭锋分。旌旗色映宫前瓦,鼓角声飘海上云。何日鲸鲵倶授首,普天偃武共修文。」七月,梁王偕功东寺讲经,至通济桥,功马逸,王乘机令番将掖杀之。阿闻之恸哭曰:「昨灯下吾犹言,云南施宗施秀二人以胭花殡命,奈何不信。今果然。」命侍女锦被包之,以王礼敛送归大理。诗挽之云:「吾家住在雁门深,一片间云到滇海。心悬明月照靑天,靑天不语今三岁。黄嵩历乱苍山秋,误我一生踏里彩。华言锦被也。吐噜吐噜段阿奴,施宗施秀同奴歹。云片波潾不见人,押不芦花华言起死灵草也。颜色改。肉屏华言骆驼也。独坐细思量,西山铁立华言松林也。风潇洒。」功丧旣行,阿遂不食死,以殉焉。其家臣员外杨智渊海闻而亦死之。智临死诗曰:「半战功名百战身,不堪今日总红尘。死生自古皆由命,祸福于今岂怨人。蝴蝶梦残滇海月,杜鹃啼破点苍春。哀怜永诀云南土,絮酒还敎洒泪频。」明洪武间都督冯诚经功墓,亦歩原韵题诗,吊之曰:「田横五百剑孤身,转眼关山半委尘。北阙玉楼召客记,南滇粉壁说诗人。苍山夜黑云遮月,金马天寒鸟怨春。共惜平章迷绣幕,至今愁听水声频。」功死,长子宝自称平章,立于大理。功任蜀二十二年。
|
|-
|}
===Duan Bao《段宝 功之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Bao《段宝 功之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段宝,于元顺帝丙午至正二十六年八月,因父功为梁王所害,遂自称平章,立于大理。是年,梁王开科取士,以支渭兴主试事。梁王复听谗,诛锄段族。梁段旣结仇,数数构兵。鹤庆知事杨升调和二家,自金鸡庙分界,南属梁王,北属段氏,力劝息兵,百姓稍宁。至正丁未二十七年四月,梁王生日,群臣称贺。王宴于昆明池上,省宪官献诗曰:「贤君添算宴嘉宾,幄殿先施巨海滨。万里晴天开绵绣,一川芳草踏麒麟。笙歌暖送金杯酒,铠仗寛围玉佩人。醉饱百官咸稽首,愿王高寿过千春。」中庆路土主庙圮,梁王重修,立牌纪事。先是,至正十二年庙为耆民杨光所修。至二十三年红巾贼入滇,陷中庆,毁民居,庙亦被焚。梁王欲并段氏,遣人剌宝,弗得。又令平章矢剌七攻大理,皆不克。乃遣使通好,奏授宝为云南右丞,以和之。红巾复入滇,梁王命叔铁木的罕赍敕借兵于宝,宝答书曰:「杀虎母还喂虎子,分狙栗自诈狙,公假途灭虢,献璧吞虞,金印玉书,设钓鱼之香饵,绣阁艳女,备揜雉之网罗。况平章已死,只遗一奴一獒,奴可配阿妃,獒可配华黎氏。二事许诺,当借大兵。不然,金马山换作点苍山,昆明海改作西洱海,兵来矣。」书后又附一诗云:「烽火狼烟信不符,骊山一举任枝梧。平章枉挂红罗帐,员外空题粉壁图。凤去岐山祥兆隐,麟戕大野瑞光无。自从界限鸿沟后,成败兴亡不属吾。」梁王读而深恨之。是年,明太祖取燕京,元顺帝北遁,元亡。明太祖戊申洪武元年,梁王复通好于宝,辞甚卑逊,宝许之和。时有蛮舍兴者,自元江攻入鄯阐,王惧欲出奔,宝以唇齿之故率兵救之,击走舍兴。王德宝,升为武定公。敕曰:「段宝归附而来,忠勤懋著,父子秉忠,征讨克捷,乃于戎马倥偬之中,干戈纷扰之际,不第远朝且兼平乱。宜示至优之数,以彰匡济之勋,兹特升宝为武定公,仍总管大理军民府。尔其不负初心,永保世爵,以光大尔赤城于无穷。宣光元年敕。」云云。宣光乃故元顺帝太子立于应昌年号也。太祖洪武辛亥四年,宝降于太祖,上奏云:「臣闻有天下者为天下之主,有列土者为列土之君。卑臣宝虽隔万里之遥,每切中原之向。大理有二帝三皇之后,一方九姓之传,汉晋六朝以来,大蒙国受封于前唐,残唐五季而终,二理国继守于两宋,臣祖思平等恪共藩复,贡礼屡修于中土,华风远畅于边隅。迨至故元,不尚仁义,专事暴残。顺帝已遁北方,梁王犹祸鄯阐。迩闻明主奉天承运,御极南京,中原太平,边徼宁乂。意者中国有圣人,履尭舜之正统,陋汉唐之浅图,天时人事然也。或命臣依汉唐故例,岁贡天朝,或仿元代职名,俾守旧土。庶深谷回阳,幽扄照日,八方浴德,六合同春,垂怜边境,救恤一方。欲修进贡,恐触明威,合待事体之定,专候圣旨之颁,谨此。」专差段贞、王伯鹘驰奏以闻。太祖诏谕答之。洪武五年,宝女兄名羌娜,小名僧奴,又名宝姑者,适建昌土官阿黎。先是,羌娜绣一旗,至是将嫁,以旗付宝嘱曰:「母常语我云尔父为梁王所害,必当报仇,惟望尔辈长大。我闻母言,故绣此旗已五年矣!今我嫁至夫家,收拾建昌、东川军马,飞报若到,女急来应,愼勿违焉。」临行,又以二诗别宝云:「珊瑚钩起出深闺,满目潸然泪湿衣。氷鉴银台前长大,金枝玉叶下芳菲。鸟飞兔走频来往,桂秀梅香不暂移。惆怅同胞未忍别,应知恨重点苍低。」「何彼秾兮花正红,香车独去洱河东。鸿飞雪岫难经目,风刺霜林易割胸。云白天高连水远,月新春叠与秋重。一作闺里绣旗寃父魄,天边提剑属儿曹。泪珠恰似通宵雨,千里关山几处逢。一作须知恨重苍山小,回首寒云千万重。」洪武辛酉十四年四月,国中巫女歌曰:「莫道君为山海主,山海笑谐谐。园中花谢千万朶,别有明主来。」数日,宝卒,子明袭。宝任职十四年。
|
|-
|}
===Duan Ming《段明 宝之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Ming《段明 宝之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段明,明太祖洪武辛酉十四年四月袭,梁王授明为宣慰使。九月,明太祖命颖川侯溥友德,列侯曹正、王弼、金朝兴,都督郭英、张铨等,率师三十万征云南。帝出饯于龙江。友德至湖广,分遣都督胡海洋、陈桓等领兵五万,由四川永宁趋乌撒。友德等率大军由辰沅趋贵州。进攻普定,擒土酋安瓒,诸苗蛮犵狫闻风迎降。十二月,溥友德等兵至普安,攻下之,进至曲靖。先是,梁王把匝剌瓦尔密遣其司徒平章达里麻将精兵十馀万屯曲靖,以拒明师。沐英曰:「彼谓我师疲于深入,未有虞心,乃可破也。」友德然之,遂倍道进师。将至白石江,忽大雾四塞,冲雾及江而上。顷之雾雾,则两军相望,达里麻见之大惊,以为神军飞至,拥军阵于南岸。沐英分遣一军,沂流潜渡,出其阵后,吹铜角,树旗帜,为疑兵山谷间。达里麻急撤阵后,军以御之,上军阵乱。友德等趣师济江,一涌而渡,旣渡,整列进战。敌众披靡,生擒达里麻,横尸十馀里,俘其众二万人,友德悉慰遣之。友德进击乌撒,分遣沐英等趣云南。梁王闻达里麻破,弃城走晋宁州,忽忽纳岩,寻入滇池岛中,先缢其妃,自饮药不死,投水死之。父老收塟云南城西三十里浄耳山,土人立庙妙音寺侧。后至嘉靖间,拆庙材修社学,乃因旧址为小寺祀之。云南右丞观音保以城降。英等入城,秋毫无犯。收梁王金印并符信图籍,安抚其民。友德亦自曲靖循格孤山而北,以应永宁之兵。时元右丞实卜闻胡海洋等进自永宁,乃聚兵赤水河,以拒之。海洋等造木筏,夜半济河,而友德亦至,实卜遁去。友德令将士于乌撒筑城,版锸方具。蛮众复合,斩首三千馀级,馀众溃散。遂城乌撒,得七星关,以通毕节。又克可渡河,于是东川、乌蒙、芒部诸蛮震惧,望风降附。先是,洪武壬子五年正月,帝遣翰林待制王禕、行参政吴云持诏谕云南梁王,令奉版图来归。梁王初不从,后有降意。至洪武六年十二月,会元太子爱猷识里达刺立于汉北,使侍郞脱脱征饷于云南,脱脱觇知梁王有二心,因以危言逼王,杀使臣以绝其念,王遂杀禕,父老收尸塟地藏寺北。吴云奉使时,会梁王遣铁知院等二十人使沙漠,为边将所获,帝乃释二十人,令与云倶行。至沙塘口,二十人谋曰:「吾等奉使不达,被执而还,罪必死。」乃说云令胡服编发,诈为元使。又逼令改制书,共给梁王。云不从,以死自誓,亦被害。梁王遣人收云骨,塟给孤独寺,及事闻,帝震怒,故有是役。按:王禕字子充,浙江金华府义乌县人。建文时赐谥文节,永乐登极,凡建文设施尽革,遂削禕谥。后至正统中,义乌县丞刘杰奏请,加奉使云南死节臣恤典,禕赐谥文忠。吴云字友云,江苏常州府宜兴县人。至弘治中,赠谥忠节,并祀云南,敕赐为二忠祠。是年冬十二月,明卒,叔世袭。明任职一年。
|
|-
|段世 宝之弟,明之叔
|
|-
| 段(氏)〔世〕,明太祖壬戌洪武十五年袭。二月,世闻鄯阐破,梁王已死,又以沐英等兵略寻甸、临安、澄江、元江、楚雄、洱海,次第皆下,进逼大理,乃遣使致书,请依唐宋故事,奉正朔为外臣。友德不听,答书谕令速降。凡三致书,世怒,遂遣都使张元亨、州判李洪赴军前下战书。畧云:「鄯阐危甚登天,大理险倍投海。英如汉武,昔战仅置益州;雄若胡元,设官止于中庆。取之易而守之难,莫若依吾请乞册封,定为进贡,始为良策。吾实武人,不通经史,前代得失则餍闻也。恭惟麾下振耀皇威,功不亚于孔明,才克比于方叔。涤山川之旧染,历代所未有也。况吾与尔旣无杀父之仇,又无财债之怨,无故交战,真乃不祥。尔屯威楚,彼处之民有何罪焉?若耗人之食,是绝其命;取人之财,是刳其心;摅人妻女,是乱人伦,则吾之应,不得已也。爰念尔等皆中国之人,其中岂无一二达士。得此何益?不得何损?西南之地,号为不毛,易动难安。今春气渐暄,烟瘴渐起,不须杀尔,四五月间,雨霖河泛,尔粮尽气敝,十散九死。形如鬼魅,色如黑漆,欲活不能,汝之进退狼狈矣。莫若乘此,天晴地乾,早寻活路。宁作中原鬼,莫作边地魂,尔宜图之。后理国段明顿首。」书后继一诗云:「长驱虎旅势威宣,深入不毛取暴残。汉武故营旗影灭,唐宗遗垒角声寒。方今天下平犹易,自古云南守独难。拟欲华夷归一统,经纶度量必须寛。」友德、英等览书大怒,拘其使。左副将军蓝玉等率师径进,兵至品甸,世恃田庵和尚有术,列兵五万扼下关。沐英自将攻之,不克。乃命王弼,率兵出洱水之东,趋上关,英以兵缀下关,为犄角势。别遣胡海洋将一军夜度,从石门间绕道出点苍山后,縁崖而上张旗帜。迟明,英先驱,渡河斩关而入,海洋之师亦从山而下,腹背夹攻。世众惊溃,拔其城,世就擒,并执明之二子苴仁、苴义,时二月二十三日也。于是沐英等分兵取鹤庆、丽江,破石门关,荡金齿,所有摩、和泥、车里、品缅等部相率归附。又略建昌,故元平章月普帖木儿降。闰二月,赐云南各土官冠带及诰敕,使任本州岛知州等官。四月,乌撒、东川、芒部诸蛮复叛,溥友德、沐英会兵进讨,斩首三万馀级,诸蛮来降,云南悉平。以乌撒、乌蒙、芒部地近四川,分隶之。九月,土官杨苴等叛,紏众至二十万,攻云南城。都督谢熊、指挥冯诚婴城固守。沐英自乌撒移兵讨之,斩首六万馀级,擒四千馀人,诸部悉定。洪武癸亥十六年二月,故元右丞普颜笃同土酋高大一作天惠叛,据佛光砦。蔚按:佛光砦卽佛光山,山半有洞,可容万人。又名一女关。昔诸葛武侯曾擒孟获于此。在大理府浪穹县东二十里。也先不花叛,据邓川州。溥友德率郭英平之。又定蒙化州,过金沙江,攻北胜府,今永北厅。擒故元平章隔生。于是丽江府、拒津等州皆平,前后斩首一万三千级,蛮民降者四十万户。帝遣耿炳文谕溥友德、蓝玉等班师,沐英留镇云南,别命列侯王志、仇成、张龙分赴寻甸各府,缮城池,立屯堡,安辑人民。是年,械送世并明之二子苴仁、苴义赴京。世临行,以诗别故人杨朝彦云:「雄兵一日破重关,父子流离瞬息间。别后欲知相忆处,锦江流水彩潺潺。」洪武甲子十七年四月,溥友德等班师至京,论平云南功,进封溥友德为颖国公,胡海洋东川侯,陈桓普定侯,张翼鹤庆侯,蓝玉、仇成、王弼、张龙等并赐铁券,子孙世袭。吴复、金朝兴先卒,倶授世袭侯爵,铁券加禄并同。馀升职赐金帛有差。以世、苴仁、苴义见帝,帝诛其头目,谕苴仁、苴义及世曰:「尔祖宝,昔年曾有降表,朕不忍废。」乃授苴仁官雁门卫镇抚,赐名归仁,苴义官武昌卫镇抚,赐名归义。世任职一年,段氏世土,至此而绝。帝又封其族段保为云龙州土知州。
|
|-
|按:段氏袭总管十二世,起南宋理宗辛酉景定二年,为蒙古世祖中统二年,讫明太祖壬戌洪武十五年,共一百二十二年。
|
|-
|}
==Notable Officials from Nanzhao through the Generations《南诏历代名宦》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Notable Officials from Nanzhao through the Generations《南诏历代名宦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|张元,汉元帝时守。 张翕,东汉明帝时守。 郑纯,同时。 王追,东汉顺帝时守。 王伉,后汉时永昌郡丞。 吕凯,同时永昌郡功曹。 前有文齐、吴霸、陈立,后有张亮、刘宠、犍为费诗,巴东马忠皆著勋绩。 李毅,晋惠帝光煕元年为宁州刺史,政治明达,五苓夷反时病卒,其女秀有父才,领州事。至怀帝时赠少府谥威侯。 王逊东,晋明帝大宁元年为晋宁守,华夷畏服。夷叛,死之。州人以中子坚领州事,官至平西安南将军。
|
|-
|汉盛览,字长通,叶楡今大理府太和县。人,受学司马相如,著赋心四卷。同时叶楡张叔,天资奇颖,书过目成诵。俗不知学,叔每病之。闻司马相如至若水,蔚按:『水经注』:若水南经云南郡之遂久县,县废,在今大理府宾川州城东北一百里,古称白门,置于汉时,今为金沙江巡检司地。遂负笈往从之,受经归敎乡人。 隗叔通,叶楡人,性至孝,母好饮江水,通日入江取水,维艰。滩水忽出平石,涉取甚便,人谓之孝子石。 东汉许叔,一作叔重。昆明人,明帝时入中国,受五经归,为本郡敎授。 尹珍,字道真,平彝人,桓帝时入中国,负笈从许愼受经学,还敎乡人。 唐尹仇寛,叶楡人,德宗贞元间为蒙氏淸平官,入朝陈地图,贡方物,唐拜为左散骑常侍,封高溪郡侯。 张志成,昆明人,文宗太和间入蜀,学王羲之草书,归敎国人。 元王升,昆明人,曲靖宣慰副使学政名时。 段文瑞,澄江人,读书尽孝,诏旌其门,仕至临安总管。 杨惠,楚雄人,孝母感神,诏旌其门。 张景云,昆明人,仕至临安经历。 陈宝,平彝人,仕至尚书。尹贡,南宁人,仕至尚书。以上三人皆德政名时。 元朝进士王楫、李近仁、段天祥、李天佑、李郁五人,皆三甲同进士出身。
|
|-
|}
==Ethnic Groups of Nanzhao==
===Baimin《白民》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baimin《白民》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有阿白、白儿子、民家等名。白国之后,卽滇中之土著。妇女出门,携伞障面,谓之避嫌。宴客,切肉拌蒜,名曰食生。馀同汉人。女镶边衣,以银花银吊为饰。
|There is the '''Ā''' '''Bái (阿白)''', '''Bái Erzǐ''' ('''白儿子'''), '''Mínjiā''' ('''民家''') and other names. The descendants of the '''Bái Kingdom''' are precisely the indigenous peoples of Central Yunnan. [When] women go out, they bring an umbrella to block their faces, this is called '''Bìxián''' ('''避嫌; avoiding suspicion'''). [When] hosting a banquet, they cut meat and garlic, this is called '''Shíshēng''' ('''食生; eating raw'''). The rest are similar to Han people. Women wear embroidered clothes, they use silver flowers and silver hangings as decoration.
|-
|}
===Pu Ren《蒲人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽古百濮,周书所谓微卢彭濮也,后讹为蒲。质黑,鸟音。男子淸布褁头,衣套头衣,膝系黑滕;妇人挽发为髻,脑后戴靑绿磁珠,花布围腰,短裙,系海十数围。带刀弩长牌,不畏深渊,或浮以渡。婚娶长幼跳蹈,吹芦笙为孔雀舞,婿家立标竿,上悬彩绣荷包,中贮五谷银钱等者,两家男妇大小争缘取之,以得者为胜。又有野蒲、普蛮、朴子蛮等类,性尤凶悍,男子以布二幅结于左胁,另用布一幅合缝挂身;以红布搭右肩蔽腰以下。今顺宁府多此种。
|Anciently this was the '''Baipu (百濮)''', the '''Book of Zhou (周書)''' mentions the '''Wēi''' '''(微), Lú''' '''(卢),''' '''Péng''' '''(彭)''' and '''Pú''' '''(濮)'''. Later errors [turned it] into '''Pú (蒲)'''. By nature they are black and their language [resembles] birds. Men wrap clean/clear<ref>Likely referring to white cloth.</ref> cloth on their head and dress in tunic garments that are put over the head. They bind their knees with black rattan. Women roll up [their] hair as a topknot. At the back of the head, they wear clear blue-green porcelain beads. Printed cloth encircles the waist; they wear short skirts, connecting abundantly ten [or more] encirclements. They carry knives, bows and long shields. They are unafraid of deep abysses perhap even floating across it. At wedding ceremonies old and young alike jump and stamp, they play the reed pipe for the '''peacock dance'''. At the bridegroom's house they erect a pole, on it a bright embroidered purse is hung. Inside it stores the five crops, silver coins and other things. The two families of men and women, old and young, vie to fetch it. Once obtained, the person is victorious. Once more, there is the '''Wild Pú (野蒲), Pŭ mán (普蛮)''', '''Pú Zǐ mán (朴子蛮)''' and other types. Their nature is outstandingly fierce. The men tie two lengths of cloth at the left flank, [and] another length of cloth is stitched together and hangs off the body. There is red cloth to hang on the right shoulder to cover the body below the waist. Nowadays '''Shùnníng''' '''(顺宁)''' prefecture has many people of this type.<ref>Modern Day Fengqing County in Southwestern Yunnan. 鳳慶縣. Historically close to the Wa peoples and Austroasiatic population.</ref>
|-
|}
===Bo Ren《僰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名百夷,又名摆夷。性耐暑热,居多在棘下。本澜沧江外夷人。有水旱二种:水僰夷近水好浴,剃后发,蓄前发,盘髻如瓢,故又名瓢头僰夷;旱僰夷山居耕猎,又名汉僰夷。男靑布褁头,簪花;妇女不施胭粉,自然白晳,盘发辫,红绿包头,饰以五彩线须,衣五色衣,桶裙绣边。其俗贱女贵男,头目妻数百人,庶民亦数十,耕织贸易,皆妇人任之。凡婚娶,男女相悦而议聘,一成匹配,不肃而严。如夫妇不睦,听夫付之一物为凭,然后改适。有邪术,能使男子千里不忘,其法不外传也。
|
|-
|}
===Lahu《猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu《猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|爨蛮卢鹿之裔,猓猡其讹音也。以五月为春。信鬼尚巫,巫有大觋皤,拜禡白马之号。卜用雄鸡两髀骨,骨有细窍,刺以竹签,视多寡向背之势以定吉凶。其部长妻曰耐得,勇士曰苴可。每岁六月廿四日,名火把节,燃松炬,照村砦田庐。男椎髻镊须,耳环佩刀;妇披发短衣,桶裙,披羊皮。
|
|-
|}
===Bai Lahu《白猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Bai Lahu《白猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名撒马都,卽西爨白蛮。知读书,能文字,舌音淸便,多冒汉人。见尊长披羊皮,故嫁女授羊皮一帐。短衣革履,胸挂花包。妇人花衣桶裙,靑布蒙头,饰以海贝、锡铃。
|
|-
|}
===Hei Lahu《黑猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽东爨乌蛮。其祝以铃,其占以草。男挽发贯耳,披毡佩刀;妇人贵者衣套头衣,方领如井字,无襟带,自头罩下,长曳地尺许,披黑羊皮,饰以铃索。
|
|-
|}
===Qian Lahu《乾猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以山居得名。每食插筯饭中,仰天跪拜为报本。好勇喜斗,杀人偿以财。服饰同黑猓猡,妇人项挂一羊毛筐,行住纽毛为绵。以织毯。
|
|-
|}
===Hai Lahu《海猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hai Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名坝猓猡,以种水田得名。盖土人以水为海,以平田为坝也。居家俭朴,知读书。服饰如汉人,妇如白猓猡。
|
|-
|}
===Miao Lahu《妙猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Miao Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多土官之裔,有营长、官奴、火头等称。男挽发贯耳;妇人桶裙无裤,穿套头衣,前不揜胫,后长曳地,衣边火焰,弯曲如旗尾。居茅舍,中堂作火炉,父子妇姑,围炉而卧。又有一种,戴鹊帽者,名猓落蛮;白布褁胫者,曰白脚猓猡。
|
|-
|}
===Ge Lahu《葛猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Ge Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名大头猓猡。男以靑布丈许裹发为大头,女戴布花线箍。婚嫁步行,妇避伯,不避翁。亦有顶盔擐甲,乘马佩刀,以劫抢为生者。然居家尊卑有序,会食以跪为敬。
|
|-
|}
===Azhela Lahu《阿者猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《阿者猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆耳环手钏,衣短裤,披羊皮。婚娶,婿亲负女以归。
|Men and women each wear earrings and hand bracelets. Their clothes are short pants with sheepskin drapes. At weedings, the bridegroom's realtives carry the women back.
|-
|}
===Awu Lahu《阿乌猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Awu Lahu《阿乌猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|性狡好獵。多蓄牛羊。每砦設官房一所,婚嫁並集其中。男短衣,女長衣,倶裹頭,貫耳,出入帶刀弩。
|They are cunning in nature and fond of hunting. They raise many cattle and sheep. Every stockaded settlement has an official building for marriages to be held within. Men's clothes are short, women's clothes are long. Both wrap their heads, pierce their ears. When going out, they carry knives and bows.
|-
|}
===Luwu Lahu《鲁屋猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|耕种射猎为生。男短衣木屐,女长裙跣足。
|They make a living by cultivation, shooting and hunting. Men wear short garments and wooden clogs, women wear long skirts and tread barefoot.
|-
|}
===Sami Lahu《撒米猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Sami Lahu《撒米猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居山,耕瘠负薪,近水,捕鱼时给。面多黧黑,男挽发如鬏,毛褐被毡,佩短刀。女披靑布单,短裙,长裤。又有鲁兀、老乌、撒完、洒泥、阿蝎、阿系等类,衣饰风俗畧同。
|
|-
|}
===Liaowu Lahu《老牾猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Liaowu Lahu《老牾猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽罗婺,又名罗午、罗武。男披发贯耳,披毡佩刀,穿火草布衣;女辫髪垂肩,饰以海贝砗磲,穿火草布裙。无床帏被褥,以松毛籍地而卧。
|
|-
|}
===Lahu Hei《猓黑 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu Hei《猓黑 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蒲蛮别种。择丛篁深处,结茅而居。蜂虫鼠蛤,无所不食,以荞稗为上品。又有大猓黑、小猓黑,岩居野处,猿猱同类。
|
|-
|}
===Putu《普特》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Putu《普特》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以渔为业,舟不盈丈,而炊爨、牲畜、资生之具,无不咸备。泅水出没,口衔手捉,皆巨鱼也。今云南府省城西碧鸡山下,多有此种。
|
|-
|}
===Diyang Gui《地羊鬼 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Diyang Gui《地羊鬼 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦僰人类也。短发黄睛,奸狡嗜利。与人相仇,能行妖术,以木石易人心肾,或以一帚系衣后,变形为象、马、猪、羊、猫、犬等物。稍畏惧之,卽为所魅,入人腹中,食五脏,或潜至人家,偷窃财物,食婴儿。知者一手捉之,一手痛殴,必复为人,夺其帚縻之,彼必以家赀之半匄脱。或有娶其女者,夫每出,必问归期,卽饵以毒,如期而归,更以药觧,否则毒发而死。交易失信,及私窥其要女者,必毒之。此种元江州为甚。
|
|-
|}
===Wo Ni《窝泥》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Wo Ni《窝泥》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有和泥、(干)〔斡〕泥、哈泥、路弼等名。黑白两种,风俗畧同。男戴麦杆帽,穿火草布衣,耳环,跣足;妇女辫发数绺,海贝、杂珠,盘旋为髻,套衣桶裙。善养猪,其猪小耳短身,长不过三十筋,肉肥腯,名窝泥猪。婚用媒妁,路遇野兽,则返而他求。嫁则以红藤束膝为识。勤生啬用,每积贝一百二十索为一窖,临死嘱其子曰:「积贝若干,汝取某窖,馀留我为来生用。」死则以雌雄鸡各一殉。又有一种名糯比,与此同,其生者名哥泥,亦名瓦黑,好勇尚斗,能咒人使病。
|
|-
|}
===Achang《阿昌》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Achang《阿昌》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名峨昌。男短衣披布单,女长衣无裤,腰缠红藤。占用竹三十三枝,畧如筮仪。嗜酒,觅禽兽虫豸生啖之。旧俗兄死弟妻嫂,后有罗扳砦百夫长早正死,其妻方艾自誓不失节,饿而死,其风遂革。又有小阿昌,其俗畧同。
|
|-
|}
===Acheng《阿成》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Acheng《阿成》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男短衣,女桶裙,以树皮代瓦。婚用牛羊,至女家以水泼女足为定。
|
|-
|}
===Biju《比苴》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Biju《比苴》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|僰夷别种。男耳环革屐,女白帨束发,缠叠如仰螺。构楼而居近水,极寒犹浴。丧尚绯,夫死,妻不再嫁,名曰鬼妻。又有白布缠足者,名白脚僰夷,亦名孔荅;茜齿,文身,髠者,名光头僰夷;额上黥刺月牙纹,盖习车里之俗,所谓雕题也。
|
|-
|}
===Heipu《黑舗 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heipu《黑舗 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名黑普,俗同窝泥,形容黧黑,怕见汉人。畜山羊,作竹器,一切床几櫈杌,备极精巧。
|
|-
|}
===Heiqian Yi《黑乾夷 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heiqian Yi《黑乾夷 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男椎髻麻衣,耳环垂肩;女以毛褐细带,编如筛罩,首饰以海贝、砗磲,衣领亦然。婚配,男吹芦笙,女弹口琴,唱和调悦,先野合,后媒妁。
|
|-
|}
===Shansu《山苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Shansu《山苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男披发跣足,女椎髻蒙头。语似鸟音,形如猿猴。潜居深山,种荞、麻,或工或猎,夷中之最苦者。
|
|-
|}
===Chusu《车苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Chusu《车苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名扯苏,傍岩临水。男短衣皮履,女长裙无裤。种荞稗,绩线为业,以羊毛占(睛)〔晴〕雨。
|
|-
|}
===Laji《喇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Laji《喇鸡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名喇记。黑布帽白衫。好楼居,孟春作土主会,客至,掘鼠及虾蟆为敬。其在交趾者,男善枪,女善弩,多充交兵。又有白喇鸡,男女倶穿五色氆氇,食山虫、水蛇等物。
|
|-
|}
===Lawu《喇五 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Lawu《喇五 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰喇乌,又曰喇鲁。男如摆夷,女如窝泥,构楼临水而居。上人下畜,名曰掌房。其在腾越州者,食巨蟒、毒虫,或取蜂糟食之。
|
|-
|}
===Manla《獛喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Manla《獛喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男插鸡毛,女裹首巾,皆披羊皮,不浣濯。婚配先野合。每采蒙肚花蒙肚花树皮如藓,能毒人。生景东厅,今不产矣。欲人醉死则醉采,欲人狂死则狂采,以毒人。又一种在王弄山者,名马喇
|
|-
|}
===Hala《哈喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Hala《哈喇》
|-
| colspan="2" |'''Research Commentary'''
{| class="mw-collapsible mw-collapsed" style="width:100%; border-collapse:collapse; background:transparent;"
|-
! style="text-align:center; cursor:pointer;" | [Show/Hide Source Commentaries]
|-
| class="mw-collapsible-content" |
{| class="wikitable" style="width:100%; text-align:left; margin:0;"
|-
! scope="col" style="background:#f2f2f2;" | Source 1: Baiyizhuan
|-
|
The Hala《哈喇》have been mentioned in the [[Wikibooks|Baiyizhuan]]. {{quote|text='''Hālà''' ('''哈剌'''), men and women are [both] black, truly black. Men use printed cloth<ref>g</ref> for covering themselves, also which the One Hundred bararians effectively manufacture; married women have top knots behind [their head]. It is tied at the back of their neck with various pearls and beads. '''Suō luó''' ('''娑罗''')<ref>'''Sarong''' today, however this appears to be a complex term with many copyediting issues historically, Brahmin drapes, Suoluolong, eventually describing a type of silk-cottob robe made from plant materials.</ref> are draped around their bodies as clothes, horizontally it connected at the waist and lower back as a skirt. ('''Suō luóbù pī''' ('''娑罗布披''') namely is the Chinese Cotton Tree (Bombax Ceiba) cloth, strong and thick, possibly weaved as blue, red patterns.) Yet it encircles black rattan several hundred times, wrapped at the waist and lower back, it wraps around [their leg] to be used as a blue printed cloth [as they're] barefoot.
([Used amongst the] Pú mán (蒲蠻), āchāng (阿昌), shì jiàn (事見)<ref>Only said once in the document and not obvious to allusions elsewhere. </ref>; [according to the] The Yunnan Gazeteer<ref>Written by Fan Chuo of the 9th century, also known as 蛮书 (Barbarian Document)</ref>.)}}
|-
! scope="col" style="background:#f2f2f2;" | Source 2: Dian Lue 《滇略》
|-
|
The Hala《(哈喇) are listed among the list of indigenous groups of the Yunnan border region in Volume 9 (卷九). In this text the group is written in with the Gula (古剌){{quote|text=「其類有小伯、夷大伯、夷蒲人、阿昌漂人、'''古刺哈喇''''、緬人、結𣆟、遮...」}}
|-
! scope="col" style="background:#f2f2f2;" | Source 3: Dushi Fangyu Jiyao
|-
|
Hala is listed as bordering the Tai polity of Möng Yang. {{quote|text=「戛里。在司西南,孟養別部也。又有'''哈喇杜諸蠻,皆近孟養'''、緬甸之境。」<br>'''English''': Kalay. Located to the Southwest Pacification Commission, it is a district of Möng Yang. There are also Hala Barbarian tribes, who all are close to Möng Yang, at the border of Myanmar.}}
|}
|}
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女黑色,不知盥栉。妇女红黑藤缠腰数十围,产子以竹兜盛之,负于肩。又有古喇、杜喇,色尤甚,言语不通,略似人形而已。
|Men and women are black in complexion and do not know how to wash or comb. Women use red-black rattan to bind around their waist 10 or so times. When they give birth, the child goes in a bamboo cradle carried on their shoulders. There are the <strong>Gǔlǎ (古喇)</strong>、<strong>Dùlǎ (杜喇)</strong>, who have complexions outstandingly dark. Their speech is unintelligible [to the author], they only barely appear human in appearance.
|-
|}
===Jiala《戞喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Jiala《戞喇》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|悍好猎,居山巅,户不正出,迎山开门,不留馀粟。
|They fiercely enjoy hunting and reside on mountain summits. Their doors do not face directly outward but face to face open towards the mountains. They do not retain any surplus grain.
|-
|}
===Kala《卡喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kala《卡喇
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰卡腊,男穿耳挽发,佩短刀;女短衣无裤,胫著彩色折裤。聚族而居,耕种鬻薪。
|Also known as '''Kǎlà (卡腊)''', men pierce their ears, tie their hair and wear short knives. Women wear short clothes without trousers and brightly coloured, multi-coloured folded leggings on their shins. They reside in clan communities, cultivating and selling firewood.
|-
|}
===Kasui《卡隋》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kasui《卡隋》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名卡高,性顽钝,喜歌舞。男女多野合。婚娶通媒妁之日,议聘金,多至数百。娶后子孙犹有代祖父偿聘金者。
|
|-
|}
===Kawa《卡瓦》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kawa《卡瓦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多在顺宁、永昌二郡,辣蒜江外。貌()〔丑〕性恶,猎人以祭。商贾出腾越州,入木邦者必经其地,呼为卡利瓦。有生熟二种,生者劫掠,熟者保路。
|
|-
|}
===Xifan《西番》===
{| class="wikitable" style="text-align:center; width:80%;"
|Xifan《西番》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽土番,亦名巴苴,居金沙江边。性悍戾,善弩,男女辫发百绺,不知栉沭。男以藤缠左肘,披琵琶毡,暑热不脱;女以海贝砗磲磁珠饰于项。又有野西番,更不可制。
|
|-
|}
===Guzong《古宗》===
{| class="wikitable" style="text-align:center; width:80%;"
|Guzong《古宗》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名狤猔,西番别种。皆辫发百绺,男戴红缨,穿氆氇,挂铜铃佩刀,女饰以珊瑚、银泡,披腊瓦被单,皆穿乌拉鞾。经年一栉,栉必牲祭。春夏种荞稗,秋冬赶牛马,取牛羊乳酥,调油茶而食,名曰ø。又有小古宗,喜猎饮酒,馀畧同。
|
|-
|}
===Kuceng《苦葱》===
{| class="wikitable" style="text-align:center; width:80%;"
|Kuceng《苦葱》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|面丑。男麻衣短裤,女短衣桶裙,亦有衣裤相连者。耕山采薬为生。所佩环手篐,自幼至老不释,死以殉。
|
|-
|}
===Mo《摩》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mo《摩》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|乌蛮别种。性湻朴,鸟音,男剃发戴帽,长领布衣;女高髻,或戴黑漆尖帽,短衣长裙。畜牛羊,产射香。同类仇杀,妇女登场一劝卽止。岁暮杀牛羊相邀,一客不至为耻。今有读书入泮者。
|
|-
|}
===Li《力》===
{| class="wikitable" style="text-align:center; width:80%;"
|Li《力》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽。衣麻,披毡,岩居穴处。利刀毒矢,刻不离身,登山捷若猿猱。以土和蜜充饥,得野兽卽生食。尤善弩,每令其妇负小木盾前行,自后射之,中盾而不伤妇,以此制服西番。野力披发插羽,尤悍。
|
|-
|}
===Zhe《遮》===
{| class="wikitable" style="text-align:center; width:80%;"
|Zhe《遮》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆穿耳,挽发。喜华彩衣,盘旋蔽体。每饮食必精洁。而长于弓弩,尤善鸟铳。
|
|-
|}
===Jiezi《羯子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|自孟养流入。环眼鸟队,散发,缠藤,耳带大环,首插鸡羽,无衣裤,腹下以麻布一幅围之。负弩佩刀,喊声如犬。又有结,耳带象牙大环,红布围头,衣半身衫,袒右臂,亦其类也。
|
|-
|}
===Muji《拇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦作。形丑恶,妇女尤甚。椎髻插羽,佩刀负弩。猎食猿狙。见人有蓄,思盗,先用鸡骨卜,吉则徃,否则止。
|
|-
|}
===Mocha《摩察》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mocha《摩察》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Manqie《嫚且》===
{| class="wikitable" style="text-align:center; width:80%;"
|Manqie《嫚且》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Local People《土人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Local People《土人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|(思)〔男〕絮袄佩刀弩,女披毡朿皮索,饥则紧缚之。婚姻以刀甲为聘,披发见舅姑。有争者告天,沸汤投物,以手捉之,曲则糜烂,直者无恙。
|
|-
|}
===Nong ren《侬人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nong ren《侬人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|侬智高部落之裔。男束发短衣,女短衣密扣,腰缠红裹肚。性狡,漆齿,出入佩刀,长技在铳。
|
|-
|}
===Sha ren《沙人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Sha ren《沙人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|越析夷也,又名蒙嶲。男辫发长衣,女以挑花白布蒙头,腰围红布。出入佩刀,耕田、射猎,所居掌房。丧服用红,祭肉弃不食。又有黑沙人,白沙人。聘用牛,旣婚之夕,男女不同室,及回女家,有娠方归。
|
|-
|}
===Luo ren《𤡑人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤡑人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男束发披毡,女短衣露腹,缠红藤,腰系沙罗布裙,上短下长,男女同耕。
|
|-
|}
===Cun ren《狆人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Cun ren《狆人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男缠头跣足,女靑布缠头,畧如僧帽,缀以海贝,彩布衣裙,著大尖鞋。构楼而居,甘犬嗜鼠。又有罗缅、麦岔、叠吗、喇毛等类,顽良不一,衣饰风俗同
|
|-
|}
===Nu ren《怒人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nu ren《怒人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居永昌怒江内外。其江深险,四序皆燠,赤地生烟。每二月瘴气腾空,两堤草头交结不开,名交头瘴。男子面多黄瘦,刚狠好杀猎,或采黄连为生,鲜及中寿。妇人披发红藤勒首。每年贡麂皮二十张、山驴皮十张、黄蜡八十筋、麻布三十庹,以代赋税。
|
|-
|}
===Luo ren《𤞰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤞰人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江府鹤庆州大雪山外。男女披发,树叶为衣,耳穿七孔,坠以木环。与怒人接壤,畏怒人,不敢越界。
|
|-
|}
===Wild people《野人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Wild people《野人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|永昌界外。居无室庐,宿于树巅。赤发黄睛,首戴骨圏,插雉羽,手足腹皆缠红藤,以幅布或树皮揜下体。勾刀大刃,捕禽兽蛇虫,生食之。逢人卽杀。
|
|-
|}
===Laodao《老挝》===
{| class="wikitable" style="text-align:center; width:80%;"
|Laodao《老挝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南掌国夷类。戴藤篾黑漆帽,宽二尺许,短衣无裤,用杂色布一疋,从膝下兜绕,围结胸前,名打抄子。妇女耳贯大黑漆圏,塞以野花。
|
|-
|}
===Liemi《列密》===
{| class="wikitable" style="text-align:center; width:80%;"
|Liemi《列密
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽利米。刀耕火种,精射猎,得鼠雀生啖之。男篾帽皂衣,女辫发赤足。出外披花布,以蔽其身。
|
|-
|}
===Lama《喇嘛》===
{| class="wikitable" style="text-align:center; width:80%;"
|Lama《喇嘛》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江、鹤庆多有之。来自西藏,招本境摩为徒。有红黄二敎,红弱黄强。毡帽褊衫,各如其色。
|
|-
|}
===Miaozhi《苗子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|三苗之后,有九种,黔省最多,流入滇中者,惟仲家花苗而已。束发耳环,未婚者缚楮皮于额,或插鸡毛。女布冠套头衣,桶裙,皆用五彩桃花布为之。每岁孟春跳月,男吹芦笙,女振铃唱和,并肩舞蹈,终日不倦。或以彩为球,视所欢者掷之,暮则同归,比晓乃散,然后议婚。节序击铜鼓,吹呐叭,聚赛神,书契惟数目字,及六十花甲子同,馀不同。
|
|-
|}
===Tuliao《土獠》===
{| class="wikitable" style="text-align:center; width:80%;"
|Tuliao《土獠
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其属本在黔、蜀、粤西之交,流入滇中。男首裹靑布,白衣领缀红布一方,妇人冠红巾,衣花绣。性粗桀,好蛊魔之术,其虫夜飞如星,光芒摇曳,射入窓棂,触者病。
|
|-
|}
===Jiaoren《交人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiaoren《交人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|安南国之类。男箬笠蕉扇,衣裳楚楚;女面貌颇雅,手贯牙钏,长衣长裙,以红帕蒙头,皆辫发靸鞋。读诗书习礼,仪婚丧之事,倶仿中国。
|
|-
|}
===Burmese people《缅人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|缅甸国流入者。有老缅、阿瓦、猛别、雍会、普干、摆古、得楞子等类。长于鸟铳,其火药用麦面傅之,迅疾无声。又有缅目者,称为莽纪,断发文身,漆齿穿耳,蟒衣跣足,头带红缎一方,性喜花草。
|
|-
|}
==References==
{{reflist}}
[[Category:Chinese literature]]
[[Category:Non-fiction books]]
[[Category:Medieval historical works]]
[[Category:Works originally in Chinese]]
[[Category:Pages with foreign language text]]
[[Category:Indigenous peoples]]
[[Category:Guidebooks]]
[[Category:History of China]]
[[Category:Wars]]
[[Category:Diplomacy of China]]
[[Category:Subject:Military history]]
[[zh:蛮书]]
ilaq3xa6me48umtiaab9ix6eh81jt95
4674851
4674849
2026-10-07T10:34:38Z
Taitesena
3485636
/* Hala《哈喇 》 */
4674851
wikitext
text/x-wiki
__NOTOC__
{{incomplete translation}}
{{Translation header
| title = Unofficial History of Nanzhao (南诏野史)
| author = Yang Shen (杨慎)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes =
}}
== Front Matter ==
# [[Unofficial History of Nanzhao/Translator's Note|Translator's Note]]
# [[Unofficial History of Nanzhao/Influences|Historical Context]]
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Authorship
|-
! scope="col" | Original
! scope="col" | Translation
|-
|增订南诏野史上卷 明 四川新都杨愼升庵编辑
|
|-
|}
===The Title of Nanzhao 《南诏之称===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Title of Nanzhao 《南诏之称》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蛮夷称王曰诏。先时滇有六诏,各据其地。六诏中蒙舍诏最强,后并吞五诏,故独称南诏。
|
|-
|六诏考六诏之地,东西四千里,南北二千九百里
|
|-
|蒙舍诏蒙细奴逻立国,居蒙舍川,地在永昌、姚州之间,处五诏之南。后奴逻曾孙皮逻阁并吞五诏,独称南诏。今蒙化厅是邆赕诏丰咩立国,居邓川。今大理府邓川州是施浪诏施望欠立国。居{{浪穹弥茨河蒙次和山,今大理府浪穹县是浪穹诏丰时立国,居浪穹。后其孙铎罗望迁剑川,改称剑浪诏。今丽江府属剑川州地是越析诏波冲立国。亦称摩诏。又号花马国。居嶲州。今丽江府是后,其兄之子于赠渡泸,邑于龙佉河蒙嶲诏嶲辅立国。居越嶲,今四川宁远府,越嶲厅是
|
|-
|}
===The Territorial Divisions of Nanzhao 《南诏分野》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Territorial Divisions of Nanzhao 《南诏分野》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|在天井鬼入参一度,汉书。次鹑首末位晋书。丽中台上位北斗开阳一星。宋书。在地乃梁州裔土,蜀之苑囿。河图纬。
|
|-
|}
===The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周鄯阐国、白崖国、昆弥国。战国时滇国,汉西南夷、益州、白子国。后汉建宁国。晋、宋、齐、梁、陈,宁州。隋昆州。唐初,南宁、六诏,唐文宗太和间,名鄯阐府。宋仍名南诏。元名中庆。明名云南省。
|
|-
| 国朝因之。按:汉武帝元狩元年,彩云见南中,在今大理府赵州之白崖。云南之名始此。唐元宗间问蒙舍诏盛逻皮之相张建一作俭成住何处?曰:「南边云下。」因命为云南。又元宗见祥云起,名祥州。今大理府之云南县也。
|
|-
|}
=== General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|鄯阐国蒙苴颂,昆弥国庄蹻、仁果、龙佑那据于周、秦、汉迄六朝。细奴逻据于唐。郑买嗣、赵善政、杨于贞、段思平、高升泰曁正湻,相继据于唐末迄
南宋。凡历有九姓,而雍闓、孟获不与焉。段氏与南宋理宗壬子湻佑十三年为蒙古所灭,而段实于理宗景定二年袭总管,传十二世,明太祖壬戌洪武十五年平云南,擒段世,并段段明之二子苴仁、苴义。赐苴仁官雁门卫镇抚,苴义官武昌卫镇抚,段氏之世土方绝,而又别封其族人段保为大理府云龙州土知州。国朝尚有袭土职者。
|
|-
|}
=== Titles and Official System of Nanzhao《南诏称谓官制》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Titles and Official System of Nanzhao《南诏称谓官制》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南诏称帝曰骠信,王曰诏,自称曰元,称后曰信么,亦曰九么,妃曰进武,兄曰容,弟曰钟,下曰昶。其设官则有把国事八人,曰坦绰,曰布燮,曰九赞,谓之清平官。曰酋望,曰正酋望,曰员外酋望,曰大(将军)〔军将〕,曰员外。又设九爽之名,爽,省也。功爽主官人,宗爽主户籍,万爽主财用,慈爽主礼,引爽主宾客,幕爽主兵,罚爽主刑,厥爽主工作,禾爽主商贾,皆清平官、酋望、大军将兼之。以清平官子弟为羽仪长八人,清平官见王不得佩剑,惟羽仪长佩之。又有六曹长二人,曹长有功升大军将,凡十二人。又立三托:巨托主仓廪,气托主马,禄托主牛。大府主将曰演习,副曰演览;中府主将曰缮裔,副曰缮览;下府主将曰澹酋,副曰澹览;小府王将日幕撝,副曰幕览。每府有陀酋,陀酋卽掌书记判官之类。外有八节度使:日弄栋节度使,今楚雄府姚州。曰银生节度使,今景东厅及鎭沅州地是。曰永昌节度使,今永昌府是。曰丽水节度使,今丽江府是。曰剑川节度使,今丽江府剑川州是。曰东川节度使,今东川府府是。曰通海节度使,今临安府通海县是。曰拓东节度使。今云南府昆阳州北平定乡,蒙氏子凤伽异曾筑城于此地。又有二都督:曰会川都督,今四川宁远府会理州地是。曰通海都督。又设十睑,蛮语谓州为睑。苴音斜。羊睑,又名羊睑,卽今大理府太和县。赵州睑,今大理府赵州。白崖睑,又名勃弄睑,今赵州之白崖。,云南睑,今大理府云南县。蒙舍睑,今蒙化厅。大厘睑,又名史睑,今太和县喜州。邆川睑,今大理府邓川州。品澹睑,蒙秦睑,矣和睑。三睑未详其地。○蔚按:别本十睑中苴羊睑、赵州睑、白崖睑而下,作义督睑,今剑川州;威远睑,今普洱府威远厅南;河东睑,末详其地;越睑,今永昌府腾越州;北方睑,又名成偈睑,今永北厅;楼头睑,今四川叙永厅,属永宁县;路睑,今楚雄府广通县;与云南睑以下七睑异。○按:又考此七睑中,其越睑、北方睑、楼头睑、路睑凡四睑,见于『汉地里志』及『唐书?南蛮传』中,睑并作赕,音闪,字旣不同,音又各异,似非列于十睑之数。凡人丁壮者皆为战卒。王之亲兵曰朱弩佉苴,音蛆。按:元微之白乐天乐府皆作佉嗟,未审孰是。佉苴,韦带也。每兵百人置罗苴子统一人,戴朱鞮鍪,负犀革铜盾而跣足。自大军将以至曹长,皆系金佉苴尚绛紫,有功加锦,又有功加金波罗。卽虎皮。民兵号白衣,凡民兵出以望苴蛮为先驱。
|
|-
|}
===Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|因远部。威远睑治,其地总名和泥,今元江府是。休腊部。今临安府河西县。嶍峨部。今临安府嶍峨县。屈中部。今临安府阿迷州。溪处甸部、伴溪落恐部。今倶为长官司,属临安府。铁容甸部。今为亏容长官司。官桂思陀部。今为思陀甸长官司,皆属临安府。王弄部、强现三部。今属开化府。师宗部。今广西州师安县。弥勒部。今广西州弥勒县。吉输部、袖恶部。倶在弥勒县地。维摩部。卽广西府维摩州。州裁,今属广西州地。罗雄部。今曲靖府罗平州。纳垢州。今曲靖府马龙州。落温部。今曲靖府陆凉州。磨弥部。今曲靖府沾益州。仁德部。今曲靖府寻甸州。夜苴部卽曲靖府亦佐县,县裁,今归罗平州。强宗部。卽澄江府阳宗县,县裁,今归河阳县。步雄部。今澄江府江川县。罗伽部。卽步雄部分地。休制部。今澄江府新兴州。落蒙州。今澄江府路南州。弥沙部、邑市部。皆落蒙部子孙分治之。阳城堡部。今云南府晋宁州。罗部。今云南府罗次县。乾矢部、罗婺部。倶在武定府曲州,州裁,今属武定州。华竹部。今武定州元谋县。洪农碌券部。今武定州禄劝县。掌鸠法块部在禄劝县城东五里。○以上三十五部在迤东地。白鹿部。今楚雄府。谋统部。今丽江府鹤庆州。○以上二部在迤西地。
|
|-
|}
==Nanzhao through the Generations《南诏历代》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Nanzhao through the Generations《南诏历代》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|白古记:西天天竺摩竭国阿育王骠苴音斜。低娶欠蒙亏为妻,生低蒙苴。苴生九子,长子蒙苴,附罗十六国之祖;次子蒙苴廉,吐蕃之祖;三子蒙苴诺,汉人之祖;四子蒙苴酬,东蛮之祖;五子蒙苴笃,生十二子,七圣五贤,蒙氏之祖;六子蒙苴托,狮子国之祖;七子蒙苴林,交趾国之祖;八子蒙苴颂,白子国仁果之祖;九子蒙苴閦初六切。白夷之祖。○『哀牢今永昌府。夷传』:哀牢蛮蒙伽独捕鱼易罗池在永昌府城南。溺死。其妻沙壹一作壶。往哭之水边,触一浮木,有感而妊,产十子。后携子至池上,木化为龙,人言曰:「我子安在?」九子惊走,独季子背龙而坐,龙舐其背。蛮语谓背为九,坐为隆,故名之曰九隆氏。哀牢山一名天井山,在永昌府。下有妇名奴波息,生十女,九隆弟兄娶之,立为十姓:董、洪、段、施、何、王、张、杨、李、赵,皆刻画其身象龙文,于衣后著尾。子孙繁衍,居九龙山山在永昌府城南。溪谷间,分九十九部,而南诏出焉。
|
|-
|}
===Shanchan Guo《鄯阐国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shanchan Guo《鄯阐国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周时立国,年代久远,其姓名世次莫考。
|
|-
|}
===Baiya Guo《白崖国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baiya Guo《白崖国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|西天天竺摩竭国阿育王低蒙苴第八子,蒙苴颂居白崖,因地名,号白崖国,传世莫考。后昆弥氏继之,号昆弥国。
|
|-
|昆弥国一名拜国。
|
|-
|昆弥氏,传世姓名莫考。战国时,楚将庄蹻据滇,并有其地,号滇国。
|
|-
|}
===Dian Guo《滇国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dian Guo《滇国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|战国时,楚顷襄王命将庄蹻范蔚宗后汉书作庄豪。将兵循江上,略巴、蜀、黔中以西,蹻至以兵威畧定滇地属楚。欲归报,会秦司马错攻楚,黔中道塞。蹻遂以其众王滇,号滇国,踞之。后有王常羌者好佛,国势不振。法令不行,国人遂推白崖国蒙苴颂之后,白饭王之裔仁果为王,治白崖,于是两国角立。后仁果奉汉,封为白子国。
|
|-
|}
===Baizi Guo《白子国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baizi Guo《白子国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|汉武帝通西南夷,遣使至滇,求身毒国。滇王常羌问使者曰:「汉孰与我大?」使者还报,武帝怒其言不逊。时白崖国蒙苴颂之后,天竺国白饭王之裔仁果者,为众所推立于白崖。武帝乃册封仁果为王,号白子国。后迁于澄江,今澄江府。迨龙佑那继之,号建宁国。○又一说:白子国之先,有阿育国,王能乘云,上天娶天女,生三子,长季二子封于金马、碧鸡,独封仲子于苍洱之间,崇奉佛敎,不茹晕,日食白饭,人因称为白饭王。迨后有仁果者,汉封为滇王,号白子国。又十五世至龙佑那,后汉诸葛武侯南征,次白崖,以佑那为酋长,赐姓张氏,仍统其民,号建宁国。
|
|-
|}
===Jianning Guo《建宁国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|后汉后皇帝乙巳建兴三年,益州耆帅雍闓,假鬼术杀建宁太守王昂,归东吴,吴王孙权以闓为永昌守。后汉诸葛武侯南征,至白崖,杀雍闓,擒孟获,乃封白子国王仁果十五世孙龙佑那为酋长,赐姓张氏,于白崖筑建宁城,蔚按建宁城废址在今大理府赵州之弥渡。号建宁国,立铁柱蔚按:今弥渡有铁柱宫,铁柱尚存。先为建宁国王张乐进求甫铸,后南诏蒙世隆复重铸,名曰天尊柱,高八尺。并『南中纪功碑』,铭其背曰:「万岁之后胜我者过此」。迨至隋时,行军总管太平公史万岁征南宁夷爨玩,西破三十馀部,至此,见其碑铭,命左右踣之。其碑跌,中复有志曰:「史万岁不应踣吾碑」。万岁惊异,复树碑,祭拜而去。后张龙佑那仍迁国澄江,传三十二世至十七世孙张乐进求,唐太宗己酉贞观二十三年封为首领大将军。后见蒙舍川蒙细奴罗有奇相,遂妻以女,逊国与之。奴罗自称奇嘉王,建号大蒙国,又称南诏。
|
|-
|}
==Nanzhao《南诏国》==
===13 Generations of Nanzhao 《南诏大蒙国传十三世》 ===
{| class="wikitable" style="text-align:center; width:80%;"
|+ 13 Generations of Nanzhao 《南诏大蒙国传十三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|细奴一作农。逻一作罗。 伪谥高祖奇嘉王
|
|-
|细奴逻,又名独罗消,西天天竺摩竭国阿育王低蒙苴第五子蒙苴笃之三十六世孙。生有奇相。唐太宗贞观初,其父舍龙尨,又名龙伽独,将奴逻自哀牢避难至蒙舍川,耕于巍山。今蒙化厅之巍宝山。一日,有老僧,美髯,冠赤莲冠,披袈裟,持钵至奴逻家乞食。时奴逻与子逻盛炎方耕巍山之下,其姑与妇将往饁。见僧乞食,遂食之。再炊往饁,僧坐不去。姑妇持饷中道,僧已在彼,复乞食,姑妇又食之。返而复炊,持饁至巍山,则见僧坐盘石上,前有靑牛,左白象,右白马,上覆云气。云中二童子,一执铁杖于左,一执方金镜于右。姑妇惊喜,复以所饷供之。僧问何所愿?姑妇不知对。僧曰:「奕叶相承」。及趣奴逻等至,则但见一人持钵,坐五色云中,而盘石上惟馀衣痕及牛象马之迹耳。奴逻素有祥异,会唐封首领大将军建宁国王张乐进求,以诸葛武侯所立白崖铁柱,岁久剥蚀重铸之。因社会祭柱,柱顶故有金镂鸟,忽能飞,集奴逻左肩,相诫勿动,八日乃去。众骇异,谓天意有属。进求遂妻以女,举国逊之。于唐太宗己酉,贞观二十三年卽位,年三十二岁,建号大蒙国,称奇嘉王,据南诏。高宗庚戌永徽元年,建都蒙舍川,于巃{山+于}山在今蒙化厅西北三十五里。筑巃山+于城。永徽癸丑四年,遣逻盛炎入朝唐,诏授奴逻为巍州今蒙化厅刺史,赐以锦袍。大勃弄今大理府赵州白崖。酋杨承顚寇麻州,在今曲靖府马龙州城北里许。唐命郞州唐贞观初,分牂牁郡北界置郞州,后改名播州,卽今贵州遵义府。又有郞州,在今云南县地。道行军总管赵孝祖讨之。孝祖先入小勃弄,今云南县地。酋长没盛迎战,孝祖斩之。进至大勃弄,攻其城,破之,擒杨承顚,改云南县为匡州,领勃弄、匡州二县。高宗显庆二年,凤鸣于浪穹罗浮山,乃改名为凤羽山,在大理府浪穹县西南三十里,又名鸟吊山。见『水经注』。封十二圣贤为十二山神。时澄江人波罗旁有经济才,用为文臣;郭郡矣素以勇略闻,用为武臣。又有杨波远者,相传为东汉时人,常骑三角靑牛,号神明大士,能知盐泉,滇中盐泉多为波远所开创。奴逻在位,遵唐正朔。高宗甲戌上元元年,奴逻卒,在位二十六年,子逻盛炎立。
|
|-
|逻盛炎又名逻晟。伪谥世宗兴宗王。
|
|-
| 逻盛炎。唐高宗甲戌上元元年卽位,年四十岁,以张建成为相。明年,盛炎临朝,元宗壬子先天元年,姚州蛮叛归吐蕃。唐命御史李知古讨之,筑城立州县。知古诛豪杰,掠子女,蛮怨,引土蕃,攻杀知古,于姚嶲路绝,而盛炎独奉唐正朔。是年,盛炎卒,在位三十九年,子盛逻皮立。
|
|-
|}
===Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|盛逻皮,唐元宗壬子先天元年卽位,年四十岁。明年为元宗癸丑开元元年,唐授逻皮为特进,封台登郡王今四川宁远府冕宁县地。设官征商税。开元二年,遣张建成入朝于唐。立土主庙。开元九年,皮叛唐。开元十四年,立庙祀晋右将军王羲之为圣人。元宗戊辰开元十六年,逻皮卒,在位十六年,子皮逻阁立。
|
|-
|皮逻一作罗阁石刻作归义王魁乐觉封云南王。
|
|-
|皮逻阁,唐元宗戊辰开元十六年卽位,年三十一岁。开元十八年,灭五诏,自称南诏王。先是,蒙氏恐三十七蛮部不服,选亲族为五诏。未几五诏抗命,逻阁遂赂剑南节度使王昱,求合六诏为一。昱奏于朝,许之。逻阁乃豫建松明大楼,祀祖于上。使人谕五诏曰:「六月二十四日乃星回节蔚按『大理郡志』汉元封间,叶楡妇阿南者为酋长,曼阿娜之妻。娜为汉将郭世忠所杀,欲妻南。南曰:能从三事,当许汝一作幕次祭故夫;一焚故夫衣,易君新衣;一令国人皆知我以礼嫁。忠如其言。明日,聚国人张松幕祭其夫。下置火,南藏刃出,俟火炽焚夫衣,卽引刀刃自断其颈,仆火中,时六月二十五日也。国人哀之,故岁以是日燃炬吊之,名为星回节云。是又当为二十五日。当祭祖,不赴者罪。」四诏听命。惟越析诏波冲之兄子于赠,远不赴会,而邆赕诏丰哶孙{辵+皮}逻邆之妻慈善者,止逻邆勿赴。邆不听。慈善不得已,以铁钏穿于邆臂而行。二十四日,逻邆及施浪诏施望欠弟施望千、浪穹诏丰时孙锋罗望、蒙嶲诏嶲辅子罗原皆至逻阁所。逻阁偕登楼祭祖,祭后享胙食生饮酒,迨晚,四诏尽醉。逻阁独下楼,焚钱遽纵火,火发,兵围之,四诏皆焚死。逻阁遣使至四诏所,报焚钱失火,四诏被焚,状令各诏收骨。四诏妻至,莫辨其骨。独慈善因铁钏得焉,携归葬之。逻阁旣灭四诏,取各诏宫人,念慈善慧而甚美,遣兵围其城,迫取之。慈善曰:「吾岂忘夫事仇者?」闭城坚守,半月城中食尽,慈善度不能支,卽自杀,时七月二十三日也。逻阁嘉其节,乃封赠为宁北妃,并旌其城曰德源城。城废址在今大理府邓川州城东北二里许。开元戊寅二十六年,逻阁破吐蕃及弥蛮,入朝,元宗礼之,加封为特进,云南王,越国公,开府仪同三司,赐名归义,并锦袍金钿带七事。王归国,以兵逐洱河蛮,筑太和城,今大理府城南十五里太和村地是。又筑大厘城今大理府城北四十里喜州是。守之,尽有云南之地。唐授王子阁逻凤右领军卫大将军兼阳瓜州刺史。开元二十七年,明矫叛,破剑川、浪穹、永昌。开元二十八年,王讨朋矫,平之。开元辛已二十九年,王自蒙舍川迁居太和城,立龙首、卽今上关。龙尾卽今下关。二关。唐加阁逻凤为左领军卫大将军。元宗癸未天宝二年,筑羊苴哶城于太和城之北。卽今大理府城。唐迁阁逻凤为左金吾卫大将军,寻拜特进都知兵马大将军。天宝甲申三载,西方进狮子皮。唐加阁逻凤为上柱国。天宝乙酉四载十月,城永昌。天宝丙戌五载,王遣孙凤伽异入唐,唐授伽异为鸿胪少卿,妻以宗室女,赐龟兹乐一部,元宗戊子天宝七载,王卒,在位二十年,子阁逻凤立。
|
|-
|阁罗凤一作觉乐凤。按:『德化碑』云:「家居阁罗凤」,则是取地名以为名也。袭封云南王,伪谥神武王。始建元。
|
|-
|
阁罗凤,唐元宗天宝戊子七载卽位,年三十六岁。唐遣中使黎敬义持节册凤袭封云南王,敕置阳瓜州于蒙舍川,加授
凤伽异为上卿兼阳瓜州刺史,都知兵马大将军。天宝庚寅九载,王率妻子往谒都督李宓,过云南,太守张虔陀私之,又多徵求。王表虔陀之罪,中官贾奇俊抑之,不得达。王复遣将军杨罗顚等连表控告。元宗仍不省。凤怒,遣大将军王毗双、罗时等发兵攻虔陀。虔陀饮鸩死;遂取姚州,并夷州三十二。获唐嶲州西泸令郑回以归,爱其才,用为清平官。天宝辛卯十载,唐命剑南节度使鲜于仲通将兵八万征云南。凤赴泸南在楚雄府姚州之城北一百五十里。谢罪,愿还所俘掠,请罢兵。仲通不许,分三道而进。仲通自南溪路,大将李晖自会同路,都督王知进自步头路。今临安府地。凤就安宁,再伸衷悃。仲通不听,兵至曲州、靖州。二州今为曲靖府地。凤复遣首领杨子芬、参军江如之赍状,言若不罢兵,卽当归吐蕃,恐云南非唐有。仲通终不许,囚其使,进薄白崖城。别遣大将王天运统师绕出点苍山后。凤遣
凤伽异及大军将段俭魏迎山后师,自逆战于西洱河。唐兵大败,死者六万人,王天运战殁,仲通仅以身免。凤乃叛唐,建元长寿。遣弟阁陂和尚及子铎传、酋望赵佺邓、杨传磨侔等,并子弟六十人献凯吐蕃。陂有神术,人马往来吐蕃,不过朝夕之顷。天宝十一载正月一日,遣宰相倚祥叶乐持金冠、锦袍、金宝带、金帐状、安扛伞鞍、银兽器皿、珂贝、珠毯、衣服、駞马、牛鞻等物至邓川,以凤为兄弟之国,册为赞普钟南国大诏,给金印,称东帝。并授凤伽异大瑟瑟告身,都知兵马大将。凤遂改是年为赞普钟元年。发人口百户于浪穹,筑白崖睑城,又遣兵攻掠安宁。天宝甲午十三载六月,唐命前云南郡都督兼侍御史剑南留后李宓、广府节度使何履光等,率十道兵再征云南。兵逼邓川,凤遣凤伽异、段俭魏迎战于江口。时神川都知兵马使论绮里徐救兵已至巴蹻山,遂诱宓深入,内外夹击。宓粮尽,士卒饥疲,引还。凤以精兵追战,唐全军覆没,李宓被执,沉江死,何履光遁去。凤因进取嶲州会同郡,据清溪关,以破越析。此二役也,皆凤弟阁陂和尚及凤妃白氏行妖术,展帕拍手而笑,韩陀僧用钵法,以故唐兵再败。时唐先后丧师已二十馀万,凤乃敛战胔,筑京观于龙尾关河尾,名万人冢,立碑大书「唐天宝战亡士卒之墓」。而唐宰相杨国忠更揜败以捷闻,叙战功。令清平官郑回撰『德化碑』,唐流寓御史杜光庭书。立石太和国门外,明其不得已叛唐归吐蕃之故。天宝乙未十四载冬十一月,东平郡王安禄山反于范阳,凤乘机以兵取蜀卭州,筑卭子城,及丽水金宝城。升段俭魏为清平官,赐名忠国,旋拜相国。代宗甲辰广德二年,羊苴哶城成,凤名之曰大理城,又名紫城。代宗乙巳永泰元年凤伽异筑云南城卽今云南府省城。又筑拓东城,今云南府昆阳州北平定乡。遂以兵攻陷曲靖。代宗丁已大历十二年,永昌牛生三角,羊生四角,鸡九足,井有光。建观音寺于白崖。先是,逻盛炎时,相国张建成欲于白崖建寺,卜之吉。又地下有三戳观音,上截在西,中截在东,下截在东南。因盛炎旋卒,不果建。至是建寺,掘之果然。代宗戊午大历十三年,阁罗凤卒,在位三十年。因子凤伽异先死,后追谥悼惠王。孙异牟寻立。
|
|-
|异牟寻改国号曰大理国。封云南王,又封南诏王 伪赠廪孝桓王
|
|-
|异牟寻,唐代宗戊午大历十三年卽位,年二十四岁。明年改元见龙,又改上元,率兵三万取蜀为东府,又连土番入寇。唐命神策都将李晟击破之。师还,自称南诏王。德宗甲子兴元元年,牟寻迁居史城,卽大厘城。改号大理国,自称日东王。封岳读,以叶楡今大理府。点苍山为中岳,乌蛮今东川府。乌龙山一名绛云弄山,在今禄劝县东北三百里。为东岳,银生府今景东厅。蒙乐山一名无量山,在厅北九十里。为南岳,又封南安州今楚雄府属。神石亦为南岳,越赕今永昌府腾越州。高黎贡山一名昆仑隅,在腾越、潞江之间。为西岳,嶲州今丽江府是。雪山一名玉龙山,在府西北二十里。为北岳。封金沙江源出吐蓄旄牛徼外犂牛石下,本名犂牛河,又名犂水,讹为丽水。经丽江府、鹤庆州、姚州而东北达于四川马湖府之马湖,卽『山海经』所谓若水。『水经注』云:若水经云南之遂久县,卽今金沙江巡检司地。昔黄帝长子昌意德劣,不足绍承天位,降居斯水为诸侯,娶蜀山氏女,生颛顼于若水之阳,疑卽其地也。祀在武定州,兰沧江源出吐蕃鹿石山下,本名鹿沧,又名兰沧。兰沧讹为浪沧。自丽江府度云龙州至永昌府,东经顺宁府,达于车里,过交趾地而入于南海。祀在丽江府,黑惠江在顺宁府之东入狼沧江,而达于南海。祀在顺宁府,怒江源出西域雍望,奔流而下,深不可测。夏月多瘴,经怒夷地入丽江府境野人界。至永昌府境,乃名潞江。祀在水昌府,为四渎,各建神祠。又立三皇庙。德宗丙寅贞元二年,设官立九爽三托。考疆域,其地东至于铜柱、铁桥、蟠桃、玉楡,东南至于交趾国,南至于骠国,西南至于木落山,西至于太石,西北至于吐蕃,北至于神川,东北至于黔巫。八分之地,属以八演,皆中国降人为之经画者。贞元丁卯三年,寻居大理城。命子弟师事郑回。时寻苦吐蕃徵求无厌,会李泌劝德宗招云南以断吐蕃右臂。帝从之,命韦皋为西川节度使,皋受命招抚群蛮。郑回因说寻归唐,寻以为然。皋遣谍者致书于寻,吐蕃知而疑之,乃责南诏大臣为质。寻愈怨。于是,决计归唐。皋以闻,德宗乃命皋作书谕寻。是年四月,吐番破蜀,来征兵,蔚按:卽吐蕃劫浑瑊清水盟之岁。寻谢绝之。贞元五年,寻遣乌蛮勿邓大鬼主苴梦冲、两林都大鬼主直那时聘于皋,因入朝。皋遣其属崔佐时报之。时吐蕃使数十人先在,佐时至,寻令更衣入。佐时不可,曰:「天朝大使。岂衣夷衣?」寻不得已,夜迎之。佐时至,大宣诏旨,令寻斩番使,去其所立之号。寻遂与佐时盟于点苍山下。贞元九年,寻遣使上表,请从韦皋袭吐蕃。诏册封为云南王,以韦皋为云南安抚使。王遣使诣皋,献夷中歌。贞元十年,吐蕃徵兵于王,王阳示寡弱,以兵三千应之,自将数万人踵其后。正月,袭吐蕃,战于神州,断铁桥,在巨津废州,今丽江府西北地。取十六城,俘其五王,降众十馀万,获军资甲仗无算。遂遣弟凑罗栋、清平官尹仇宽献捷于唐,并献地图、纳贡及吐蕃所给金印,请复号南诏。于是,唐以祠部郞中袁滋为中丞,赐金紫充册使。赐王银窠金印,印文曰:「贞元册南诏印」。王北面跪受。宴使者,出元宗天宝五载所赐王父凤伽异银跳脱马头盘数物,并指老笛工、歌女曰:「皇帝所赐龟兹乐,惟二人在耳!」使者日:「南诏世荷唐恩,当深思祖考子孙勿替,尽忠皇唐。」王对曰:「敢不敬使者之命。」随遣清平官尹辅首入谢,献铎鞘、郁刀、生金、瑟瑟、牛黄、氎、纺丝、越赕绕伦马。蔚按:铎鞘,疑当作择矟,状如残月,有孔旁达,出丽水,饰以金,月祭之血,所击无不洞。段柯古『酉阳杂俎』云:南蛮有毒槊无刀刃,状如朽铁,中人无血立死。言自天而下,入地丈馀,祭地乃掘得之,云云。疑卽铎矟,毒为铎字之讹,槊字本同矟宇也。郁刀铸时以毒药并冶,取莹耀如星者,凡十年乃成,淬以马血,镂金犀饰镡首,伤人卽死。因浪人所铸,又名浪剑,夷中甚宝之。七月,又攻吐蕃,并破施蛮、顺蛮,施蛮、顺蛮卽施浪、浪穹二诏之后,自南诏并吞五诏,五诏之后不复称诏,止称蛮。俘其王置白崖城。贞元十二年,取越赕,置软化城。贞元十四年,请以大臣子弟质于朝,韦皋却之。固请,乃尽舍成都,遣就学。贞元十五年,王开白国北方赕地,今永北厅。徙弥河白蛮及罗落摩蛮实之,号剑羌。是年,王从韦皋再败吐蕃于铁桥。初,王谋击吐蕃,以邆川、卽今邓川州。宁北卽今浪穹县。等城当寇冲,乃峭山深堑,修战备。至是吐蕃谋袭南诏,王告于皋,遣将屯黎州、嶲州以应之。吐蕃引兵攻嶲州,皋严兵以守,别遣将袭击,降其帅,吐蕃惧,退至铁桥。王令人毒其水,吐蕃人马多死,退屯三泸水,王与皋部将杜毗罗击败之。贞元十六年,王率子寻阁劝入朝于唐,召对延英殿,进奉圣乐舞,德宗御麟德殿观之。贞元十七年,王夜绝泸水,斩吐蕃屯卒,又合鬼主破之于泸西。吐蕃大惧,欲悉师收嶲州,以绝南诏。王谓韦皋曰:「吐蕃声取嶲州,实窥云南,请进军羊苴咩城。」皋督诸将分道与王会,陈兵深入,拔木波城。前后凡克城七,焚堡百五十所,斩获无算,生擒论莽热,献于唐,并进铠甲十五万。皋班师,帝遣中使慰抚王。王自是比年贡方物,唐帝深礼之焉。贞元十九年,王封云南金马碧鸡二山之神为景帝,建妙音寺塔,筑大理雪峰长城。宪宗戊子元和三年七月,王卒。唐遣使祭吊,在位三十年,子寻阁劝立。
|
|-
|寻阁一作觉劝又名新觉劝。 袭封南诏王 伪谥孝惠王
|
|-
|寻阁劝,唐宪宗戊子元和三年卽位,年三十一岁。唐册劝袭封南诏王,赐元和金印。宪宗己丑元和四年正月,改元应道,群臣上尊号曰骠信,以鄯阐为东京,大理为西京,重修曲靖崇真寺。寺为晋代所建。十一月王卒,在位一年。子劝龙晟立。
|
|-
|}
===Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝龙晟,唐宪宗己丑元和四年卽位,年十二岁。唐册袭封南诏王。明年,改元龙兴。铸佛三尊,送佛顶峰寺,用金三千两。元和九年,晨寇嘉定州,有飞天神兵破之。先是,节度使杜元颖守成都时,时滇兵至嘉定之沐源州,忽自惊溃。蜀军获一夷卒问之,云适见遍山神兵,一神将长斧坐二鬼上,声若迅雷,故尔惊走。至是神复现形,自后追杀,卽时死酋长二人。盖嘉定向有飞天神庙,两破滇兵者,皆此神也。宪宗丙申元和十一年,晟淫虐失道,弄栋节度使王嵯巅弑之,时年仅十九岁,唐命少监李铣祭吊,在位七年,弟劝利立。
|
|-
|}
===Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝利,唐宪宗丙申元和十一年卽位,年十五岁。唐册袭封南诏王。王嵯巅东寇。明年,改元全义。元和十三年,厚赏王嵯巅,赐姓蒙,封太容。元和十四年,废王嵯巅,赦其罪,命敬信三宝,为清平官。元和十五年,又改元大丰。重修崇圣寺。五月,大雨霖,龙首、龙尾二关倾。除洱河水怪,建龙屋塔。高十二丈。按:『白古记』:唐时洱河有妖蛇,名薄劫,兴大水淹城。蒙国王出示:有能灭之者,赏半官库,子孙世免差徭。部民有段赤城者愿灭蛇,缚刃人水,蛇吞之,人与蛇皆死,水患息。王令人剖蛇腹,取赤城骨葬之,建塔其上,毁蛇骨灰塔,名为灵塔。在今大理府城南龙尾关内点苍山马耳峰下羊皮村。每年有蛇党起风来剥塔灰。时有谣曰:赤城卖硬土。今『龙王庙碑』云:洱河龙王段赤城云。永昌生两头牛。穆宗甲辰长庆四年,赐南诏王金印。是年王卒于东京,在位八年,弟丰佑立。丰佑慕中国之风,独不肯连父名。丰佑石刻作劝丰佑 册封滇王 伪谥昭成王
|
|-
|
丰佑,唐穆宗甲辰长庆四年卽位,年七岁。唐遣京兆少尹韦审规持节册封为滇王。王遣洪成酋等人谢。明年,改元保合,又改元天启。西僧赞陀啒哆建鹤庆元化寺。先是,鹤庆地水淹,僧杖刺东隅泄之。水中得樟木,刻为佛,咒之忽灵,远近名曰活佛。按:活佛,后至明成化间,福建莆田林俊为云南宪副闻之,亲至寺中,将佛火之,得金数百两入官,又毁他寺三百,人呼为林劈佛。建常平仓,筑邓川城。敬宗乙巳宝历元年,重修大理崇圣寺一名三塔寺。成先是,王嵯巅广寺基方七里。圣僧李成眉贤者建立三塔,高三十丈。佛一万一千四百,屋八百九十,铜四万五百九十筋。元和十五年经始,至是工竣。塔顶旧有铁柱款识云:「贞观六年尉迟敬德监造」,盖寺之建久矣。重修云南东寺塔,高百五十尺,西寺塔高八十尺,二寺亦贞观间将作大匠尉迟敬德所建。文宗丁未太和元年,王母出家,法名惠海。太和二年,用银五千,铸佛一堂,废道敎。太和己酉三年,僧梦岛造永昌卧佛,长丈六。六月朔,星落如雨。命王嵯巅等寇蜀。先是,西川节度使杜元颖失士卒心,军逃入南诏,因此知蜀虚实。佑遂遣嵯巅等攻蜀,陷嶲、戎、卭三州,攻成都,止西郛十日,掠经书、宝货、子女无算,蜀中残敝。并寇梓州、蜀州。佑上表于唐,请诛元颖。唐改云南为鄯阐府。卽今云南府省城。太和四年,唐贬杜元颖循州司马,以义成节度使李德裕为西川节度使。裕至西川,建筹边楼,日召习边事者访问,凡山川险要,南道与蛮相入者图之左,西道与吐蕃相接者图之右,不啻身尝经历焉。乃奏请留北兵以重镇守,修甲胄、备器械。率户二百取一人习战,作雄边子弟等十一军。筑仗义、御侮、柔远诸城以扼要害,复卭崃关,徙嶲州治台登,以夺蛮险。令转卭、雅粟以十月而运,先夏而至,人不苦瘴,边境始安。至是使人于佑,责归所俘。太和五年五月,佑归所俘西川四千人于德裕。太和六年,佑掠骠国民三千,徙之拓东城。武宗乙丑会昌元年,佑遣军将晟君筑横渠道自磨用江至于鹤拓,灌东皋及城阳田,与龙佉江合流入于河,谓之锦浪江。又潴点苍山玉局峰顶之南为池,谓之高河,又名冯河。更导山泉共泄流为川,灌田数万顷,民得耕种之利。会昌六年九月,佑攻陷安南,经略使裴元裕死之。宣宗丁卯大宗元年,佑妃卒,佑郁郁不乐,臣下请选妃女备后宫。得罗部今云南府罗次县。一美女进之,有宠。女好佛,建罗次寺,至今灵异。六月大旱,佑令僧寿海祈雨。僧曰:「昔汤旱七年,六事自责,天雨七日。今王酒色妄杀,天怒不雨。王如改悔,天雨自至,何以祈为?」佑如僧言,自责自改,数日果雨。佑女至崇圣寺进香,回至城西,为一乘白马人摄去,寻之不得。佑告于西僧赞陀啒哆,哆曰此山神也。乃设灯照之,果在苍山下。哆怒欲行法,移山于河。山神惧,献宝珠供佛,佑乃已。大中十二年,佑遣段酋迁陷安南都护府。遣段宗榜救缅。榜,汤今云南府宜良县地。人,佑之勇将。先是,狮子国侵缅;屡求救,至是许之。按:缅甸卽汉之掸国,唐之骠国,其历代莫考。当宋元之时,屡败王师。明太祖洪武十年,缅头目招扳南进贡。十九年,使行人司钱古训赍诏立宣尉司。二十年,缅犯景东。二十一年,犯他郞甸,沐英命都指挥宁正平之。三月,犯定边,沐英同都督冯诚平之。景泰三年,王骥赏缅孟养地。缅喜,乃擒献麓川贼。嘉靖初,缅火烧赍金牌官,中终年猖獗海上,遂至难制。○考自永昌府腾越州入缅,止三十四程。腾越一日南甸、一日罗必斯、一日郞、一日甸头、一日甸尾、一日蒙腰、一日甸蓝、一日蒙怜路、一日空地、一日蒙来路、一日大市、一日龙江、一日锅地、一日人列渡、一日江头城、一日景怜、一日及、一日马来城、一日赖当、一日山头、一日甸头、一日阿只、一日吴细辰、一日折弓、一日阿越。由阿越下水,九日卽至缅城。其地有五大城,江头、太公二城之外,又有马来、安正国、蒲甘缅王三城。酋住金楼,民住竹楼。其下称酋为卜剌浪,称酋妻为米泼剌。酋出人乘轿,水有舟筏。官名有招孟、招彔、招刚三等。官无大小,倶金银花宝带。无弓箭。其水有金沙江,险恶,缅恃以为固。涸时,亦仅五里。俗敬佛,重罪对佛发誓,凭僧处断。○入缅又有三道:一由潞江西上;一由腾越七日至麓川;一由景东从木通甸至湾甸渡入芒市,十日至麓川。○此外从潞江上流蒙来渡至景乐沿河有小渡十馀处,皆可通。又有三道:一由天步马,一由湾甸,一由阿郊地界,皆可入缅。宣宗己卯大中十三年,陷播州。李德裕旣贬死,西川节度使所任皆非人,侥佯边功,发兵十万袭滇,自建昌入,佑命子世隆为坦绰,同王嵯巅迎战于古宗,今丽江府铁桥以北地。杀唐兵数万人,立铜柱于界上。世隆之母,佑妃也,出家号师摩矣。尝随佑至罗浮山白城,建一寺,南壁画一龙,是夜龙动,几损寺,妃乃复画一柱锁之,始定。按:妃本渔家女,喜浴。为妃后,仍常泛舟西洱河,屏人潜浴于水,感金龙与交,生世隆。隆七岁,拳握始开,有文在其掌曰:通番打汉。古宗之战,唐帝惧世隆为患,妻以宗室女,伺察其所为。女以世隆年庚潜送于帝。帝使太史推之,知其感龙精而生。是年,丰佑卒于东京,在位三十五年。子世隆立,以王嵯巅摄政。段宗榜救缅,回至腾越,闻佑卒,世隆立,嵯巅摄政,移书王嵯巅曰:「天启不幸,驾崩嗣幼,闻公摄政,国家之福。榜救缅以败狮子国。缅酬金佛,当得敬迎。奈中国无人,惟公望重。榜抵国门之日,烦亲迎佛,与国增光。」云云。嵯巅不知是谋,至日迎之。榜令巅拜佛,突斩之于佛前。讨其弑劝隆晟之罪也。榜熔佛得金数千两。时有缅人奉香火者在榜,默祝曰:「愿世代奉敬,今不如愿,惟愿世尊轮生,灭彼国祚。」后果生郑买嗣篡国,灭蒙氏。
|
|-
|世隆『唐书』作酋龙。 伪谥景庄皇帝僭称帝始此,以后郑、赵、杨、段、高五姓之国咸效之。
|
|-
|世隆,唐宣宗己卯大中十三年卽位,年十六岁。明年,为懿宗庚辰咸通元年,改元建极。改西京曰中都,东京曰上都。先是,德宗贞元间,西川节度使韦皋开道通南诏,令岁入贡。异牟寻、寻阁劝二世事唐唯谨,迨劝龙晟及丰[佑],又数数扰边,大为唐患。又以世隆之名犯太宗、元宗庙讳。唐不册封,隆益致怨望。至是自称皇帝,遣兵取乌蛮、僰、爨之地,置东川郡。前节度使杜悰变韦皋制度,侵扰蛮中。隆绝朝贡,寇播州。至是李福为节度使,隆遣清平官董成至成都,移书于福。成与福抗礼,福囚之。上闻,有诏释成,召至京师,见便殿,遣还。咸通二年,遣兵陷安南。左仆射同平章事杜悰言:「西川兵弱,南诏强盛,未可轻绝。宜遣使祭吊,谕令改名,行册礼。帝肯之。会隆复寇嶲州,遂止。咸通三年,隆亲寇蜀,取万寿寺石佛归。时高真寺僧崇模有神术,从征。军中乏粮,又値岁暮,士卒思归,僧咒沙成米,咒水成酒,士卒各醉饱。一日僧化蝶回国乱宫,世隆妻以书达隆。隆答曰:妖若再来,令宫人于其衣背绣蝶。后僧复至,宫人绣之。隆见僧衣有蝶,令斩之。刑七次,首不殊。僧自云:用茅锯之乃断。果然。人见僧魂化一黑鹏飞去,盖僧本高真寺鹏巢中所得之儿也。咸通四年,寇西川。咸通五年,陷安南、邕管。咸通六年,陷嶲州。咸通七年,复攻安南。岭南西道节度使高骈救之,隆兵大败,骈遂定安南。咸通十年,隆遣使杨酋庆等入朝,谢释董成之囚。归成都俘三千人。定边节度使李师望杀其使,隆怒,率众攻蜀,陷嘉州。咸通十一年正月,陷黎州,入卭徕关,围雅州,击卭州,遂进攻成都。次眉州,西川节度使卢耽畏众寡不敌,通使请降。继而唐遣东川节度使颜庆复、大将宋威等率兵来战。世隆败屯星宿山,宋威戍沱江。隆迎战于毗桥,不胜,趋沱江,中伏。城中又出突将,夜火隆营,夺升仙梁。隆大败,奔双流江,无梁以渡,乃伪请和,三日梁成而济。咸通辛卯十二年,立鄯阐王宫。咸通壬辰十三年,于白崖诸葛武侯所立铁柱之地,铸天尊柱,高八尺。蔚昔年曾至铁柱宫,其地界白崖、弥渡、蒙化三境之间。其柱刻字云:建极十三年岁次壬辰四月朔庚子十四日癸丑建立。咸通十四年,攻黔中。又寇西川,作浮梁济大渡河,防河兵马使黄景复伏兵,半渡击败之。会隆国中新兵继至,接战,景复败走。隆进兵陷黎州,入卭徕关。遂遣王保诚等四十人谩书诣剑南节度使牛丛,欲假道入朝,请憩蜀王故殿。丛囚其使三十八人,释酇咙及段酋迁二人还。隆乃退兵至新津而旋。僖宗乙未乾符二年,攻雅州。西川节度使高骈追至大渡河,大败之,俘酋长五十人,收复黎州、卭徕关,斩黄景复以狥。乾符三年,遣使诣高骈请和,不许,斩使者一人。隆怒,自是唐使至不拜,惟拜和尚。骈知之,乃遣僧景仙往谕公主事,隆乃下拜定盟。禧宗丁酉乾符四年二月,复寇蜀,高骈御退之。骈又结吐蓄尚延心嗢、末鲁褥月等为间,筑戎川州、马湖沭沐源川、大渡河三城,列屯拒险,料壮卒为平夷军。世隆气夺,因恚发疽,卒于越嶲景净寺,在位十八年,子隆舜立。
|
|-
|}
===Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆舜,唐僖宗丁酉乾符四年卽位,年十七岁。明年,改元贞明,又改元嵯耶、承知、大同,改国号曰大封民国。遣使于唐请和,诏许之。自劝龙晟至世隆以来,侵蜀伐安南,用兵五十馀年,帑藏不给,横敛于民,上下倶困。舜立,耽于酒色,委政臣下,故愿求和于唐,乃遣段宝诣岭南节度使辛谠,请修好。谠奏,许之,以息边患。乾符六年,遣使于唐求和亲,无表,只用牒,称弟不称臣。唐帝召百官议,礼部侍郞崔澹曰:「南诏无礼,恐贻后笑。」使者上书与澹争。帝谕解之。议者谓中国多故,南诏寖强,不若权与和亲。便从之。僖宗庚子广明元年春正月,唐命宗正少卿李龟年来和亲。僖宗辛丑中和元年,上表款附。中和癸卯三年,唐以宗室女为安化长公主,妻隆舜,僖宗乙已光启元年,遣宰相赵隆眉、清平官杨奇鲲、段义宗三人,朝唐帝行在,且迎公主。高骈在淮阳飞章上言:「三人南诏心腹。宜止而酖之。」唐帝从其言。隆眉等死,南诏遂不复振矣。是年昆仑国进美女,舜嬖之。光启二年地震,龙首、龙尾二关、三阳城皆崩。昭宗己巳乾宁四年,隆舜多内嬖,常信谗以诛其下,淫虐日甚。竖臣杨登弑之于东京,在位二十年,子舜化贞立。
|
|-
|}
===Shunhuazhen舜化贞 伪谥孝哀帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|舜化贞,唐昭宗丁巳乾宁四年卽位,年二十一岁。明年,改元中兴。上书于唐,朝廷欲报之。利州刺史王建上言:「臣在西南,彼必不敢犯塞,小夷何足辱诏书。」遂止。昭宗光化二年,立五学敎主。十一月,诛杨登,族其家。光化庚申三年,铸崇圣寺丈六观音,清平官郑买嗣合十六国铜所铸,蜀人李嘉亭成像。一说唐天宝间,崇圣寺有僧募造丈六观音像,未就。夜忽雨,旦视之,铜也,卽取以铸像。像成,白光弥覆凡三日夜,至今人称为雨铜观音。唐昭宗壬戌天复二年,舜化贞卒,一说实郑买嗣弑之。,在位五年。化贞有一子,生甫八月,郑买嗣主国事,遂启贞妻曰:「母后深宫,群臣无主,臣当抱太子临朝。」贞妻是其言,以子付之。买嗣抱子出,潜手伤其阴,子哭不已,乃送回宫中。明日,子死。贞妻疑而诘之,买嗣怀不安,遽起兵杀蒙氏亲族八百人于五华楼下,遂簒立焉。
|
|-
|按:蒙氏南诏大蒙国,自细奴逻禅立,起唐太宗己酉贞观二十三年,讫昭宗壬戌天复二年,传十三世,共二百五十五年。
|
|-
|}
==Dachanghe Generations《大长和国 传三世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dachanghe Generations《大长和国 传三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|郑买嗣又名。 伪谥圣明文武威德桓皇帝。
|
|-
|郑买嗣,又名,唐巂州西泸令陷南诏臣蒙氏,为清平官郑回之七世孙。
隆舜时历官侍中,权势日重。隆舜巡幸无度,留买嗣守国,遂专政柄。舜化贞时为相,化贞卒,嗣贼杀其子,簒蒙国,于唐昭宗壬戌天复二年十二月卽位,年四十二岁,国号大长和,仍都大理。明年,建元安国。后梁太祖开平丁卯元年,建普明寺。开平三年,铸佛一万尊,送寺祈福,为杀蒙氏八百人故也。开平四年八月,买嗣卒,在位八年,子仁旻立。
|
|-
|}
===Renmin 《仁旻 伪谥肃文太上皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|仁旻,后梁太祖庚午开平四年卽位,年二十二岁。明年,改元始元,又改元天瑞、景星、安和、贞佑、初历。末帝甲戌乾化三年,旻攻蜀。蜀高祖王建发兵拒之,旻兵大败,溺水使者万馀人。后唐庄宗癸未开同光元年,施宫寺灾,僧智照撰『封民三宝记』。同光二年旻以朱鬃白马求婚于南汉刘龑,龑以增城公主妻之。明宗丙戌天成元年八月,仁旻饵金丹,躁怒,常杀人,遂暴卒,在位十六年,子隆亶立。
|
|-
|}
===Longdan 《隆亶 伪谥恭惠帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆亶,后唐明宗丙戌天成元年卽位,年十二岁,明年,改元天应。明宗戊子天成三年,东川节度使杨乾贞入朝,弑隆亶而立赵善政,计亶在位二年。
|
|-
|按:郑氏大长和国,自买嗣簒位,起唐昭宗癸亥天复三年,讫后唐明宗戊子天成三年,传三世,共二十六年。
|
|-
|大天兴国一作兴源国。 一世
|
|
|}
==Dayining Generations《大义宁国 一世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Yang Qianzhen 《杨乾贞 伪谥肃恭帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|杨乾贞于后唐明宗己丑天成四年夺大天兴国赵善政之位,改国号曰大义宁国,建元兴圣,又改元大命。乾贞萂村人。今大理府宾川州所属地。母名弥彔,有美色,蒙隆舜私焉。有孕,适渔人杨氏,生乾贞,后又生诏。其父捕鱼,贞立船头,见水中有人龙衣冠冕,左右有凤鸟,白光拥护,乃呼父视之。父见是贞之影,大奇之。长仕郑氏,官至东川节度使。至是夺善政位而自立。贞在位,贪暴特甚,中外咸怨。后晋高祖丁酉天复二年,通海节度使段思平起兵讨之。贞遣弟杨诏等五人出拒。诏兵败,乾贞出奔。思平遂得位,寻赦其罪,废为僧。计贞在位八年。
|
|-
|}
==Dali Generations《大理国 传十四世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siping《太祖圣神文武皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段思平,其先武威郡北人,世为南诏蒙氏将。唐元宗辛卯天宝十载,及甲午天宝十三载,唐再伐云南,云南王蒙
阁逻凤命世子凤伽异、大军将段俭魏迎战于点苍山及西洱河,两败唐兵。以功升俭魏为清平官,赐名忠国,寻拜相,六传而至思平。其母因过江,水泛触浮木,若有感而娠,生思平,并其弟思良。思平为幕览,小府副将也。常游山中,得为帝之谶,又每多异徵。时东川节度使杨乾贞之弟杨诏者已贵,闻而忌之,使人贼思平。思平逃匿于崇恩寺,在大理府城南九里。捕者追至,见蛛网盈寺门,不入,故得脱。后积战功,使为通海节度使。后唐明宗己丑天成四年,杨乾贞夺赵善政之位。受诏之谮,常欲除思平。平卜于秀山神祠,就其舅爨判自匿。后晋高祖丙申天福元年,乾贞索捕思平甚急。会善政臣守高方,素与思平善,密遣人招思平。思平与其弟思良、军师董迦罗走就之。皆裂冠,变姓名,为猎者,牵一犬至品甸波大村今大理府云南县地。宿旅舍。舍有戟,生牛革裹之,是夜风起,戟忽洞革出。思平惊曰:「是何銛利?得非神戟乎!」问主人曰:「戟何为?」曰:「以防夜耳。」曰:「防夜莫若犬。」遂以犬易戟去。行至叶镜湖,湖在大理府云南县地得神马。饥取野桃而食,核上有虫啮「靑昔」二字,思平解为十二月二十一日,意其吉兆。于是急趋而前,借兵于东方黑爨三十七蛮部,会于石城,今曲靖府是。以董迦罗为军师。兵集之期,适十二月二十一日也。所向皆克,遂进攻大理,讨干贞。时诏等陈兵据桥,军不能过。思平夜忽得三梦:人无首;玉瓶无耳;镜破。觉而告其下。迦罗觧之曰:君乃丈夫,去首为天;玉瓶去耳为王;镜破则无对者,此神示吉兆。是日,有被缨浣沙妇,指渡处曰:「人从我江尾,马从三沙矣,尔国名大理。」从之,乃得过江,击诏等杀之。乾贞闻诏等军败,出奔。思平卽位,时天福丁酉二年也,年四十四岁。建号大理国,建元文德,仍都大理。天福三年封董迦罗为相国,封高方为岳侯,分治成纪、巨桥等地。封爨判为巴甸侯。祠秀山神,免东方三十七蛮部徭役,赦国中凡有罪无子孙者。天福四年,赦杨乾贞罪,废为僧。一说乾贞败后,挈其妻子奔永昌郡。思平遣兵追之,至万剑树,乾贞自缢而死。思平俘其妻子亲属。帝好佛,岁岁建寺,铸佛万尊。后晋出帝甲辰开运元年帝崩,在位八年,子思英立。
|
|-
|}
===Duan Siyin 《文经皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siyin 《文经皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思英,后晋出帝甲辰开运元年卽位,明年,为出帝开运二年,改元文经。帝母杨氏桂仙娘没而为神,屡著灵应,封为楡城宣惠圣国母。是年,帝叔思良争位,废帝为僧,法名宏修大师。在位一年,叔思良立。一说思英素不肖,思平在日,常欲废之,不果。迨卽位,愈淫戏无度,群臣废之,而立思良。
|
|-
|}
===Duan Siliang 《圣慈文武皇帝 太祖之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siliang 《圣慈文武皇帝 太祖之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思良,后晋出帝乙巳开运二年卽位,明年,改元至治。后周太祖壬子广顺二年,帝崩,在位七年,子思聪立。
|
|-
|}
===Duan Sicong 《思聪 伪谥至道广慈皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sicong 《思聪 伪谥至道广慈皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思聪,后周太祖壬子广顺二年卽位,明年改元明德,又改元广德。宋太祖乙巳开宝二年,思聪卒,在位十七年,子素顺立。
|
|-
|}
===Duan Susun 《素顺》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Susun 《素顺》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素顺,宋太祖乙巳开宝二年卽位。明年,改元明政。先是,宋太祖丁卯乾德五年春,王全斌平蜀,还京师,请取云南,负地图进。太祖鉴唐之祸,以玉斧画大渡河为界,曰:「此外非吾有也。」由是段氏得据南诏,相安无事。太宗乙酉雍煕二年,素顺卒,在位十六年,子素英立。
|
|-
|}
===Duan Suyung 《素英 伪谥昭明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suyung 《素英 伪谥昭明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素英,宋太祖乙酉雍煕二年卽位。明年,改元广明,又改元明应、明圣、明统、明治。太宗至道二年,述『传灯录』。真宗己酉大中祥符二年,素英卒,在位二十四年,子素廉立。
|
|-
|}
===Duan Sulong 《素隆 伪谥秉义皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sulong 《素隆 伪谥秉义皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素隆,宋真宗壬戌干兴元年卽位,明年改元明通。仁宗丙寅天圣四年素隆禅位为僧,在位四年。侄素贞真立。
|
|-
|}
===Duan Suzhen 《素真 伪谥圣德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suzhen 《素真 伪谥圣德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素真,宋仁宗丙寅天圣四年卽位,明年改元正治。仁宗辛巳庆历元年素真禅位为僧,在位十五年,孙素兴立。
|
|-
|}
===Duan Suxing 《素兴 伪谥天明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suxing 《素兴 伪谥天明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Lianyi 《廉义 伪谥上德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Lianyi 《廉义 伪谥上德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|廉义,宋神宗乙卯熈宁八年卽位。明年,改元上德。遣使入贡于宋。熈宁十年,又改元广安,作八龙王会。神宗庚申元丰三年,杨义贞杀廉义而自立。计义在位五年,自义贞弑其主廉义而自立,簒位仅四月,鄯阐侯高智升命子清平官高升泰起东方爨僰兵,讨而诛之,立廉义之侄寿辉。
|
|-
|}
===Duan Shouhai 《寿辉 伪谥上明皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
===Duan Zhengming 《正明 思廉之孙 伪谥保定皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
==Da Zhongguo Generations 《大中国》==
===Gao Shentai 《高升泰 伪谥富有圣德表正皇帝》====
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|高升泰,宋哲宗甲戌绍圣元年,受大理国段正明之禅卽位。改国号曰大中国。明年,改元上治。升泰,岳侯高方之裔,大理点苍山莲花峰下芒涌溪人。将生,其父袭岳侯,智升往石云寺在点苍山白雪峰麓进香回,遇一老叟云:「尔家将生贵子,可速归。」智升至家,而升泰适生,心颇异之。及长,有材器,仕为清平官,兼九爽之事,誉望日重。思廉出游,猝遇烈风,吹踣其马。廉将坠,智深跃前扶之。廉德智升,赐以宫人及珠玉。杨允贤(判)〔叛〕,廉命智升讨之,以功加太保,封德侯,旋晋鄯阐侯,世袭。及杨义贞簒逆,智升令升泰起东方兵,诛义贞而立廉义之侄寿辉。辉以智升为布燮,升泰袭鄯阐侯。辉在位灾异迭兴,因禅位于思廉之孙正明。明为君不振,人心归高氏。遂请升泰为君,而正明禅以位焉。哲宗丙子绍圣三年,升泰在位二年,寝疾。遗命曰:「我之立国,以段氏之弱,我死,必以国仍还段氏,愼勿背我。」及卒,其子高泰明遵遗命,还位正明之弟正湻。段氏复兴,号后理国。高氏相之,政令皆出其门,国人称为高国主,段氏拥虚位而已。
|
|-
|}
==Houli Guo Generations 《后理国》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhengchen 《段正湻 大理国正明之弟 伪谥中宗文安皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正湻,宋哲宗丙子绍圣三年复得国,卽位,号后理国。以高泰明为相国,执政柄,高泰运为栅主。明年,改元天授。又改元开明,天政,文安,赦徭役。筑楚雄城,在今楚雄府城西北二里。以封高泰明之侄高明亮。徽宗癸未崇宁二年,遣高泰运奉表入宋,求经籍,得六十九家,药书六十二部。鄯阐李观音得来朝,进金马杖八十节,人民三万三千户。湻赐得八章礼衣,龙头剑,擢为安东将军。蔚按:蒙氏时有安东将军,季李珠所筑安东城,在今大理府赵州城东二里。缅人、波斯、昆仑三国进白象及香物。十月,彗星见西方,大疫。徽宗戊子大观二年,正湻禅位为僧,在位十二年,子和誉立。
|
|-
|和誉又名正严 封云南节度使大理国王,伪谥宪宗宣仁皇帝
|
|-
|和誉,宋徽宗戊子大观二年卽位。明年,改元日新。又改元文治、永嘉、保天、广运。七月中元节,各方贡金银、罗绮、珍宝、犀象万计,牛马遍点苍。徽宗辛卯政和元年,地大震,损十六寺。三十七部判叛〕,高相国泰明讨平之。使四子高明清居鄯阐镇守。政和五年,缅人进金花、犀象。政和六年。遣儒官钟震、黄渐赍敕褒高泰朋相国忠贞,封平国公。是年,遣使入贡于宋。高泰明卒,封国师。泰明生八子,高智昌以罪流死。其下伊、何二人谋为执仇,乘誉入寺进香,图弑逆,事露被收。誉嘉二人之义,赦之,为立义士冢。高泰运立,主国事。六月,三日并出。政和丁酉七年,命子紫琮充进奉使,入贡于宋。诏遣使册封誉为金紫光禄大夫、检校司空、云南节度使、上柱国、大理国王。徽宗己亥宣和元年正月,彗出,慕宁、远、矣、破、马等叛。三月,出师征之,兵败。三十七部蛮复叛。陷鄯阐,高明清死之。郡臣以高升泰侄商量成有德,请立为相,号中国公。徽宗丙午靖康元年五月,金星入月,大火,焚三千九百家。南宋高宗丙辰绍兴六年,王遣使贡象马于宋,广西经畧安抚使奏之,诏护送行在,优礼答之。绍兴十六年三月十四日,大雾,历二十四日方开。高宗丁卯绍兴十七年,王老,因诸子内争外叛、遂禅位为僧,在位三十九年。子正兴立。
|
|-
|}
===Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|正兴,南宋高宗丁卯绍兴十七年卽位。明年,改元永贞,又改元大宝、龙兴、盛明、建德。高量成让相位与侄寿贞,退老楚雄城。人化其德,名城曰德江城。孝宗癸未隆兴元年三月,寿贞卒。寿昌立为中国公。孝宗壬辰乾道八年四月,重雾,十六日方开。正兴禅位为僧,在位二十五年,子智兴立。
|
|-
|}
===Zhixing 《智兴 伪谥宣宗功极皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixig 《智兴 伪谥宣宗功极皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智兴,南宋孝宗壬辰乾道八年卽位,明年,改元利贞。又改元盛德、嘉会、元亨、安定。遣李观音得等至广西横山砦今在广西南宁府江上。求市马。李观音得夺寿昌位,与侄贞明。阿机起兵夺贞明位,还寿昌。贞明遂据鹤庆,号明国公,伪谥义地威天聪明仁帝。高妙音自白崖起兵,据鄯阐。时有妙音之甥成贤、成正二人来谒,意在夺鄯阐。妙音觉之,与之盟于天王庙。二人口含丁香叶,出庙吐之曰:「盟非我也,叶也。」未几,二人起兵,方战,见白马将斩之。白马将,乃庙中二力士也。光宗庚戌绍熙元年,修十六寺。宁宗乙卯庆元元年,修龙首、龙尾二关,三阳城。宁宗庚申庆元六年,智兴卒,在位二十八年,子智廉立。
|
|-
|}
===Zhilian 《智廉 伪谥享天皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhilian 《智廉 伪谥享天皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智廉,南宋宁宗庚申庆元六年卽位。明年,改元凤历。又改元元寿。使人入宋求『大藏经』一千四百六十五部,置五华楼。宁宗乙丑开禧元年,智廉卒,在位五年。弟智祥立。
|
|-
|}
===Zhixiang 《智祥 伪谥神宗皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixiang 《智祥 伪谥神宗皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智祥,南宋宁宗乙丑开禧元年卽位。明年,改元天开。又改元天辅、仁寿。征三十七蛮部,至寻甸平,河水绝流。理宗丁酉嘉(禧)〔熙〕元年,封高隆鄯阐王,以高泰祥为相国,以光日为演习。大府主将也。举贤育才,时和年丰,称治国焉。理宗戊戍嘉(禧)〔熙〕二年,智祥禅位为僧,在位三十三年。子祥兴立。
|
|-
|}
===Xiangxing 《祥兴 伪谥孝义皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|祥兴,南宋理宗戊戌嘉(禧)〔熙〕二年卽位。明年,改元道隆。理宗甲辰湻佑四年,蒙古兵出灵关,伐大理。祥兴遣将高禾迎战,禾败死之。段连佑归宋,宋遣使吊祭,致经书、银缎,为高禾拒蒙古兵战殁也。理宗辛亥湻佑十一年,为蒙古宪宗蒙哥之元年,祥兴卒,在位十三年。子兴智立。
|
|-
|}
===Xingzhi 《兴智 赠天定贤王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|兴智,南宋理宗辛亥湻佑十一年卽位。明年,改元利正。又改元兴正、天定。是年,南宋理宗壬子湻佑十二年,为蒙古宪宗之二年七月丙午,太弟忽必烈等奉宪宗命,伐大理。受制专征,以大将兀良合台总督军务。八月,次临洮,由六盘逾吐番,凡行山谷二千馀里无人之境。先遣王律术、王侯、王鉴来谕大理,道阻而还。九月,次忒刺,分三道进。兀良合台率西道兵,由晏当路,诸王抄合也只烈率东道兵,由白蛮,忽必烈率劲骑,由中道。乙巳,至满陀城,留其辎重。十月,过大渡河。十一月,至白蛮打郭砦。十二月,再遣三使入大理,招兴智,皆被杀。智命相国高泰祥守金沙江,与蒙古将伯颜不花、虎儿敦等相持。忽必烈命众以革囊潜济江,破吐番,渉摩荻,出石门,所过降之,遂进薄大理。泰祥回军,奉兴智拒战,不胜。蒙古兵入上关。智奔鄯阐,泰祥退至统失逻先为姚安府,府裁,今为姚州,属楚雄府。募兵于三十七部未至,而蒙古兵已长(躯)〔驱〕而入,泰祥被执大理,不屈,乃斩于五华楼下。祥临刑叹日:「段运不回,天使其然,为臣殒首,盖其分也。」时白日正午,忽云起雷震,天鼓大鸣,忽必烈曰:「忠臣也。」泰祥夫人段氏,抱孤儿高琼、高长寿等伸诉。忽必烈目儿顾左右曰:「此忠臣后,宜善视之。」许以世其官。高泰祥为大中国升泰九世孙。遂灭段氏而有其地,得五城、八府、蛮部三十有七。乘胜入吐蕃,降其酋。明年,南宋理宗癸丑宝佑元年,为蒙古宪宗之三年,忽必烈班师。大将兀良合台拔鄯阐,获兴智以献,宪宗命赦之,封为摩诃罗嵯,管领八方,仍守其地,世袭总管。计兴智在位二年,宪宗授兀良合台银印,加大元帅,还镇大理。以刘时中为宣抚使,与兴智同安辑焉。南宋理宗庚申景定元年,为蒙古世祖忽必烈之中统元年,兴智率其季弟段信苴福北行,朝于世祖,道卒。计为总管又七年。蒙古遣使来祭吊,文曰:「段氏承八姓正位,归有新统,旣顺天时以向义,犹得国王以栖迟,实国家待远方之仁,由贤王能左右之义。受命以来,朝夕愓励。赖尔维勤,用征不廷,正当共享亨嘉之运,胡意遽罹霜露之灾,呜呼!当朕未集大统,乃为叔季之国。兹旣承景运,合正君臣之称,参录不替于子孙,诏禄宜昭于典册,特遣太常省祭,赠为后理国向义天定贤王段公,尚赖神麻,永保祚土。所赠王爵,后不为例。」明年,南宋理宗辛酉景定二年。为蒙古世祖中统二年,世祖敕授王之弟信苴日则段实。总管守大理。命之曰:「向率我以临尔境众据国人之请,因从城下之盟,款附而忠勤益著。庸示至优之礼,以彰同视之仁。可革帝号,锡以虎符,总理大理、鄯阐、威楚、统矢、会川、建昌、腾越诸郡,抚恤已附之民,招集未降之国,卿其勉之。」
|
|-
|按:段氏后理国,自段正湻复国,起宋哲宗丙子绍圣三年,讫南宋理宗癸丑(实)[宝应元年,传八世,共一百五十七年。
|
|-
|总计段氏大理、后理二国,传二十二世,共三百零十五年。
|
|-
|增订南诏野史下卷
|
|-
|}
==Hu Weixianmen Wing DynastyRevisions《大淸湖南武陵胡 蔚羡门订正》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hu Weixianmen Wing Dynasty Revisions《大淸湖南武陵胡 蔚羡门订正》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段氏总管除天定贤王段兴智受封总管七年外起段信苴日卽段实讫段世,共袭十二世。
|
|-
|段实一名信苴日。
|
|-
|段实,于南宋理宗景定二年,蒙古世祖之中统二年,入朝于世祖,袭总管,赐虎符,领大理、威楚、鄯阐、统矢、会川、建昌、腾越等城,自万户以下皆受节制。南宋理宗癸亥景定四年,为元世祖中统四年,蒙古设大理都元帅府,命昔撒昔总制鬼国、大理两路。理宗甲子景定五年,为世祖至元元年,妖僧舍利威结威楚、统矢、鄯阐及三十七蛮部叛,实讨之,大破于威楚、统矢、安宁等处,又破释多罗十馀万众于洱河海口。南宋度宗丁卯咸湻三年,蒙古世祖至元四年,以皇第五子忽哥赤为云南王,镇大理。至元五年,忽哥赤受命与安南国王讨占城、真腊。南宋度宗咸湻六年,世祖至元七年,置大理路军民总管府。南宋度宗辛未咸湻七年,为蒙古世祖至元八年冬十一月,世祖改国号曰元。云南王忽哥赤为元帅寳和丁所杀。元伐金齿、缥甸,降之。分大理三十七蛮部为南北中三路,遣阿鲁忒儿宣抚大理,招谕诸蛮。南宋度宗辛未咸湻十年,元世祖至元十一年,封宗室脱忽鲁为云南王,命云南行省平章政事赛典赤建云南各衙门。妖僧舍利威复叛,实遣石买等诡为商贾,执贽往见,挺矛鏦杀之,枭首于市。元世祖赐实白金及金织纹衣。南宋恭宗丙子德佑二年,元世祖至元十三年,授实为大理等处宣抚使。缅甸叛犯永昌,元命纳速剌丁赛典赤之长子,后封延安王。伐之,破砦三百,因天暑,还师。复命诸王相吾答儿、右丞太卜、参政也罕的斤伐缅,招讨使法烈先驱造舟于阿若、阿禾两江,进拔江头、太公二城,金齿、乌蒙皆降。南宋帝昺庚辰祥兴二年春二月,为元世祖忽必烈之至元十七年,宋亡,元入主中国。以忽哥赤之子也先帖木儿为云南王。命忙兀鲁徵八百媳妇。缅败忽都帖木儿兵,诏思、播土官田、杨二处兵助讨之。命征缅官番听云南王节制。至元辛巳十八年实率子阿庆入觐,元祖嘉其忠,晋大理、威楚、金齿等处宣慰使都元帅。升辞,复拜为云南诸路行中书省参知政事,留阿庆宿卫东宫。至元壬午十九年,实受敕迎征缅师,于金齿病卒。诏以其弟忠为大理宣慰使兼军民万户府,赠实为武定公。实任职二十二年。
|
|-
|}
===Duan Zhong《段忠 实之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhong《段忠 实之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段忠,元世祖癸未至元二十年袭。是年,忠随元元帅阔木征芒部、两林蛮及会川等处,破贼立功,元授忠为善阐酋,赐虎符。元置邦牙宣慰司于蒲甘城,命云南王也先帖木儿率招讨使怯烈总兵三千往镇之。忠奉云南王命伐武定。冬十二月忠卒,以实之子阿庆为大理金齿等处宣慰司都元帅、佩金虎符,封宣武将军,晋镇国上将军,尚公主。遣归,复授云南行省参政。忠任职一年。
|
|-
|段庆卽阿庆。实之子
|
|
|-
|段庆,元世祖甲申至元二十一年袭。至元二十五年以云南王也先帖木儿移镇大理,进封营王。至元二十七年冬十月,封皇孙甘剌麻为梁王,镇云南。至元二十九年改封梁王甘剌麻为晋王,镇北边。至元三十年,封甘剌麻之子松山镇云南。至元三十一年世祖崩,孙铁木耳立,是为成宗。成宗丙申元贞二年,置彻里路,卽车里军民宣慰使司。令与八百犬牙相制。秋八百叛命,也先不花征之。成宗己亥大德三年,云南水西土官宋隆济叛,贵州知州张怀德战死。云南行省麻九儿讨之,追杀贼首撒月,斩首五百级。庆奉敕征交趾,平之。入朝,带僧左黎同往,适成宗手疽甚,黎以法水洗之,立愈。帝欲试其术,乃掘地窖,令八人潜其中击鼓,佯云有怪,召黎治之,黎行法,顷之不闻鼓声,启窖视之,则八人已死。帝敬其法,封为国师。大德四年,缅人僧哥伦作乱。缅酋执其兄阿散哥也,寻释去,阿散乃率其党杀酋。酋次子奔诉京师,诏遣薛超兀儿率行省兵讨之。大德五年,金齿、八百叛,不输粮,杀官吏,元命右丞刘深、哈剌带、郑佑等征之。刘深协求水西土妇节金三千两、马三千匹,土官宋隆济遂叛,围深等于穷谷中,梁王阔率兵救,解之。冬,云南地大震,御史陈天祥谏伐西南夷,不报。大德七年,罢徵八百,免右丞刘深官,收符印。左丞相哈剌哈孙议深徼名首衅,丧师辱国,劝帝诛深,遂杀之。深卽往以兵逼南宋帝昺于谢女峡者。大德八年,立平云南碑于点苍山。顺元宣抚宋阿重获其叛叔宋隆济,朝命升职,赐衣一袭。滇池有蛟,化少年淫妇女,有神僧赵伽罗者,命黑胡神擒之,至噀水见形,斩之。神卽土主也。成宗丙午大德十年,罗雄土官阿那龙少叛,据越州。今在曲靖府南六十里,本唐之悦州,其川名鲁望。命右丞汪惟能讨之,追至曲靖,斩那龙少。是年庆卒,弟正袭。庆任职四十三年。
|
|-
|}
===Duan Zheng 《段正 庆之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zheng 《段正 庆之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正,元成宗丁未大德十一十年袭。正招蒙化山中生爨入籍。元授正为参政,仍大理军民总管。晋宁建盘龙寺。有神僧觉照者,段氏族人,号莲峰,游东山见龙潭绝幽胜,乃咒龙令徙。龙去,水涸,建寺其地。蔚按:莲峰僧于顺帝之至正末入定塔中。武宗海山戊申至大元年,沾益、乌蒙地大震,三日并出。至大二年三月,梁王松山风疾,诏封皇第七子西平王奥鲁赤之孙老的代镇云南。仁宗爱育黎拔力八达壬子皇庆元年,诏罢徵八百。皇庆癸丑二年冬十月,学士李孟奏准开科,三年一试。时九成殿生芝,天下共取士三百名,每榜云南取五名,内蒙古二名,塞目二名,汉人一名。以八月二十日初场,二十三日次场,二十六日三场。仁宗乙卯延佑二年十一月,封武宗子和世珠为周王,出镇云南。仁宗丙辰延佑三年,正卒,庆子隆袭。正任职十年。
|
|-
|}
===Duan Long 《段隆 庆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Long 《段隆 庆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段隆,元仁宗丁巳延佑四年袭,元授隆为大理军民总管。延佑己未六年,云南行省奏:「夷俗:凡土官无子,卽以妻代管。请听之。」诏曰可。延佑庚申七年,封甘剌麻孙王禅为云南王。英宗硕德八喇癸亥至治三年,进封王禅为梁王,封其子帖木儿不花为云南王。是年八月,诸王按梯不花、索孛罗、月鲁铁木儿等及御史大夫铁失弑帝于南坡行幄。九月泰定帝也孙铁木儿卽位。十二月流诸王月鲁铁木儿于云南。泰定四年,洱海有水怪,牛猪形短项金睛,兴水为患。大理一道人向隆取黄金百镒,隆与之,乃以金为索,沉于河,怪卽日徙于浪穹宁河。按:『六诏灵源记』云:宁河无底。明宣德间,有渔人李应捕鱼,网得金索,旋得旋断。一渔者诫之曰:可止矣。应贪甚,尽曵之,索将穷,惊其怪,风浪陡作,应并舟倶溺,至今为患。文宗图帖睦尔庚午至顺元年,以豫王阿忒思纳失里出镇云南。诸王秃坚据云南叛,杀廉访使,自称云南王。元诏枢密帖木儿讨之,发朵甘思等处兵分道进。至四川建昌、罗罗斯,权寻甸府官曲术集义兵讨秃坚,败贼伯忽于马龙,追至金马山,擒之。是年,隆以老退闲,子俊袭。隆任职十四年。
|
|-
|}
===Duan Jun 《段俊 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Jun 《段俊 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段俊,元文宗辛未至顺
二年袭,元授俊为云南行省平章。乌撒部奏:「云南驿输征甚苦,愿属四川。」奏下参政贾敦煕议之。是年俊卒,族弟义袭。俊任职一年。
|
|-
|}
===Duan Yi 《段义 俊之族弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Yi 《段义 俊之族弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段义,元文宗壬申至顺三年袭,朝命止授为承务郞、蒙化州知州。是年阿容禾叛于中庆路,义助兵讨平之,以功升参政。九月,乌蒙土官禄馀寇顺元,云南行省遣都事那海奉诏往谕,授馀为参政。冬十一月,云南行省奏:「国马每月上寅日给盐,饮之无病。因伯忽反,盐不给,马多死。」诏四川以盐给之。是年义卒,隆子光袭。义任职一年。
|
|-
|}
===Duan Guang 《段光 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Guang 《段光 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段光,元顺帝妥权帖睦尔癸酉元统元年袭,朝命止授为承务郞、蒙化州知州。番兵作乱,孟州判官李生等守白崖,値高蓬新败番兵,乗胜长驱破河尾关。光率兵大败之,斩馘无算,河水尽赤,为之不流,得战马甲仗数千。光赋凯旋诗云:「雨锁金门百里城,神州花木管弦声。齐天苍岳参云峻,界地楡河射月明。梵宇三千朝呗朗,招提八百夜香淸。恒沙善果心无异,何患愚夷治不平。」元统二年,光以先与梁王把匝剌瓦尔密孛罗因分域构隙,至是遣张希矫、杨生、张连等发兵攻梁王,不胜,士卒多死,希矫等遁归。顺帝至元元年,梁王侵大理,光自督兵与战于昆弥山卽今大理府赵州南之定西岭,梁王大败。凯还,侍翰杨天甫作『长寿仙曲』上光云:「蒙氏钟王气,驾驭万乗唐。南龙光对北金锁,东洱水朝西点苍,四面固金汤。江绿春杨柳,岸淸古雪霜。屏障龙吟梅破王,竹林鹤立菊舒黄,四季景如妆。此生诚庆幸,有眼睹明王。」光大喜,设宴谢之。顺帝辛巳至正元年,玉案山生水小赤犬,群走如飞。段雄正曰:「此天狗星所化,大兵压境之兆。」经二年方绝。又下铁雨山石,民屋倶穿,人値之多击死。梁王刺杀段氏臣高蓬。先是,光令蓬督兵罗那关,梁王使人暗招之,蓬不从,答之诗云:「寄语下番梁王翁,檄书何苦招高蓬,身为五岳嵩山主,智过六丁缩地公,铁甲铁盔持铁槊,花鞍花索驭花骢,但挥眼前黄石阵,孤云击破几千重。」梁王忌之,乃重贿蓬庖人,刺杀之。顺帝甲申至正四年,光卒,弟功袭。光任职十二年。
|
|-
|}
===Duan Gong 《段功 光之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Gong 《段功 光之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段功,元顺帝乙酉至正五年袭,朝命止授为承务郞、蒙化州知州。至正六年,木邦夷思可叛。元命河南参政贾敦熈督师会云南路兵讨之,以功为前锋,屡战克捷。叙功升功为大理总管,寻升参政。至正癸巳十三年,红巾贼流入建昌,旁掠云南边地。阿次失里讨平之。至正十五年三月,元窜太师脱脱于云南。中书右丞哈麻、御史袁赛因不花等陷之也。十二月,左丞相哈麻矫诏杀脱脱于阿轻乞之地,时年四十二岁,天下寃之,两日相荡。是年,梁王宫中有怪。左右启王曰:「盘龙寺僧莲峰,能驱邪。」王礼请至,行法,怪息。王喜,留宫中供养,至夜密问之曰:「今中原纷乱,后事如何?」僧曰:「二十年后祚尽矣。」至期明师果南下。至正十六年,黑井有毒龙,兴水溢井,损民居。莲峰建寺,书铁符沉井中,害息。又宁州有虎咥人,莲峰洒净水驱虎远去,明日虎果去。七月,元以四川廉访使蒲机云为云南诸路廉访使。至正癸卯二十三年三月,红巾贼明玉珍率其党李芝麻同弟明二等将兵三万攻云南。入金马山,梁王把匝剌瓦尔密奔楚雄。四月,梁王发中庆,至石碑村,红巾入城,梁王闻报,感而自咏云:「野无靑草有黄尘,道侧仍多战死人。触目伤心无限事,鸡山还似旧时春。」随命陜西参政车力帖木儿拒之,擒明二。时四方乘机窃发,群盗满山,功乃谋于外外杨智,字渊海者,同稽于卜,卜告吉。又得子宗、子秀兵至,功遂从梁王进兵,吕合败红巾于关滩江。红巾收合馀衂再战,杀段氏之骁将铁万户,又有江心庄人杨胜力战死。梁王为文祭之曰:「生于江心,为我门户,我旧不识,用备其数,能卫社稷,春秋与之,惟忠惟烈,尔则处之,噫! 义重于生,生必有死,丈夫之事,识者有几。愿气作山河,魂归苍洱,英杰复生,以保我之昆裔。」祭毕而哭,一军感泣。是夜,红巾屯古田寺,功令人焚寺,红巾乱,以铁骑捣之,死者大半,追至回蹬关,又大破之。副将谢得攻安宁,功力战杀二千人,谢得奔中庆。于夜功谍者拾得一书,乃明玉珍母寄珍书云:「自尔去后,老母平安,征云南务要得之。兵粮不足,随后发来,不可轻回。」功阅书,令杨智易其辞曰:「自尔去后,老母不安,臣下乱法。又闻中国人马入界,非止一处。尔须急回,迟则难保。大夏天统元年,太后平安书。」遂募亡命者赍书往。有打金箔人陈惠愿行,惟虑老母在。功许养其母,惠遂往。玉珍得书,挥之去令回报,迨夜,玉珍旋军。功追摄至七星关,大破其众。梁王回中庆,奏升功为云南行省平章,以主阿妻之。一日主与宴酣,歌『金指环』云:「将星挺生扶寳阙,寳阙金枝接玉叶。灵辉彻南北东西,皓皓中天光映月。玉文金印大如斗,犹唐贵主结配偶。父王永寿同碧鸡,豪杰长作擎天手。」功久居梁王府,嫡妻高夫人在大理作词寄功云:「风卷残云,九霄冉冉逐。龙池无偶,水云一片绿。寂寞倚帏屏,春雨纷纷促。蜀锦半间,鸳鸯独自宿,珊瑚枕冷,泪滴针穿目,好难禁。将军一去无度,身与影立,影与身独,盼将军只恐乐极生悲寃鬼哭。」至正二十四年春,功还大理,至洱海金鸡庙,夫人遣人适来报生子,功喜,作歌曰:「去时野火通山赤,凯歌回奏梁王怿。自冬抵此又阳春,时物变迁今又昔。归来草色绿无数,桃花正秾柳苞絮。杜鹃啼处日如年,声声只促人归去。」至正二十五年,功思新婚,欲往梁王所。员外杨智于壁间题诗留功,张希矫亦上书留行。功曰:「寳剑岂埋荒土物耶!」矫苦留不已,功怒流矫于顺州。顺州,前明属鹤庆府,今裁在永北厅城西一百二十里。唐时地名牛睒。遂与夫人别,倍道至中庆。梁王疑之,私议曰:「平章此来,得无有吞金马咽碧鸡之心。」其下有姤功者复谗构之。王与阿谋欲以孔雀胆毒功。私泄之,愿与西归。(今)〔令〕功周防,功不信。是年滇大旱,人言定远有禅僧连精,通瑜伽秘密敎,能降龙役鬼。启梁王,王遣人迎至,僧设坛祈雨,咒毕,钵中出一小蛇,遂大雨。王大喜,酬以金帛,辞,役鬼荷担,行空而去。顺帝丙午至正二十六年春,中原盗蠭起,临安廉访使支渭兴三恳休,梁王不允,遣使金闾慰,赐羔羊。渭兴自咏曰:「年高才薄忝淸流,欲挂朝冠不自由。且喜壮怀无诉谍,从敎行道有鸣驺。故园花木无由见,何日干戈定得休。九十春光还欲暮,放怀聊与醉金瓯。」重午节,梁王宫门外观射柳,随侍文武赐宴,支渭兴诗贺曰:「平地如席草如茵,少年将军酒半醺。朱鬣马穿人影过,绿杨枝逐箭锋分。旌旗色映宫前瓦,鼓角声飘海上云。何日鲸鲵倶授首,普天偃武共修文。」七月,梁王偕功东寺讲经,至通济桥,功马逸,王乘机令番将掖杀之。阿闻之恸哭曰:「昨灯下吾犹言,云南施宗施秀二人以胭花殡命,奈何不信。今果然。」命侍女锦被包之,以王礼敛送归大理。诗挽之云:「吾家住在雁门深,一片间云到滇海。心悬明月照靑天,靑天不语今三岁。黄嵩历乱苍山秋,误我一生踏里彩。华言锦被也。吐噜吐噜段阿奴,施宗施秀同奴歹。云片波潾不见人,押不芦花华言起死灵草也。颜色改。肉屏华言骆驼也。独坐细思量,西山铁立华言松林也。风潇洒。」功丧旣行,阿遂不食死,以殉焉。其家臣员外杨智渊海闻而亦死之。智临死诗曰:「半战功名百战身,不堪今日总红尘。死生自古皆由命,祸福于今岂怨人。蝴蝶梦残滇海月,杜鹃啼破点苍春。哀怜永诀云南土,絮酒还敎洒泪频。」明洪武间都督冯诚经功墓,亦歩原韵题诗,吊之曰:「田横五百剑孤身,转眼关山半委尘。北阙玉楼召客记,南滇粉壁说诗人。苍山夜黑云遮月,金马天寒鸟怨春。共惜平章迷绣幕,至今愁听水声频。」功死,长子宝自称平章,立于大理。功任蜀二十二年。
|
|-
|}
===Duan Bao《段宝 功之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Bao《段宝 功之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段宝,于元顺帝丙午至正二十六年八月,因父功为梁王所害,遂自称平章,立于大理。是年,梁王开科取士,以支渭兴主试事。梁王复听谗,诛锄段族。梁段旣结仇,数数构兵。鹤庆知事杨升调和二家,自金鸡庙分界,南属梁王,北属段氏,力劝息兵,百姓稍宁。至正丁未二十七年四月,梁王生日,群臣称贺。王宴于昆明池上,省宪官献诗曰:「贤君添算宴嘉宾,幄殿先施巨海滨。万里晴天开绵绣,一川芳草踏麒麟。笙歌暖送金杯酒,铠仗寛围玉佩人。醉饱百官咸稽首,愿王高寿过千春。」中庆路土主庙圮,梁王重修,立牌纪事。先是,至正十二年庙为耆民杨光所修。至二十三年红巾贼入滇,陷中庆,毁民居,庙亦被焚。梁王欲并段氏,遣人剌宝,弗得。又令平章矢剌七攻大理,皆不克。乃遣使通好,奏授宝为云南右丞,以和之。红巾复入滇,梁王命叔铁木的罕赍敕借兵于宝,宝答书曰:「杀虎母还喂虎子,分狙栗自诈狙,公假途灭虢,献璧吞虞,金印玉书,设钓鱼之香饵,绣阁艳女,备揜雉之网罗。况平章已死,只遗一奴一獒,奴可配阿妃,獒可配华黎氏。二事许诺,当借大兵。不然,金马山换作点苍山,昆明海改作西洱海,兵来矣。」书后又附一诗云:「烽火狼烟信不符,骊山一举任枝梧。平章枉挂红罗帐,员外空题粉壁图。凤去岐山祥兆隐,麟戕大野瑞光无。自从界限鸿沟后,成败兴亡不属吾。」梁王读而深恨之。是年,明太祖取燕京,元顺帝北遁,元亡。明太祖戊申洪武元年,梁王复通好于宝,辞甚卑逊,宝许之和。时有蛮舍兴者,自元江攻入鄯阐,王惧欲出奔,宝以唇齿之故率兵救之,击走舍兴。王德宝,升为武定公。敕曰:「段宝归附而来,忠勤懋著,父子秉忠,征讨克捷,乃于戎马倥偬之中,干戈纷扰之际,不第远朝且兼平乱。宜示至优之数,以彰匡济之勋,兹特升宝为武定公,仍总管大理军民府。尔其不负初心,永保世爵,以光大尔赤城于无穷。宣光元年敕。」云云。宣光乃故元顺帝太子立于应昌年号也。太祖洪武辛亥四年,宝降于太祖,上奏云:「臣闻有天下者为天下之主,有列土者为列土之君。卑臣宝虽隔万里之遥,每切中原之向。大理有二帝三皇之后,一方九姓之传,汉晋六朝以来,大蒙国受封于前唐,残唐五季而终,二理国继守于两宋,臣祖思平等恪共藩复,贡礼屡修于中土,华风远畅于边隅。迨至故元,不尚仁义,专事暴残。顺帝已遁北方,梁王犹祸鄯阐。迩闻明主奉天承运,御极南京,中原太平,边徼宁乂。意者中国有圣人,履尭舜之正统,陋汉唐之浅图,天时人事然也。或命臣依汉唐故例,岁贡天朝,或仿元代职名,俾守旧土。庶深谷回阳,幽扄照日,八方浴德,六合同春,垂怜边境,救恤一方。欲修进贡,恐触明威,合待事体之定,专候圣旨之颁,谨此。」专差段贞、王伯鹘驰奏以闻。太祖诏谕答之。洪武五年,宝女兄名羌娜,小名僧奴,又名宝姑者,适建昌土官阿黎。先是,羌娜绣一旗,至是将嫁,以旗付宝嘱曰:「母常语我云尔父为梁王所害,必当报仇,惟望尔辈长大。我闻母言,故绣此旗已五年矣!今我嫁至夫家,收拾建昌、东川军马,飞报若到,女急来应,愼勿违焉。」临行,又以二诗别宝云:「珊瑚钩起出深闺,满目潸然泪湿衣。氷鉴银台前长大,金枝玉叶下芳菲。鸟飞兔走频来往,桂秀梅香不暂移。惆怅同胞未忍别,应知恨重点苍低。」「何彼秾兮花正红,香车独去洱河东。鸿飞雪岫难经目,风刺霜林易割胸。云白天高连水远,月新春叠与秋重。一作闺里绣旗寃父魄,天边提剑属儿曹。泪珠恰似通宵雨,千里关山几处逢。一作须知恨重苍山小,回首寒云千万重。」洪武辛酉十四年四月,国中巫女歌曰:「莫道君为山海主,山海笑谐谐。园中花谢千万朶,别有明主来。」数日,宝卒,子明袭。宝任职十四年。
|
|-
|}
===Duan Ming《段明 宝之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Ming《段明 宝之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段明,明太祖洪武辛酉十四年四月袭,梁王授明为宣慰使。九月,明太祖命颖川侯溥友德,列侯曹正、王弼、金朝兴,都督郭英、张铨等,率师三十万征云南。帝出饯于龙江。友德至湖广,分遣都督胡海洋、陈桓等领兵五万,由四川永宁趋乌撒。友德等率大军由辰沅趋贵州。进攻普定,擒土酋安瓒,诸苗蛮犵狫闻风迎降。十二月,溥友德等兵至普安,攻下之,进至曲靖。先是,梁王把匝剌瓦尔密遣其司徒平章达里麻将精兵十馀万屯曲靖,以拒明师。沐英曰:「彼谓我师疲于深入,未有虞心,乃可破也。」友德然之,遂倍道进师。将至白石江,忽大雾四塞,冲雾及江而上。顷之雾雾,则两军相望,达里麻见之大惊,以为神军飞至,拥军阵于南岸。沐英分遣一军,沂流潜渡,出其阵后,吹铜角,树旗帜,为疑兵山谷间。达里麻急撤阵后,军以御之,上军阵乱。友德等趣师济江,一涌而渡,旣渡,整列进战。敌众披靡,生擒达里麻,横尸十馀里,俘其众二万人,友德悉慰遣之。友德进击乌撒,分遣沐英等趣云南。梁王闻达里麻破,弃城走晋宁州,忽忽纳岩,寻入滇池岛中,先缢其妃,自饮药不死,投水死之。父老收塟云南城西三十里浄耳山,土人立庙妙音寺侧。后至嘉靖间,拆庙材修社学,乃因旧址为小寺祀之。云南右丞观音保以城降。英等入城,秋毫无犯。收梁王金印并符信图籍,安抚其民。友德亦自曲靖循格孤山而北,以应永宁之兵。时元右丞实卜闻胡海洋等进自永宁,乃聚兵赤水河,以拒之。海洋等造木筏,夜半济河,而友德亦至,实卜遁去。友德令将士于乌撒筑城,版锸方具。蛮众复合,斩首三千馀级,馀众溃散。遂城乌撒,得七星关,以通毕节。又克可渡河,于是东川、乌蒙、芒部诸蛮震惧,望风降附。先是,洪武壬子五年正月,帝遣翰林待制王禕、行参政吴云持诏谕云南梁王,令奉版图来归。梁王初不从,后有降意。至洪武六年十二月,会元太子爱猷识里达刺立于汉北,使侍郞脱脱征饷于云南,脱脱觇知梁王有二心,因以危言逼王,杀使臣以绝其念,王遂杀禕,父老收尸塟地藏寺北。吴云奉使时,会梁王遣铁知院等二十人使沙漠,为边将所获,帝乃释二十人,令与云倶行。至沙塘口,二十人谋曰:「吾等奉使不达,被执而还,罪必死。」乃说云令胡服编发,诈为元使。又逼令改制书,共给梁王。云不从,以死自誓,亦被害。梁王遣人收云骨,塟给孤独寺,及事闻,帝震怒,故有是役。按:王禕字子充,浙江金华府义乌县人。建文时赐谥文节,永乐登极,凡建文设施尽革,遂削禕谥。后至正统中,义乌县丞刘杰奏请,加奉使云南死节臣恤典,禕赐谥文忠。吴云字友云,江苏常州府宜兴县人。至弘治中,赠谥忠节,并祀云南,敕赐为二忠祠。是年冬十二月,明卒,叔世袭。明任职一年。
|
|-
|段世 宝之弟,明之叔
|
|-
| 段(氏)〔世〕,明太祖壬戌洪武十五年袭。二月,世闻鄯阐破,梁王已死,又以沐英等兵略寻甸、临安、澄江、元江、楚雄、洱海,次第皆下,进逼大理,乃遣使致书,请依唐宋故事,奉正朔为外臣。友德不听,答书谕令速降。凡三致书,世怒,遂遣都使张元亨、州判李洪赴军前下战书。畧云:「鄯阐危甚登天,大理险倍投海。英如汉武,昔战仅置益州;雄若胡元,设官止于中庆。取之易而守之难,莫若依吾请乞册封,定为进贡,始为良策。吾实武人,不通经史,前代得失则餍闻也。恭惟麾下振耀皇威,功不亚于孔明,才克比于方叔。涤山川之旧染,历代所未有也。况吾与尔旣无杀父之仇,又无财债之怨,无故交战,真乃不祥。尔屯威楚,彼处之民有何罪焉?若耗人之食,是绝其命;取人之财,是刳其心;摅人妻女,是乱人伦,则吾之应,不得已也。爰念尔等皆中国之人,其中岂无一二达士。得此何益?不得何损?西南之地,号为不毛,易动难安。今春气渐暄,烟瘴渐起,不须杀尔,四五月间,雨霖河泛,尔粮尽气敝,十散九死。形如鬼魅,色如黑漆,欲活不能,汝之进退狼狈矣。莫若乘此,天晴地乾,早寻活路。宁作中原鬼,莫作边地魂,尔宜图之。后理国段明顿首。」书后继一诗云:「长驱虎旅势威宣,深入不毛取暴残。汉武故营旗影灭,唐宗遗垒角声寒。方今天下平犹易,自古云南守独难。拟欲华夷归一统,经纶度量必须寛。」友德、英等览书大怒,拘其使。左副将军蓝玉等率师径进,兵至品甸,世恃田庵和尚有术,列兵五万扼下关。沐英自将攻之,不克。乃命王弼,率兵出洱水之东,趋上关,英以兵缀下关,为犄角势。别遣胡海洋将一军夜度,从石门间绕道出点苍山后,縁崖而上张旗帜。迟明,英先驱,渡河斩关而入,海洋之师亦从山而下,腹背夹攻。世众惊溃,拔其城,世就擒,并执明之二子苴仁、苴义,时二月二十三日也。于是沐英等分兵取鹤庆、丽江,破石门关,荡金齿,所有摩、和泥、车里、品缅等部相率归附。又略建昌,故元平章月普帖木儿降。闰二月,赐云南各土官冠带及诰敕,使任本州岛知州等官。四月,乌撒、东川、芒部诸蛮复叛,溥友德、沐英会兵进讨,斩首三万馀级,诸蛮来降,云南悉平。以乌撒、乌蒙、芒部地近四川,分隶之。九月,土官杨苴等叛,紏众至二十万,攻云南城。都督谢熊、指挥冯诚婴城固守。沐英自乌撒移兵讨之,斩首六万馀级,擒四千馀人,诸部悉定。洪武癸亥十六年二月,故元右丞普颜笃同土酋高大一作天惠叛,据佛光砦。蔚按:佛光砦卽佛光山,山半有洞,可容万人。又名一女关。昔诸葛武侯曾擒孟获于此。在大理府浪穹县东二十里。也先不花叛,据邓川州。溥友德率郭英平之。又定蒙化州,过金沙江,攻北胜府,今永北厅。擒故元平章隔生。于是丽江府、拒津等州皆平,前后斩首一万三千级,蛮民降者四十万户。帝遣耿炳文谕溥友德、蓝玉等班师,沐英留镇云南,别命列侯王志、仇成、张龙分赴寻甸各府,缮城池,立屯堡,安辑人民。是年,械送世并明之二子苴仁、苴义赴京。世临行,以诗别故人杨朝彦云:「雄兵一日破重关,父子流离瞬息间。别后欲知相忆处,锦江流水彩潺潺。」洪武甲子十七年四月,溥友德等班师至京,论平云南功,进封溥友德为颖国公,胡海洋东川侯,陈桓普定侯,张翼鹤庆侯,蓝玉、仇成、王弼、张龙等并赐铁券,子孙世袭。吴复、金朝兴先卒,倶授世袭侯爵,铁券加禄并同。馀升职赐金帛有差。以世、苴仁、苴义见帝,帝诛其头目,谕苴仁、苴义及世曰:「尔祖宝,昔年曾有降表,朕不忍废。」乃授苴仁官雁门卫镇抚,赐名归仁,苴义官武昌卫镇抚,赐名归义。世任职一年,段氏世土,至此而绝。帝又封其族段保为云龙州土知州。
|
|-
|按:段氏袭总管十二世,起南宋理宗辛酉景定二年,为蒙古世祖中统二年,讫明太祖壬戌洪武十五年,共一百二十二年。
|
|-
|}
==Notable Officials from Nanzhao through the Generations《南诏历代名宦》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Notable Officials from Nanzhao through the Generations《南诏历代名宦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|张元,汉元帝时守。 张翕,东汉明帝时守。 郑纯,同时。 王追,东汉顺帝时守。 王伉,后汉时永昌郡丞。 吕凯,同时永昌郡功曹。 前有文齐、吴霸、陈立,后有张亮、刘宠、犍为费诗,巴东马忠皆著勋绩。 李毅,晋惠帝光煕元年为宁州刺史,政治明达,五苓夷反时病卒,其女秀有父才,领州事。至怀帝时赠少府谥威侯。 王逊东,晋明帝大宁元年为晋宁守,华夷畏服。夷叛,死之。州人以中子坚领州事,官至平西安南将军。
|
|-
|汉盛览,字长通,叶楡今大理府太和县。人,受学司马相如,著赋心四卷。同时叶楡张叔,天资奇颖,书过目成诵。俗不知学,叔每病之。闻司马相如至若水,蔚按:『水经注』:若水南经云南郡之遂久县,县废,在今大理府宾川州城东北一百里,古称白门,置于汉时,今为金沙江巡检司地。遂负笈往从之,受经归敎乡人。 隗叔通,叶楡人,性至孝,母好饮江水,通日入江取水,维艰。滩水忽出平石,涉取甚便,人谓之孝子石。 东汉许叔,一作叔重。昆明人,明帝时入中国,受五经归,为本郡敎授。 尹珍,字道真,平彝人,桓帝时入中国,负笈从许愼受经学,还敎乡人。 唐尹仇寛,叶楡人,德宗贞元间为蒙氏淸平官,入朝陈地图,贡方物,唐拜为左散骑常侍,封高溪郡侯。 张志成,昆明人,文宗太和间入蜀,学王羲之草书,归敎国人。 元王升,昆明人,曲靖宣慰副使学政名时。 段文瑞,澄江人,读书尽孝,诏旌其门,仕至临安总管。 杨惠,楚雄人,孝母感神,诏旌其门。 张景云,昆明人,仕至临安经历。 陈宝,平彝人,仕至尚书。尹贡,南宁人,仕至尚书。以上三人皆德政名时。 元朝进士王楫、李近仁、段天祥、李天佑、李郁五人,皆三甲同进士出身。
|
|-
|}
==Ethnic Groups of Nanzhao==
===Baimin《白民》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baimin《白民》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有阿白、白儿子、民家等名。白国之后,卽滇中之土著。妇女出门,携伞障面,谓之避嫌。宴客,切肉拌蒜,名曰食生。馀同汉人。女镶边衣,以银花银吊为饰。
|There is the '''Ā''' '''Bái (阿白)''', '''Bái Erzǐ''' ('''白儿子'''), '''Mínjiā''' ('''民家''') and other names. The descendants of the '''Bái Kingdom''' are precisely the indigenous peoples of Central Yunnan. [When] women go out, they bring an umbrella to block their faces, this is called '''Bìxián''' ('''避嫌; avoiding suspicion'''). [When] hosting a banquet, they cut meat and garlic, this is called '''Shíshēng''' ('''食生; eating raw'''). The rest are similar to Han people. Women wear embroidered clothes, they use silver flowers and silver hangings as decoration.
|-
|}
===Pu Ren《蒲人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽古百濮,周书所谓微卢彭濮也,后讹为蒲。质黑,鸟音。男子淸布褁头,衣套头衣,膝系黑滕;妇人挽发为髻,脑后戴靑绿磁珠,花布围腰,短裙,系海十数围。带刀弩长牌,不畏深渊,或浮以渡。婚娶长幼跳蹈,吹芦笙为孔雀舞,婿家立标竿,上悬彩绣荷包,中贮五谷银钱等者,两家男妇大小争缘取之,以得者为胜。又有野蒲、普蛮、朴子蛮等类,性尤凶悍,男子以布二幅结于左胁,另用布一幅合缝挂身;以红布搭右肩蔽腰以下。今顺宁府多此种。
|Anciently this was the '''Baipu (百濮)''', the '''Book of Zhou (周書)''' mentions the '''Wēi''' '''(微), Lú''' '''(卢),''' '''Péng''' '''(彭)''' and '''Pú''' '''(濮)'''. Later errors [turned it] into '''Pú (蒲)'''. By nature they are black and their language [resembles] birds. Men wrap clean/clear<ref>Likely referring to white cloth.</ref> cloth on their head and dress in tunic garments that are put over the head. They bind their knees with black rattan. Women roll up [their] hair as a topknot. At the back of the head, they wear clear blue-green porcelain beads. Printed cloth encircles the waist; they wear short skirts, connecting abundantly ten [or more] encirclements. They carry knives, bows and long shields. They are unafraid of deep abysses perhap even floating across it. At wedding ceremonies old and young alike jump and stamp, they play the reed pipe for the '''peacock dance'''. At the bridegroom's house they erect a pole, on it a bright embroidered purse is hung. Inside it stores the five crops, silver coins and other things. The two families of men and women, old and young, vie to fetch it. Once obtained, the person is victorious. Once more, there is the '''Wild Pú (野蒲), Pŭ mán (普蛮)''', '''Pú Zǐ mán (朴子蛮)''' and other types. Their nature is outstandingly fierce. The men tie two lengths of cloth at the left flank, [and] another length of cloth is stitched together and hangs off the body. There is red cloth to hang on the right shoulder to cover the body below the waist. Nowadays '''Shùnníng''' '''(顺宁)''' prefecture has many people of this type.<ref>Modern Day Fengqing County in Southwestern Yunnan. 鳳慶縣. Historically close to the Wa peoples and Austroasiatic population.</ref>
|-
|}
===Bo Ren《僰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名百夷,又名摆夷。性耐暑热,居多在棘下。本澜沧江外夷人。有水旱二种:水僰夷近水好浴,剃后发,蓄前发,盘髻如瓢,故又名瓢头僰夷;旱僰夷山居耕猎,又名汉僰夷。男靑布褁头,簪花;妇女不施胭粉,自然白晳,盘发辫,红绿包头,饰以五彩线须,衣五色衣,桶裙绣边。其俗贱女贵男,头目妻数百人,庶民亦数十,耕织贸易,皆妇人任之。凡婚娶,男女相悦而议聘,一成匹配,不肃而严。如夫妇不睦,听夫付之一物为凭,然后改适。有邪术,能使男子千里不忘,其法不外传也。
|
|-
|}
===Lahu《猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu《猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|爨蛮卢鹿之裔,猓猡其讹音也。以五月为春。信鬼尚巫,巫有大觋皤,拜禡白马之号。卜用雄鸡两髀骨,骨有细窍,刺以竹签,视多寡向背之势以定吉凶。其部长妻曰耐得,勇士曰苴可。每岁六月廿四日,名火把节,燃松炬,照村砦田庐。男椎髻镊须,耳环佩刀;妇披发短衣,桶裙,披羊皮。
|
|-
|}
===Bai Lahu《白猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Bai Lahu《白猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名撒马都,卽西爨白蛮。知读书,能文字,舌音淸便,多冒汉人。见尊长披羊皮,故嫁女授羊皮一帐。短衣革履,胸挂花包。妇人花衣桶裙,靑布蒙头,饰以海贝、锡铃。
|
|-
|}
===Hei Lahu《黑猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽东爨乌蛮。其祝以铃,其占以草。男挽发贯耳,披毡佩刀;妇人贵者衣套头衣,方领如井字,无襟带,自头罩下,长曳地尺许,披黑羊皮,饰以铃索。
|
|-
|}
===Qian Lahu《乾猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以山居得名。每食插筯饭中,仰天跪拜为报本。好勇喜斗,杀人偿以财。服饰同黑猓猡,妇人项挂一羊毛筐,行住纽毛为绵。以织毯。
|
|-
|}
===Hai Lahu《海猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hai Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名坝猓猡,以种水田得名。盖土人以水为海,以平田为坝也。居家俭朴,知读书。服饰如汉人,妇如白猓猡。
|
|-
|}
===Miao Lahu《妙猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Miao Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多土官之裔,有营长、官奴、火头等称。男挽发贯耳;妇人桶裙无裤,穿套头衣,前不揜胫,后长曳地,衣边火焰,弯曲如旗尾。居茅舍,中堂作火炉,父子妇姑,围炉而卧。又有一种,戴鹊帽者,名猓落蛮;白布褁胫者,曰白脚猓猡。
|
|-
|}
===Ge Lahu《葛猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Ge Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名大头猓猡。男以靑布丈许裹发为大头,女戴布花线箍。婚嫁步行,妇避伯,不避翁。亦有顶盔擐甲,乘马佩刀,以劫抢为生者。然居家尊卑有序,会食以跪为敬。
|
|-
|}
===Azhela Lahu《阿者猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《阿者猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆耳环手钏,衣短裤,披羊皮。婚娶,婿亲负女以归。
|Men and women each wear earrings and hand bracelets. Their clothes are short pants with sheepskin drapes. At weedings, the bridegroom's realtives carry the women back.
|-
|}
===Awu Lahu《阿乌猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Awu Lahu《阿乌猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|性狡好獵。多蓄牛羊。每砦設官房一所,婚嫁並集其中。男短衣,女長衣,倶裹頭,貫耳,出入帶刀弩。
|They are cunning in nature and fond of hunting. They raise many cattle and sheep. Every stockaded settlement has an official building for marriages to be held within. Men's clothes are short, women's clothes are long. Both wrap their heads, pierce their ears. When going out, they carry knives and bows.
|-
|}
===Luwu Lahu《鲁屋猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|耕种射猎为生。男短衣木屐,女长裙跣足。
|They make a living by cultivation, shooting and hunting. Men wear short garments and wooden clogs, women wear long skirts and tread barefoot.
|-
|}
===Sami Lahu《撒米猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Sami Lahu《撒米猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居山,耕瘠负薪,近水,捕鱼时给。面多黧黑,男挽发如鬏,毛褐被毡,佩短刀。女披靑布单,短裙,长裤。又有鲁兀、老乌、撒完、洒泥、阿蝎、阿系等类,衣饰风俗畧同。
|
|-
|}
===Liaowu Lahu《老牾猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Liaowu Lahu《老牾猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽罗婺,又名罗午、罗武。男披发贯耳,披毡佩刀,穿火草布衣;女辫髪垂肩,饰以海贝砗磲,穿火草布裙。无床帏被褥,以松毛籍地而卧。
|
|-
|}
===Lahu Hei《猓黑 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu Hei《猓黑 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蒲蛮别种。择丛篁深处,结茅而居。蜂虫鼠蛤,无所不食,以荞稗为上品。又有大猓黑、小猓黑,岩居野处,猿猱同类。
|
|-
|}
===Putu《普特》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Putu《普特》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以渔为业,舟不盈丈,而炊爨、牲畜、资生之具,无不咸备。泅水出没,口衔手捉,皆巨鱼也。今云南府省城西碧鸡山下,多有此种。
|
|-
|}
===Diyang Gui《地羊鬼 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Diyang Gui《地羊鬼 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦僰人类也。短发黄睛,奸狡嗜利。与人相仇,能行妖术,以木石易人心肾,或以一帚系衣后,变形为象、马、猪、羊、猫、犬等物。稍畏惧之,卽为所魅,入人腹中,食五脏,或潜至人家,偷窃财物,食婴儿。知者一手捉之,一手痛殴,必复为人,夺其帚縻之,彼必以家赀之半匄脱。或有娶其女者,夫每出,必问归期,卽饵以毒,如期而归,更以药觧,否则毒发而死。交易失信,及私窥其要女者,必毒之。此种元江州为甚。
|
|-
|}
===Wo Ni《窝泥》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Wo Ni《窝泥》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有和泥、(干)〔斡〕泥、哈泥、路弼等名。黑白两种,风俗畧同。男戴麦杆帽,穿火草布衣,耳环,跣足;妇女辫发数绺,海贝、杂珠,盘旋为髻,套衣桶裙。善养猪,其猪小耳短身,长不过三十筋,肉肥腯,名窝泥猪。婚用媒妁,路遇野兽,则返而他求。嫁则以红藤束膝为识。勤生啬用,每积贝一百二十索为一窖,临死嘱其子曰:「积贝若干,汝取某窖,馀留我为来生用。」死则以雌雄鸡各一殉。又有一种名糯比,与此同,其生者名哥泥,亦名瓦黑,好勇尚斗,能咒人使病。
|
|-
|}
===Achang《阿昌》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Achang《阿昌》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名峨昌。男短衣披布单,女长衣无裤,腰缠红藤。占用竹三十三枝,畧如筮仪。嗜酒,觅禽兽虫豸生啖之。旧俗兄死弟妻嫂,后有罗扳砦百夫长早正死,其妻方艾自誓不失节,饿而死,其风遂革。又有小阿昌,其俗畧同。
|
|-
|}
===Acheng《阿成》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Acheng《阿成》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男短衣,女桶裙,以树皮代瓦。婚用牛羊,至女家以水泼女足为定。
|
|-
|}
===Biju《比苴》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Biju《比苴》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|僰夷别种。男耳环革屐,女白帨束发,缠叠如仰螺。构楼而居近水,极寒犹浴。丧尚绯,夫死,妻不再嫁,名曰鬼妻。又有白布缠足者,名白脚僰夷,亦名孔荅;茜齿,文身,髠者,名光头僰夷;额上黥刺月牙纹,盖习车里之俗,所谓雕题也。
|
|-
|}
===Heipu《黑舗 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heipu《黑舗 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名黑普,俗同窝泥,形容黧黑,怕见汉人。畜山羊,作竹器,一切床几櫈杌,备极精巧。
|
|-
|}
===Heiqian Yi《黑乾夷 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heiqian Yi《黑乾夷 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男椎髻麻衣,耳环垂肩;女以毛褐细带,编如筛罩,首饰以海贝、砗磲,衣领亦然。婚配,男吹芦笙,女弹口琴,唱和调悦,先野合,后媒妁。
|
|-
|}
===Shansu《山苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Shansu《山苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男披发跣足,女椎髻蒙头。语似鸟音,形如猿猴。潜居深山,种荞、麻,或工或猎,夷中之最苦者。
|
|-
|}
===Chusu《车苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Chusu《车苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名扯苏,傍岩临水。男短衣皮履,女长裙无裤。种荞稗,绩线为业,以羊毛占(睛)〔晴〕雨。
|
|-
|}
===Laji《喇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Laji《喇鸡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名喇记。黑布帽白衫。好楼居,孟春作土主会,客至,掘鼠及虾蟆为敬。其在交趾者,男善枪,女善弩,多充交兵。又有白喇鸡,男女倶穿五色氆氇,食山虫、水蛇等物。
|
|-
|}
===Lawu《喇五 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Lawu《喇五 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰喇乌,又曰喇鲁。男如摆夷,女如窝泥,构楼临水而居。上人下畜,名曰掌房。其在腾越州者,食巨蟒、毒虫,或取蜂糟食之。
|
|-
|}
===Manla《獛喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Manla《獛喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男插鸡毛,女裹首巾,皆披羊皮,不浣濯。婚配先野合。每采蒙肚花蒙肚花树皮如藓,能毒人。生景东厅,今不产矣。欲人醉死则醉采,欲人狂死则狂采,以毒人。又一种在王弄山者,名马喇
|
|-
|}
===Hala《哈喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Hala《哈喇》
|-
| colspan="2" |'''Research Commentary'''<br> This is likely one of the autonyms for the Wa people transcribed by the Chinese who normally did not standardize it between 哈喇 (Hālā), 哈瓦 (Hāwǎ), or 嘎剌 (Gālǎ).<br>'''Supporting Primary Sources:'''
{| class="mw-collapsible mw-collapsed" style="width:100%; border-collapse:collapse; background:transparent;"
|-
! style="text-align:center; cursor:pointer;" | [Show/Hide Source Commentaries]
|-
| class="mw-collapsible-content" |
{| class="wikitable" style="width:100%; text-align:left; margin:0;"
|-
! scope="col" style="background:#f2f2f2;" | Source 1: Baiyizhuan
|-
|
The Hala《哈喇》have been mentioned in the [[Wikibooks|Baiyizhuan]]. {{quote|text='''Hālà''' ('''哈剌'''), men and women are [both] black, truly black. Men use printed cloth<ref>g</ref> for covering themselves, also which the One Hundred bararians effectively manufacture; married women have top knots behind [their head]. It is tied at the back of their neck with various pearls and beads. '''Suō luó''' ('''娑罗''')<ref>'''Sarong''' today, however this appears to be a complex term with many copyediting issues historically, Brahmin drapes, Suoluolong, eventually describing a type of silk-cottob robe made from plant materials.</ref> are draped around their bodies as clothes, horizontally it connected at the waist and lower back as a skirt. ('''Suō luóbù pī''' ('''娑罗布披''') namely is the Chinese Cotton Tree (Bombax Ceiba) cloth, strong and thick, possibly weaved as blue, red patterns.) Yet it encircles black rattan several hundred times, wrapped at the waist and lower back, it wraps around [their leg] to be used as a blue printed cloth [as they're] barefoot.
([Used amongst the] Pú mán (蒲蠻), āchāng (阿昌), shì jiàn (事見)<ref>Only said once in the document and not obvious to allusions elsewhere. </ref>; [according to the] The Yunnan Gazeteer<ref>Written by Fan Chuo of the 9th century, also known as 蛮书 (Barbarian Document)</ref>.)}}
|-
! scope="col" style="background:#f2f2f2;" | Source 2: Dian Lue 《滇略》
|-
|
The Hala《(哈喇) are listed among the list of indigenous groups of the Yunnan border region in Volume 9 (卷九). In this text the group is written in with the Gula (古剌){{quote|text=「其類有小伯、夷大伯、夷蒲人、阿昌漂人、'''古刺哈喇''''、緬人、結𣆟、遮...」}}
|-
! scope="col" style="background:#f2f2f2;" | Source 3: Dushi Fangyu Jiyao
|-
|
Hala is listed as bordering the Tai polity of Möng Yang. {{quote|text=「戛里。在司西南,孟養別部也。又有'''哈喇杜諸蠻,皆近孟養'''、緬甸之境。」<br>'''English''': Kalay. Located to the Southwest Pacification Commission, it is a district of Möng Yang. There are also Hala Barbarian tribes, who all are close to Möng Yang, at the border of Myanmar.}}
|}
|}
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女黑色,不知盥栉。妇女红黑藤缠腰数十围,产子以竹兜盛之,负于肩。又有古喇、杜喇,色尤甚,言语不通,略似人形而已。
|Men and women are black in complexion and do not know how to wash or comb. Women use red-black rattan to bind around their waist 10 or so times. When they give birth, the child goes in a bamboo cradle carried on their shoulders. There are the <strong>Gǔlǎ (古喇)</strong>、<strong>Dùlǎ (杜喇)</strong>, who have complexions outstandingly dark. Their speech is unintelligible [to the author], they only barely appear human in appearance.
|-
|}
===Jiala《戞喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Jiala《戞喇》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|悍好猎,居山巅,户不正出,迎山开门,不留馀粟。
|They fiercely enjoy hunting and reside on mountain summits. Their doors do not face directly outward but face to face open towards the mountains. They do not retain any surplus grain.
|-
|}
===Kala《卡喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kala《卡喇
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰卡腊,男穿耳挽发,佩短刀;女短衣无裤,胫著彩色折裤。聚族而居,耕种鬻薪。
|Also known as '''Kǎlà (卡腊)''', men pierce their ears, tie their hair and wear short knives. Women wear short clothes without trousers and brightly coloured, multi-coloured folded leggings on their shins. They reside in clan communities, cultivating and selling firewood.
|-
|}
===Kasui《卡隋》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kasui《卡隋》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名卡高,性顽钝,喜歌舞。男女多野合。婚娶通媒妁之日,议聘金,多至数百。娶后子孙犹有代祖父偿聘金者。
|
|-
|}
===Kawa《卡瓦》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kawa《卡瓦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多在顺宁、永昌二郡,辣蒜江外。貌()〔丑〕性恶,猎人以祭。商贾出腾越州,入木邦者必经其地,呼为卡利瓦。有生熟二种,生者劫掠,熟者保路。
|
|-
|}
===Xifan《西番》===
{| class="wikitable" style="text-align:center; width:80%;"
|Xifan《西番》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽土番,亦名巴苴,居金沙江边。性悍戾,善弩,男女辫发百绺,不知栉沭。男以藤缠左肘,披琵琶毡,暑热不脱;女以海贝砗磲磁珠饰于项。又有野西番,更不可制。
|
|-
|}
===Guzong《古宗》===
{| class="wikitable" style="text-align:center; width:80%;"
|Guzong《古宗》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名狤猔,西番别种。皆辫发百绺,男戴红缨,穿氆氇,挂铜铃佩刀,女饰以珊瑚、银泡,披腊瓦被单,皆穿乌拉鞾。经年一栉,栉必牲祭。春夏种荞稗,秋冬赶牛马,取牛羊乳酥,调油茶而食,名曰ø。又有小古宗,喜猎饮酒,馀畧同。
|
|-
|}
===Kuceng《苦葱》===
{| class="wikitable" style="text-align:center; width:80%;"
|Kuceng《苦葱》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|面丑。男麻衣短裤,女短衣桶裙,亦有衣裤相连者。耕山采薬为生。所佩环手篐,自幼至老不释,死以殉。
|
|-
|}
===Mo《摩》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mo《摩》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|乌蛮别种。性湻朴,鸟音,男剃发戴帽,长领布衣;女高髻,或戴黑漆尖帽,短衣长裙。畜牛羊,产射香。同类仇杀,妇女登场一劝卽止。岁暮杀牛羊相邀,一客不至为耻。今有读书入泮者。
|
|-
|}
===Li《力》===
{| class="wikitable" style="text-align:center; width:80%;"
|Li《力》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽。衣麻,披毡,岩居穴处。利刀毒矢,刻不离身,登山捷若猿猱。以土和蜜充饥,得野兽卽生食。尤善弩,每令其妇负小木盾前行,自后射之,中盾而不伤妇,以此制服西番。野力披发插羽,尤悍。
|
|-
|}
===Zhe《遮》===
{| class="wikitable" style="text-align:center; width:80%;"
|Zhe《遮》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆穿耳,挽发。喜华彩衣,盘旋蔽体。每饮食必精洁。而长于弓弩,尤善鸟铳。
|
|-
|}
===Jiezi《羯子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|自孟养流入。环眼鸟队,散发,缠藤,耳带大环,首插鸡羽,无衣裤,腹下以麻布一幅围之。负弩佩刀,喊声如犬。又有结,耳带象牙大环,红布围头,衣半身衫,袒右臂,亦其类也。
|
|-
|}
===Muji《拇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦作。形丑恶,妇女尤甚。椎髻插羽,佩刀负弩。猎食猿狙。见人有蓄,思盗,先用鸡骨卜,吉则徃,否则止。
|
|-
|}
===Mocha《摩察》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mocha《摩察》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Manqie《嫚且》===
{| class="wikitable" style="text-align:center; width:80%;"
|Manqie《嫚且》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Local People《土人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Local People《土人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|(思)〔男〕絮袄佩刀弩,女披毡朿皮索,饥则紧缚之。婚姻以刀甲为聘,披发见舅姑。有争者告天,沸汤投物,以手捉之,曲则糜烂,直者无恙。
|
|-
|}
===Nong ren《侬人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nong ren《侬人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|侬智高部落之裔。男束发短衣,女短衣密扣,腰缠红裹肚。性狡,漆齿,出入佩刀,长技在铳。
|
|-
|}
===Sha ren《沙人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Sha ren《沙人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|越析夷也,又名蒙嶲。男辫发长衣,女以挑花白布蒙头,腰围红布。出入佩刀,耕田、射猎,所居掌房。丧服用红,祭肉弃不食。又有黑沙人,白沙人。聘用牛,旣婚之夕,男女不同室,及回女家,有娠方归。
|
|-
|}
===Luo ren《𤡑人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤡑人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男束发披毡,女短衣露腹,缠红藤,腰系沙罗布裙,上短下长,男女同耕。
|
|-
|}
===Cun ren《狆人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Cun ren《狆人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男缠头跣足,女靑布缠头,畧如僧帽,缀以海贝,彩布衣裙,著大尖鞋。构楼而居,甘犬嗜鼠。又有罗缅、麦岔、叠吗、喇毛等类,顽良不一,衣饰风俗同
|
|-
|}
===Nu ren《怒人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nu ren《怒人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居永昌怒江内外。其江深险,四序皆燠,赤地生烟。每二月瘴气腾空,两堤草头交结不开,名交头瘴。男子面多黄瘦,刚狠好杀猎,或采黄连为生,鲜及中寿。妇人披发红藤勒首。每年贡麂皮二十张、山驴皮十张、黄蜡八十筋、麻布三十庹,以代赋税。
|
|-
|}
===Luo ren《𤞰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤞰人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江府鹤庆州大雪山外。男女披发,树叶为衣,耳穿七孔,坠以木环。与怒人接壤,畏怒人,不敢越界。
|
|-
|}
===Wild people《野人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Wild people《野人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|永昌界外。居无室庐,宿于树巅。赤发黄睛,首戴骨圏,插雉羽,手足腹皆缠红藤,以幅布或树皮揜下体。勾刀大刃,捕禽兽蛇虫,生食之。逢人卽杀。
|
|-
|}
===Laodao《老挝》===
{| class="wikitable" style="text-align:center; width:80%;"
|Laodao《老挝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南掌国夷类。戴藤篾黑漆帽,宽二尺许,短衣无裤,用杂色布一疋,从膝下兜绕,围结胸前,名打抄子。妇女耳贯大黑漆圏,塞以野花。
|
|-
|}
===Liemi《列密》===
{| class="wikitable" style="text-align:center; width:80%;"
|Liemi《列密
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽利米。刀耕火种,精射猎,得鼠雀生啖之。男篾帽皂衣,女辫发赤足。出外披花布,以蔽其身。
|
|-
|}
===Lama《喇嘛》===
{| class="wikitable" style="text-align:center; width:80%;"
|Lama《喇嘛》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江、鹤庆多有之。来自西藏,招本境摩为徒。有红黄二敎,红弱黄强。毡帽褊衫,各如其色。
|
|-
|}
===Miaozhi《苗子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|三苗之后,有九种,黔省最多,流入滇中者,惟仲家花苗而已。束发耳环,未婚者缚楮皮于额,或插鸡毛。女布冠套头衣,桶裙,皆用五彩桃花布为之。每岁孟春跳月,男吹芦笙,女振铃唱和,并肩舞蹈,终日不倦。或以彩为球,视所欢者掷之,暮则同归,比晓乃散,然后议婚。节序击铜鼓,吹呐叭,聚赛神,书契惟数目字,及六十花甲子同,馀不同。
|
|-
|}
===Tuliao《土獠》===
{| class="wikitable" style="text-align:center; width:80%;"
|Tuliao《土獠
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其属本在黔、蜀、粤西之交,流入滇中。男首裹靑布,白衣领缀红布一方,妇人冠红巾,衣花绣。性粗桀,好蛊魔之术,其虫夜飞如星,光芒摇曳,射入窓棂,触者病。
|
|-
|}
===Jiaoren《交人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiaoren《交人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|安南国之类。男箬笠蕉扇,衣裳楚楚;女面貌颇雅,手贯牙钏,长衣长裙,以红帕蒙头,皆辫发靸鞋。读诗书习礼,仪婚丧之事,倶仿中国。
|
|-
|}
===Burmese people《缅人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|缅甸国流入者。有老缅、阿瓦、猛别、雍会、普干、摆古、得楞子等类。长于鸟铳,其火药用麦面傅之,迅疾无声。又有缅目者,称为莽纪,断发文身,漆齿穿耳,蟒衣跣足,头带红缎一方,性喜花草。
|
|-
|}
==References==
{{reflist}}
[[Category:Chinese literature]]
[[Category:Non-fiction books]]
[[Category:Medieval historical works]]
[[Category:Works originally in Chinese]]
[[Category:Pages with foreign language text]]
[[Category:Indigenous peoples]]
[[Category:Guidebooks]]
[[Category:History of China]]
[[Category:Wars]]
[[Category:Diplomacy of China]]
[[Category:Subject:Military history]]
[[zh:蛮书]]
98bl8ls2b87ctrphorrp10v16mwpgtr
4674852
4674851
2026-10-07T10:38:44Z
Taitesena
3485636
/* Hala《哈喇 》 */
4674852
wikitext
text/x-wiki
__NOTOC__
{{incomplete translation}}
{{Translation header
| title = Unofficial History of Nanzhao (南诏野史)
| author = Yang Shen (杨慎)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes =
}}
== Front Matter ==
# [[Unofficial History of Nanzhao/Translator's Note|Translator's Note]]
# [[Unofficial History of Nanzhao/Influences|Historical Context]]
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Authorship
|-
! scope="col" | Original
! scope="col" | Translation
|-
|增订南诏野史上卷 明 四川新都杨愼升庵编辑
|
|-
|}
===The Title of Nanzhao 《南诏之称===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Title of Nanzhao 《南诏之称》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蛮夷称王曰诏。先时滇有六诏,各据其地。六诏中蒙舍诏最强,后并吞五诏,故独称南诏。
|
|-
|六诏考六诏之地,东西四千里,南北二千九百里
|
|-
|蒙舍诏蒙细奴逻立国,居蒙舍川,地在永昌、姚州之间,处五诏之南。后奴逻曾孙皮逻阁并吞五诏,独称南诏。今蒙化厅是邆赕诏丰咩立国,居邓川。今大理府邓川州是施浪诏施望欠立国。居{{浪穹弥茨河蒙次和山,今大理府浪穹县是浪穹诏丰时立国,居浪穹。后其孙铎罗望迁剑川,改称剑浪诏。今丽江府属剑川州地是越析诏波冲立国。亦称摩诏。又号花马国。居嶲州。今丽江府是后,其兄之子于赠渡泸,邑于龙佉河蒙嶲诏嶲辅立国。居越嶲,今四川宁远府,越嶲厅是
|
|-
|}
===The Territorial Divisions of Nanzhao 《南诏分野》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Territorial Divisions of Nanzhao 《南诏分野》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|在天井鬼入参一度,汉书。次鹑首末位晋书。丽中台上位北斗开阳一星。宋书。在地乃梁州裔土,蜀之苑囿。河图纬。
|
|-
|}
===The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周鄯阐国、白崖国、昆弥国。战国时滇国,汉西南夷、益州、白子国。后汉建宁国。晋、宋、齐、梁、陈,宁州。隋昆州。唐初,南宁、六诏,唐文宗太和间,名鄯阐府。宋仍名南诏。元名中庆。明名云南省。
|
|-
| 国朝因之。按:汉武帝元狩元年,彩云见南中,在今大理府赵州之白崖。云南之名始此。唐元宗间问蒙舍诏盛逻皮之相张建一作俭成住何处?曰:「南边云下。」因命为云南。又元宗见祥云起,名祥州。今大理府之云南县也。
|
|-
|}
=== General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|鄯阐国蒙苴颂,昆弥国庄蹻、仁果、龙佑那据于周、秦、汉迄六朝。细奴逻据于唐。郑买嗣、赵善政、杨于贞、段思平、高升泰曁正湻,相继据于唐末迄
南宋。凡历有九姓,而雍闓、孟获不与焉。段氏与南宋理宗壬子湻佑十三年为蒙古所灭,而段实于理宗景定二年袭总管,传十二世,明太祖壬戌洪武十五年平云南,擒段世,并段段明之二子苴仁、苴义。赐苴仁官雁门卫镇抚,苴义官武昌卫镇抚,段氏之世土方绝,而又别封其族人段保为大理府云龙州土知州。国朝尚有袭土职者。
|
|-
|}
=== Titles and Official System of Nanzhao《南诏称谓官制》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Titles and Official System of Nanzhao《南诏称谓官制》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南诏称帝曰骠信,王曰诏,自称曰元,称后曰信么,亦曰九么,妃曰进武,兄曰容,弟曰钟,下曰昶。其设官则有把国事八人,曰坦绰,曰布燮,曰九赞,谓之清平官。曰酋望,曰正酋望,曰员外酋望,曰大(将军)〔军将〕,曰员外。又设九爽之名,爽,省也。功爽主官人,宗爽主户籍,万爽主财用,慈爽主礼,引爽主宾客,幕爽主兵,罚爽主刑,厥爽主工作,禾爽主商贾,皆清平官、酋望、大军将兼之。以清平官子弟为羽仪长八人,清平官见王不得佩剑,惟羽仪长佩之。又有六曹长二人,曹长有功升大军将,凡十二人。又立三托:巨托主仓廪,气托主马,禄托主牛。大府主将曰演习,副曰演览;中府主将曰缮裔,副曰缮览;下府主将曰澹酋,副曰澹览;小府王将日幕撝,副曰幕览。每府有陀酋,陀酋卽掌书记判官之类。外有八节度使:日弄栋节度使,今楚雄府姚州。曰银生节度使,今景东厅及鎭沅州地是。曰永昌节度使,今永昌府是。曰丽水节度使,今丽江府是。曰剑川节度使,今丽江府剑川州是。曰东川节度使,今东川府府是。曰通海节度使,今临安府通海县是。曰拓东节度使。今云南府昆阳州北平定乡,蒙氏子凤伽异曾筑城于此地。又有二都督:曰会川都督,今四川宁远府会理州地是。曰通海都督。又设十睑,蛮语谓州为睑。苴音斜。羊睑,又名羊睑,卽今大理府太和县。赵州睑,今大理府赵州。白崖睑,又名勃弄睑,今赵州之白崖。,云南睑,今大理府云南县。蒙舍睑,今蒙化厅。大厘睑,又名史睑,今太和县喜州。邆川睑,今大理府邓川州。品澹睑,蒙秦睑,矣和睑。三睑未详其地。○蔚按:别本十睑中苴羊睑、赵州睑、白崖睑而下,作义督睑,今剑川州;威远睑,今普洱府威远厅南;河东睑,末详其地;越睑,今永昌府腾越州;北方睑,又名成偈睑,今永北厅;楼头睑,今四川叙永厅,属永宁县;路睑,今楚雄府广通县;与云南睑以下七睑异。○按:又考此七睑中,其越睑、北方睑、楼头睑、路睑凡四睑,见于『汉地里志』及『唐书?南蛮传』中,睑并作赕,音闪,字旣不同,音又各异,似非列于十睑之数。凡人丁壮者皆为战卒。王之亲兵曰朱弩佉苴,音蛆。按:元微之白乐天乐府皆作佉嗟,未审孰是。佉苴,韦带也。每兵百人置罗苴子统一人,戴朱鞮鍪,负犀革铜盾而跣足。自大军将以至曹长,皆系金佉苴尚绛紫,有功加锦,又有功加金波罗。卽虎皮。民兵号白衣,凡民兵出以望苴蛮为先驱。
|
|-
|}
===Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|因远部。威远睑治,其地总名和泥,今元江府是。休腊部。今临安府河西县。嶍峨部。今临安府嶍峨县。屈中部。今临安府阿迷州。溪处甸部、伴溪落恐部。今倶为长官司,属临安府。铁容甸部。今为亏容长官司。官桂思陀部。今为思陀甸长官司,皆属临安府。王弄部、强现三部。今属开化府。师宗部。今广西州师安县。弥勒部。今广西州弥勒县。吉输部、袖恶部。倶在弥勒县地。维摩部。卽广西府维摩州。州裁,今属广西州地。罗雄部。今曲靖府罗平州。纳垢州。今曲靖府马龙州。落温部。今曲靖府陆凉州。磨弥部。今曲靖府沾益州。仁德部。今曲靖府寻甸州。夜苴部卽曲靖府亦佐县,县裁,今归罗平州。强宗部。卽澄江府阳宗县,县裁,今归河阳县。步雄部。今澄江府江川县。罗伽部。卽步雄部分地。休制部。今澄江府新兴州。落蒙州。今澄江府路南州。弥沙部、邑市部。皆落蒙部子孙分治之。阳城堡部。今云南府晋宁州。罗部。今云南府罗次县。乾矢部、罗婺部。倶在武定府曲州,州裁,今属武定州。华竹部。今武定州元谋县。洪农碌券部。今武定州禄劝县。掌鸠法块部在禄劝县城东五里。○以上三十五部在迤东地。白鹿部。今楚雄府。谋统部。今丽江府鹤庆州。○以上二部在迤西地。
|
|-
|}
==Nanzhao through the Generations《南诏历代》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Nanzhao through the Generations《南诏历代》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|白古记:西天天竺摩竭国阿育王骠苴音斜。低娶欠蒙亏为妻,生低蒙苴。苴生九子,长子蒙苴,附罗十六国之祖;次子蒙苴廉,吐蕃之祖;三子蒙苴诺,汉人之祖;四子蒙苴酬,东蛮之祖;五子蒙苴笃,生十二子,七圣五贤,蒙氏之祖;六子蒙苴托,狮子国之祖;七子蒙苴林,交趾国之祖;八子蒙苴颂,白子国仁果之祖;九子蒙苴閦初六切。白夷之祖。○『哀牢今永昌府。夷传』:哀牢蛮蒙伽独捕鱼易罗池在永昌府城南。溺死。其妻沙壹一作壶。往哭之水边,触一浮木,有感而妊,产十子。后携子至池上,木化为龙,人言曰:「我子安在?」九子惊走,独季子背龙而坐,龙舐其背。蛮语谓背为九,坐为隆,故名之曰九隆氏。哀牢山一名天井山,在永昌府。下有妇名奴波息,生十女,九隆弟兄娶之,立为十姓:董、洪、段、施、何、王、张、杨、李、赵,皆刻画其身象龙文,于衣后著尾。子孙繁衍,居九龙山山在永昌府城南。溪谷间,分九十九部,而南诏出焉。
|
|-
|}
===Shanchan Guo《鄯阐国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shanchan Guo《鄯阐国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周时立国,年代久远,其姓名世次莫考。
|
|-
|}
===Baiya Guo《白崖国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baiya Guo《白崖国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|西天天竺摩竭国阿育王低蒙苴第八子,蒙苴颂居白崖,因地名,号白崖国,传世莫考。后昆弥氏继之,号昆弥国。
|
|-
|昆弥国一名拜国。
|
|-
|昆弥氏,传世姓名莫考。战国时,楚将庄蹻据滇,并有其地,号滇国。
|
|-
|}
===Dian Guo《滇国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dian Guo《滇国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|战国时,楚顷襄王命将庄蹻范蔚宗后汉书作庄豪。将兵循江上,略巴、蜀、黔中以西,蹻至以兵威畧定滇地属楚。欲归报,会秦司马错攻楚,黔中道塞。蹻遂以其众王滇,号滇国,踞之。后有王常羌者好佛,国势不振。法令不行,国人遂推白崖国蒙苴颂之后,白饭王之裔仁果为王,治白崖,于是两国角立。后仁果奉汉,封为白子国。
|
|-
|}
===Baizi Guo《白子国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baizi Guo《白子国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|汉武帝通西南夷,遣使至滇,求身毒国。滇王常羌问使者曰:「汉孰与我大?」使者还报,武帝怒其言不逊。时白崖国蒙苴颂之后,天竺国白饭王之裔仁果者,为众所推立于白崖。武帝乃册封仁果为王,号白子国。后迁于澄江,今澄江府。迨龙佑那继之,号建宁国。○又一说:白子国之先,有阿育国,王能乘云,上天娶天女,生三子,长季二子封于金马、碧鸡,独封仲子于苍洱之间,崇奉佛敎,不茹晕,日食白饭,人因称为白饭王。迨后有仁果者,汉封为滇王,号白子国。又十五世至龙佑那,后汉诸葛武侯南征,次白崖,以佑那为酋长,赐姓张氏,仍统其民,号建宁国。
|
|-
|}
===Jianning Guo《建宁国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|后汉后皇帝乙巳建兴三年,益州耆帅雍闓,假鬼术杀建宁太守王昂,归东吴,吴王孙权以闓为永昌守。后汉诸葛武侯南征,至白崖,杀雍闓,擒孟获,乃封白子国王仁果十五世孙龙佑那为酋长,赐姓张氏,于白崖筑建宁城,蔚按建宁城废址在今大理府赵州之弥渡。号建宁国,立铁柱蔚按:今弥渡有铁柱宫,铁柱尚存。先为建宁国王张乐进求甫铸,后南诏蒙世隆复重铸,名曰天尊柱,高八尺。并『南中纪功碑』,铭其背曰:「万岁之后胜我者过此」。迨至隋时,行军总管太平公史万岁征南宁夷爨玩,西破三十馀部,至此,见其碑铭,命左右踣之。其碑跌,中复有志曰:「史万岁不应踣吾碑」。万岁惊异,复树碑,祭拜而去。后张龙佑那仍迁国澄江,传三十二世至十七世孙张乐进求,唐太宗己酉贞观二十三年封为首领大将军。后见蒙舍川蒙细奴罗有奇相,遂妻以女,逊国与之。奴罗自称奇嘉王,建号大蒙国,又称南诏。
|
|-
|}
==Nanzhao《南诏国》==
===13 Generations of Nanzhao 《南诏大蒙国传十三世》 ===
{| class="wikitable" style="text-align:center; width:80%;"
|+ 13 Generations of Nanzhao 《南诏大蒙国传十三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|细奴一作农。逻一作罗。 伪谥高祖奇嘉王
|
|-
|细奴逻,又名独罗消,西天天竺摩竭国阿育王低蒙苴第五子蒙苴笃之三十六世孙。生有奇相。唐太宗贞观初,其父舍龙尨,又名龙伽独,将奴逻自哀牢避难至蒙舍川,耕于巍山。今蒙化厅之巍宝山。一日,有老僧,美髯,冠赤莲冠,披袈裟,持钵至奴逻家乞食。时奴逻与子逻盛炎方耕巍山之下,其姑与妇将往饁。见僧乞食,遂食之。再炊往饁,僧坐不去。姑妇持饷中道,僧已在彼,复乞食,姑妇又食之。返而复炊,持饁至巍山,则见僧坐盘石上,前有靑牛,左白象,右白马,上覆云气。云中二童子,一执铁杖于左,一执方金镜于右。姑妇惊喜,复以所饷供之。僧问何所愿?姑妇不知对。僧曰:「奕叶相承」。及趣奴逻等至,则但见一人持钵,坐五色云中,而盘石上惟馀衣痕及牛象马之迹耳。奴逻素有祥异,会唐封首领大将军建宁国王张乐进求,以诸葛武侯所立白崖铁柱,岁久剥蚀重铸之。因社会祭柱,柱顶故有金镂鸟,忽能飞,集奴逻左肩,相诫勿动,八日乃去。众骇异,谓天意有属。进求遂妻以女,举国逊之。于唐太宗己酉,贞观二十三年卽位,年三十二岁,建号大蒙国,称奇嘉王,据南诏。高宗庚戌永徽元年,建都蒙舍川,于巃{山+于}山在今蒙化厅西北三十五里。筑巃山+于城。永徽癸丑四年,遣逻盛炎入朝唐,诏授奴逻为巍州今蒙化厅刺史,赐以锦袍。大勃弄今大理府赵州白崖。酋杨承顚寇麻州,在今曲靖府马龙州城北里许。唐命郞州唐贞观初,分牂牁郡北界置郞州,后改名播州,卽今贵州遵义府。又有郞州,在今云南县地。道行军总管赵孝祖讨之。孝祖先入小勃弄,今云南县地。酋长没盛迎战,孝祖斩之。进至大勃弄,攻其城,破之,擒杨承顚,改云南县为匡州,领勃弄、匡州二县。高宗显庆二年,凤鸣于浪穹罗浮山,乃改名为凤羽山,在大理府浪穹县西南三十里,又名鸟吊山。见『水经注』。封十二圣贤为十二山神。时澄江人波罗旁有经济才,用为文臣;郭郡矣素以勇略闻,用为武臣。又有杨波远者,相传为东汉时人,常骑三角靑牛,号神明大士,能知盐泉,滇中盐泉多为波远所开创。奴逻在位,遵唐正朔。高宗甲戌上元元年,奴逻卒,在位二十六年,子逻盛炎立。
|
|-
|逻盛炎又名逻晟。伪谥世宗兴宗王。
|
|-
| 逻盛炎。唐高宗甲戌上元元年卽位,年四十岁,以张建成为相。明年,盛炎临朝,元宗壬子先天元年,姚州蛮叛归吐蕃。唐命御史李知古讨之,筑城立州县。知古诛豪杰,掠子女,蛮怨,引土蕃,攻杀知古,于姚嶲路绝,而盛炎独奉唐正朔。是年,盛炎卒,在位三十九年,子盛逻皮立。
|
|-
|}
===Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|盛逻皮,唐元宗壬子先天元年卽位,年四十岁。明年为元宗癸丑开元元年,唐授逻皮为特进,封台登郡王今四川宁远府冕宁县地。设官征商税。开元二年,遣张建成入朝于唐。立土主庙。开元九年,皮叛唐。开元十四年,立庙祀晋右将军王羲之为圣人。元宗戊辰开元十六年,逻皮卒,在位十六年,子皮逻阁立。
|
|-
|皮逻一作罗阁石刻作归义王魁乐觉封云南王。
|
|-
|皮逻阁,唐元宗戊辰开元十六年卽位,年三十一岁。开元十八年,灭五诏,自称南诏王。先是,蒙氏恐三十七蛮部不服,选亲族为五诏。未几五诏抗命,逻阁遂赂剑南节度使王昱,求合六诏为一。昱奏于朝,许之。逻阁乃豫建松明大楼,祀祖于上。使人谕五诏曰:「六月二十四日乃星回节蔚按『大理郡志』汉元封间,叶楡妇阿南者为酋长,曼阿娜之妻。娜为汉将郭世忠所杀,欲妻南。南曰:能从三事,当许汝一作幕次祭故夫;一焚故夫衣,易君新衣;一令国人皆知我以礼嫁。忠如其言。明日,聚国人张松幕祭其夫。下置火,南藏刃出,俟火炽焚夫衣,卽引刀刃自断其颈,仆火中,时六月二十五日也。国人哀之,故岁以是日燃炬吊之,名为星回节云。是又当为二十五日。当祭祖,不赴者罪。」四诏听命。惟越析诏波冲之兄子于赠,远不赴会,而邆赕诏丰哶孙{辵+皮}逻邆之妻慈善者,止逻邆勿赴。邆不听。慈善不得已,以铁钏穿于邆臂而行。二十四日,逻邆及施浪诏施望欠弟施望千、浪穹诏丰时孙锋罗望、蒙嶲诏嶲辅子罗原皆至逻阁所。逻阁偕登楼祭祖,祭后享胙食生饮酒,迨晚,四诏尽醉。逻阁独下楼,焚钱遽纵火,火发,兵围之,四诏皆焚死。逻阁遣使至四诏所,报焚钱失火,四诏被焚,状令各诏收骨。四诏妻至,莫辨其骨。独慈善因铁钏得焉,携归葬之。逻阁旣灭四诏,取各诏宫人,念慈善慧而甚美,遣兵围其城,迫取之。慈善曰:「吾岂忘夫事仇者?」闭城坚守,半月城中食尽,慈善度不能支,卽自杀,时七月二十三日也。逻阁嘉其节,乃封赠为宁北妃,并旌其城曰德源城。城废址在今大理府邓川州城东北二里许。开元戊寅二十六年,逻阁破吐蕃及弥蛮,入朝,元宗礼之,加封为特进,云南王,越国公,开府仪同三司,赐名归义,并锦袍金钿带七事。王归国,以兵逐洱河蛮,筑太和城,今大理府城南十五里太和村地是。又筑大厘城今大理府城北四十里喜州是。守之,尽有云南之地。唐授王子阁逻凤右领军卫大将军兼阳瓜州刺史。开元二十七年,明矫叛,破剑川、浪穹、永昌。开元二十八年,王讨朋矫,平之。开元辛已二十九年,王自蒙舍川迁居太和城,立龙首、卽今上关。龙尾卽今下关。二关。唐加阁逻凤为左领军卫大将军。元宗癸未天宝二年,筑羊苴哶城于太和城之北。卽今大理府城。唐迁阁逻凤为左金吾卫大将军,寻拜特进都知兵马大将军。天宝甲申三载,西方进狮子皮。唐加阁逻凤为上柱国。天宝乙酉四载十月,城永昌。天宝丙戌五载,王遣孙凤伽异入唐,唐授伽异为鸿胪少卿,妻以宗室女,赐龟兹乐一部,元宗戊子天宝七载,王卒,在位二十年,子阁逻凤立。
|
|-
|阁罗凤一作觉乐凤。按:『德化碑』云:「家居阁罗凤」,则是取地名以为名也。袭封云南王,伪谥神武王。始建元。
|
|-
|
阁罗凤,唐元宗天宝戊子七载卽位,年三十六岁。唐遣中使黎敬义持节册凤袭封云南王,敕置阳瓜州于蒙舍川,加授
凤伽异为上卿兼阳瓜州刺史,都知兵马大将军。天宝庚寅九载,王率妻子往谒都督李宓,过云南,太守张虔陀私之,又多徵求。王表虔陀之罪,中官贾奇俊抑之,不得达。王复遣将军杨罗顚等连表控告。元宗仍不省。凤怒,遣大将军王毗双、罗时等发兵攻虔陀。虔陀饮鸩死;遂取姚州,并夷州三十二。获唐嶲州西泸令郑回以归,爱其才,用为清平官。天宝辛卯十载,唐命剑南节度使鲜于仲通将兵八万征云南。凤赴泸南在楚雄府姚州之城北一百五十里。谢罪,愿还所俘掠,请罢兵。仲通不许,分三道而进。仲通自南溪路,大将李晖自会同路,都督王知进自步头路。今临安府地。凤就安宁,再伸衷悃。仲通不听,兵至曲州、靖州。二州今为曲靖府地。凤复遣首领杨子芬、参军江如之赍状,言若不罢兵,卽当归吐蕃,恐云南非唐有。仲通终不许,囚其使,进薄白崖城。别遣大将王天运统师绕出点苍山后。凤遣
凤伽异及大军将段俭魏迎山后师,自逆战于西洱河。唐兵大败,死者六万人,王天运战殁,仲通仅以身免。凤乃叛唐,建元长寿。遣弟阁陂和尚及子铎传、酋望赵佺邓、杨传磨侔等,并子弟六十人献凯吐蕃。陂有神术,人马往来吐蕃,不过朝夕之顷。天宝十一载正月一日,遣宰相倚祥叶乐持金冠、锦袍、金宝带、金帐状、安扛伞鞍、银兽器皿、珂贝、珠毯、衣服、駞马、牛鞻等物至邓川,以凤为兄弟之国,册为赞普钟南国大诏,给金印,称东帝。并授凤伽异大瑟瑟告身,都知兵马大将。凤遂改是年为赞普钟元年。发人口百户于浪穹,筑白崖睑城,又遣兵攻掠安宁。天宝甲午十三载六月,唐命前云南郡都督兼侍御史剑南留后李宓、广府节度使何履光等,率十道兵再征云南。兵逼邓川,凤遣凤伽异、段俭魏迎战于江口。时神川都知兵马使论绮里徐救兵已至巴蹻山,遂诱宓深入,内外夹击。宓粮尽,士卒饥疲,引还。凤以精兵追战,唐全军覆没,李宓被执,沉江死,何履光遁去。凤因进取嶲州会同郡,据清溪关,以破越析。此二役也,皆凤弟阁陂和尚及凤妃白氏行妖术,展帕拍手而笑,韩陀僧用钵法,以故唐兵再败。时唐先后丧师已二十馀万,凤乃敛战胔,筑京观于龙尾关河尾,名万人冢,立碑大书「唐天宝战亡士卒之墓」。而唐宰相杨国忠更揜败以捷闻,叙战功。令清平官郑回撰『德化碑』,唐流寓御史杜光庭书。立石太和国门外,明其不得已叛唐归吐蕃之故。天宝乙未十四载冬十一月,东平郡王安禄山反于范阳,凤乘机以兵取蜀卭州,筑卭子城,及丽水金宝城。升段俭魏为清平官,赐名忠国,旋拜相国。代宗甲辰广德二年,羊苴哶城成,凤名之曰大理城,又名紫城。代宗乙巳永泰元年凤伽异筑云南城卽今云南府省城。又筑拓东城,今云南府昆阳州北平定乡。遂以兵攻陷曲靖。代宗丁已大历十二年,永昌牛生三角,羊生四角,鸡九足,井有光。建观音寺于白崖。先是,逻盛炎时,相国张建成欲于白崖建寺,卜之吉。又地下有三戳观音,上截在西,中截在东,下截在东南。因盛炎旋卒,不果建。至是建寺,掘之果然。代宗戊午大历十三年,阁罗凤卒,在位三十年。因子凤伽异先死,后追谥悼惠王。孙异牟寻立。
|
|-
|异牟寻改国号曰大理国。封云南王,又封南诏王 伪赠廪孝桓王
|
|-
|异牟寻,唐代宗戊午大历十三年卽位,年二十四岁。明年改元见龙,又改上元,率兵三万取蜀为东府,又连土番入寇。唐命神策都将李晟击破之。师还,自称南诏王。德宗甲子兴元元年,牟寻迁居史城,卽大厘城。改号大理国,自称日东王。封岳读,以叶楡今大理府。点苍山为中岳,乌蛮今东川府。乌龙山一名绛云弄山,在今禄劝县东北三百里。为东岳,银生府今景东厅。蒙乐山一名无量山,在厅北九十里。为南岳,又封南安州今楚雄府属。神石亦为南岳,越赕今永昌府腾越州。高黎贡山一名昆仑隅,在腾越、潞江之间。为西岳,嶲州今丽江府是。雪山一名玉龙山,在府西北二十里。为北岳。封金沙江源出吐蓄旄牛徼外犂牛石下,本名犂牛河,又名犂水,讹为丽水。经丽江府、鹤庆州、姚州而东北达于四川马湖府之马湖,卽『山海经』所谓若水。『水经注』云:若水经云南之遂久县,卽今金沙江巡检司地。昔黄帝长子昌意德劣,不足绍承天位,降居斯水为诸侯,娶蜀山氏女,生颛顼于若水之阳,疑卽其地也。祀在武定州,兰沧江源出吐蕃鹿石山下,本名鹿沧,又名兰沧。兰沧讹为浪沧。自丽江府度云龙州至永昌府,东经顺宁府,达于车里,过交趾地而入于南海。祀在丽江府,黑惠江在顺宁府之东入狼沧江,而达于南海。祀在顺宁府,怒江源出西域雍望,奔流而下,深不可测。夏月多瘴,经怒夷地入丽江府境野人界。至永昌府境,乃名潞江。祀在水昌府,为四渎,各建神祠。又立三皇庙。德宗丙寅贞元二年,设官立九爽三托。考疆域,其地东至于铜柱、铁桥、蟠桃、玉楡,东南至于交趾国,南至于骠国,西南至于木落山,西至于太石,西北至于吐蕃,北至于神川,东北至于黔巫。八分之地,属以八演,皆中国降人为之经画者。贞元丁卯三年,寻居大理城。命子弟师事郑回。时寻苦吐蕃徵求无厌,会李泌劝德宗招云南以断吐蕃右臂。帝从之,命韦皋为西川节度使,皋受命招抚群蛮。郑回因说寻归唐,寻以为然。皋遣谍者致书于寻,吐蕃知而疑之,乃责南诏大臣为质。寻愈怨。于是,决计归唐。皋以闻,德宗乃命皋作书谕寻。是年四月,吐番破蜀,来征兵,蔚按:卽吐蕃劫浑瑊清水盟之岁。寻谢绝之。贞元五年,寻遣乌蛮勿邓大鬼主苴梦冲、两林都大鬼主直那时聘于皋,因入朝。皋遣其属崔佐时报之。时吐蕃使数十人先在,佐时至,寻令更衣入。佐时不可,曰:「天朝大使。岂衣夷衣?」寻不得已,夜迎之。佐时至,大宣诏旨,令寻斩番使,去其所立之号。寻遂与佐时盟于点苍山下。贞元九年,寻遣使上表,请从韦皋袭吐蕃。诏册封为云南王,以韦皋为云南安抚使。王遣使诣皋,献夷中歌。贞元十年,吐蕃徵兵于王,王阳示寡弱,以兵三千应之,自将数万人踵其后。正月,袭吐蕃,战于神州,断铁桥,在巨津废州,今丽江府西北地。取十六城,俘其五王,降众十馀万,获军资甲仗无算。遂遣弟凑罗栋、清平官尹仇宽献捷于唐,并献地图、纳贡及吐蕃所给金印,请复号南诏。于是,唐以祠部郞中袁滋为中丞,赐金紫充册使。赐王银窠金印,印文曰:「贞元册南诏印」。王北面跪受。宴使者,出元宗天宝五载所赐王父凤伽异银跳脱马头盘数物,并指老笛工、歌女曰:「皇帝所赐龟兹乐,惟二人在耳!」使者日:「南诏世荷唐恩,当深思祖考子孙勿替,尽忠皇唐。」王对曰:「敢不敬使者之命。」随遣清平官尹辅首入谢,献铎鞘、郁刀、生金、瑟瑟、牛黄、氎、纺丝、越赕绕伦马。蔚按:铎鞘,疑当作择矟,状如残月,有孔旁达,出丽水,饰以金,月祭之血,所击无不洞。段柯古『酉阳杂俎』云:南蛮有毒槊无刀刃,状如朽铁,中人无血立死。言自天而下,入地丈馀,祭地乃掘得之,云云。疑卽铎矟,毒为铎字之讹,槊字本同矟宇也。郁刀铸时以毒药并冶,取莹耀如星者,凡十年乃成,淬以马血,镂金犀饰镡首,伤人卽死。因浪人所铸,又名浪剑,夷中甚宝之。七月,又攻吐蕃,并破施蛮、顺蛮,施蛮、顺蛮卽施浪、浪穹二诏之后,自南诏并吞五诏,五诏之后不复称诏,止称蛮。俘其王置白崖城。贞元十二年,取越赕,置软化城。贞元十四年,请以大臣子弟质于朝,韦皋却之。固请,乃尽舍成都,遣就学。贞元十五年,王开白国北方赕地,今永北厅。徙弥河白蛮及罗落摩蛮实之,号剑羌。是年,王从韦皋再败吐蕃于铁桥。初,王谋击吐蕃,以邆川、卽今邓川州。宁北卽今浪穹县。等城当寇冲,乃峭山深堑,修战备。至是吐蕃谋袭南诏,王告于皋,遣将屯黎州、嶲州以应之。吐蕃引兵攻嶲州,皋严兵以守,别遣将袭击,降其帅,吐蕃惧,退至铁桥。王令人毒其水,吐蕃人马多死,退屯三泸水,王与皋部将杜毗罗击败之。贞元十六年,王率子寻阁劝入朝于唐,召对延英殿,进奉圣乐舞,德宗御麟德殿观之。贞元十七年,王夜绝泸水,斩吐蕃屯卒,又合鬼主破之于泸西。吐蕃大惧,欲悉师收嶲州,以绝南诏。王谓韦皋曰:「吐蕃声取嶲州,实窥云南,请进军羊苴咩城。」皋督诸将分道与王会,陈兵深入,拔木波城。前后凡克城七,焚堡百五十所,斩获无算,生擒论莽热,献于唐,并进铠甲十五万。皋班师,帝遣中使慰抚王。王自是比年贡方物,唐帝深礼之焉。贞元十九年,王封云南金马碧鸡二山之神为景帝,建妙音寺塔,筑大理雪峰长城。宪宗戊子元和三年七月,王卒。唐遣使祭吊,在位三十年,子寻阁劝立。
|
|-
|寻阁一作觉劝又名新觉劝。 袭封南诏王 伪谥孝惠王
|
|-
|寻阁劝,唐宪宗戊子元和三年卽位,年三十一岁。唐册劝袭封南诏王,赐元和金印。宪宗己丑元和四年正月,改元应道,群臣上尊号曰骠信,以鄯阐为东京,大理为西京,重修曲靖崇真寺。寺为晋代所建。十一月王卒,在位一年。子劝龙晟立。
|
|-
|}
===Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝龙晟,唐宪宗己丑元和四年卽位,年十二岁。唐册袭封南诏王。明年,改元龙兴。铸佛三尊,送佛顶峰寺,用金三千两。元和九年,晨寇嘉定州,有飞天神兵破之。先是,节度使杜元颖守成都时,时滇兵至嘉定之沐源州,忽自惊溃。蜀军获一夷卒问之,云适见遍山神兵,一神将长斧坐二鬼上,声若迅雷,故尔惊走。至是神复现形,自后追杀,卽时死酋长二人。盖嘉定向有飞天神庙,两破滇兵者,皆此神也。宪宗丙申元和十一年,晟淫虐失道,弄栋节度使王嵯巅弑之,时年仅十九岁,唐命少监李铣祭吊,在位七年,弟劝利立。
|
|-
|}
===Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝利,唐宪宗丙申元和十一年卽位,年十五岁。唐册袭封南诏王。王嵯巅东寇。明年,改元全义。元和十三年,厚赏王嵯巅,赐姓蒙,封太容。元和十四年,废王嵯巅,赦其罪,命敬信三宝,为清平官。元和十五年,又改元大丰。重修崇圣寺。五月,大雨霖,龙首、龙尾二关倾。除洱河水怪,建龙屋塔。高十二丈。按:『白古记』:唐时洱河有妖蛇,名薄劫,兴大水淹城。蒙国王出示:有能灭之者,赏半官库,子孙世免差徭。部民有段赤城者愿灭蛇,缚刃人水,蛇吞之,人与蛇皆死,水患息。王令人剖蛇腹,取赤城骨葬之,建塔其上,毁蛇骨灰塔,名为灵塔。在今大理府城南龙尾关内点苍山马耳峰下羊皮村。每年有蛇党起风来剥塔灰。时有谣曰:赤城卖硬土。今『龙王庙碑』云:洱河龙王段赤城云。永昌生两头牛。穆宗甲辰长庆四年,赐南诏王金印。是年王卒于东京,在位八年,弟丰佑立。丰佑慕中国之风,独不肯连父名。丰佑石刻作劝丰佑 册封滇王 伪谥昭成王
|
|-
|
丰佑,唐穆宗甲辰长庆四年卽位,年七岁。唐遣京兆少尹韦审规持节册封为滇王。王遣洪成酋等人谢。明年,改元保合,又改元天启。西僧赞陀啒哆建鹤庆元化寺。先是,鹤庆地水淹,僧杖刺东隅泄之。水中得樟木,刻为佛,咒之忽灵,远近名曰活佛。按:活佛,后至明成化间,福建莆田林俊为云南宪副闻之,亲至寺中,将佛火之,得金数百两入官,又毁他寺三百,人呼为林劈佛。建常平仓,筑邓川城。敬宗乙巳宝历元年,重修大理崇圣寺一名三塔寺。成先是,王嵯巅广寺基方七里。圣僧李成眉贤者建立三塔,高三十丈。佛一万一千四百,屋八百九十,铜四万五百九十筋。元和十五年经始,至是工竣。塔顶旧有铁柱款识云:「贞观六年尉迟敬德监造」,盖寺之建久矣。重修云南东寺塔,高百五十尺,西寺塔高八十尺,二寺亦贞观间将作大匠尉迟敬德所建。文宗丁未太和元年,王母出家,法名惠海。太和二年,用银五千,铸佛一堂,废道敎。太和己酉三年,僧梦岛造永昌卧佛,长丈六。六月朔,星落如雨。命王嵯巅等寇蜀。先是,西川节度使杜元颖失士卒心,军逃入南诏,因此知蜀虚实。佑遂遣嵯巅等攻蜀,陷嶲、戎、卭三州,攻成都,止西郛十日,掠经书、宝货、子女无算,蜀中残敝。并寇梓州、蜀州。佑上表于唐,请诛元颖。唐改云南为鄯阐府。卽今云南府省城。太和四年,唐贬杜元颖循州司马,以义成节度使李德裕为西川节度使。裕至西川,建筹边楼,日召习边事者访问,凡山川险要,南道与蛮相入者图之左,西道与吐蕃相接者图之右,不啻身尝经历焉。乃奏请留北兵以重镇守,修甲胄、备器械。率户二百取一人习战,作雄边子弟等十一军。筑仗义、御侮、柔远诸城以扼要害,复卭崃关,徙嶲州治台登,以夺蛮险。令转卭、雅粟以十月而运,先夏而至,人不苦瘴,边境始安。至是使人于佑,责归所俘。太和五年五月,佑归所俘西川四千人于德裕。太和六年,佑掠骠国民三千,徙之拓东城。武宗乙丑会昌元年,佑遣军将晟君筑横渠道自磨用江至于鹤拓,灌东皋及城阳田,与龙佉江合流入于河,谓之锦浪江。又潴点苍山玉局峰顶之南为池,谓之高河,又名冯河。更导山泉共泄流为川,灌田数万顷,民得耕种之利。会昌六年九月,佑攻陷安南,经略使裴元裕死之。宣宗丁卯大宗元年,佑妃卒,佑郁郁不乐,臣下请选妃女备后宫。得罗部今云南府罗次县。一美女进之,有宠。女好佛,建罗次寺,至今灵异。六月大旱,佑令僧寿海祈雨。僧曰:「昔汤旱七年,六事自责,天雨七日。今王酒色妄杀,天怒不雨。王如改悔,天雨自至,何以祈为?」佑如僧言,自责自改,数日果雨。佑女至崇圣寺进香,回至城西,为一乘白马人摄去,寻之不得。佑告于西僧赞陀啒哆,哆曰此山神也。乃设灯照之,果在苍山下。哆怒欲行法,移山于河。山神惧,献宝珠供佛,佑乃已。大中十二年,佑遣段酋迁陷安南都护府。遣段宗榜救缅。榜,汤今云南府宜良县地。人,佑之勇将。先是,狮子国侵缅;屡求救,至是许之。按:缅甸卽汉之掸国,唐之骠国,其历代莫考。当宋元之时,屡败王师。明太祖洪武十年,缅头目招扳南进贡。十九年,使行人司钱古训赍诏立宣尉司。二十年,缅犯景东。二十一年,犯他郞甸,沐英命都指挥宁正平之。三月,犯定边,沐英同都督冯诚平之。景泰三年,王骥赏缅孟养地。缅喜,乃擒献麓川贼。嘉靖初,缅火烧赍金牌官,中终年猖獗海上,遂至难制。○考自永昌府腾越州入缅,止三十四程。腾越一日南甸、一日罗必斯、一日郞、一日甸头、一日甸尾、一日蒙腰、一日甸蓝、一日蒙怜路、一日空地、一日蒙来路、一日大市、一日龙江、一日锅地、一日人列渡、一日江头城、一日景怜、一日及、一日马来城、一日赖当、一日山头、一日甸头、一日阿只、一日吴细辰、一日折弓、一日阿越。由阿越下水,九日卽至缅城。其地有五大城,江头、太公二城之外,又有马来、安正国、蒲甘缅王三城。酋住金楼,民住竹楼。其下称酋为卜剌浪,称酋妻为米泼剌。酋出人乘轿,水有舟筏。官名有招孟、招彔、招刚三等。官无大小,倶金银花宝带。无弓箭。其水有金沙江,险恶,缅恃以为固。涸时,亦仅五里。俗敬佛,重罪对佛发誓,凭僧处断。○入缅又有三道:一由潞江西上;一由腾越七日至麓川;一由景东从木通甸至湾甸渡入芒市,十日至麓川。○此外从潞江上流蒙来渡至景乐沿河有小渡十馀处,皆可通。又有三道:一由天步马,一由湾甸,一由阿郊地界,皆可入缅。宣宗己卯大中十三年,陷播州。李德裕旣贬死,西川节度使所任皆非人,侥佯边功,发兵十万袭滇,自建昌入,佑命子世隆为坦绰,同王嵯巅迎战于古宗,今丽江府铁桥以北地。杀唐兵数万人,立铜柱于界上。世隆之母,佑妃也,出家号师摩矣。尝随佑至罗浮山白城,建一寺,南壁画一龙,是夜龙动,几损寺,妃乃复画一柱锁之,始定。按:妃本渔家女,喜浴。为妃后,仍常泛舟西洱河,屏人潜浴于水,感金龙与交,生世隆。隆七岁,拳握始开,有文在其掌曰:通番打汉。古宗之战,唐帝惧世隆为患,妻以宗室女,伺察其所为。女以世隆年庚潜送于帝。帝使太史推之,知其感龙精而生。是年,丰佑卒于东京,在位三十五年。子世隆立,以王嵯巅摄政。段宗榜救缅,回至腾越,闻佑卒,世隆立,嵯巅摄政,移书王嵯巅曰:「天启不幸,驾崩嗣幼,闻公摄政,国家之福。榜救缅以败狮子国。缅酬金佛,当得敬迎。奈中国无人,惟公望重。榜抵国门之日,烦亲迎佛,与国增光。」云云。嵯巅不知是谋,至日迎之。榜令巅拜佛,突斩之于佛前。讨其弑劝隆晟之罪也。榜熔佛得金数千两。时有缅人奉香火者在榜,默祝曰:「愿世代奉敬,今不如愿,惟愿世尊轮生,灭彼国祚。」后果生郑买嗣篡国,灭蒙氏。
|
|-
|世隆『唐书』作酋龙。 伪谥景庄皇帝僭称帝始此,以后郑、赵、杨、段、高五姓之国咸效之。
|
|-
|世隆,唐宣宗己卯大中十三年卽位,年十六岁。明年,为懿宗庚辰咸通元年,改元建极。改西京曰中都,东京曰上都。先是,德宗贞元间,西川节度使韦皋开道通南诏,令岁入贡。异牟寻、寻阁劝二世事唐唯谨,迨劝龙晟及丰[佑],又数数扰边,大为唐患。又以世隆之名犯太宗、元宗庙讳。唐不册封,隆益致怨望。至是自称皇帝,遣兵取乌蛮、僰、爨之地,置东川郡。前节度使杜悰变韦皋制度,侵扰蛮中。隆绝朝贡,寇播州。至是李福为节度使,隆遣清平官董成至成都,移书于福。成与福抗礼,福囚之。上闻,有诏释成,召至京师,见便殿,遣还。咸通二年,遣兵陷安南。左仆射同平章事杜悰言:「西川兵弱,南诏强盛,未可轻绝。宜遣使祭吊,谕令改名,行册礼。帝肯之。会隆复寇嶲州,遂止。咸通三年,隆亲寇蜀,取万寿寺石佛归。时高真寺僧崇模有神术,从征。军中乏粮,又値岁暮,士卒思归,僧咒沙成米,咒水成酒,士卒各醉饱。一日僧化蝶回国乱宫,世隆妻以书达隆。隆答曰:妖若再来,令宫人于其衣背绣蝶。后僧复至,宫人绣之。隆见僧衣有蝶,令斩之。刑七次,首不殊。僧自云:用茅锯之乃断。果然。人见僧魂化一黑鹏飞去,盖僧本高真寺鹏巢中所得之儿也。咸通四年,寇西川。咸通五年,陷安南、邕管。咸通六年,陷嶲州。咸通七年,复攻安南。岭南西道节度使高骈救之,隆兵大败,骈遂定安南。咸通十年,隆遣使杨酋庆等入朝,谢释董成之囚。归成都俘三千人。定边节度使李师望杀其使,隆怒,率众攻蜀,陷嘉州。咸通十一年正月,陷黎州,入卭徕关,围雅州,击卭州,遂进攻成都。次眉州,西川节度使卢耽畏众寡不敌,通使请降。继而唐遣东川节度使颜庆复、大将宋威等率兵来战。世隆败屯星宿山,宋威戍沱江。隆迎战于毗桥,不胜,趋沱江,中伏。城中又出突将,夜火隆营,夺升仙梁。隆大败,奔双流江,无梁以渡,乃伪请和,三日梁成而济。咸通辛卯十二年,立鄯阐王宫。咸通壬辰十三年,于白崖诸葛武侯所立铁柱之地,铸天尊柱,高八尺。蔚昔年曾至铁柱宫,其地界白崖、弥渡、蒙化三境之间。其柱刻字云:建极十三年岁次壬辰四月朔庚子十四日癸丑建立。咸通十四年,攻黔中。又寇西川,作浮梁济大渡河,防河兵马使黄景复伏兵,半渡击败之。会隆国中新兵继至,接战,景复败走。隆进兵陷黎州,入卭徕关。遂遣王保诚等四十人谩书诣剑南节度使牛丛,欲假道入朝,请憩蜀王故殿。丛囚其使三十八人,释酇咙及段酋迁二人还。隆乃退兵至新津而旋。僖宗乙未乾符二年,攻雅州。西川节度使高骈追至大渡河,大败之,俘酋长五十人,收复黎州、卭徕关,斩黄景复以狥。乾符三年,遣使诣高骈请和,不许,斩使者一人。隆怒,自是唐使至不拜,惟拜和尚。骈知之,乃遣僧景仙往谕公主事,隆乃下拜定盟。禧宗丁酉乾符四年二月,复寇蜀,高骈御退之。骈又结吐蓄尚延心嗢、末鲁褥月等为间,筑戎川州、马湖沭沐源川、大渡河三城,列屯拒险,料壮卒为平夷军。世隆气夺,因恚发疽,卒于越嶲景净寺,在位十八年,子隆舜立。
|
|-
|}
===Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆舜,唐僖宗丁酉乾符四年卽位,年十七岁。明年,改元贞明,又改元嵯耶、承知、大同,改国号曰大封民国。遣使于唐请和,诏许之。自劝龙晟至世隆以来,侵蜀伐安南,用兵五十馀年,帑藏不给,横敛于民,上下倶困。舜立,耽于酒色,委政臣下,故愿求和于唐,乃遣段宝诣岭南节度使辛谠,请修好。谠奏,许之,以息边患。乾符六年,遣使于唐求和亲,无表,只用牒,称弟不称臣。唐帝召百官议,礼部侍郞崔澹曰:「南诏无礼,恐贻后笑。」使者上书与澹争。帝谕解之。议者谓中国多故,南诏寖强,不若权与和亲。便从之。僖宗庚子广明元年春正月,唐命宗正少卿李龟年来和亲。僖宗辛丑中和元年,上表款附。中和癸卯三年,唐以宗室女为安化长公主,妻隆舜,僖宗乙已光启元年,遣宰相赵隆眉、清平官杨奇鲲、段义宗三人,朝唐帝行在,且迎公主。高骈在淮阳飞章上言:「三人南诏心腹。宜止而酖之。」唐帝从其言。隆眉等死,南诏遂不复振矣。是年昆仑国进美女,舜嬖之。光启二年地震,龙首、龙尾二关、三阳城皆崩。昭宗己巳乾宁四年,隆舜多内嬖,常信谗以诛其下,淫虐日甚。竖臣杨登弑之于东京,在位二十年,子舜化贞立。
|
|-
|}
===Shunhuazhen舜化贞 伪谥孝哀帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|舜化贞,唐昭宗丁巳乾宁四年卽位,年二十一岁。明年,改元中兴。上书于唐,朝廷欲报之。利州刺史王建上言:「臣在西南,彼必不敢犯塞,小夷何足辱诏书。」遂止。昭宗光化二年,立五学敎主。十一月,诛杨登,族其家。光化庚申三年,铸崇圣寺丈六观音,清平官郑买嗣合十六国铜所铸,蜀人李嘉亭成像。一说唐天宝间,崇圣寺有僧募造丈六观音像,未就。夜忽雨,旦视之,铜也,卽取以铸像。像成,白光弥覆凡三日夜,至今人称为雨铜观音。唐昭宗壬戌天复二年,舜化贞卒,一说实郑买嗣弑之。,在位五年。化贞有一子,生甫八月,郑买嗣主国事,遂启贞妻曰:「母后深宫,群臣无主,臣当抱太子临朝。」贞妻是其言,以子付之。买嗣抱子出,潜手伤其阴,子哭不已,乃送回宫中。明日,子死。贞妻疑而诘之,买嗣怀不安,遽起兵杀蒙氏亲族八百人于五华楼下,遂簒立焉。
|
|-
|按:蒙氏南诏大蒙国,自细奴逻禅立,起唐太宗己酉贞观二十三年,讫昭宗壬戌天复二年,传十三世,共二百五十五年。
|
|-
|}
==Dachanghe Generations《大长和国 传三世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dachanghe Generations《大长和国 传三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|郑买嗣又名。 伪谥圣明文武威德桓皇帝。
|
|-
|郑买嗣,又名,唐巂州西泸令陷南诏臣蒙氏,为清平官郑回之七世孙。
隆舜时历官侍中,权势日重。隆舜巡幸无度,留买嗣守国,遂专政柄。舜化贞时为相,化贞卒,嗣贼杀其子,簒蒙国,于唐昭宗壬戌天复二年十二月卽位,年四十二岁,国号大长和,仍都大理。明年,建元安国。后梁太祖开平丁卯元年,建普明寺。开平三年,铸佛一万尊,送寺祈福,为杀蒙氏八百人故也。开平四年八月,买嗣卒,在位八年,子仁旻立。
|
|-
|}
===Renmin 《仁旻 伪谥肃文太上皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|仁旻,后梁太祖庚午开平四年卽位,年二十二岁。明年,改元始元,又改元天瑞、景星、安和、贞佑、初历。末帝甲戌乾化三年,旻攻蜀。蜀高祖王建发兵拒之,旻兵大败,溺水使者万馀人。后唐庄宗癸未开同光元年,施宫寺灾,僧智照撰『封民三宝记』。同光二年旻以朱鬃白马求婚于南汉刘龑,龑以增城公主妻之。明宗丙戌天成元年八月,仁旻饵金丹,躁怒,常杀人,遂暴卒,在位十六年,子隆亶立。
|
|-
|}
===Longdan 《隆亶 伪谥恭惠帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆亶,后唐明宗丙戌天成元年卽位,年十二岁,明年,改元天应。明宗戊子天成三年,东川节度使杨乾贞入朝,弑隆亶而立赵善政,计亶在位二年。
|
|-
|按:郑氏大长和国,自买嗣簒位,起唐昭宗癸亥天复三年,讫后唐明宗戊子天成三年,传三世,共二十六年。
|
|-
|大天兴国一作兴源国。 一世
|
|
|}
==Dayining Generations《大义宁国 一世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Yang Qianzhen 《杨乾贞 伪谥肃恭帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|杨乾贞于后唐明宗己丑天成四年夺大天兴国赵善政之位,改国号曰大义宁国,建元兴圣,又改元大命。乾贞萂村人。今大理府宾川州所属地。母名弥彔,有美色,蒙隆舜私焉。有孕,适渔人杨氏,生乾贞,后又生诏。其父捕鱼,贞立船头,见水中有人龙衣冠冕,左右有凤鸟,白光拥护,乃呼父视之。父见是贞之影,大奇之。长仕郑氏,官至东川节度使。至是夺善政位而自立。贞在位,贪暴特甚,中外咸怨。后晋高祖丁酉天复二年,通海节度使段思平起兵讨之。贞遣弟杨诏等五人出拒。诏兵败,乾贞出奔。思平遂得位,寻赦其罪,废为僧。计贞在位八年。
|
|-
|}
==Dali Generations《大理国 传十四世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siping《太祖圣神文武皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段思平,其先武威郡北人,世为南诏蒙氏将。唐元宗辛卯天宝十载,及甲午天宝十三载,唐再伐云南,云南王蒙
阁逻凤命世子凤伽异、大军将段俭魏迎战于点苍山及西洱河,两败唐兵。以功升俭魏为清平官,赐名忠国,寻拜相,六传而至思平。其母因过江,水泛触浮木,若有感而娠,生思平,并其弟思良。思平为幕览,小府副将也。常游山中,得为帝之谶,又每多异徵。时东川节度使杨乾贞之弟杨诏者已贵,闻而忌之,使人贼思平。思平逃匿于崇恩寺,在大理府城南九里。捕者追至,见蛛网盈寺门,不入,故得脱。后积战功,使为通海节度使。后唐明宗己丑天成四年,杨乾贞夺赵善政之位。受诏之谮,常欲除思平。平卜于秀山神祠,就其舅爨判自匿。后晋高祖丙申天福元年,乾贞索捕思平甚急。会善政臣守高方,素与思平善,密遣人招思平。思平与其弟思良、军师董迦罗走就之。皆裂冠,变姓名,为猎者,牵一犬至品甸波大村今大理府云南县地。宿旅舍。舍有戟,生牛革裹之,是夜风起,戟忽洞革出。思平惊曰:「是何銛利?得非神戟乎!」问主人曰:「戟何为?」曰:「以防夜耳。」曰:「防夜莫若犬。」遂以犬易戟去。行至叶镜湖,湖在大理府云南县地得神马。饥取野桃而食,核上有虫啮「靑昔」二字,思平解为十二月二十一日,意其吉兆。于是急趋而前,借兵于东方黑爨三十七蛮部,会于石城,今曲靖府是。以董迦罗为军师。兵集之期,适十二月二十一日也。所向皆克,遂进攻大理,讨干贞。时诏等陈兵据桥,军不能过。思平夜忽得三梦:人无首;玉瓶无耳;镜破。觉而告其下。迦罗觧之曰:君乃丈夫,去首为天;玉瓶去耳为王;镜破则无对者,此神示吉兆。是日,有被缨浣沙妇,指渡处曰:「人从我江尾,马从三沙矣,尔国名大理。」从之,乃得过江,击诏等杀之。乾贞闻诏等军败,出奔。思平卽位,时天福丁酉二年也,年四十四岁。建号大理国,建元文德,仍都大理。天福三年封董迦罗为相国,封高方为岳侯,分治成纪、巨桥等地。封爨判为巴甸侯。祠秀山神,免东方三十七蛮部徭役,赦国中凡有罪无子孙者。天福四年,赦杨乾贞罪,废为僧。一说乾贞败后,挈其妻子奔永昌郡。思平遣兵追之,至万剑树,乾贞自缢而死。思平俘其妻子亲属。帝好佛,岁岁建寺,铸佛万尊。后晋出帝甲辰开运元年帝崩,在位八年,子思英立。
|
|-
|}
===Duan Siyin 《文经皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siyin 《文经皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思英,后晋出帝甲辰开运元年卽位,明年,为出帝开运二年,改元文经。帝母杨氏桂仙娘没而为神,屡著灵应,封为楡城宣惠圣国母。是年,帝叔思良争位,废帝为僧,法名宏修大师。在位一年,叔思良立。一说思英素不肖,思平在日,常欲废之,不果。迨卽位,愈淫戏无度,群臣废之,而立思良。
|
|-
|}
===Duan Siliang 《圣慈文武皇帝 太祖之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siliang 《圣慈文武皇帝 太祖之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思良,后晋出帝乙巳开运二年卽位,明年,改元至治。后周太祖壬子广顺二年,帝崩,在位七年,子思聪立。
|
|-
|}
===Duan Sicong 《思聪 伪谥至道广慈皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sicong 《思聪 伪谥至道广慈皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思聪,后周太祖壬子广顺二年卽位,明年改元明德,又改元广德。宋太祖乙巳开宝二年,思聪卒,在位十七年,子素顺立。
|
|-
|}
===Duan Susun 《素顺》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Susun 《素顺》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素顺,宋太祖乙巳开宝二年卽位。明年,改元明政。先是,宋太祖丁卯乾德五年春,王全斌平蜀,还京师,请取云南,负地图进。太祖鉴唐之祸,以玉斧画大渡河为界,曰:「此外非吾有也。」由是段氏得据南诏,相安无事。太宗乙酉雍煕二年,素顺卒,在位十六年,子素英立。
|
|-
|}
===Duan Suyung 《素英 伪谥昭明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suyung 《素英 伪谥昭明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素英,宋太祖乙酉雍煕二年卽位。明年,改元广明,又改元明应、明圣、明统、明治。太宗至道二年,述『传灯录』。真宗己酉大中祥符二年,素英卒,在位二十四年,子素廉立。
|
|-
|}
===Duan Sulong 《素隆 伪谥秉义皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sulong 《素隆 伪谥秉义皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素隆,宋真宗壬戌干兴元年卽位,明年改元明通。仁宗丙寅天圣四年素隆禅位为僧,在位四年。侄素贞真立。
|
|-
|}
===Duan Suzhen 《素真 伪谥圣德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suzhen 《素真 伪谥圣德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素真,宋仁宗丙寅天圣四年卽位,明年改元正治。仁宗辛巳庆历元年素真禅位为僧,在位十五年,孙素兴立。
|
|-
|}
===Duan Suxing 《素兴 伪谥天明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suxing 《素兴 伪谥天明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Lianyi 《廉义 伪谥上德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Lianyi 《廉义 伪谥上德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|廉义,宋神宗乙卯熈宁八年卽位。明年,改元上德。遣使入贡于宋。熈宁十年,又改元广安,作八龙王会。神宗庚申元丰三年,杨义贞杀廉义而自立。计义在位五年,自义贞弑其主廉义而自立,簒位仅四月,鄯阐侯高智升命子清平官高升泰起东方爨僰兵,讨而诛之,立廉义之侄寿辉。
|
|-
|}
===Duan Shouhai 《寿辉 伪谥上明皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
===Duan Zhengming 《正明 思廉之孙 伪谥保定皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
==Da Zhongguo Generations 《大中国》==
===Gao Shentai 《高升泰 伪谥富有圣德表正皇帝》====
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|高升泰,宋哲宗甲戌绍圣元年,受大理国段正明之禅卽位。改国号曰大中国。明年,改元上治。升泰,岳侯高方之裔,大理点苍山莲花峰下芒涌溪人。将生,其父袭岳侯,智升往石云寺在点苍山白雪峰麓进香回,遇一老叟云:「尔家将生贵子,可速归。」智升至家,而升泰适生,心颇异之。及长,有材器,仕为清平官,兼九爽之事,誉望日重。思廉出游,猝遇烈风,吹踣其马。廉将坠,智深跃前扶之。廉德智升,赐以宫人及珠玉。杨允贤(判)〔叛〕,廉命智升讨之,以功加太保,封德侯,旋晋鄯阐侯,世袭。及杨义贞簒逆,智升令升泰起东方兵,诛义贞而立廉义之侄寿辉。辉以智升为布燮,升泰袭鄯阐侯。辉在位灾异迭兴,因禅位于思廉之孙正明。明为君不振,人心归高氏。遂请升泰为君,而正明禅以位焉。哲宗丙子绍圣三年,升泰在位二年,寝疾。遗命曰:「我之立国,以段氏之弱,我死,必以国仍还段氏,愼勿背我。」及卒,其子高泰明遵遗命,还位正明之弟正湻。段氏复兴,号后理国。高氏相之,政令皆出其门,国人称为高国主,段氏拥虚位而已。
|
|-
|}
==Houli Guo Generations 《后理国》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhengchen 《段正湻 大理国正明之弟 伪谥中宗文安皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正湻,宋哲宗丙子绍圣三年复得国,卽位,号后理国。以高泰明为相国,执政柄,高泰运为栅主。明年,改元天授。又改元开明,天政,文安,赦徭役。筑楚雄城,在今楚雄府城西北二里。以封高泰明之侄高明亮。徽宗癸未崇宁二年,遣高泰运奉表入宋,求经籍,得六十九家,药书六十二部。鄯阐李观音得来朝,进金马杖八十节,人民三万三千户。湻赐得八章礼衣,龙头剑,擢为安东将军。蔚按:蒙氏时有安东将军,季李珠所筑安东城,在今大理府赵州城东二里。缅人、波斯、昆仑三国进白象及香物。十月,彗星见西方,大疫。徽宗戊子大观二年,正湻禅位为僧,在位十二年,子和誉立。
|
|-
|和誉又名正严 封云南节度使大理国王,伪谥宪宗宣仁皇帝
|
|-
|和誉,宋徽宗戊子大观二年卽位。明年,改元日新。又改元文治、永嘉、保天、广运。七月中元节,各方贡金银、罗绮、珍宝、犀象万计,牛马遍点苍。徽宗辛卯政和元年,地大震,损十六寺。三十七部判叛〕,高相国泰明讨平之。使四子高明清居鄯阐镇守。政和五年,缅人进金花、犀象。政和六年。遣儒官钟震、黄渐赍敕褒高泰朋相国忠贞,封平国公。是年,遣使入贡于宋。高泰明卒,封国师。泰明生八子,高智昌以罪流死。其下伊、何二人谋为执仇,乘誉入寺进香,图弑逆,事露被收。誉嘉二人之义,赦之,为立义士冢。高泰运立,主国事。六月,三日并出。政和丁酉七年,命子紫琮充进奉使,入贡于宋。诏遣使册封誉为金紫光禄大夫、检校司空、云南节度使、上柱国、大理国王。徽宗己亥宣和元年正月,彗出,慕宁、远、矣、破、马等叛。三月,出师征之,兵败。三十七部蛮复叛。陷鄯阐,高明清死之。郡臣以高升泰侄商量成有德,请立为相,号中国公。徽宗丙午靖康元年五月,金星入月,大火,焚三千九百家。南宋高宗丙辰绍兴六年,王遣使贡象马于宋,广西经畧安抚使奏之,诏护送行在,优礼答之。绍兴十六年三月十四日,大雾,历二十四日方开。高宗丁卯绍兴十七年,王老,因诸子内争外叛、遂禅位为僧,在位三十九年。子正兴立。
|
|-
|}
===Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|正兴,南宋高宗丁卯绍兴十七年卽位。明年,改元永贞,又改元大宝、龙兴、盛明、建德。高量成让相位与侄寿贞,退老楚雄城。人化其德,名城曰德江城。孝宗癸未隆兴元年三月,寿贞卒。寿昌立为中国公。孝宗壬辰乾道八年四月,重雾,十六日方开。正兴禅位为僧,在位二十五年,子智兴立。
|
|-
|}
===Zhixing 《智兴 伪谥宣宗功极皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixig 《智兴 伪谥宣宗功极皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智兴,南宋孝宗壬辰乾道八年卽位,明年,改元利贞。又改元盛德、嘉会、元亨、安定。遣李观音得等至广西横山砦今在广西南宁府江上。求市马。李观音得夺寿昌位,与侄贞明。阿机起兵夺贞明位,还寿昌。贞明遂据鹤庆,号明国公,伪谥义地威天聪明仁帝。高妙音自白崖起兵,据鄯阐。时有妙音之甥成贤、成正二人来谒,意在夺鄯阐。妙音觉之,与之盟于天王庙。二人口含丁香叶,出庙吐之曰:「盟非我也,叶也。」未几,二人起兵,方战,见白马将斩之。白马将,乃庙中二力士也。光宗庚戌绍熙元年,修十六寺。宁宗乙卯庆元元年,修龙首、龙尾二关,三阳城。宁宗庚申庆元六年,智兴卒,在位二十八年,子智廉立。
|
|-
|}
===Zhilian 《智廉 伪谥享天皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhilian 《智廉 伪谥享天皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智廉,南宋宁宗庚申庆元六年卽位。明年,改元凤历。又改元元寿。使人入宋求『大藏经』一千四百六十五部,置五华楼。宁宗乙丑开禧元年,智廉卒,在位五年。弟智祥立。
|
|-
|}
===Zhixiang 《智祥 伪谥神宗皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixiang 《智祥 伪谥神宗皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智祥,南宋宁宗乙丑开禧元年卽位。明年,改元天开。又改元天辅、仁寿。征三十七蛮部,至寻甸平,河水绝流。理宗丁酉嘉(禧)〔熙〕元年,封高隆鄯阐王,以高泰祥为相国,以光日为演习。大府主将也。举贤育才,时和年丰,称治国焉。理宗戊戍嘉(禧)〔熙〕二年,智祥禅位为僧,在位三十三年。子祥兴立。
|
|-
|}
===Xiangxing 《祥兴 伪谥孝义皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|祥兴,南宋理宗戊戌嘉(禧)〔熙〕二年卽位。明年,改元道隆。理宗甲辰湻佑四年,蒙古兵出灵关,伐大理。祥兴遣将高禾迎战,禾败死之。段连佑归宋,宋遣使吊祭,致经书、银缎,为高禾拒蒙古兵战殁也。理宗辛亥湻佑十一年,为蒙古宪宗蒙哥之元年,祥兴卒,在位十三年。子兴智立。
|
|-
|}
===Xingzhi 《兴智 赠天定贤王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|兴智,南宋理宗辛亥湻佑十一年卽位。明年,改元利正。又改元兴正、天定。是年,南宋理宗壬子湻佑十二年,为蒙古宪宗之二年七月丙午,太弟忽必烈等奉宪宗命,伐大理。受制专征,以大将兀良合台总督军务。八月,次临洮,由六盘逾吐番,凡行山谷二千馀里无人之境。先遣王律术、王侯、王鉴来谕大理,道阻而还。九月,次忒刺,分三道进。兀良合台率西道兵,由晏当路,诸王抄合也只烈率东道兵,由白蛮,忽必烈率劲骑,由中道。乙巳,至满陀城,留其辎重。十月,过大渡河。十一月,至白蛮打郭砦。十二月,再遣三使入大理,招兴智,皆被杀。智命相国高泰祥守金沙江,与蒙古将伯颜不花、虎儿敦等相持。忽必烈命众以革囊潜济江,破吐番,渉摩荻,出石门,所过降之,遂进薄大理。泰祥回军,奉兴智拒战,不胜。蒙古兵入上关。智奔鄯阐,泰祥退至统失逻先为姚安府,府裁,今为姚州,属楚雄府。募兵于三十七部未至,而蒙古兵已长(躯)〔驱〕而入,泰祥被执大理,不屈,乃斩于五华楼下。祥临刑叹日:「段运不回,天使其然,为臣殒首,盖其分也。」时白日正午,忽云起雷震,天鼓大鸣,忽必烈曰:「忠臣也。」泰祥夫人段氏,抱孤儿高琼、高长寿等伸诉。忽必烈目儿顾左右曰:「此忠臣后,宜善视之。」许以世其官。高泰祥为大中国升泰九世孙。遂灭段氏而有其地,得五城、八府、蛮部三十有七。乘胜入吐蕃,降其酋。明年,南宋理宗癸丑宝佑元年,为蒙古宪宗之三年,忽必烈班师。大将兀良合台拔鄯阐,获兴智以献,宪宗命赦之,封为摩诃罗嵯,管领八方,仍守其地,世袭总管。计兴智在位二年,宪宗授兀良合台银印,加大元帅,还镇大理。以刘时中为宣抚使,与兴智同安辑焉。南宋理宗庚申景定元年,为蒙古世祖忽必烈之中统元年,兴智率其季弟段信苴福北行,朝于世祖,道卒。计为总管又七年。蒙古遣使来祭吊,文曰:「段氏承八姓正位,归有新统,旣顺天时以向义,犹得国王以栖迟,实国家待远方之仁,由贤王能左右之义。受命以来,朝夕愓励。赖尔维勤,用征不廷,正当共享亨嘉之运,胡意遽罹霜露之灾,呜呼!当朕未集大统,乃为叔季之国。兹旣承景运,合正君臣之称,参录不替于子孙,诏禄宜昭于典册,特遣太常省祭,赠为后理国向义天定贤王段公,尚赖神麻,永保祚土。所赠王爵,后不为例。」明年,南宋理宗辛酉景定二年。为蒙古世祖中统二年,世祖敕授王之弟信苴日则段实。总管守大理。命之曰:「向率我以临尔境众据国人之请,因从城下之盟,款附而忠勤益著。庸示至优之礼,以彰同视之仁。可革帝号,锡以虎符,总理大理、鄯阐、威楚、统矢、会川、建昌、腾越诸郡,抚恤已附之民,招集未降之国,卿其勉之。」
|
|-
|按:段氏后理国,自段正湻复国,起宋哲宗丙子绍圣三年,讫南宋理宗癸丑(实)[宝应元年,传八世,共一百五十七年。
|
|-
|总计段氏大理、后理二国,传二十二世,共三百零十五年。
|
|-
|增订南诏野史下卷
|
|-
|}
==Hu Weixianmen Wing DynastyRevisions《大淸湖南武陵胡 蔚羡门订正》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hu Weixianmen Wing Dynasty Revisions《大淸湖南武陵胡 蔚羡门订正》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段氏总管除天定贤王段兴智受封总管七年外起段信苴日卽段实讫段世,共袭十二世。
|
|-
|段实一名信苴日。
|
|-
|段实,于南宋理宗景定二年,蒙古世祖之中统二年,入朝于世祖,袭总管,赐虎符,领大理、威楚、鄯阐、统矢、会川、建昌、腾越等城,自万户以下皆受节制。南宋理宗癸亥景定四年,为元世祖中统四年,蒙古设大理都元帅府,命昔撒昔总制鬼国、大理两路。理宗甲子景定五年,为世祖至元元年,妖僧舍利威结威楚、统矢、鄯阐及三十七蛮部叛,实讨之,大破于威楚、统矢、安宁等处,又破释多罗十馀万众于洱河海口。南宋度宗丁卯咸湻三年,蒙古世祖至元四年,以皇第五子忽哥赤为云南王,镇大理。至元五年,忽哥赤受命与安南国王讨占城、真腊。南宋度宗咸湻六年,世祖至元七年,置大理路军民总管府。南宋度宗辛未咸湻七年,为蒙古世祖至元八年冬十一月,世祖改国号曰元。云南王忽哥赤为元帅寳和丁所杀。元伐金齿、缥甸,降之。分大理三十七蛮部为南北中三路,遣阿鲁忒儿宣抚大理,招谕诸蛮。南宋度宗辛未咸湻十年,元世祖至元十一年,封宗室脱忽鲁为云南王,命云南行省平章政事赛典赤建云南各衙门。妖僧舍利威复叛,实遣石买等诡为商贾,执贽往见,挺矛鏦杀之,枭首于市。元世祖赐实白金及金织纹衣。南宋恭宗丙子德佑二年,元世祖至元十三年,授实为大理等处宣抚使。缅甸叛犯永昌,元命纳速剌丁赛典赤之长子,后封延安王。伐之,破砦三百,因天暑,还师。复命诸王相吾答儿、右丞太卜、参政也罕的斤伐缅,招讨使法烈先驱造舟于阿若、阿禾两江,进拔江头、太公二城,金齿、乌蒙皆降。南宋帝昺庚辰祥兴二年春二月,为元世祖忽必烈之至元十七年,宋亡,元入主中国。以忽哥赤之子也先帖木儿为云南王。命忙兀鲁徵八百媳妇。缅败忽都帖木儿兵,诏思、播土官田、杨二处兵助讨之。命征缅官番听云南王节制。至元辛巳十八年实率子阿庆入觐,元祖嘉其忠,晋大理、威楚、金齿等处宣慰使都元帅。升辞,复拜为云南诸路行中书省参知政事,留阿庆宿卫东宫。至元壬午十九年,实受敕迎征缅师,于金齿病卒。诏以其弟忠为大理宣慰使兼军民万户府,赠实为武定公。实任职二十二年。
|
|-
|}
===Duan Zhong《段忠 实之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhong《段忠 实之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段忠,元世祖癸未至元二十年袭。是年,忠随元元帅阔木征芒部、两林蛮及会川等处,破贼立功,元授忠为善阐酋,赐虎符。元置邦牙宣慰司于蒲甘城,命云南王也先帖木儿率招讨使怯烈总兵三千往镇之。忠奉云南王命伐武定。冬十二月忠卒,以实之子阿庆为大理金齿等处宣慰司都元帅、佩金虎符,封宣武将军,晋镇国上将军,尚公主。遣归,复授云南行省参政。忠任职一年。
|
|-
|段庆卽阿庆。实之子
|
|
|-
|段庆,元世祖甲申至元二十一年袭。至元二十五年以云南王也先帖木儿移镇大理,进封营王。至元二十七年冬十月,封皇孙甘剌麻为梁王,镇云南。至元二十九年改封梁王甘剌麻为晋王,镇北边。至元三十年,封甘剌麻之子松山镇云南。至元三十一年世祖崩,孙铁木耳立,是为成宗。成宗丙申元贞二年,置彻里路,卽车里军民宣慰使司。令与八百犬牙相制。秋八百叛命,也先不花征之。成宗己亥大德三年,云南水西土官宋隆济叛,贵州知州张怀德战死。云南行省麻九儿讨之,追杀贼首撒月,斩首五百级。庆奉敕征交趾,平之。入朝,带僧左黎同往,适成宗手疽甚,黎以法水洗之,立愈。帝欲试其术,乃掘地窖,令八人潜其中击鼓,佯云有怪,召黎治之,黎行法,顷之不闻鼓声,启窖视之,则八人已死。帝敬其法,封为国师。大德四年,缅人僧哥伦作乱。缅酋执其兄阿散哥也,寻释去,阿散乃率其党杀酋。酋次子奔诉京师,诏遣薛超兀儿率行省兵讨之。大德五年,金齿、八百叛,不输粮,杀官吏,元命右丞刘深、哈剌带、郑佑等征之。刘深协求水西土妇节金三千两、马三千匹,土官宋隆济遂叛,围深等于穷谷中,梁王阔率兵救,解之。冬,云南地大震,御史陈天祥谏伐西南夷,不报。大德七年,罢徵八百,免右丞刘深官,收符印。左丞相哈剌哈孙议深徼名首衅,丧师辱国,劝帝诛深,遂杀之。深卽往以兵逼南宋帝昺于谢女峡者。大德八年,立平云南碑于点苍山。顺元宣抚宋阿重获其叛叔宋隆济,朝命升职,赐衣一袭。滇池有蛟,化少年淫妇女,有神僧赵伽罗者,命黑胡神擒之,至噀水见形,斩之。神卽土主也。成宗丙午大德十年,罗雄土官阿那龙少叛,据越州。今在曲靖府南六十里,本唐之悦州,其川名鲁望。命右丞汪惟能讨之,追至曲靖,斩那龙少。是年庆卒,弟正袭。庆任职四十三年。
|
|-
|}
===Duan Zheng 《段正 庆之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zheng 《段正 庆之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正,元成宗丁未大德十一十年袭。正招蒙化山中生爨入籍。元授正为参政,仍大理军民总管。晋宁建盘龙寺。有神僧觉照者,段氏族人,号莲峰,游东山见龙潭绝幽胜,乃咒龙令徙。龙去,水涸,建寺其地。蔚按:莲峰僧于顺帝之至正末入定塔中。武宗海山戊申至大元年,沾益、乌蒙地大震,三日并出。至大二年三月,梁王松山风疾,诏封皇第七子西平王奥鲁赤之孙老的代镇云南。仁宗爱育黎拔力八达壬子皇庆元年,诏罢徵八百。皇庆癸丑二年冬十月,学士李孟奏准开科,三年一试。时九成殿生芝,天下共取士三百名,每榜云南取五名,内蒙古二名,塞目二名,汉人一名。以八月二十日初场,二十三日次场,二十六日三场。仁宗乙卯延佑二年十一月,封武宗子和世珠为周王,出镇云南。仁宗丙辰延佑三年,正卒,庆子隆袭。正任职十年。
|
|-
|}
===Duan Long 《段隆 庆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Long 《段隆 庆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段隆,元仁宗丁巳延佑四年袭,元授隆为大理军民总管。延佑己未六年,云南行省奏:「夷俗:凡土官无子,卽以妻代管。请听之。」诏曰可。延佑庚申七年,封甘剌麻孙王禅为云南王。英宗硕德八喇癸亥至治三年,进封王禅为梁王,封其子帖木儿不花为云南王。是年八月,诸王按梯不花、索孛罗、月鲁铁木儿等及御史大夫铁失弑帝于南坡行幄。九月泰定帝也孙铁木儿卽位。十二月流诸王月鲁铁木儿于云南。泰定四年,洱海有水怪,牛猪形短项金睛,兴水为患。大理一道人向隆取黄金百镒,隆与之,乃以金为索,沉于河,怪卽日徙于浪穹宁河。按:『六诏灵源记』云:宁河无底。明宣德间,有渔人李应捕鱼,网得金索,旋得旋断。一渔者诫之曰:可止矣。应贪甚,尽曵之,索将穷,惊其怪,风浪陡作,应并舟倶溺,至今为患。文宗图帖睦尔庚午至顺元年,以豫王阿忒思纳失里出镇云南。诸王秃坚据云南叛,杀廉访使,自称云南王。元诏枢密帖木儿讨之,发朵甘思等处兵分道进。至四川建昌、罗罗斯,权寻甸府官曲术集义兵讨秃坚,败贼伯忽于马龙,追至金马山,擒之。是年,隆以老退闲,子俊袭。隆任职十四年。
|
|-
|}
===Duan Jun 《段俊 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Jun 《段俊 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段俊,元文宗辛未至顺
二年袭,元授俊为云南行省平章。乌撒部奏:「云南驿输征甚苦,愿属四川。」奏下参政贾敦煕议之。是年俊卒,族弟义袭。俊任职一年。
|
|-
|}
===Duan Yi 《段义 俊之族弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Yi 《段义 俊之族弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段义,元文宗壬申至顺三年袭,朝命止授为承务郞、蒙化州知州。是年阿容禾叛于中庆路,义助兵讨平之,以功升参政。九月,乌蒙土官禄馀寇顺元,云南行省遣都事那海奉诏往谕,授馀为参政。冬十一月,云南行省奏:「国马每月上寅日给盐,饮之无病。因伯忽反,盐不给,马多死。」诏四川以盐给之。是年义卒,隆子光袭。义任职一年。
|
|-
|}
===Duan Guang 《段光 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Guang 《段光 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段光,元顺帝妥权帖睦尔癸酉元统元年袭,朝命止授为承务郞、蒙化州知州。番兵作乱,孟州判官李生等守白崖,値高蓬新败番兵,乗胜长驱破河尾关。光率兵大败之,斩馘无算,河水尽赤,为之不流,得战马甲仗数千。光赋凯旋诗云:「雨锁金门百里城,神州花木管弦声。齐天苍岳参云峻,界地楡河射月明。梵宇三千朝呗朗,招提八百夜香淸。恒沙善果心无异,何患愚夷治不平。」元统二年,光以先与梁王把匝剌瓦尔密孛罗因分域构隙,至是遣张希矫、杨生、张连等发兵攻梁王,不胜,士卒多死,希矫等遁归。顺帝至元元年,梁王侵大理,光自督兵与战于昆弥山卽今大理府赵州南之定西岭,梁王大败。凯还,侍翰杨天甫作『长寿仙曲』上光云:「蒙氏钟王气,驾驭万乗唐。南龙光对北金锁,东洱水朝西点苍,四面固金汤。江绿春杨柳,岸淸古雪霜。屏障龙吟梅破王,竹林鹤立菊舒黄,四季景如妆。此生诚庆幸,有眼睹明王。」光大喜,设宴谢之。顺帝辛巳至正元年,玉案山生水小赤犬,群走如飞。段雄正曰:「此天狗星所化,大兵压境之兆。」经二年方绝。又下铁雨山石,民屋倶穿,人値之多击死。梁王刺杀段氏臣高蓬。先是,光令蓬督兵罗那关,梁王使人暗招之,蓬不从,答之诗云:「寄语下番梁王翁,檄书何苦招高蓬,身为五岳嵩山主,智过六丁缩地公,铁甲铁盔持铁槊,花鞍花索驭花骢,但挥眼前黄石阵,孤云击破几千重。」梁王忌之,乃重贿蓬庖人,刺杀之。顺帝甲申至正四年,光卒,弟功袭。光任职十二年。
|
|-
|}
===Duan Gong 《段功 光之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Gong 《段功 光之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段功,元顺帝乙酉至正五年袭,朝命止授为承务郞、蒙化州知州。至正六年,木邦夷思可叛。元命河南参政贾敦熈督师会云南路兵讨之,以功为前锋,屡战克捷。叙功升功为大理总管,寻升参政。至正癸巳十三年,红巾贼流入建昌,旁掠云南边地。阿次失里讨平之。至正十五年三月,元窜太师脱脱于云南。中书右丞哈麻、御史袁赛因不花等陷之也。十二月,左丞相哈麻矫诏杀脱脱于阿轻乞之地,时年四十二岁,天下寃之,两日相荡。是年,梁王宫中有怪。左右启王曰:「盘龙寺僧莲峰,能驱邪。」王礼请至,行法,怪息。王喜,留宫中供养,至夜密问之曰:「今中原纷乱,后事如何?」僧曰:「二十年后祚尽矣。」至期明师果南下。至正十六年,黑井有毒龙,兴水溢井,损民居。莲峰建寺,书铁符沉井中,害息。又宁州有虎咥人,莲峰洒净水驱虎远去,明日虎果去。七月,元以四川廉访使蒲机云为云南诸路廉访使。至正癸卯二十三年三月,红巾贼明玉珍率其党李芝麻同弟明二等将兵三万攻云南。入金马山,梁王把匝剌瓦尔密奔楚雄。四月,梁王发中庆,至石碑村,红巾入城,梁王闻报,感而自咏云:「野无靑草有黄尘,道侧仍多战死人。触目伤心无限事,鸡山还似旧时春。」随命陜西参政车力帖木儿拒之,擒明二。时四方乘机窃发,群盗满山,功乃谋于外外杨智,字渊海者,同稽于卜,卜告吉。又得子宗、子秀兵至,功遂从梁王进兵,吕合败红巾于关滩江。红巾收合馀衂再战,杀段氏之骁将铁万户,又有江心庄人杨胜力战死。梁王为文祭之曰:「生于江心,为我门户,我旧不识,用备其数,能卫社稷,春秋与之,惟忠惟烈,尔则处之,噫! 义重于生,生必有死,丈夫之事,识者有几。愿气作山河,魂归苍洱,英杰复生,以保我之昆裔。」祭毕而哭,一军感泣。是夜,红巾屯古田寺,功令人焚寺,红巾乱,以铁骑捣之,死者大半,追至回蹬关,又大破之。副将谢得攻安宁,功力战杀二千人,谢得奔中庆。于夜功谍者拾得一书,乃明玉珍母寄珍书云:「自尔去后,老母平安,征云南务要得之。兵粮不足,随后发来,不可轻回。」功阅书,令杨智易其辞曰:「自尔去后,老母不安,臣下乱法。又闻中国人马入界,非止一处。尔须急回,迟则难保。大夏天统元年,太后平安书。」遂募亡命者赍书往。有打金箔人陈惠愿行,惟虑老母在。功许养其母,惠遂往。玉珍得书,挥之去令回报,迨夜,玉珍旋军。功追摄至七星关,大破其众。梁王回中庆,奏升功为云南行省平章,以主阿妻之。一日主与宴酣,歌『金指环』云:「将星挺生扶寳阙,寳阙金枝接玉叶。灵辉彻南北东西,皓皓中天光映月。玉文金印大如斗,犹唐贵主结配偶。父王永寿同碧鸡,豪杰长作擎天手。」功久居梁王府,嫡妻高夫人在大理作词寄功云:「风卷残云,九霄冉冉逐。龙池无偶,水云一片绿。寂寞倚帏屏,春雨纷纷促。蜀锦半间,鸳鸯独自宿,珊瑚枕冷,泪滴针穿目,好难禁。将军一去无度,身与影立,影与身独,盼将军只恐乐极生悲寃鬼哭。」至正二十四年春,功还大理,至洱海金鸡庙,夫人遣人适来报生子,功喜,作歌曰:「去时野火通山赤,凯歌回奏梁王怿。自冬抵此又阳春,时物变迁今又昔。归来草色绿无数,桃花正秾柳苞絮。杜鹃啼处日如年,声声只促人归去。」至正二十五年,功思新婚,欲往梁王所。员外杨智于壁间题诗留功,张希矫亦上书留行。功曰:「寳剑岂埋荒土物耶!」矫苦留不已,功怒流矫于顺州。顺州,前明属鹤庆府,今裁在永北厅城西一百二十里。唐时地名牛睒。遂与夫人别,倍道至中庆。梁王疑之,私议曰:「平章此来,得无有吞金马咽碧鸡之心。」其下有姤功者复谗构之。王与阿谋欲以孔雀胆毒功。私泄之,愿与西归。(今)〔令〕功周防,功不信。是年滇大旱,人言定远有禅僧连精,通瑜伽秘密敎,能降龙役鬼。启梁王,王遣人迎至,僧设坛祈雨,咒毕,钵中出一小蛇,遂大雨。王大喜,酬以金帛,辞,役鬼荷担,行空而去。顺帝丙午至正二十六年春,中原盗蠭起,临安廉访使支渭兴三恳休,梁王不允,遣使金闾慰,赐羔羊。渭兴自咏曰:「年高才薄忝淸流,欲挂朝冠不自由。且喜壮怀无诉谍,从敎行道有鸣驺。故园花木无由见,何日干戈定得休。九十春光还欲暮,放怀聊与醉金瓯。」重午节,梁王宫门外观射柳,随侍文武赐宴,支渭兴诗贺曰:「平地如席草如茵,少年将军酒半醺。朱鬣马穿人影过,绿杨枝逐箭锋分。旌旗色映宫前瓦,鼓角声飘海上云。何日鲸鲵倶授首,普天偃武共修文。」七月,梁王偕功东寺讲经,至通济桥,功马逸,王乘机令番将掖杀之。阿闻之恸哭曰:「昨灯下吾犹言,云南施宗施秀二人以胭花殡命,奈何不信。今果然。」命侍女锦被包之,以王礼敛送归大理。诗挽之云:「吾家住在雁门深,一片间云到滇海。心悬明月照靑天,靑天不语今三岁。黄嵩历乱苍山秋,误我一生踏里彩。华言锦被也。吐噜吐噜段阿奴,施宗施秀同奴歹。云片波潾不见人,押不芦花华言起死灵草也。颜色改。肉屏华言骆驼也。独坐细思量,西山铁立华言松林也。风潇洒。」功丧旣行,阿遂不食死,以殉焉。其家臣员外杨智渊海闻而亦死之。智临死诗曰:「半战功名百战身,不堪今日总红尘。死生自古皆由命,祸福于今岂怨人。蝴蝶梦残滇海月,杜鹃啼破点苍春。哀怜永诀云南土,絮酒还敎洒泪频。」明洪武间都督冯诚经功墓,亦歩原韵题诗,吊之曰:「田横五百剑孤身,转眼关山半委尘。北阙玉楼召客记,南滇粉壁说诗人。苍山夜黑云遮月,金马天寒鸟怨春。共惜平章迷绣幕,至今愁听水声频。」功死,长子宝自称平章,立于大理。功任蜀二十二年。
|
|-
|}
===Duan Bao《段宝 功之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Bao《段宝 功之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段宝,于元顺帝丙午至正二十六年八月,因父功为梁王所害,遂自称平章,立于大理。是年,梁王开科取士,以支渭兴主试事。梁王复听谗,诛锄段族。梁段旣结仇,数数构兵。鹤庆知事杨升调和二家,自金鸡庙分界,南属梁王,北属段氏,力劝息兵,百姓稍宁。至正丁未二十七年四月,梁王生日,群臣称贺。王宴于昆明池上,省宪官献诗曰:「贤君添算宴嘉宾,幄殿先施巨海滨。万里晴天开绵绣,一川芳草踏麒麟。笙歌暖送金杯酒,铠仗寛围玉佩人。醉饱百官咸稽首,愿王高寿过千春。」中庆路土主庙圮,梁王重修,立牌纪事。先是,至正十二年庙为耆民杨光所修。至二十三年红巾贼入滇,陷中庆,毁民居,庙亦被焚。梁王欲并段氏,遣人剌宝,弗得。又令平章矢剌七攻大理,皆不克。乃遣使通好,奏授宝为云南右丞,以和之。红巾复入滇,梁王命叔铁木的罕赍敕借兵于宝,宝答书曰:「杀虎母还喂虎子,分狙栗自诈狙,公假途灭虢,献璧吞虞,金印玉书,设钓鱼之香饵,绣阁艳女,备揜雉之网罗。况平章已死,只遗一奴一獒,奴可配阿妃,獒可配华黎氏。二事许诺,当借大兵。不然,金马山换作点苍山,昆明海改作西洱海,兵来矣。」书后又附一诗云:「烽火狼烟信不符,骊山一举任枝梧。平章枉挂红罗帐,员外空题粉壁图。凤去岐山祥兆隐,麟戕大野瑞光无。自从界限鸿沟后,成败兴亡不属吾。」梁王读而深恨之。是年,明太祖取燕京,元顺帝北遁,元亡。明太祖戊申洪武元年,梁王复通好于宝,辞甚卑逊,宝许之和。时有蛮舍兴者,自元江攻入鄯阐,王惧欲出奔,宝以唇齿之故率兵救之,击走舍兴。王德宝,升为武定公。敕曰:「段宝归附而来,忠勤懋著,父子秉忠,征讨克捷,乃于戎马倥偬之中,干戈纷扰之际,不第远朝且兼平乱。宜示至优之数,以彰匡济之勋,兹特升宝为武定公,仍总管大理军民府。尔其不负初心,永保世爵,以光大尔赤城于无穷。宣光元年敕。」云云。宣光乃故元顺帝太子立于应昌年号也。太祖洪武辛亥四年,宝降于太祖,上奏云:「臣闻有天下者为天下之主,有列土者为列土之君。卑臣宝虽隔万里之遥,每切中原之向。大理有二帝三皇之后,一方九姓之传,汉晋六朝以来,大蒙国受封于前唐,残唐五季而终,二理国继守于两宋,臣祖思平等恪共藩复,贡礼屡修于中土,华风远畅于边隅。迨至故元,不尚仁义,专事暴残。顺帝已遁北方,梁王犹祸鄯阐。迩闻明主奉天承运,御极南京,中原太平,边徼宁乂。意者中国有圣人,履尭舜之正统,陋汉唐之浅图,天时人事然也。或命臣依汉唐故例,岁贡天朝,或仿元代职名,俾守旧土。庶深谷回阳,幽扄照日,八方浴德,六合同春,垂怜边境,救恤一方。欲修进贡,恐触明威,合待事体之定,专候圣旨之颁,谨此。」专差段贞、王伯鹘驰奏以闻。太祖诏谕答之。洪武五年,宝女兄名羌娜,小名僧奴,又名宝姑者,适建昌土官阿黎。先是,羌娜绣一旗,至是将嫁,以旗付宝嘱曰:「母常语我云尔父为梁王所害,必当报仇,惟望尔辈长大。我闻母言,故绣此旗已五年矣!今我嫁至夫家,收拾建昌、东川军马,飞报若到,女急来应,愼勿违焉。」临行,又以二诗别宝云:「珊瑚钩起出深闺,满目潸然泪湿衣。氷鉴银台前长大,金枝玉叶下芳菲。鸟飞兔走频来往,桂秀梅香不暂移。惆怅同胞未忍别,应知恨重点苍低。」「何彼秾兮花正红,香车独去洱河东。鸿飞雪岫难经目,风刺霜林易割胸。云白天高连水远,月新春叠与秋重。一作闺里绣旗寃父魄,天边提剑属儿曹。泪珠恰似通宵雨,千里关山几处逢。一作须知恨重苍山小,回首寒云千万重。」洪武辛酉十四年四月,国中巫女歌曰:「莫道君为山海主,山海笑谐谐。园中花谢千万朶,别有明主来。」数日,宝卒,子明袭。宝任职十四年。
|
|-
|}
===Duan Ming《段明 宝之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Ming《段明 宝之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段明,明太祖洪武辛酉十四年四月袭,梁王授明为宣慰使。九月,明太祖命颖川侯溥友德,列侯曹正、王弼、金朝兴,都督郭英、张铨等,率师三十万征云南。帝出饯于龙江。友德至湖广,分遣都督胡海洋、陈桓等领兵五万,由四川永宁趋乌撒。友德等率大军由辰沅趋贵州。进攻普定,擒土酋安瓒,诸苗蛮犵狫闻风迎降。十二月,溥友德等兵至普安,攻下之,进至曲靖。先是,梁王把匝剌瓦尔密遣其司徒平章达里麻将精兵十馀万屯曲靖,以拒明师。沐英曰:「彼谓我师疲于深入,未有虞心,乃可破也。」友德然之,遂倍道进师。将至白石江,忽大雾四塞,冲雾及江而上。顷之雾雾,则两军相望,达里麻见之大惊,以为神军飞至,拥军阵于南岸。沐英分遣一军,沂流潜渡,出其阵后,吹铜角,树旗帜,为疑兵山谷间。达里麻急撤阵后,军以御之,上军阵乱。友德等趣师济江,一涌而渡,旣渡,整列进战。敌众披靡,生擒达里麻,横尸十馀里,俘其众二万人,友德悉慰遣之。友德进击乌撒,分遣沐英等趣云南。梁王闻达里麻破,弃城走晋宁州,忽忽纳岩,寻入滇池岛中,先缢其妃,自饮药不死,投水死之。父老收塟云南城西三十里浄耳山,土人立庙妙音寺侧。后至嘉靖间,拆庙材修社学,乃因旧址为小寺祀之。云南右丞观音保以城降。英等入城,秋毫无犯。收梁王金印并符信图籍,安抚其民。友德亦自曲靖循格孤山而北,以应永宁之兵。时元右丞实卜闻胡海洋等进自永宁,乃聚兵赤水河,以拒之。海洋等造木筏,夜半济河,而友德亦至,实卜遁去。友德令将士于乌撒筑城,版锸方具。蛮众复合,斩首三千馀级,馀众溃散。遂城乌撒,得七星关,以通毕节。又克可渡河,于是东川、乌蒙、芒部诸蛮震惧,望风降附。先是,洪武壬子五年正月,帝遣翰林待制王禕、行参政吴云持诏谕云南梁王,令奉版图来归。梁王初不从,后有降意。至洪武六年十二月,会元太子爱猷识里达刺立于汉北,使侍郞脱脱征饷于云南,脱脱觇知梁王有二心,因以危言逼王,杀使臣以绝其念,王遂杀禕,父老收尸塟地藏寺北。吴云奉使时,会梁王遣铁知院等二十人使沙漠,为边将所获,帝乃释二十人,令与云倶行。至沙塘口,二十人谋曰:「吾等奉使不达,被执而还,罪必死。」乃说云令胡服编发,诈为元使。又逼令改制书,共给梁王。云不从,以死自誓,亦被害。梁王遣人收云骨,塟给孤独寺,及事闻,帝震怒,故有是役。按:王禕字子充,浙江金华府义乌县人。建文时赐谥文节,永乐登极,凡建文设施尽革,遂削禕谥。后至正统中,义乌县丞刘杰奏请,加奉使云南死节臣恤典,禕赐谥文忠。吴云字友云,江苏常州府宜兴县人。至弘治中,赠谥忠节,并祀云南,敕赐为二忠祠。是年冬十二月,明卒,叔世袭。明任职一年。
|
|-
|段世 宝之弟,明之叔
|
|-
| 段(氏)〔世〕,明太祖壬戌洪武十五年袭。二月,世闻鄯阐破,梁王已死,又以沐英等兵略寻甸、临安、澄江、元江、楚雄、洱海,次第皆下,进逼大理,乃遣使致书,请依唐宋故事,奉正朔为外臣。友德不听,答书谕令速降。凡三致书,世怒,遂遣都使张元亨、州判李洪赴军前下战书。畧云:「鄯阐危甚登天,大理险倍投海。英如汉武,昔战仅置益州;雄若胡元,设官止于中庆。取之易而守之难,莫若依吾请乞册封,定为进贡,始为良策。吾实武人,不通经史,前代得失则餍闻也。恭惟麾下振耀皇威,功不亚于孔明,才克比于方叔。涤山川之旧染,历代所未有也。况吾与尔旣无杀父之仇,又无财债之怨,无故交战,真乃不祥。尔屯威楚,彼处之民有何罪焉?若耗人之食,是绝其命;取人之财,是刳其心;摅人妻女,是乱人伦,则吾之应,不得已也。爰念尔等皆中国之人,其中岂无一二达士。得此何益?不得何损?西南之地,号为不毛,易动难安。今春气渐暄,烟瘴渐起,不须杀尔,四五月间,雨霖河泛,尔粮尽气敝,十散九死。形如鬼魅,色如黑漆,欲活不能,汝之进退狼狈矣。莫若乘此,天晴地乾,早寻活路。宁作中原鬼,莫作边地魂,尔宜图之。后理国段明顿首。」书后继一诗云:「长驱虎旅势威宣,深入不毛取暴残。汉武故营旗影灭,唐宗遗垒角声寒。方今天下平犹易,自古云南守独难。拟欲华夷归一统,经纶度量必须寛。」友德、英等览书大怒,拘其使。左副将军蓝玉等率师径进,兵至品甸,世恃田庵和尚有术,列兵五万扼下关。沐英自将攻之,不克。乃命王弼,率兵出洱水之东,趋上关,英以兵缀下关,为犄角势。别遣胡海洋将一军夜度,从石门间绕道出点苍山后,縁崖而上张旗帜。迟明,英先驱,渡河斩关而入,海洋之师亦从山而下,腹背夹攻。世众惊溃,拔其城,世就擒,并执明之二子苴仁、苴义,时二月二十三日也。于是沐英等分兵取鹤庆、丽江,破石门关,荡金齿,所有摩、和泥、车里、品缅等部相率归附。又略建昌,故元平章月普帖木儿降。闰二月,赐云南各土官冠带及诰敕,使任本州岛知州等官。四月,乌撒、东川、芒部诸蛮复叛,溥友德、沐英会兵进讨,斩首三万馀级,诸蛮来降,云南悉平。以乌撒、乌蒙、芒部地近四川,分隶之。九月,土官杨苴等叛,紏众至二十万,攻云南城。都督谢熊、指挥冯诚婴城固守。沐英自乌撒移兵讨之,斩首六万馀级,擒四千馀人,诸部悉定。洪武癸亥十六年二月,故元右丞普颜笃同土酋高大一作天惠叛,据佛光砦。蔚按:佛光砦卽佛光山,山半有洞,可容万人。又名一女关。昔诸葛武侯曾擒孟获于此。在大理府浪穹县东二十里。也先不花叛,据邓川州。溥友德率郭英平之。又定蒙化州,过金沙江,攻北胜府,今永北厅。擒故元平章隔生。于是丽江府、拒津等州皆平,前后斩首一万三千级,蛮民降者四十万户。帝遣耿炳文谕溥友德、蓝玉等班师,沐英留镇云南,别命列侯王志、仇成、张龙分赴寻甸各府,缮城池,立屯堡,安辑人民。是年,械送世并明之二子苴仁、苴义赴京。世临行,以诗别故人杨朝彦云:「雄兵一日破重关,父子流离瞬息间。别后欲知相忆处,锦江流水彩潺潺。」洪武甲子十七年四月,溥友德等班师至京,论平云南功,进封溥友德为颖国公,胡海洋东川侯,陈桓普定侯,张翼鹤庆侯,蓝玉、仇成、王弼、张龙等并赐铁券,子孙世袭。吴复、金朝兴先卒,倶授世袭侯爵,铁券加禄并同。馀升职赐金帛有差。以世、苴仁、苴义见帝,帝诛其头目,谕苴仁、苴义及世曰:「尔祖宝,昔年曾有降表,朕不忍废。」乃授苴仁官雁门卫镇抚,赐名归仁,苴义官武昌卫镇抚,赐名归义。世任职一年,段氏世土,至此而绝。帝又封其族段保为云龙州土知州。
|
|-
|按:段氏袭总管十二世,起南宋理宗辛酉景定二年,为蒙古世祖中统二年,讫明太祖壬戌洪武十五年,共一百二十二年。
|
|-
|}
==Notable Officials from Nanzhao through the Generations《南诏历代名宦》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Notable Officials from Nanzhao through the Generations《南诏历代名宦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|张元,汉元帝时守。 张翕,东汉明帝时守。 郑纯,同时。 王追,东汉顺帝时守。 王伉,后汉时永昌郡丞。 吕凯,同时永昌郡功曹。 前有文齐、吴霸、陈立,后有张亮、刘宠、犍为费诗,巴东马忠皆著勋绩。 李毅,晋惠帝光煕元年为宁州刺史,政治明达,五苓夷反时病卒,其女秀有父才,领州事。至怀帝时赠少府谥威侯。 王逊东,晋明帝大宁元年为晋宁守,华夷畏服。夷叛,死之。州人以中子坚领州事,官至平西安南将军。
|
|-
|汉盛览,字长通,叶楡今大理府太和县。人,受学司马相如,著赋心四卷。同时叶楡张叔,天资奇颖,书过目成诵。俗不知学,叔每病之。闻司马相如至若水,蔚按:『水经注』:若水南经云南郡之遂久县,县废,在今大理府宾川州城东北一百里,古称白门,置于汉时,今为金沙江巡检司地。遂负笈往从之,受经归敎乡人。 隗叔通,叶楡人,性至孝,母好饮江水,通日入江取水,维艰。滩水忽出平石,涉取甚便,人谓之孝子石。 东汉许叔,一作叔重。昆明人,明帝时入中国,受五经归,为本郡敎授。 尹珍,字道真,平彝人,桓帝时入中国,负笈从许愼受经学,还敎乡人。 唐尹仇寛,叶楡人,德宗贞元间为蒙氏淸平官,入朝陈地图,贡方物,唐拜为左散骑常侍,封高溪郡侯。 张志成,昆明人,文宗太和间入蜀,学王羲之草书,归敎国人。 元王升,昆明人,曲靖宣慰副使学政名时。 段文瑞,澄江人,读书尽孝,诏旌其门,仕至临安总管。 杨惠,楚雄人,孝母感神,诏旌其门。 张景云,昆明人,仕至临安经历。 陈宝,平彝人,仕至尚书。尹贡,南宁人,仕至尚书。以上三人皆德政名时。 元朝进士王楫、李近仁、段天祥、李天佑、李郁五人,皆三甲同进士出身。
|
|-
|}
==Ethnic Groups of Nanzhao==
===Baimin《白民》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baimin《白民》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有阿白、白儿子、民家等名。白国之后,卽滇中之土著。妇女出门,携伞障面,谓之避嫌。宴客,切肉拌蒜,名曰食生。馀同汉人。女镶边衣,以银花银吊为饰。
|There is the '''Ā''' '''Bái (阿白)''', '''Bái Erzǐ''' ('''白儿子'''), '''Mínjiā''' ('''民家''') and other names. The descendants of the '''Bái Kingdom''' are precisely the indigenous peoples of Central Yunnan. [When] women go out, they bring an umbrella to block their faces, this is called '''Bìxián''' ('''避嫌; avoiding suspicion'''). [When] hosting a banquet, they cut meat and garlic, this is called '''Shíshēng''' ('''食生; eating raw'''). The rest are similar to Han people. Women wear embroidered clothes, they use silver flowers and silver hangings as decoration.
|-
|}
===Pu Ren《蒲人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽古百濮,周书所谓微卢彭濮也,后讹为蒲。质黑,鸟音。男子淸布褁头,衣套头衣,膝系黑滕;妇人挽发为髻,脑后戴靑绿磁珠,花布围腰,短裙,系海十数围。带刀弩长牌,不畏深渊,或浮以渡。婚娶长幼跳蹈,吹芦笙为孔雀舞,婿家立标竿,上悬彩绣荷包,中贮五谷银钱等者,两家男妇大小争缘取之,以得者为胜。又有野蒲、普蛮、朴子蛮等类,性尤凶悍,男子以布二幅结于左胁,另用布一幅合缝挂身;以红布搭右肩蔽腰以下。今顺宁府多此种。
|Anciently this was the '''Baipu (百濮)''', the '''Book of Zhou (周書)''' mentions the '''Wēi''' '''(微), Lú''' '''(卢),''' '''Péng''' '''(彭)''' and '''Pú''' '''(濮)'''. Later errors [turned it] into '''Pú (蒲)'''. By nature they are black and their language [resembles] birds. Men wrap clean/clear<ref>Likely referring to white cloth.</ref> cloth on their head and dress in tunic garments that are put over the head. They bind their knees with black rattan. Women roll up [their] hair as a topknot. At the back of the head, they wear clear blue-green porcelain beads. Printed cloth encircles the waist; they wear short skirts, connecting abundantly ten [or more] encirclements. They carry knives, bows and long shields. They are unafraid of deep abysses perhap even floating across it. At wedding ceremonies old and young alike jump and stamp, they play the reed pipe for the '''peacock dance'''. At the bridegroom's house they erect a pole, on it a bright embroidered purse is hung. Inside it stores the five crops, silver coins and other things. The two families of men and women, old and young, vie to fetch it. Once obtained, the person is victorious. Once more, there is the '''Wild Pú (野蒲), Pŭ mán (普蛮)''', '''Pú Zǐ mán (朴子蛮)''' and other types. Their nature is outstandingly fierce. The men tie two lengths of cloth at the left flank, [and] another length of cloth is stitched together and hangs off the body. There is red cloth to hang on the right shoulder to cover the body below the waist. Nowadays '''Shùnníng''' '''(顺宁)''' prefecture has many people of this type.<ref>Modern Day Fengqing County in Southwestern Yunnan. 鳳慶縣. Historically close to the Wa peoples and Austroasiatic population.</ref>
|-
|}
===Bo Ren《僰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名百夷,又名摆夷。性耐暑热,居多在棘下。本澜沧江外夷人。有水旱二种:水僰夷近水好浴,剃后发,蓄前发,盘髻如瓢,故又名瓢头僰夷;旱僰夷山居耕猎,又名汉僰夷。男靑布褁头,簪花;妇女不施胭粉,自然白晳,盘发辫,红绿包头,饰以五彩线须,衣五色衣,桶裙绣边。其俗贱女贵男,头目妻数百人,庶民亦数十,耕织贸易,皆妇人任之。凡婚娶,男女相悦而议聘,一成匹配,不肃而严。如夫妇不睦,听夫付之一物为凭,然后改适。有邪术,能使男子千里不忘,其法不外传也。
|
|-
|}
===Lahu《猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu《猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|爨蛮卢鹿之裔,猓猡其讹音也。以五月为春。信鬼尚巫,巫有大觋皤,拜禡白马之号。卜用雄鸡两髀骨,骨有细窍,刺以竹签,视多寡向背之势以定吉凶。其部长妻曰耐得,勇士曰苴可。每岁六月廿四日,名火把节,燃松炬,照村砦田庐。男椎髻镊须,耳环佩刀;妇披发短衣,桶裙,披羊皮。
|
|-
|}
===Bai Lahu《白猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Bai Lahu《白猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名撒马都,卽西爨白蛮。知读书,能文字,舌音淸便,多冒汉人。见尊长披羊皮,故嫁女授羊皮一帐。短衣革履,胸挂花包。妇人花衣桶裙,靑布蒙头,饰以海贝、锡铃。
|
|-
|}
===Hei Lahu《黑猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽东爨乌蛮。其祝以铃,其占以草。男挽发贯耳,披毡佩刀;妇人贵者衣套头衣,方领如井字,无襟带,自头罩下,长曳地尺许,披黑羊皮,饰以铃索。
|
|-
|}
===Qian Lahu《乾猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以山居得名。每食插筯饭中,仰天跪拜为报本。好勇喜斗,杀人偿以财。服饰同黑猓猡,妇人项挂一羊毛筐,行住纽毛为绵。以织毯。
|
|-
|}
===Hai Lahu《海猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hai Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名坝猓猡,以种水田得名。盖土人以水为海,以平田为坝也。居家俭朴,知读书。服饰如汉人,妇如白猓猡。
|
|-
|}
===Miao Lahu《妙猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Miao Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多土官之裔,有营长、官奴、火头等称。男挽发贯耳;妇人桶裙无裤,穿套头衣,前不揜胫,后长曳地,衣边火焰,弯曲如旗尾。居茅舍,中堂作火炉,父子妇姑,围炉而卧。又有一种,戴鹊帽者,名猓落蛮;白布褁胫者,曰白脚猓猡。
|
|-
|}
===Ge Lahu《葛猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Ge Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名大头猓猡。男以靑布丈许裹发为大头,女戴布花线箍。婚嫁步行,妇避伯,不避翁。亦有顶盔擐甲,乘马佩刀,以劫抢为生者。然居家尊卑有序,会食以跪为敬。
|
|-
|}
===Azhela Lahu《阿者猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《阿者猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆耳环手钏,衣短裤,披羊皮。婚娶,婿亲负女以归。
|Men and women each wear earrings and hand bracelets. Their clothes are short pants with sheepskin drapes. At weedings, the bridegroom's realtives carry the women back.
|-
|}
===Awu Lahu《阿乌猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Awu Lahu《阿乌猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|性狡好獵。多蓄牛羊。每砦設官房一所,婚嫁並集其中。男短衣,女長衣,倶裹頭,貫耳,出入帶刀弩。
|They are cunning in nature and fond of hunting. They raise many cattle and sheep. Every stockaded settlement has an official building for marriages to be held within. Men's clothes are short, women's clothes are long. Both wrap their heads, pierce their ears. When going out, they carry knives and bows.
|-
|}
===Luwu Lahu《鲁屋猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|耕种射猎为生。男短衣木屐,女长裙跣足。
|They make a living by cultivation, shooting and hunting. Men wear short garments and wooden clogs, women wear long skirts and tread barefoot.
|-
|}
===Sami Lahu《撒米猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Sami Lahu《撒米猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居山,耕瘠负薪,近水,捕鱼时给。面多黧黑,男挽发如鬏,毛褐被毡,佩短刀。女披靑布单,短裙,长裤。又有鲁兀、老乌、撒完、洒泥、阿蝎、阿系等类,衣饰风俗畧同。
|
|-
|}
===Liaowu Lahu《老牾猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Liaowu Lahu《老牾猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽罗婺,又名罗午、罗武。男披发贯耳,披毡佩刀,穿火草布衣;女辫髪垂肩,饰以海贝砗磲,穿火草布裙。无床帏被褥,以松毛籍地而卧。
|
|-
|}
===Lahu Hei《猓黑 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu Hei《猓黑 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蒲蛮别种。择丛篁深处,结茅而居。蜂虫鼠蛤,无所不食,以荞稗为上品。又有大猓黑、小猓黑,岩居野处,猿猱同类。
|
|-
|}
===Putu《普特》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Putu《普特》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以渔为业,舟不盈丈,而炊爨、牲畜、资生之具,无不咸备。泅水出没,口衔手捉,皆巨鱼也。今云南府省城西碧鸡山下,多有此种。
|
|-
|}
===Diyang Gui《地羊鬼 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Diyang Gui《地羊鬼 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦僰人类也。短发黄睛,奸狡嗜利。与人相仇,能行妖术,以木石易人心肾,或以一帚系衣后,变形为象、马、猪、羊、猫、犬等物。稍畏惧之,卽为所魅,入人腹中,食五脏,或潜至人家,偷窃财物,食婴儿。知者一手捉之,一手痛殴,必复为人,夺其帚縻之,彼必以家赀之半匄脱。或有娶其女者,夫每出,必问归期,卽饵以毒,如期而归,更以药觧,否则毒发而死。交易失信,及私窥其要女者,必毒之。此种元江州为甚。
|
|-
|}
===Wo Ni《窝泥》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Wo Ni《窝泥》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有和泥、(干)〔斡〕泥、哈泥、路弼等名。黑白两种,风俗畧同。男戴麦杆帽,穿火草布衣,耳环,跣足;妇女辫发数绺,海贝、杂珠,盘旋为髻,套衣桶裙。善养猪,其猪小耳短身,长不过三十筋,肉肥腯,名窝泥猪。婚用媒妁,路遇野兽,则返而他求。嫁则以红藤束膝为识。勤生啬用,每积贝一百二十索为一窖,临死嘱其子曰:「积贝若干,汝取某窖,馀留我为来生用。」死则以雌雄鸡各一殉。又有一种名糯比,与此同,其生者名哥泥,亦名瓦黑,好勇尚斗,能咒人使病。
|
|-
|}
===Achang《阿昌》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Achang《阿昌》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名峨昌。男短衣披布单,女长衣无裤,腰缠红藤。占用竹三十三枝,畧如筮仪。嗜酒,觅禽兽虫豸生啖之。旧俗兄死弟妻嫂,后有罗扳砦百夫长早正死,其妻方艾自誓不失节,饿而死,其风遂革。又有小阿昌,其俗畧同。
|
|-
|}
===Acheng《阿成》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Acheng《阿成》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男短衣,女桶裙,以树皮代瓦。婚用牛羊,至女家以水泼女足为定。
|
|-
|}
===Biju《比苴》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Biju《比苴》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|僰夷别种。男耳环革屐,女白帨束发,缠叠如仰螺。构楼而居近水,极寒犹浴。丧尚绯,夫死,妻不再嫁,名曰鬼妻。又有白布缠足者,名白脚僰夷,亦名孔荅;茜齿,文身,髠者,名光头僰夷;额上黥刺月牙纹,盖习车里之俗,所谓雕题也。
|
|-
|}
===Heipu《黑舗 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heipu《黑舗 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名黑普,俗同窝泥,形容黧黑,怕见汉人。畜山羊,作竹器,一切床几櫈杌,备极精巧。
|
|-
|}
===Heiqian Yi《黑乾夷 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heiqian Yi《黑乾夷 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男椎髻麻衣,耳环垂肩;女以毛褐细带,编如筛罩,首饰以海贝、砗磲,衣领亦然。婚配,男吹芦笙,女弹口琴,唱和调悦,先野合,后媒妁。
|
|-
|}
===Shansu《山苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Shansu《山苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男披发跣足,女椎髻蒙头。语似鸟音,形如猿猴。潜居深山,种荞、麻,或工或猎,夷中之最苦者。
|
|-
|}
===Chusu《车苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Chusu《车苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名扯苏,傍岩临水。男短衣皮履,女长裙无裤。种荞稗,绩线为业,以羊毛占(睛)〔晴〕雨。
|
|-
|}
===Laji《喇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Laji《喇鸡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名喇记。黑布帽白衫。好楼居,孟春作土主会,客至,掘鼠及虾蟆为敬。其在交趾者,男善枪,女善弩,多充交兵。又有白喇鸡,男女倶穿五色氆氇,食山虫、水蛇等物。
|
|-
|}
===Lawu《喇五 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Lawu《喇五 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰喇乌,又曰喇鲁。男如摆夷,女如窝泥,构楼临水而居。上人下畜,名曰掌房。其在腾越州者,食巨蟒、毒虫,或取蜂糟食之。
|
|-
|}
===Manla《獛喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Manla《獛喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男插鸡毛,女裹首巾,皆披羊皮,不浣濯。婚配先野合。每采蒙肚花蒙肚花树皮如藓,能毒人。生景东厅,今不产矣。欲人醉死则醉采,欲人狂死则狂采,以毒人。又一种在王弄山者,名马喇
|
|-
|}
===Hala《哈喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Hala《哈喇》
|-
| colspan="2" |'''Research Commentary'''<br> This is likely one of the autonyms for the Wa people transcribed by the Chinese who normally did not standardize it between 哈喇 (Hālā), 哈瓦 (Hāwǎ), or 嘎剌 (Gālǎ).<br>'''Supporting Primary Sources:'''
{| class="mw-collapsible mw-collapsed" style="width:100%; border-collapse:collapse; background:transparent;"
|-
! style="text-align:center; cursor:pointer;" | [Show/Hide Source Commentaries]
|-
| class="mw-collapsible-content" |
{| class="wikitable" style="width:100%; text-align:left; margin:0;"
|-
! scope="col" style="background:#f2f2f2;" | Source 1: Baiyizhuan
|-
|
The Hala《哈喇》have been mentioned in the [[Wikibooks|Baiyizhuan]]. {{quote|text='''Hālà''' ('''哈剌'''), men and women are [both] black, truly black. Men use printed cloth<ref>g</ref> for covering themselves, also which the One Hundred bararians effectively manufacture; married women have top knots behind [their head]. It is tied at the back of their neck with various pearls and beads. '''Suō luó''' ('''娑罗''')<ref>'''Sarong''' today, however this appears to be a complex term with many copyediting issues historically, Brahmin drapes, Suoluolong, eventually describing a type of silk-cottob robe made from plant materials.</ref> are draped around their bodies as clothes, horizontally it connected at the waist and lower back as a skirt. ('''Suō luóbù pī''' ('''娑罗布披''') namely is the Chinese Cotton Tree (Bombax Ceiba) cloth, strong and thick, possibly weaved as blue, red patterns.) Yet it encircles black rattan several hundred times, wrapped at the waist and lower back, it wraps around [their leg] to be used as a blue printed cloth [as they're] barefoot.
([Used amongst the] Pú mán (蒲蠻), āchāng (阿昌), shì jiàn (事見)<ref>Only said once in the document and not obvious to allusions elsewhere. </ref>; [according to the] The Yunnan Gazeteer<ref>Written by Fan Chuo of the 9th century, also known as 蛮书 (Barbarian Document)</ref>.)}}
|-
! scope="col" style="background:#f2f2f2;" | Source 2: Dian Lue 《滇略》
|-
|
The Hala《(哈喇) are listed among the list of indigenous groups of the Yunnan border region in Volume 9 (卷九). In this text the group is written in with the Gula (古剌){{quote|text=「其類有小伯、夷大伯、夷蒲人、阿昌漂人、'''古刺哈喇''''、緬人、結𣆟<!--Jiexie continution, but this is 17th century -->、遮...」}}
|-
! scope="col" style="background:#f2f2f2;" | Source 3: Dushi Fangyu Jiyao
|-
|
Hala is listed as bordering the Tai polity of Möng Yang. {{quote|text=「戛里。在司西南,孟養別部也。又有'''哈喇杜諸蠻,皆近孟養'''、緬甸之境。」<br>'''English''': Kalay. Located to the Southwest Pacification Commission, it is a district of Möng Yang. There are also Hala Barbarian tribes, who all are close to Möng Yang, at the border of Myanmar.}}
|}
|}
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女黑色,不知盥栉。妇女红黑藤缠腰数十围,产子以竹兜盛之,负于肩。又有古喇、杜喇,色尤甚,言语不通,略似人形而已。
|Men and women are black in complexion and do not know how to wash or comb. Women use red-black rattan to bind around their waist 10 or so times. When they give birth, the child goes in a bamboo cradle carried on their shoulders. There are the <strong>Gǔlǎ (古喇)</strong>、<strong>Dùlǎ (杜喇)</strong>, who have complexions outstandingly dark. Their speech is unintelligible [to the author], they only barely appear human in appearance.
|-
|}
===Jiala《戞喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Jiala《戞喇》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|悍好猎,居山巅,户不正出,迎山开门,不留馀粟。
|They fiercely enjoy hunting and reside on mountain summits. Their doors do not face directly outward but face to face open towards the mountains. They do not retain any surplus grain.
|-
|}
===Kala《卡喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kala《卡喇
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰卡腊,男穿耳挽发,佩短刀;女短衣无裤,胫著彩色折裤。聚族而居,耕种鬻薪。
|Also known as '''Kǎlà (卡腊)''', men pierce their ears, tie their hair and wear short knives. Women wear short clothes without trousers and brightly coloured, multi-coloured folded leggings on their shins. They reside in clan communities, cultivating and selling firewood.
|-
|}
===Kasui《卡隋》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kasui《卡隋》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名卡高,性顽钝,喜歌舞。男女多野合。婚娶通媒妁之日,议聘金,多至数百。娶后子孙犹有代祖父偿聘金者。
|
|-
|}
===Kawa《卡瓦》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kawa《卡瓦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多在顺宁、永昌二郡,辣蒜江外。貌()〔丑〕性恶,猎人以祭。商贾出腾越州,入木邦者必经其地,呼为卡利瓦。有生熟二种,生者劫掠,熟者保路。
|
|-
|}
===Xifan《西番》===
{| class="wikitable" style="text-align:center; width:80%;"
|Xifan《西番》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽土番,亦名巴苴,居金沙江边。性悍戾,善弩,男女辫发百绺,不知栉沭。男以藤缠左肘,披琵琶毡,暑热不脱;女以海贝砗磲磁珠饰于项。又有野西番,更不可制。
|
|-
|}
===Guzong《古宗》===
{| class="wikitable" style="text-align:center; width:80%;"
|Guzong《古宗》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名狤猔,西番别种。皆辫发百绺,男戴红缨,穿氆氇,挂铜铃佩刀,女饰以珊瑚、银泡,披腊瓦被单,皆穿乌拉鞾。经年一栉,栉必牲祭。春夏种荞稗,秋冬赶牛马,取牛羊乳酥,调油茶而食,名曰ø。又有小古宗,喜猎饮酒,馀畧同。
|
|-
|}
===Kuceng《苦葱》===
{| class="wikitable" style="text-align:center; width:80%;"
|Kuceng《苦葱》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|面丑。男麻衣短裤,女短衣桶裙,亦有衣裤相连者。耕山采薬为生。所佩环手篐,自幼至老不释,死以殉。
|
|-
|}
===Mo《摩》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mo《摩》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|乌蛮别种。性湻朴,鸟音,男剃发戴帽,长领布衣;女高髻,或戴黑漆尖帽,短衣长裙。畜牛羊,产射香。同类仇杀,妇女登场一劝卽止。岁暮杀牛羊相邀,一客不至为耻。今有读书入泮者。
|
|-
|}
===Li《力》===
{| class="wikitable" style="text-align:center; width:80%;"
|Li《力》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽。衣麻,披毡,岩居穴处。利刀毒矢,刻不离身,登山捷若猿猱。以土和蜜充饥,得野兽卽生食。尤善弩,每令其妇负小木盾前行,自后射之,中盾而不伤妇,以此制服西番。野力披发插羽,尤悍。
|
|-
|}
===Zhe《遮》===
{| class="wikitable" style="text-align:center; width:80%;"
|Zhe《遮》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆穿耳,挽发。喜华彩衣,盘旋蔽体。每饮食必精洁。而长于弓弩,尤善鸟铳。
|
|-
|}
===Jiezi《羯子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|自孟养流入。环眼鸟队,散发,缠藤,耳带大环,首插鸡羽,无衣裤,腹下以麻布一幅围之。负弩佩刀,喊声如犬。又有结,耳带象牙大环,红布围头,衣半身衫,袒右臂,亦其类也。
|
|-
|}
===Muji《拇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦作。形丑恶,妇女尤甚。椎髻插羽,佩刀负弩。猎食猿狙。见人有蓄,思盗,先用鸡骨卜,吉则徃,否则止。
|
|-
|}
===Mocha《摩察》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mocha《摩察》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Manqie《嫚且》===
{| class="wikitable" style="text-align:center; width:80%;"
|Manqie《嫚且》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Local People《土人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Local People《土人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|(思)〔男〕絮袄佩刀弩,女披毡朿皮索,饥则紧缚之。婚姻以刀甲为聘,披发见舅姑。有争者告天,沸汤投物,以手捉之,曲则糜烂,直者无恙。
|
|-
|}
===Nong ren《侬人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nong ren《侬人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|侬智高部落之裔。男束发短衣,女短衣密扣,腰缠红裹肚。性狡,漆齿,出入佩刀,长技在铳。
|
|-
|}
===Sha ren《沙人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Sha ren《沙人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|越析夷也,又名蒙嶲。男辫发长衣,女以挑花白布蒙头,腰围红布。出入佩刀,耕田、射猎,所居掌房。丧服用红,祭肉弃不食。又有黑沙人,白沙人。聘用牛,旣婚之夕,男女不同室,及回女家,有娠方归。
|
|-
|}
===Luo ren《𤡑人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤡑人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男束发披毡,女短衣露腹,缠红藤,腰系沙罗布裙,上短下长,男女同耕。
|
|-
|}
===Cun ren《狆人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Cun ren《狆人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男缠头跣足,女靑布缠头,畧如僧帽,缀以海贝,彩布衣裙,著大尖鞋。构楼而居,甘犬嗜鼠。又有罗缅、麦岔、叠吗、喇毛等类,顽良不一,衣饰风俗同
|
|-
|}
===Nu ren《怒人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nu ren《怒人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居永昌怒江内外。其江深险,四序皆燠,赤地生烟。每二月瘴气腾空,两堤草头交结不开,名交头瘴。男子面多黄瘦,刚狠好杀猎,或采黄连为生,鲜及中寿。妇人披发红藤勒首。每年贡麂皮二十张、山驴皮十张、黄蜡八十筋、麻布三十庹,以代赋税。
|
|-
|}
===Luo ren《𤞰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤞰人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江府鹤庆州大雪山外。男女披发,树叶为衣,耳穿七孔,坠以木环。与怒人接壤,畏怒人,不敢越界。
|
|-
|}
===Wild people《野人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Wild people《野人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|永昌界外。居无室庐,宿于树巅。赤发黄睛,首戴骨圏,插雉羽,手足腹皆缠红藤,以幅布或树皮揜下体。勾刀大刃,捕禽兽蛇虫,生食之。逢人卽杀。
|
|-
|}
===Laodao《老挝》===
{| class="wikitable" style="text-align:center; width:80%;"
|Laodao《老挝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南掌国夷类。戴藤篾黑漆帽,宽二尺许,短衣无裤,用杂色布一疋,从膝下兜绕,围结胸前,名打抄子。妇女耳贯大黑漆圏,塞以野花。
|
|-
|}
===Liemi《列密》===
{| class="wikitable" style="text-align:center; width:80%;"
|Liemi《列密
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽利米。刀耕火种,精射猎,得鼠雀生啖之。男篾帽皂衣,女辫发赤足。出外披花布,以蔽其身。
|
|-
|}
===Lama《喇嘛》===
{| class="wikitable" style="text-align:center; width:80%;"
|Lama《喇嘛》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江、鹤庆多有之。来自西藏,招本境摩为徒。有红黄二敎,红弱黄强。毡帽褊衫,各如其色。
|
|-
|}
===Miaozhi《苗子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|三苗之后,有九种,黔省最多,流入滇中者,惟仲家花苗而已。束发耳环,未婚者缚楮皮于额,或插鸡毛。女布冠套头衣,桶裙,皆用五彩桃花布为之。每岁孟春跳月,男吹芦笙,女振铃唱和,并肩舞蹈,终日不倦。或以彩为球,视所欢者掷之,暮则同归,比晓乃散,然后议婚。节序击铜鼓,吹呐叭,聚赛神,书契惟数目字,及六十花甲子同,馀不同。
|
|-
|}
===Tuliao《土獠》===
{| class="wikitable" style="text-align:center; width:80%;"
|Tuliao《土獠
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其属本在黔、蜀、粤西之交,流入滇中。男首裹靑布,白衣领缀红布一方,妇人冠红巾,衣花绣。性粗桀,好蛊魔之术,其虫夜飞如星,光芒摇曳,射入窓棂,触者病。
|
|-
|}
===Jiaoren《交人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiaoren《交人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|安南国之类。男箬笠蕉扇,衣裳楚楚;女面貌颇雅,手贯牙钏,长衣长裙,以红帕蒙头,皆辫发靸鞋。读诗书习礼,仪婚丧之事,倶仿中国。
|
|-
|}
===Burmese people《缅人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|缅甸国流入者。有老缅、阿瓦、猛别、雍会、普干、摆古、得楞子等类。长于鸟铳,其火药用麦面傅之,迅疾无声。又有缅目者,称为莽纪,断发文身,漆齿穿耳,蟒衣跣足,头带红缎一方,性喜花草。
|
|-
|}
==References==
{{reflist}}
[[Category:Chinese literature]]
[[Category:Non-fiction books]]
[[Category:Medieval historical works]]
[[Category:Works originally in Chinese]]
[[Category:Pages with foreign language text]]
[[Category:Indigenous peoples]]
[[Category:Guidebooks]]
[[Category:History of China]]
[[Category:Wars]]
[[Category:Diplomacy of China]]
[[Category:Subject:Military history]]
[[zh:蛮书]]
2p4c2sez78c6wo7w7wrmalpcrb7b256
4674855
4674852
2026-10-07T10:51:10Z
Taitesena
3485636
/* Kawa《卡瓦》 */
4674855
wikitext
text/x-wiki
__NOTOC__
{{incomplete translation}}
{{Translation header
| title = Unofficial History of Nanzhao (南诏野史)
| author = Yang Shen (杨慎)
| override_editor =
| translator = 'Taitesena'
| section =
| previous =
| next =
| shortcut =
| year =
| language = zh
| original =
| notes =
}}
== Front Matter ==
# [[Unofficial History of Nanzhao/Translator's Note|Translator's Note]]
# [[Unofficial History of Nanzhao/Influences|Historical Context]]
==Translation==
===Introduction===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Authorship
|-
! scope="col" | Original
! scope="col" | Translation
|-
|增订南诏野史上卷 明 四川新都杨愼升庵编辑
|
|-
|}
===The Title of Nanzhao 《南诏之称===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Title of Nanzhao 《南诏之称》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蛮夷称王曰诏。先时滇有六诏,各据其地。六诏中蒙舍诏最强,后并吞五诏,故独称南诏。
|
|-
|六诏考六诏之地,东西四千里,南北二千九百里
|
|-
|蒙舍诏蒙细奴逻立国,居蒙舍川,地在永昌、姚州之间,处五诏之南。后奴逻曾孙皮逻阁并吞五诏,独称南诏。今蒙化厅是邆赕诏丰咩立国,居邓川。今大理府邓川州是施浪诏施望欠立国。居{{浪穹弥茨河蒙次和山,今大理府浪穹县是浪穹诏丰时立国,居浪穹。后其孙铎罗望迁剑川,改称剑浪诏。今丽江府属剑川州地是越析诏波冲立国。亦称摩诏。又号花马国。居嶲州。今丽江府是后,其兄之子于赠渡泸,邑于龙佉河蒙嶲诏嶲辅立国。居越嶲,今四川宁远府,越嶲厅是
|
|-
|}
===The Territorial Divisions of Nanzhao 《南诏分野》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Territorial Divisions of Nanzhao 《南诏分野》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|在天井鬼入参一度,汉书。次鹑首末位晋书。丽中台上位北斗开阳一星。宋书。在地乃梁州裔土,蜀之苑囿。河图纬。
|
|-
|}
===The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ The Names by which Nanzhao was known throughout History 《南诏历代称名不同 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周鄯阐国、白崖国、昆弥国。战国时滇国,汉西南夷、益州、白子国。后汉建宁国。晋、宋、齐、梁、陈,宁州。隋昆州。唐初,南宁、六诏,唐文宗太和间,名鄯阐府。宋仍名南诏。元名中庆。明名云南省。
|
|-
| 国朝因之。按:汉武帝元狩元年,彩云见南中,在今大理府赵州之白崖。云南之名始此。唐元宗间问蒙舍诏盛逻皮之相张建一作俭成住何处?曰:「南边云下。」因命为云南。又元宗见祥云起,名祥州。今大理府之云南县也。
|
|-
|}
=== General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ General Outline of Successive Nanzhao Rulers' Territorial Control《南诏历代据土总纲》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|鄯阐国蒙苴颂,昆弥国庄蹻、仁果、龙佑那据于周、秦、汉迄六朝。细奴逻据于唐。郑买嗣、赵善政、杨于贞、段思平、高升泰曁正湻,相继据于唐末迄
南宋。凡历有九姓,而雍闓、孟获不与焉。段氏与南宋理宗壬子湻佑十三年为蒙古所灭,而段实于理宗景定二年袭总管,传十二世,明太祖壬戌洪武十五年平云南,擒段世,并段段明之二子苴仁、苴义。赐苴仁官雁门卫镇抚,苴义官武昌卫镇抚,段氏之世土方绝,而又别封其族人段保为大理府云龙州土知州。国朝尚有袭土职者。
|
|-
|}
=== Titles and Official System of Nanzhao《南诏称谓官制》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Titles and Official System of Nanzhao《南诏称谓官制》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南诏称帝曰骠信,王曰诏,自称曰元,称后曰信么,亦曰九么,妃曰进武,兄曰容,弟曰钟,下曰昶。其设官则有把国事八人,曰坦绰,曰布燮,曰九赞,谓之清平官。曰酋望,曰正酋望,曰员外酋望,曰大(将军)〔军将〕,曰员外。又设九爽之名,爽,省也。功爽主官人,宗爽主户籍,万爽主财用,慈爽主礼,引爽主宾客,幕爽主兵,罚爽主刑,厥爽主工作,禾爽主商贾,皆清平官、酋望、大军将兼之。以清平官子弟为羽仪长八人,清平官见王不得佩剑,惟羽仪长佩之。又有六曹长二人,曹长有功升大军将,凡十二人。又立三托:巨托主仓廪,气托主马,禄托主牛。大府主将曰演习,副曰演览;中府主将曰缮裔,副曰缮览;下府主将曰澹酋,副曰澹览;小府王将日幕撝,副曰幕览。每府有陀酋,陀酋卽掌书记判官之类。外有八节度使:日弄栋节度使,今楚雄府姚州。曰银生节度使,今景东厅及鎭沅州地是。曰永昌节度使,今永昌府是。曰丽水节度使,今丽江府是。曰剑川节度使,今丽江府剑川州是。曰东川节度使,今东川府府是。曰通海节度使,今临安府通海县是。曰拓东节度使。今云南府昆阳州北平定乡,蒙氏子凤伽异曾筑城于此地。又有二都督:曰会川都督,今四川宁远府会理州地是。曰通海都督。又设十睑,蛮语谓州为睑。苴音斜。羊睑,又名羊睑,卽今大理府太和县。赵州睑,今大理府赵州。白崖睑,又名勃弄睑,今赵州之白崖。,云南睑,今大理府云南县。蒙舍睑,今蒙化厅。大厘睑,又名史睑,今太和县喜州。邆川睑,今大理府邓川州。品澹睑,蒙秦睑,矣和睑。三睑未详其地。○蔚按:别本十睑中苴羊睑、赵州睑、白崖睑而下,作义督睑,今剑川州;威远睑,今普洱府威远厅南;河东睑,末详其地;越睑,今永昌府腾越州;北方睑,又名成偈睑,今永北厅;楼头睑,今四川叙永厅,属永宁县;路睑,今楚雄府广通县;与云南睑以下七睑异。○按:又考此七睑中,其越睑、北方睑、楼头睑、路睑凡四睑,见于『汉地里志』及『唐书?南蛮传』中,睑并作赕,音闪,字旣不同,音又各异,似非列于十睑之数。凡人丁壮者皆为战卒。王之亲兵曰朱弩佉苴,音蛆。按:元微之白乐天乐府皆作佉嗟,未审孰是。佉苴,韦带也。每兵百人置罗苴子统一人,戴朱鞮鍪,负犀革铜盾而跣足。自大军将以至曹长,皆系金佉苴尚绛紫,有功加锦,又有功加金波罗。卽虎皮。民兵号白衣,凡民兵出以望苴蛮为先驱。
|
|-
|}
===Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Thirty-Seven Barbarian Clans of Nanzhao《南诏三十七蛮部》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|因远部。威远睑治,其地总名和泥,今元江府是。休腊部。今临安府河西县。嶍峨部。今临安府嶍峨县。屈中部。今临安府阿迷州。溪处甸部、伴溪落恐部。今倶为长官司,属临安府。铁容甸部。今为亏容长官司。官桂思陀部。今为思陀甸长官司,皆属临安府。王弄部、强现三部。今属开化府。师宗部。今广西州师安县。弥勒部。今广西州弥勒县。吉输部、袖恶部。倶在弥勒县地。维摩部。卽广西府维摩州。州裁,今属广西州地。罗雄部。今曲靖府罗平州。纳垢州。今曲靖府马龙州。落温部。今曲靖府陆凉州。磨弥部。今曲靖府沾益州。仁德部。今曲靖府寻甸州。夜苴部卽曲靖府亦佐县,县裁,今归罗平州。强宗部。卽澄江府阳宗县,县裁,今归河阳县。步雄部。今澄江府江川县。罗伽部。卽步雄部分地。休制部。今澄江府新兴州。落蒙州。今澄江府路南州。弥沙部、邑市部。皆落蒙部子孙分治之。阳城堡部。今云南府晋宁州。罗部。今云南府罗次县。乾矢部、罗婺部。倶在武定府曲州,州裁,今属武定州。华竹部。今武定州元谋县。洪农碌券部。今武定州禄劝县。掌鸠法块部在禄劝县城东五里。○以上三十五部在迤东地。白鹿部。今楚雄府。谋统部。今丽江府鹤庆州。○以上二部在迤西地。
|
|-
|}
==Nanzhao through the Generations《南诏历代》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Nanzhao through the Generations《南诏历代》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|白古记:西天天竺摩竭国阿育王骠苴音斜。低娶欠蒙亏为妻,生低蒙苴。苴生九子,长子蒙苴,附罗十六国之祖;次子蒙苴廉,吐蕃之祖;三子蒙苴诺,汉人之祖;四子蒙苴酬,东蛮之祖;五子蒙苴笃,生十二子,七圣五贤,蒙氏之祖;六子蒙苴托,狮子国之祖;七子蒙苴林,交趾国之祖;八子蒙苴颂,白子国仁果之祖;九子蒙苴閦初六切。白夷之祖。○『哀牢今永昌府。夷传』:哀牢蛮蒙伽独捕鱼易罗池在永昌府城南。溺死。其妻沙壹一作壶。往哭之水边,触一浮木,有感而妊,产十子。后携子至池上,木化为龙,人言曰:「我子安在?」九子惊走,独季子背龙而坐,龙舐其背。蛮语谓背为九,坐为隆,故名之曰九隆氏。哀牢山一名天井山,在永昌府。下有妇名奴波息,生十女,九隆弟兄娶之,立为十姓:董、洪、段、施、何、王、张、杨、李、赵,皆刻画其身象龙文,于衣后著尾。子孙繁衍,居九龙山山在永昌府城南。溪谷间,分九十九部,而南诏出焉。
|
|-
|}
===Shanchan Guo《鄯阐国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shanchan Guo《鄯阐国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|周时立国,年代久远,其姓名世次莫考。
|
|-
|}
===Baiya Guo《白崖国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baiya Guo《白崖国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|西天天竺摩竭国阿育王低蒙苴第八子,蒙苴颂居白崖,因地名,号白崖国,传世莫考。后昆弥氏继之,号昆弥国。
|
|-
|昆弥国一名拜国。
|
|-
|昆弥氏,传世姓名莫考。战国时,楚将庄蹻据滇,并有其地,号滇国。
|
|-
|}
===Dian Guo《滇国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dian Guo《滇国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|战国时,楚顷襄王命将庄蹻范蔚宗后汉书作庄豪。将兵循江上,略巴、蜀、黔中以西,蹻至以兵威畧定滇地属楚。欲归报,会秦司马错攻楚,黔中道塞。蹻遂以其众王滇,号滇国,踞之。后有王常羌者好佛,国势不振。法令不行,国人遂推白崖国蒙苴颂之后,白饭王之裔仁果为王,治白崖,于是两国角立。后仁果奉汉,封为白子国。
|
|-
|}
===Baizi Guo《白子国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baizi Guo《白子国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|汉武帝通西南夷,遣使至滇,求身毒国。滇王常羌问使者曰:「汉孰与我大?」使者还报,武帝怒其言不逊。时白崖国蒙苴颂之后,天竺国白饭王之裔仁果者,为众所推立于白崖。武帝乃册封仁果为王,号白子国。后迁于澄江,今澄江府。迨龙佑那继之,号建宁国。○又一说:白子国之先,有阿育国,王能乘云,上天娶天女,生三子,长季二子封于金马、碧鸡,独封仲子于苍洱之间,崇奉佛敎,不茹晕,日食白饭,人因称为白饭王。迨后有仁果者,汉封为滇王,号白子国。又十五世至龙佑那,后汉诸葛武侯南征,次白崖,以佑那为酋长,赐姓张氏,仍统其民,号建宁国。
|
|-
|}
===Jianning Guo《建宁国》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|后汉后皇帝乙巳建兴三年,益州耆帅雍闓,假鬼术杀建宁太守王昂,归东吴,吴王孙权以闓为永昌守。后汉诸葛武侯南征,至白崖,杀雍闓,擒孟获,乃封白子国王仁果十五世孙龙佑那为酋长,赐姓张氏,于白崖筑建宁城,蔚按建宁城废址在今大理府赵州之弥渡。号建宁国,立铁柱蔚按:今弥渡有铁柱宫,铁柱尚存。先为建宁国王张乐进求甫铸,后南诏蒙世隆复重铸,名曰天尊柱,高八尺。并『南中纪功碑』,铭其背曰:「万岁之后胜我者过此」。迨至隋时,行军总管太平公史万岁征南宁夷爨玩,西破三十馀部,至此,见其碑铭,命左右踣之。其碑跌,中复有志曰:「史万岁不应踣吾碑」。万岁惊异,复树碑,祭拜而去。后张龙佑那仍迁国澄江,传三十二世至十七世孙张乐进求,唐太宗己酉贞观二十三年封为首领大将军。后见蒙舍川蒙细奴罗有奇相,遂妻以女,逊国与之。奴罗自称奇嘉王,建号大蒙国,又称南诏。
|
|-
|}
==Nanzhao《南诏国》==
===13 Generations of Nanzhao 《南诏大蒙国传十三世》 ===
{| class="wikitable" style="text-align:center; width:80%;"
|+ 13 Generations of Nanzhao 《南诏大蒙国传十三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|细奴一作农。逻一作罗。 伪谥高祖奇嘉王
|
|-
|细奴逻,又名独罗消,西天天竺摩竭国阿育王低蒙苴第五子蒙苴笃之三十六世孙。生有奇相。唐太宗贞观初,其父舍龙尨,又名龙伽独,将奴逻自哀牢避难至蒙舍川,耕于巍山。今蒙化厅之巍宝山。一日,有老僧,美髯,冠赤莲冠,披袈裟,持钵至奴逻家乞食。时奴逻与子逻盛炎方耕巍山之下,其姑与妇将往饁。见僧乞食,遂食之。再炊往饁,僧坐不去。姑妇持饷中道,僧已在彼,复乞食,姑妇又食之。返而复炊,持饁至巍山,则见僧坐盘石上,前有靑牛,左白象,右白马,上覆云气。云中二童子,一执铁杖于左,一执方金镜于右。姑妇惊喜,复以所饷供之。僧问何所愿?姑妇不知对。僧曰:「奕叶相承」。及趣奴逻等至,则但见一人持钵,坐五色云中,而盘石上惟馀衣痕及牛象马之迹耳。奴逻素有祥异,会唐封首领大将军建宁国王张乐进求,以诸葛武侯所立白崖铁柱,岁久剥蚀重铸之。因社会祭柱,柱顶故有金镂鸟,忽能飞,集奴逻左肩,相诫勿动,八日乃去。众骇异,谓天意有属。进求遂妻以女,举国逊之。于唐太宗己酉,贞观二十三年卽位,年三十二岁,建号大蒙国,称奇嘉王,据南诏。高宗庚戌永徽元年,建都蒙舍川,于巃{山+于}山在今蒙化厅西北三十五里。筑巃山+于城。永徽癸丑四年,遣逻盛炎入朝唐,诏授奴逻为巍州今蒙化厅刺史,赐以锦袍。大勃弄今大理府赵州白崖。酋杨承顚寇麻州,在今曲靖府马龙州城北里许。唐命郞州唐贞观初,分牂牁郡北界置郞州,后改名播州,卽今贵州遵义府。又有郞州,在今云南县地。道行军总管赵孝祖讨之。孝祖先入小勃弄,今云南县地。酋长没盛迎战,孝祖斩之。进至大勃弄,攻其城,破之,擒杨承顚,改云南县为匡州,领勃弄、匡州二县。高宗显庆二年,凤鸣于浪穹罗浮山,乃改名为凤羽山,在大理府浪穹县西南三十里,又名鸟吊山。见『水经注』。封十二圣贤为十二山神。时澄江人波罗旁有经济才,用为文臣;郭郡矣素以勇略闻,用为武臣。又有杨波远者,相传为东汉时人,常骑三角靑牛,号神明大士,能知盐泉,滇中盐泉多为波远所开创。奴逻在位,遵唐正朔。高宗甲戌上元元年,奴逻卒,在位二十六年,子逻盛炎立。
|
|-
|逻盛炎又名逻晟。伪谥世宗兴宗王。
|
|-
| 逻盛炎。唐高宗甲戌上元元年卽位,年四十岁,以张建成为相。明年,盛炎临朝,元宗壬子先天元年,姚州蛮叛归吐蕃。唐命御史李知古讨之,筑城立州县。知古诛豪杰,掠子女,蛮怨,引土蕃,攻杀知古,于姚嶲路绝,而盛炎独奉唐正朔。是年,盛炎卒,在位三十九年,子盛逻皮立。
|
|-
|}
===Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Shengluopi《盛逻皮石刻作诚乐魁 封台登郡王 伪谥太宗威成王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|盛逻皮,唐元宗壬子先天元年卽位,年四十岁。明年为元宗癸丑开元元年,唐授逻皮为特进,封台登郡王今四川宁远府冕宁县地。设官征商税。开元二年,遣张建成入朝于唐。立土主庙。开元九年,皮叛唐。开元十四年,立庙祀晋右将军王羲之为圣人。元宗戊辰开元十六年,逻皮卒,在位十六年,子皮逻阁立。
|
|-
|皮逻一作罗阁石刻作归义王魁乐觉封云南王。
|
|-
|皮逻阁,唐元宗戊辰开元十六年卽位,年三十一岁。开元十八年,灭五诏,自称南诏王。先是,蒙氏恐三十七蛮部不服,选亲族为五诏。未几五诏抗命,逻阁遂赂剑南节度使王昱,求合六诏为一。昱奏于朝,许之。逻阁乃豫建松明大楼,祀祖于上。使人谕五诏曰:「六月二十四日乃星回节蔚按『大理郡志』汉元封间,叶楡妇阿南者为酋长,曼阿娜之妻。娜为汉将郭世忠所杀,欲妻南。南曰:能从三事,当许汝一作幕次祭故夫;一焚故夫衣,易君新衣;一令国人皆知我以礼嫁。忠如其言。明日,聚国人张松幕祭其夫。下置火,南藏刃出,俟火炽焚夫衣,卽引刀刃自断其颈,仆火中,时六月二十五日也。国人哀之,故岁以是日燃炬吊之,名为星回节云。是又当为二十五日。当祭祖,不赴者罪。」四诏听命。惟越析诏波冲之兄子于赠,远不赴会,而邆赕诏丰哶孙{辵+皮}逻邆之妻慈善者,止逻邆勿赴。邆不听。慈善不得已,以铁钏穿于邆臂而行。二十四日,逻邆及施浪诏施望欠弟施望千、浪穹诏丰时孙锋罗望、蒙嶲诏嶲辅子罗原皆至逻阁所。逻阁偕登楼祭祖,祭后享胙食生饮酒,迨晚,四诏尽醉。逻阁独下楼,焚钱遽纵火,火发,兵围之,四诏皆焚死。逻阁遣使至四诏所,报焚钱失火,四诏被焚,状令各诏收骨。四诏妻至,莫辨其骨。独慈善因铁钏得焉,携归葬之。逻阁旣灭四诏,取各诏宫人,念慈善慧而甚美,遣兵围其城,迫取之。慈善曰:「吾岂忘夫事仇者?」闭城坚守,半月城中食尽,慈善度不能支,卽自杀,时七月二十三日也。逻阁嘉其节,乃封赠为宁北妃,并旌其城曰德源城。城废址在今大理府邓川州城东北二里许。开元戊寅二十六年,逻阁破吐蕃及弥蛮,入朝,元宗礼之,加封为特进,云南王,越国公,开府仪同三司,赐名归义,并锦袍金钿带七事。王归国,以兵逐洱河蛮,筑太和城,今大理府城南十五里太和村地是。又筑大厘城今大理府城北四十里喜州是。守之,尽有云南之地。唐授王子阁逻凤右领军卫大将军兼阳瓜州刺史。开元二十七年,明矫叛,破剑川、浪穹、永昌。开元二十八年,王讨朋矫,平之。开元辛已二十九年,王自蒙舍川迁居太和城,立龙首、卽今上关。龙尾卽今下关。二关。唐加阁逻凤为左领军卫大将军。元宗癸未天宝二年,筑羊苴哶城于太和城之北。卽今大理府城。唐迁阁逻凤为左金吾卫大将军,寻拜特进都知兵马大将军。天宝甲申三载,西方进狮子皮。唐加阁逻凤为上柱国。天宝乙酉四载十月,城永昌。天宝丙戌五载,王遣孙凤伽异入唐,唐授伽异为鸿胪少卿,妻以宗室女,赐龟兹乐一部,元宗戊子天宝七载,王卒,在位二十年,子阁逻凤立。
|
|-
|阁罗凤一作觉乐凤。按:『德化碑』云:「家居阁罗凤」,则是取地名以为名也。袭封云南王,伪谥神武王。始建元。
|
|-
|
阁罗凤,唐元宗天宝戊子七载卽位,年三十六岁。唐遣中使黎敬义持节册凤袭封云南王,敕置阳瓜州于蒙舍川,加授
凤伽异为上卿兼阳瓜州刺史,都知兵马大将军。天宝庚寅九载,王率妻子往谒都督李宓,过云南,太守张虔陀私之,又多徵求。王表虔陀之罪,中官贾奇俊抑之,不得达。王复遣将军杨罗顚等连表控告。元宗仍不省。凤怒,遣大将军王毗双、罗时等发兵攻虔陀。虔陀饮鸩死;遂取姚州,并夷州三十二。获唐嶲州西泸令郑回以归,爱其才,用为清平官。天宝辛卯十载,唐命剑南节度使鲜于仲通将兵八万征云南。凤赴泸南在楚雄府姚州之城北一百五十里。谢罪,愿还所俘掠,请罢兵。仲通不许,分三道而进。仲通自南溪路,大将李晖自会同路,都督王知进自步头路。今临安府地。凤就安宁,再伸衷悃。仲通不听,兵至曲州、靖州。二州今为曲靖府地。凤复遣首领杨子芬、参军江如之赍状,言若不罢兵,卽当归吐蕃,恐云南非唐有。仲通终不许,囚其使,进薄白崖城。别遣大将王天运统师绕出点苍山后。凤遣
凤伽异及大军将段俭魏迎山后师,自逆战于西洱河。唐兵大败,死者六万人,王天运战殁,仲通仅以身免。凤乃叛唐,建元长寿。遣弟阁陂和尚及子铎传、酋望赵佺邓、杨传磨侔等,并子弟六十人献凯吐蕃。陂有神术,人马往来吐蕃,不过朝夕之顷。天宝十一载正月一日,遣宰相倚祥叶乐持金冠、锦袍、金宝带、金帐状、安扛伞鞍、银兽器皿、珂贝、珠毯、衣服、駞马、牛鞻等物至邓川,以凤为兄弟之国,册为赞普钟南国大诏,给金印,称东帝。并授凤伽异大瑟瑟告身,都知兵马大将。凤遂改是年为赞普钟元年。发人口百户于浪穹,筑白崖睑城,又遣兵攻掠安宁。天宝甲午十三载六月,唐命前云南郡都督兼侍御史剑南留后李宓、广府节度使何履光等,率十道兵再征云南。兵逼邓川,凤遣凤伽异、段俭魏迎战于江口。时神川都知兵马使论绮里徐救兵已至巴蹻山,遂诱宓深入,内外夹击。宓粮尽,士卒饥疲,引还。凤以精兵追战,唐全军覆没,李宓被执,沉江死,何履光遁去。凤因进取嶲州会同郡,据清溪关,以破越析。此二役也,皆凤弟阁陂和尚及凤妃白氏行妖术,展帕拍手而笑,韩陀僧用钵法,以故唐兵再败。时唐先后丧师已二十馀万,凤乃敛战胔,筑京观于龙尾关河尾,名万人冢,立碑大书「唐天宝战亡士卒之墓」。而唐宰相杨国忠更揜败以捷闻,叙战功。令清平官郑回撰『德化碑』,唐流寓御史杜光庭书。立石太和国门外,明其不得已叛唐归吐蕃之故。天宝乙未十四载冬十一月,东平郡王安禄山反于范阳,凤乘机以兵取蜀卭州,筑卭子城,及丽水金宝城。升段俭魏为清平官,赐名忠国,旋拜相国。代宗甲辰广德二年,羊苴哶城成,凤名之曰大理城,又名紫城。代宗乙巳永泰元年凤伽异筑云南城卽今云南府省城。又筑拓东城,今云南府昆阳州北平定乡。遂以兵攻陷曲靖。代宗丁已大历十二年,永昌牛生三角,羊生四角,鸡九足,井有光。建观音寺于白崖。先是,逻盛炎时,相国张建成欲于白崖建寺,卜之吉。又地下有三戳观音,上截在西,中截在东,下截在东南。因盛炎旋卒,不果建。至是建寺,掘之果然。代宗戊午大历十三年,阁罗凤卒,在位三十年。因子凤伽异先死,后追谥悼惠王。孙异牟寻立。
|
|-
|异牟寻改国号曰大理国。封云南王,又封南诏王 伪赠廪孝桓王
|
|-
|异牟寻,唐代宗戊午大历十三年卽位,年二十四岁。明年改元见龙,又改上元,率兵三万取蜀为东府,又连土番入寇。唐命神策都将李晟击破之。师还,自称南诏王。德宗甲子兴元元年,牟寻迁居史城,卽大厘城。改号大理国,自称日东王。封岳读,以叶楡今大理府。点苍山为中岳,乌蛮今东川府。乌龙山一名绛云弄山,在今禄劝县东北三百里。为东岳,银生府今景东厅。蒙乐山一名无量山,在厅北九十里。为南岳,又封南安州今楚雄府属。神石亦为南岳,越赕今永昌府腾越州。高黎贡山一名昆仑隅,在腾越、潞江之间。为西岳,嶲州今丽江府是。雪山一名玉龙山,在府西北二十里。为北岳。封金沙江源出吐蓄旄牛徼外犂牛石下,本名犂牛河,又名犂水,讹为丽水。经丽江府、鹤庆州、姚州而东北达于四川马湖府之马湖,卽『山海经』所谓若水。『水经注』云:若水经云南之遂久县,卽今金沙江巡检司地。昔黄帝长子昌意德劣,不足绍承天位,降居斯水为诸侯,娶蜀山氏女,生颛顼于若水之阳,疑卽其地也。祀在武定州,兰沧江源出吐蕃鹿石山下,本名鹿沧,又名兰沧。兰沧讹为浪沧。自丽江府度云龙州至永昌府,东经顺宁府,达于车里,过交趾地而入于南海。祀在丽江府,黑惠江在顺宁府之东入狼沧江,而达于南海。祀在顺宁府,怒江源出西域雍望,奔流而下,深不可测。夏月多瘴,经怒夷地入丽江府境野人界。至永昌府境,乃名潞江。祀在水昌府,为四渎,各建神祠。又立三皇庙。德宗丙寅贞元二年,设官立九爽三托。考疆域,其地东至于铜柱、铁桥、蟠桃、玉楡,东南至于交趾国,南至于骠国,西南至于木落山,西至于太石,西北至于吐蕃,北至于神川,东北至于黔巫。八分之地,属以八演,皆中国降人为之经画者。贞元丁卯三年,寻居大理城。命子弟师事郑回。时寻苦吐蕃徵求无厌,会李泌劝德宗招云南以断吐蕃右臂。帝从之,命韦皋为西川节度使,皋受命招抚群蛮。郑回因说寻归唐,寻以为然。皋遣谍者致书于寻,吐蕃知而疑之,乃责南诏大臣为质。寻愈怨。于是,决计归唐。皋以闻,德宗乃命皋作书谕寻。是年四月,吐番破蜀,来征兵,蔚按:卽吐蕃劫浑瑊清水盟之岁。寻谢绝之。贞元五年,寻遣乌蛮勿邓大鬼主苴梦冲、两林都大鬼主直那时聘于皋,因入朝。皋遣其属崔佐时报之。时吐蕃使数十人先在,佐时至,寻令更衣入。佐时不可,曰:「天朝大使。岂衣夷衣?」寻不得已,夜迎之。佐时至,大宣诏旨,令寻斩番使,去其所立之号。寻遂与佐时盟于点苍山下。贞元九年,寻遣使上表,请从韦皋袭吐蕃。诏册封为云南王,以韦皋为云南安抚使。王遣使诣皋,献夷中歌。贞元十年,吐蕃徵兵于王,王阳示寡弱,以兵三千应之,自将数万人踵其后。正月,袭吐蕃,战于神州,断铁桥,在巨津废州,今丽江府西北地。取十六城,俘其五王,降众十馀万,获军资甲仗无算。遂遣弟凑罗栋、清平官尹仇宽献捷于唐,并献地图、纳贡及吐蕃所给金印,请复号南诏。于是,唐以祠部郞中袁滋为中丞,赐金紫充册使。赐王银窠金印,印文曰:「贞元册南诏印」。王北面跪受。宴使者,出元宗天宝五载所赐王父凤伽异银跳脱马头盘数物,并指老笛工、歌女曰:「皇帝所赐龟兹乐,惟二人在耳!」使者日:「南诏世荷唐恩,当深思祖考子孙勿替,尽忠皇唐。」王对曰:「敢不敬使者之命。」随遣清平官尹辅首入谢,献铎鞘、郁刀、生金、瑟瑟、牛黄、氎、纺丝、越赕绕伦马。蔚按:铎鞘,疑当作择矟,状如残月,有孔旁达,出丽水,饰以金,月祭之血,所击无不洞。段柯古『酉阳杂俎』云:南蛮有毒槊无刀刃,状如朽铁,中人无血立死。言自天而下,入地丈馀,祭地乃掘得之,云云。疑卽铎矟,毒为铎字之讹,槊字本同矟宇也。郁刀铸时以毒药并冶,取莹耀如星者,凡十年乃成,淬以马血,镂金犀饰镡首,伤人卽死。因浪人所铸,又名浪剑,夷中甚宝之。七月,又攻吐蕃,并破施蛮、顺蛮,施蛮、顺蛮卽施浪、浪穹二诏之后,自南诏并吞五诏,五诏之后不复称诏,止称蛮。俘其王置白崖城。贞元十二年,取越赕,置软化城。贞元十四年,请以大臣子弟质于朝,韦皋却之。固请,乃尽舍成都,遣就学。贞元十五年,王开白国北方赕地,今永北厅。徙弥河白蛮及罗落摩蛮实之,号剑羌。是年,王从韦皋再败吐蕃于铁桥。初,王谋击吐蕃,以邆川、卽今邓川州。宁北卽今浪穹县。等城当寇冲,乃峭山深堑,修战备。至是吐蕃谋袭南诏,王告于皋,遣将屯黎州、嶲州以应之。吐蕃引兵攻嶲州,皋严兵以守,别遣将袭击,降其帅,吐蕃惧,退至铁桥。王令人毒其水,吐蕃人马多死,退屯三泸水,王与皋部将杜毗罗击败之。贞元十六年,王率子寻阁劝入朝于唐,召对延英殿,进奉圣乐舞,德宗御麟德殿观之。贞元十七年,王夜绝泸水,斩吐蕃屯卒,又合鬼主破之于泸西。吐蕃大惧,欲悉师收嶲州,以绝南诏。王谓韦皋曰:「吐蕃声取嶲州,实窥云南,请进军羊苴咩城。」皋督诸将分道与王会,陈兵深入,拔木波城。前后凡克城七,焚堡百五十所,斩获无算,生擒论莽热,献于唐,并进铠甲十五万。皋班师,帝遣中使慰抚王。王自是比年贡方物,唐帝深礼之焉。贞元十九年,王封云南金马碧鸡二山之神为景帝,建妙音寺塔,筑大理雪峰长城。宪宗戊子元和三年七月,王卒。唐遣使祭吊,在位三十年,子寻阁劝立。
|
|-
|寻阁一作觉劝又名新觉劝。 袭封南诏王 伪谥孝惠王
|
|-
|寻阁劝,唐宪宗戊子元和三年卽位,年三十一岁。唐册劝袭封南诏王,赐元和金印。宪宗己丑元和四年正月,改元应道,群臣上尊号曰骠信,以鄯阐为东京,大理为西京,重修曲靖崇真寺。寺为晋代所建。十一月王卒,在位一年。子劝龙晟立。
|
|-
|}
===Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quanlongsheng《劝龙晟 袭封南诏王 伪谥幽王 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝龙晟,唐宪宗己丑元和四年卽位,年十二岁。唐册袭封南诏王。明年,改元龙兴。铸佛三尊,送佛顶峰寺,用金三千两。元和九年,晨寇嘉定州,有飞天神兵破之。先是,节度使杜元颖守成都时,时滇兵至嘉定之沐源州,忽自惊溃。蜀军获一夷卒问之,云适见遍山神兵,一神将长斧坐二鬼上,声若迅雷,故尔惊走。至是神复现形,自后追杀,卽时死酋长二人。盖嘉定向有飞天神庙,两破滇兵者,皆此神也。宪宗丙申元和十一年,晟淫虐失道,弄栋节度使王嵯巅弑之,时年仅十九岁,唐命少监李铣祭吊,在位七年,弟劝利立。
|
|-
|}
===Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Quan Li 《劝利 一作劝利晟 袭封南诏王 伪谥靖王》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|劝利,唐宪宗丙申元和十一年卽位,年十五岁。唐册袭封南诏王。王嵯巅东寇。明年,改元全义。元和十三年,厚赏王嵯巅,赐姓蒙,封太容。元和十四年,废王嵯巅,赦其罪,命敬信三宝,为清平官。元和十五年,又改元大丰。重修崇圣寺。五月,大雨霖,龙首、龙尾二关倾。除洱河水怪,建龙屋塔。高十二丈。按:『白古记』:唐时洱河有妖蛇,名薄劫,兴大水淹城。蒙国王出示:有能灭之者,赏半官库,子孙世免差徭。部民有段赤城者愿灭蛇,缚刃人水,蛇吞之,人与蛇皆死,水患息。王令人剖蛇腹,取赤城骨葬之,建塔其上,毁蛇骨灰塔,名为灵塔。在今大理府城南龙尾关内点苍山马耳峰下羊皮村。每年有蛇党起风来剥塔灰。时有谣曰:赤城卖硬土。今『龙王庙碑』云:洱河龙王段赤城云。永昌生两头牛。穆宗甲辰长庆四年,赐南诏王金印。是年王卒于东京,在位八年,弟丰佑立。丰佑慕中国之风,独不肯连父名。丰佑石刻作劝丰佑 册封滇王 伪谥昭成王
|
|-
|
丰佑,唐穆宗甲辰长庆四年卽位,年七岁。唐遣京兆少尹韦审规持节册封为滇王。王遣洪成酋等人谢。明年,改元保合,又改元天启。西僧赞陀啒哆建鹤庆元化寺。先是,鹤庆地水淹,僧杖刺东隅泄之。水中得樟木,刻为佛,咒之忽灵,远近名曰活佛。按:活佛,后至明成化间,福建莆田林俊为云南宪副闻之,亲至寺中,将佛火之,得金数百两入官,又毁他寺三百,人呼为林劈佛。建常平仓,筑邓川城。敬宗乙巳宝历元年,重修大理崇圣寺一名三塔寺。成先是,王嵯巅广寺基方七里。圣僧李成眉贤者建立三塔,高三十丈。佛一万一千四百,屋八百九十,铜四万五百九十筋。元和十五年经始,至是工竣。塔顶旧有铁柱款识云:「贞观六年尉迟敬德监造」,盖寺之建久矣。重修云南东寺塔,高百五十尺,西寺塔高八十尺,二寺亦贞观间将作大匠尉迟敬德所建。文宗丁未太和元年,王母出家,法名惠海。太和二年,用银五千,铸佛一堂,废道敎。太和己酉三年,僧梦岛造永昌卧佛,长丈六。六月朔,星落如雨。命王嵯巅等寇蜀。先是,西川节度使杜元颖失士卒心,军逃入南诏,因此知蜀虚实。佑遂遣嵯巅等攻蜀,陷嶲、戎、卭三州,攻成都,止西郛十日,掠经书、宝货、子女无算,蜀中残敝。并寇梓州、蜀州。佑上表于唐,请诛元颖。唐改云南为鄯阐府。卽今云南府省城。太和四年,唐贬杜元颖循州司马,以义成节度使李德裕为西川节度使。裕至西川,建筹边楼,日召习边事者访问,凡山川险要,南道与蛮相入者图之左,西道与吐蕃相接者图之右,不啻身尝经历焉。乃奏请留北兵以重镇守,修甲胄、备器械。率户二百取一人习战,作雄边子弟等十一军。筑仗义、御侮、柔远诸城以扼要害,复卭崃关,徙嶲州治台登,以夺蛮险。令转卭、雅粟以十月而运,先夏而至,人不苦瘴,边境始安。至是使人于佑,责归所俘。太和五年五月,佑归所俘西川四千人于德裕。太和六年,佑掠骠国民三千,徙之拓东城。武宗乙丑会昌元年,佑遣军将晟君筑横渠道自磨用江至于鹤拓,灌东皋及城阳田,与龙佉江合流入于河,谓之锦浪江。又潴点苍山玉局峰顶之南为池,谓之高河,又名冯河。更导山泉共泄流为川,灌田数万顷,民得耕种之利。会昌六年九月,佑攻陷安南,经略使裴元裕死之。宣宗丁卯大宗元年,佑妃卒,佑郁郁不乐,臣下请选妃女备后宫。得罗部今云南府罗次县。一美女进之,有宠。女好佛,建罗次寺,至今灵异。六月大旱,佑令僧寿海祈雨。僧曰:「昔汤旱七年,六事自责,天雨七日。今王酒色妄杀,天怒不雨。王如改悔,天雨自至,何以祈为?」佑如僧言,自责自改,数日果雨。佑女至崇圣寺进香,回至城西,为一乘白马人摄去,寻之不得。佑告于西僧赞陀啒哆,哆曰此山神也。乃设灯照之,果在苍山下。哆怒欲行法,移山于河。山神惧,献宝珠供佛,佑乃已。大中十二年,佑遣段酋迁陷安南都护府。遣段宗榜救缅。榜,汤今云南府宜良县地。人,佑之勇将。先是,狮子国侵缅;屡求救,至是许之。按:缅甸卽汉之掸国,唐之骠国,其历代莫考。当宋元之时,屡败王师。明太祖洪武十年,缅头目招扳南进贡。十九年,使行人司钱古训赍诏立宣尉司。二十年,缅犯景东。二十一年,犯他郞甸,沐英命都指挥宁正平之。三月,犯定边,沐英同都督冯诚平之。景泰三年,王骥赏缅孟养地。缅喜,乃擒献麓川贼。嘉靖初,缅火烧赍金牌官,中终年猖獗海上,遂至难制。○考自永昌府腾越州入缅,止三十四程。腾越一日南甸、一日罗必斯、一日郞、一日甸头、一日甸尾、一日蒙腰、一日甸蓝、一日蒙怜路、一日空地、一日蒙来路、一日大市、一日龙江、一日锅地、一日人列渡、一日江头城、一日景怜、一日及、一日马来城、一日赖当、一日山头、一日甸头、一日阿只、一日吴细辰、一日折弓、一日阿越。由阿越下水,九日卽至缅城。其地有五大城,江头、太公二城之外,又有马来、安正国、蒲甘缅王三城。酋住金楼,民住竹楼。其下称酋为卜剌浪,称酋妻为米泼剌。酋出人乘轿,水有舟筏。官名有招孟、招彔、招刚三等。官无大小,倶金银花宝带。无弓箭。其水有金沙江,险恶,缅恃以为固。涸时,亦仅五里。俗敬佛,重罪对佛发誓,凭僧处断。○入缅又有三道:一由潞江西上;一由腾越七日至麓川;一由景东从木通甸至湾甸渡入芒市,十日至麓川。○此外从潞江上流蒙来渡至景乐沿河有小渡十馀处,皆可通。又有三道:一由天步马,一由湾甸,一由阿郊地界,皆可入缅。宣宗己卯大中十三年,陷播州。李德裕旣贬死,西川节度使所任皆非人,侥佯边功,发兵十万袭滇,自建昌入,佑命子世隆为坦绰,同王嵯巅迎战于古宗,今丽江府铁桥以北地。杀唐兵数万人,立铜柱于界上。世隆之母,佑妃也,出家号师摩矣。尝随佑至罗浮山白城,建一寺,南壁画一龙,是夜龙动,几损寺,妃乃复画一柱锁之,始定。按:妃本渔家女,喜浴。为妃后,仍常泛舟西洱河,屏人潜浴于水,感金龙与交,生世隆。隆七岁,拳握始开,有文在其掌曰:通番打汉。古宗之战,唐帝惧世隆为患,妻以宗室女,伺察其所为。女以世隆年庚潜送于帝。帝使太史推之,知其感龙精而生。是年,丰佑卒于东京,在位三十五年。子世隆立,以王嵯巅摄政。段宗榜救缅,回至腾越,闻佑卒,世隆立,嵯巅摄政,移书王嵯巅曰:「天启不幸,驾崩嗣幼,闻公摄政,国家之福。榜救缅以败狮子国。缅酬金佛,当得敬迎。奈中国无人,惟公望重。榜抵国门之日,烦亲迎佛,与国增光。」云云。嵯巅不知是谋,至日迎之。榜令巅拜佛,突斩之于佛前。讨其弑劝隆晟之罪也。榜熔佛得金数千两。时有缅人奉香火者在榜,默祝曰:「愿世代奉敬,今不如愿,惟愿世尊轮生,灭彼国祚。」后果生郑买嗣篡国,灭蒙氏。
|
|-
|世隆『唐书』作酋龙。 伪谥景庄皇帝僭称帝始此,以后郑、赵、杨、段、高五姓之国咸效之。
|
|-
|世隆,唐宣宗己卯大中十三年卽位,年十六岁。明年,为懿宗庚辰咸通元年,改元建极。改西京曰中都,东京曰上都。先是,德宗贞元间,西川节度使韦皋开道通南诏,令岁入贡。异牟寻、寻阁劝二世事唐唯谨,迨劝龙晟及丰[佑],又数数扰边,大为唐患。又以世隆之名犯太宗、元宗庙讳。唐不册封,隆益致怨望。至是自称皇帝,遣兵取乌蛮、僰、爨之地,置东川郡。前节度使杜悰变韦皋制度,侵扰蛮中。隆绝朝贡,寇播州。至是李福为节度使,隆遣清平官董成至成都,移书于福。成与福抗礼,福囚之。上闻,有诏释成,召至京师,见便殿,遣还。咸通二年,遣兵陷安南。左仆射同平章事杜悰言:「西川兵弱,南诏强盛,未可轻绝。宜遣使祭吊,谕令改名,行册礼。帝肯之。会隆复寇嶲州,遂止。咸通三年,隆亲寇蜀,取万寿寺石佛归。时高真寺僧崇模有神术,从征。军中乏粮,又値岁暮,士卒思归,僧咒沙成米,咒水成酒,士卒各醉饱。一日僧化蝶回国乱宫,世隆妻以书达隆。隆答曰:妖若再来,令宫人于其衣背绣蝶。后僧复至,宫人绣之。隆见僧衣有蝶,令斩之。刑七次,首不殊。僧自云:用茅锯之乃断。果然。人见僧魂化一黑鹏飞去,盖僧本高真寺鹏巢中所得之儿也。咸通四年,寇西川。咸通五年,陷安南、邕管。咸通六年,陷嶲州。咸通七年,复攻安南。岭南西道节度使高骈救之,隆兵大败,骈遂定安南。咸通十年,隆遣使杨酋庆等入朝,谢释董成之囚。归成都俘三千人。定边节度使李师望杀其使,隆怒,率众攻蜀,陷嘉州。咸通十一年正月,陷黎州,入卭徕关,围雅州,击卭州,遂进攻成都。次眉州,西川节度使卢耽畏众寡不敌,通使请降。继而唐遣东川节度使颜庆复、大将宋威等率兵来战。世隆败屯星宿山,宋威戍沱江。隆迎战于毗桥,不胜,趋沱江,中伏。城中又出突将,夜火隆营,夺升仙梁。隆大败,奔双流江,无梁以渡,乃伪请和,三日梁成而济。咸通辛卯十二年,立鄯阐王宫。咸通壬辰十三年,于白崖诸葛武侯所立铁柱之地,铸天尊柱,高八尺。蔚昔年曾至铁柱宫,其地界白崖、弥渡、蒙化三境之间。其柱刻字云:建极十三年岁次壬辰四月朔庚子十四日癸丑建立。咸通十四年,攻黔中。又寇西川,作浮梁济大渡河,防河兵马使黄景复伏兵,半渡击败之。会隆国中新兵继至,接战,景复败走。隆进兵陷黎州,入卭徕关。遂遣王保诚等四十人谩书诣剑南节度使牛丛,欲假道入朝,请憩蜀王故殿。丛囚其使三十八人,释酇咙及段酋迁二人还。隆乃退兵至新津而旋。僖宗乙未乾符二年,攻雅州。西川节度使高骈追至大渡河,大败之,俘酋长五十人,收复黎州、卭徕关,斩黄景复以狥。乾符三年,遣使诣高骈请和,不许,斩使者一人。隆怒,自是唐使至不拜,惟拜和尚。骈知之,乃遣僧景仙往谕公主事,隆乃下拜定盟。禧宗丁酉乾符四年二月,复寇蜀,高骈御退之。骈又结吐蓄尚延心嗢、末鲁褥月等为间,筑戎川州、马湖沭沐源川、大渡河三城,列屯拒险,料壮卒为平夷军。世隆气夺,因恚发疽,卒于越嶲景净寺,在位十八年,子隆舜立。
|
|-
|}
===Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Longshun《隆舜一名法 改国号曰大封民国 伪谥宣武帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆舜,唐僖宗丁酉乾符四年卽位,年十七岁。明年,改元贞明,又改元嵯耶、承知、大同,改国号曰大封民国。遣使于唐请和,诏许之。自劝龙晟至世隆以来,侵蜀伐安南,用兵五十馀年,帑藏不给,横敛于民,上下倶困。舜立,耽于酒色,委政臣下,故愿求和于唐,乃遣段宝诣岭南节度使辛谠,请修好。谠奏,许之,以息边患。乾符六年,遣使于唐求和亲,无表,只用牒,称弟不称臣。唐帝召百官议,礼部侍郞崔澹曰:「南诏无礼,恐贻后笑。」使者上书与澹争。帝谕解之。议者谓中国多故,南诏寖强,不若权与和亲。便从之。僖宗庚子广明元年春正月,唐命宗正少卿李龟年来和亲。僖宗辛丑中和元年,上表款附。中和癸卯三年,唐以宗室女为安化长公主,妻隆舜,僖宗乙已光启元年,遣宰相赵隆眉、清平官杨奇鲲、段义宗三人,朝唐帝行在,且迎公主。高骈在淮阳飞章上言:「三人南诏心腹。宜止而酖之。」唐帝从其言。隆眉等死,南诏遂不复振矣。是年昆仑国进美女,舜嬖之。光启二年地震,龙首、龙尾二关、三阳城皆崩。昭宗己巳乾宁四年,隆舜多内嬖,常信谗以诛其下,淫虐日甚。竖臣杨登弑之于东京,在位二十年,子舜化贞立。
|
|-
|}
===Shunhuazhen舜化贞 伪谥孝哀帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Jianning Guo《建宁国》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|舜化贞,唐昭宗丁巳乾宁四年卽位,年二十一岁。明年,改元中兴。上书于唐,朝廷欲报之。利州刺史王建上言:「臣在西南,彼必不敢犯塞,小夷何足辱诏书。」遂止。昭宗光化二年,立五学敎主。十一月,诛杨登,族其家。光化庚申三年,铸崇圣寺丈六观音,清平官郑买嗣合十六国铜所铸,蜀人李嘉亭成像。一说唐天宝间,崇圣寺有僧募造丈六观音像,未就。夜忽雨,旦视之,铜也,卽取以铸像。像成,白光弥覆凡三日夜,至今人称为雨铜观音。唐昭宗壬戌天复二年,舜化贞卒,一说实郑买嗣弑之。,在位五年。化贞有一子,生甫八月,郑买嗣主国事,遂启贞妻曰:「母后深宫,群臣无主,臣当抱太子临朝。」贞妻是其言,以子付之。买嗣抱子出,潜手伤其阴,子哭不已,乃送回宫中。明日,子死。贞妻疑而诘之,买嗣怀不安,遽起兵杀蒙氏亲族八百人于五华楼下,遂簒立焉。
|
|-
|按:蒙氏南诏大蒙国,自细奴逻禅立,起唐太宗己酉贞观二十三年,讫昭宗壬戌天复二年,传十三世,共二百五十五年。
|
|-
|}
==Dachanghe Generations《大长和国 传三世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Dachanghe Generations《大长和国 传三世》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|郑买嗣又名。 伪谥圣明文武威德桓皇帝。
|
|-
|郑买嗣,又名,唐巂州西泸令陷南诏臣蒙氏,为清平官郑回之七世孙。
隆舜时历官侍中,权势日重。隆舜巡幸无度,留买嗣守国,遂专政柄。舜化贞时为相,化贞卒,嗣贼杀其子,簒蒙国,于唐昭宗壬戌天复二年十二月卽位,年四十二岁,国号大长和,仍都大理。明年,建元安国。后梁太祖开平丁卯元年,建普明寺。开平三年,铸佛一万尊,送寺祈福,为杀蒙氏八百人故也。开平四年八月,买嗣卒,在位八年,子仁旻立。
|
|-
|}
===Renmin 《仁旻 伪谥肃文太上皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|仁旻,后梁太祖庚午开平四年卽位,年二十二岁。明年,改元始元,又改元天瑞、景星、安和、贞佑、初历。末帝甲戌乾化三年,旻攻蜀。蜀高祖王建发兵拒之,旻兵大败,溺水使者万馀人。后唐庄宗癸未开同光元年,施宫寺灾,僧智照撰『封民三宝记』。同光二年旻以朱鬃白马求婚于南汉刘龑,龑以增城公主妻之。明宗丙戌天成元年八月,仁旻饵金丹,躁怒,常杀人,遂暴卒,在位十六年,子隆亶立。
|
|-
|}
===Longdan 《隆亶 伪谥恭惠帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Renmin 《仁旻 伪谥肃文太上皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|隆亶,后唐明宗丙戌天成元年卽位,年十二岁,明年,改元天应。明宗戊子天成三年,东川节度使杨乾贞入朝,弑隆亶而立赵善政,计亶在位二年。
|
|-
|按:郑氏大长和国,自买嗣簒位,起唐昭宗癸亥天复三年,讫后唐明宗戊子天成三年,传三世,共二十六年。
|
|-
|大天兴国一作兴源国。 一世
|
|
|}
==Dayining Generations《大义宁国 一世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Yang Qianzhen 《杨乾贞 伪谥肃恭帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|杨乾贞于后唐明宗己丑天成四年夺大天兴国赵善政之位,改国号曰大义宁国,建元兴圣,又改元大命。乾贞萂村人。今大理府宾川州所属地。母名弥彔,有美色,蒙隆舜私焉。有孕,适渔人杨氏,生乾贞,后又生诏。其父捕鱼,贞立船头,见水中有人龙衣冠冕,左右有凤鸟,白光拥护,乃呼父视之。父见是贞之影,大奇之。长仕郑氏,官至东川节度使。至是夺善政位而自立。贞在位,贪暴特甚,中外咸怨。后晋高祖丁酉天复二年,通海节度使段思平起兵讨之。贞遣弟杨诏等五人出拒。诏兵败,乾贞出奔。思平遂得位,寻赦其罪,废为僧。计贞在位八年。
|
|-
|}
==Dali Generations《大理国 传十四世》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siping《太祖圣神文武皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段思平,其先武威郡北人,世为南诏蒙氏将。唐元宗辛卯天宝十载,及甲午天宝十三载,唐再伐云南,云南王蒙
阁逻凤命世子凤伽异、大军将段俭魏迎战于点苍山及西洱河,两败唐兵。以功升俭魏为清平官,赐名忠国,寻拜相,六传而至思平。其母因过江,水泛触浮木,若有感而娠,生思平,并其弟思良。思平为幕览,小府副将也。常游山中,得为帝之谶,又每多异徵。时东川节度使杨乾贞之弟杨诏者已贵,闻而忌之,使人贼思平。思平逃匿于崇恩寺,在大理府城南九里。捕者追至,见蛛网盈寺门,不入,故得脱。后积战功,使为通海节度使。后唐明宗己丑天成四年,杨乾贞夺赵善政之位。受诏之谮,常欲除思平。平卜于秀山神祠,就其舅爨判自匿。后晋高祖丙申天福元年,乾贞索捕思平甚急。会善政臣守高方,素与思平善,密遣人招思平。思平与其弟思良、军师董迦罗走就之。皆裂冠,变姓名,为猎者,牵一犬至品甸波大村今大理府云南县地。宿旅舍。舍有戟,生牛革裹之,是夜风起,戟忽洞革出。思平惊曰:「是何銛利?得非神戟乎!」问主人曰:「戟何为?」曰:「以防夜耳。」曰:「防夜莫若犬。」遂以犬易戟去。行至叶镜湖,湖在大理府云南县地得神马。饥取野桃而食,核上有虫啮「靑昔」二字,思平解为十二月二十一日,意其吉兆。于是急趋而前,借兵于东方黑爨三十七蛮部,会于石城,今曲靖府是。以董迦罗为军师。兵集之期,适十二月二十一日也。所向皆克,遂进攻大理,讨干贞。时诏等陈兵据桥,军不能过。思平夜忽得三梦:人无首;玉瓶无耳;镜破。觉而告其下。迦罗觧之曰:君乃丈夫,去首为天;玉瓶去耳为王;镜破则无对者,此神示吉兆。是日,有被缨浣沙妇,指渡处曰:「人从我江尾,马从三沙矣,尔国名大理。」从之,乃得过江,击诏等杀之。乾贞闻诏等军败,出奔。思平卽位,时天福丁酉二年也,年四十四岁。建号大理国,建元文德,仍都大理。天福三年封董迦罗为相国,封高方为岳侯,分治成纪、巨桥等地。封爨判为巴甸侯。祠秀山神,免东方三十七蛮部徭役,赦国中凡有罪无子孙者。天福四年,赦杨乾贞罪,废为僧。一说乾贞败后,挈其妻子奔永昌郡。思平遣兵追之,至万剑树,乾贞自缢而死。思平俘其妻子亲属。帝好佛,岁岁建寺,铸佛万尊。后晋出帝甲辰开运元年帝崩,在位八年,子思英立。
|
|-
|}
===Duan Siyin 《文经皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siyin 《文经皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思英,后晋出帝甲辰开运元年卽位,明年,为出帝开运二年,改元文经。帝母杨氏桂仙娘没而为神,屡著灵应,封为楡城宣惠圣国母。是年,帝叔思良争位,废帝为僧,法名宏修大师。在位一年,叔思良立。一说思英素不肖,思平在日,常欲废之,不果。迨卽位,愈淫戏无度,群臣废之,而立思良。
|
|-
|}
===Duan Siliang 《圣慈文武皇帝 太祖之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Siliang 《圣慈文武皇帝 太祖之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思良,后晋出帝乙巳开运二年卽位,明年,改元至治。后周太祖壬子广顺二年,帝崩,在位七年,子思聪立。
|
|-
|}
===Duan Sicong 《思聪 伪谥至道广慈皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sicong 《思聪 伪谥至道广慈皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|思聪,后周太祖壬子广顺二年卽位,明年改元明德,又改元广德。宋太祖乙巳开宝二年,思聪卒,在位十七年,子素顺立。
|
|-
|}
===Duan Susun 《素顺》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Susun 《素顺》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素顺,宋太祖乙巳开宝二年卽位。明年,改元明政。先是,宋太祖丁卯乾德五年春,王全斌平蜀,还京师,请取云南,负地图进。太祖鉴唐之祸,以玉斧画大渡河为界,曰:「此外非吾有也。」由是段氏得据南诏,相安无事。太宗乙酉雍煕二年,素顺卒,在位十六年,子素英立。
|
|-
|}
===Duan Suyung 《素英 伪谥昭明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suyung 《素英 伪谥昭明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素英,宋太祖乙酉雍煕二年卽位。明年,改元广明,又改元明应、明圣、明统、明治。太宗至道二年,述『传灯录』。真宗己酉大中祥符二年,素英卒,在位二十四年,子素廉立。
|
|-
|}
===Duan Sulong 《素隆 伪谥秉义皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Sulong 《素隆 伪谥秉义皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素隆,宋真宗壬戌干兴元年卽位,明年改元明通。仁宗丙寅天圣四年素隆禅位为僧,在位四年。侄素贞真立。
|
|-
|}
===Duan Suzhen 《素真 伪谥圣德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suzhen 《素真 伪谥圣德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素真,宋仁宗丙寅天圣四年卽位,明年改元正治。仁宗辛巳庆历元年素真禅位为僧,在位十五年,孙素兴立。
|
|-
|}
===Duan Suxing 《素兴 伪谥天明皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Suxing 《素兴 伪谥天明皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Silian 《思廉 太祖元孙 伪谥兴宗孝德皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|素兴,宋仁宗辛巳庆历元年卽位,明年改元圣明,又改元天明。素兴性好游狎,广营宫室于东京,多植花草,于春登堤上植黄花,名绕道金棱,云津桥上种白花,名萦城银棱。每春月,挟妓载酒,自玉案三泉,溯为九曲流觞。男女列坐,斗草簪花,昼夜行乐。花中有素馨者,以素兴爱之,故名。又有花遇歌则开,有草遇舞则动,兴令歌者傍花,舞者傍草。盖亦花草之妖也。仁宗甲申庆历四年,素兴在位,荒淫日甚,国人废之,而立太祖曾孙智恩之子思廉。计兴在位三年。
|
|-
|}
===Duan Lianyi 《廉义 伪谥上德皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Lianyi 《廉义 伪谥上德皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|廉义,宋神宗乙卯熈宁八年卽位。明年,改元上德。遣使入贡于宋。熈宁十年,又改元广安,作八龙王会。神宗庚申元丰三年,杨义贞杀廉义而自立。计义在位五年,自义贞弑其主廉义而自立,簒位仅四月,鄯阐侯高智升命子清平官高升泰起东方爨僰兵,讨而诛之,立廉义之侄寿辉。
|
|-
|}
===Duan Shouhai 《寿辉 伪谥上明皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
===Duan Zhengming 《正明 思廉之孙 伪谥保定皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|寿辉,宋神宗庚申元豊三年卽位。明年,改元上明,以高智升为布燮,高升泰为鄯阐侯。是年,日月交晦,星辰昼见。寿辉因天变,遂禅位于思廉之孙正明。计辉在位一年。
|
|-
|}
==Da Zhongguo Generations 《大中国》==
===Gao Shentai 《高升泰 伪谥富有圣德表正皇帝》====
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Shouhai 《寿辉 伪谥上明皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|高升泰,宋哲宗甲戌绍圣元年,受大理国段正明之禅卽位。改国号曰大中国。明年,改元上治。升泰,岳侯高方之裔,大理点苍山莲花峰下芒涌溪人。将生,其父袭岳侯,智升往石云寺在点苍山白雪峰麓进香回,遇一老叟云:「尔家将生贵子,可速归。」智升至家,而升泰适生,心颇异之。及长,有材器,仕为清平官,兼九爽之事,誉望日重。思廉出游,猝遇烈风,吹踣其马。廉将坠,智深跃前扶之。廉德智升,赐以宫人及珠玉。杨允贤(判)〔叛〕,廉命智升讨之,以功加太保,封德侯,旋晋鄯阐侯,世袭。及杨义贞簒逆,智升令升泰起东方兵,诛义贞而立廉义之侄寿辉。辉以智升为布燮,升泰袭鄯阐侯。辉在位灾异迭兴,因禅位于思廉之孙正明。明为君不振,人心归高氏。遂请升泰为君,而正明禅以位焉。哲宗丙子绍圣三年,升泰在位二年,寝疾。遗命曰:「我之立国,以段氏之弱,我死,必以国仍还段氏,愼勿背我。」及卒,其子高泰明遵遗命,还位正明之弟正湻。段氏复兴,号后理国。高氏相之,政令皆出其门,国人称为高国主,段氏拥虚位而已。
|
|-
|}
==Houli Guo Generations 《后理国》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhengchen 《段正湻 大理国正明之弟 伪谥中宗文安皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正湻,宋哲宗丙子绍圣三年复得国,卽位,号后理国。以高泰明为相国,执政柄,高泰运为栅主。明年,改元天授。又改元开明,天政,文安,赦徭役。筑楚雄城,在今楚雄府城西北二里。以封高泰明之侄高明亮。徽宗癸未崇宁二年,遣高泰运奉表入宋,求经籍,得六十九家,药书六十二部。鄯阐李观音得来朝,进金马杖八十节,人民三万三千户。湻赐得八章礼衣,龙头剑,擢为安东将军。蔚按:蒙氏时有安东将军,季李珠所筑安东城,在今大理府赵州城东二里。缅人、波斯、昆仑三国进白象及香物。十月,彗星见西方,大疫。徽宗戊子大观二年,正湻禅位为僧,在位十二年,子和誉立。
|
|-
|和誉又名正严 封云南节度使大理国王,伪谥宪宗宣仁皇帝
|
|-
|和誉,宋徽宗戊子大观二年卽位。明年,改元日新。又改元文治、永嘉、保天、广运。七月中元节,各方贡金银、罗绮、珍宝、犀象万计,牛马遍点苍。徽宗辛卯政和元年,地大震,损十六寺。三十七部判叛〕,高相国泰明讨平之。使四子高明清居鄯阐镇守。政和五年,缅人进金花、犀象。政和六年。遣儒官钟震、黄渐赍敕褒高泰朋相国忠贞,封平国公。是年,遣使入贡于宋。高泰明卒,封国师。泰明生八子,高智昌以罪流死。其下伊、何二人谋为执仇,乘誉入寺进香,图弑逆,事露被收。誉嘉二人之义,赦之,为立义士冢。高泰运立,主国事。六月,三日并出。政和丁酉七年,命子紫琮充进奉使,入贡于宋。诏遣使册封誉为金紫光禄大夫、检校司空、云南节度使、上柱国、大理国王。徽宗己亥宣和元年正月,彗出,慕宁、远、矣、破、马等叛。三月,出师征之,兵败。三十七部蛮复叛。陷鄯阐,高明清死之。郡臣以高升泰侄商量成有德,请立为相,号中国公。徽宗丙午靖康元年五月,金星入月,大火,焚三千九百家。南宋高宗丙辰绍兴六年,王遣使贡象马于宋,广西经畧安抚使奏之,诏护送行在,优礼答之。绍兴十六年三月十四日,大雾,历二十四日方开。高宗丁卯绍兴十七年,王老,因诸子内争外叛、遂禅位为僧,在位三十九年。子正兴立。
|
|-
|}
===Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhengxing 《正兴又名易长 伪谥景宗正康皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|正兴,南宋高宗丁卯绍兴十七年卽位。明年,改元永贞,又改元大宝、龙兴、盛明、建德。高量成让相位与侄寿贞,退老楚雄城。人化其德,名城曰德江城。孝宗癸未隆兴元年三月,寿贞卒。寿昌立为中国公。孝宗壬辰乾道八年四月,重雾,十六日方开。正兴禅位为僧,在位二十五年,子智兴立。
|
|-
|}
===Zhixing 《智兴 伪谥宣宗功极皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixig 《智兴 伪谥宣宗功极皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智兴,南宋孝宗壬辰乾道八年卽位,明年,改元利贞。又改元盛德、嘉会、元亨、安定。遣李观音得等至广西横山砦今在广西南宁府江上。求市马。李观音得夺寿昌位,与侄贞明。阿机起兵夺贞明位,还寿昌。贞明遂据鹤庆,号明国公,伪谥义地威天聪明仁帝。高妙音自白崖起兵,据鄯阐。时有妙音之甥成贤、成正二人来谒,意在夺鄯阐。妙音觉之,与之盟于天王庙。二人口含丁香叶,出庙吐之曰:「盟非我也,叶也。」未几,二人起兵,方战,见白马将斩之。白马将,乃庙中二力士也。光宗庚戌绍熙元年,修十六寺。宁宗乙卯庆元元年,修龙首、龙尾二关,三阳城。宁宗庚申庆元六年,智兴卒,在位二十八年,子智廉立。
|
|-
|}
===Zhilian 《智廉 伪谥享天皇帝 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhilian 《智廉 伪谥享天皇帝 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智廉,南宋宁宗庚申庆元六年卽位。明年,改元凤历。又改元元寿。使人入宋求『大藏经』一千四百六十五部,置五华楼。宁宗乙丑开禧元年,智廉卒,在位五年。弟智祥立。
|
|-
|}
===Zhixiang 《智祥 伪谥神宗皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Zhixiang 《智祥 伪谥神宗皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|智祥,南宋宁宗乙丑开禧元年卽位。明年,改元天开。又改元天辅、仁寿。征三十七蛮部,至寻甸平,河水绝流。理宗丁酉嘉(禧)〔熙〕元年,封高隆鄯阐王,以高泰祥为相国,以光日为演习。大府主将也。举贤育才,时和年丰,称治国焉。理宗戊戍嘉(禧)〔熙〕二年,智祥禅位为僧,在位三十三年。子祥兴立。
|
|-
|}
===Xiangxing 《祥兴 伪谥孝义皇帝》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|祥兴,南宋理宗戊戌嘉(禧)〔熙〕二年卽位。明年,改元道隆。理宗甲辰湻佑四年,蒙古兵出灵关,伐大理。祥兴遣将高禾迎战,禾败死之。段连佑归宋,宋遣使吊祭,致经书、银缎,为高禾拒蒙古兵战殁也。理宗辛亥湻佑十一年,为蒙古宪宗蒙哥之元年,祥兴卒,在位十三年。子兴智立。
|
|-
|}
===Xingzhi 《兴智 赠天定贤王》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Xiangxing 《祥兴 伪谥孝义皇帝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|兴智,南宋理宗辛亥湻佑十一年卽位。明年,改元利正。又改元兴正、天定。是年,南宋理宗壬子湻佑十二年,为蒙古宪宗之二年七月丙午,太弟忽必烈等奉宪宗命,伐大理。受制专征,以大将兀良合台总督军务。八月,次临洮,由六盘逾吐番,凡行山谷二千馀里无人之境。先遣王律术、王侯、王鉴来谕大理,道阻而还。九月,次忒刺,分三道进。兀良合台率西道兵,由晏当路,诸王抄合也只烈率东道兵,由白蛮,忽必烈率劲骑,由中道。乙巳,至满陀城,留其辎重。十月,过大渡河。十一月,至白蛮打郭砦。十二月,再遣三使入大理,招兴智,皆被杀。智命相国高泰祥守金沙江,与蒙古将伯颜不花、虎儿敦等相持。忽必烈命众以革囊潜济江,破吐番,渉摩荻,出石门,所过降之,遂进薄大理。泰祥回军,奉兴智拒战,不胜。蒙古兵入上关。智奔鄯阐,泰祥退至统失逻先为姚安府,府裁,今为姚州,属楚雄府。募兵于三十七部未至,而蒙古兵已长(躯)〔驱〕而入,泰祥被执大理,不屈,乃斩于五华楼下。祥临刑叹日:「段运不回,天使其然,为臣殒首,盖其分也。」时白日正午,忽云起雷震,天鼓大鸣,忽必烈曰:「忠臣也。」泰祥夫人段氏,抱孤儿高琼、高长寿等伸诉。忽必烈目儿顾左右曰:「此忠臣后,宜善视之。」许以世其官。高泰祥为大中国升泰九世孙。遂灭段氏而有其地,得五城、八府、蛮部三十有七。乘胜入吐蕃,降其酋。明年,南宋理宗癸丑宝佑元年,为蒙古宪宗之三年,忽必烈班师。大将兀良合台拔鄯阐,获兴智以献,宪宗命赦之,封为摩诃罗嵯,管领八方,仍守其地,世袭总管。计兴智在位二年,宪宗授兀良合台银印,加大元帅,还镇大理。以刘时中为宣抚使,与兴智同安辑焉。南宋理宗庚申景定元年,为蒙古世祖忽必烈之中统元年,兴智率其季弟段信苴福北行,朝于世祖,道卒。计为总管又七年。蒙古遣使来祭吊,文曰:「段氏承八姓正位,归有新统,旣顺天时以向义,犹得国王以栖迟,实国家待远方之仁,由贤王能左右之义。受命以来,朝夕愓励。赖尔维勤,用征不廷,正当共享亨嘉之运,胡意遽罹霜露之灾,呜呼!当朕未集大统,乃为叔季之国。兹旣承景运,合正君臣之称,参录不替于子孙,诏禄宜昭于典册,特遣太常省祭,赠为后理国向义天定贤王段公,尚赖神麻,永保祚土。所赠王爵,后不为例。」明年,南宋理宗辛酉景定二年。为蒙古世祖中统二年,世祖敕授王之弟信苴日则段实。总管守大理。命之曰:「向率我以临尔境众据国人之请,因从城下之盟,款附而忠勤益著。庸示至优之礼,以彰同视之仁。可革帝号,锡以虎符,总理大理、鄯阐、威楚、统矢、会川、建昌、腾越诸郡,抚恤已附之民,招集未降之国,卿其勉之。」
|
|-
|按:段氏后理国,自段正湻复国,起宋哲宗丙子绍圣三年,讫南宋理宗癸丑(实)[宝应元年,传八世,共一百五十七年。
|
|-
|总计段氏大理、后理二国,传二十二世,共三百零十五年。
|
|-
|增订南诏野史下卷
|
|-
|}
==Hu Weixianmen Wing DynastyRevisions《大淸湖南武陵胡 蔚羡门订正》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hu Weixianmen Wing Dynasty Revisions《大淸湖南武陵胡 蔚羡门订正》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段氏总管除天定贤王段兴智受封总管七年外起段信苴日卽段实讫段世,共袭十二世。
|
|-
|段实一名信苴日。
|
|-
|段实,于南宋理宗景定二年,蒙古世祖之中统二年,入朝于世祖,袭总管,赐虎符,领大理、威楚、鄯阐、统矢、会川、建昌、腾越等城,自万户以下皆受节制。南宋理宗癸亥景定四年,为元世祖中统四年,蒙古设大理都元帅府,命昔撒昔总制鬼国、大理两路。理宗甲子景定五年,为世祖至元元年,妖僧舍利威结威楚、统矢、鄯阐及三十七蛮部叛,实讨之,大破于威楚、统矢、安宁等处,又破释多罗十馀万众于洱河海口。南宋度宗丁卯咸湻三年,蒙古世祖至元四年,以皇第五子忽哥赤为云南王,镇大理。至元五年,忽哥赤受命与安南国王讨占城、真腊。南宋度宗咸湻六年,世祖至元七年,置大理路军民总管府。南宋度宗辛未咸湻七年,为蒙古世祖至元八年冬十一月,世祖改国号曰元。云南王忽哥赤为元帅寳和丁所杀。元伐金齿、缥甸,降之。分大理三十七蛮部为南北中三路,遣阿鲁忒儿宣抚大理,招谕诸蛮。南宋度宗辛未咸湻十年,元世祖至元十一年,封宗室脱忽鲁为云南王,命云南行省平章政事赛典赤建云南各衙门。妖僧舍利威复叛,实遣石买等诡为商贾,执贽往见,挺矛鏦杀之,枭首于市。元世祖赐实白金及金织纹衣。南宋恭宗丙子德佑二年,元世祖至元十三年,授实为大理等处宣抚使。缅甸叛犯永昌,元命纳速剌丁赛典赤之长子,后封延安王。伐之,破砦三百,因天暑,还师。复命诸王相吾答儿、右丞太卜、参政也罕的斤伐缅,招讨使法烈先驱造舟于阿若、阿禾两江,进拔江头、太公二城,金齿、乌蒙皆降。南宋帝昺庚辰祥兴二年春二月,为元世祖忽必烈之至元十七年,宋亡,元入主中国。以忽哥赤之子也先帖木儿为云南王。命忙兀鲁徵八百媳妇。缅败忽都帖木儿兵,诏思、播土官田、杨二处兵助讨之。命征缅官番听云南王节制。至元辛巳十八年实率子阿庆入觐,元祖嘉其忠,晋大理、威楚、金齿等处宣慰使都元帅。升辞,复拜为云南诸路行中书省参知政事,留阿庆宿卫东宫。至元壬午十九年,实受敕迎征缅师,于金齿病卒。诏以其弟忠为大理宣慰使兼军民万户府,赠实为武定公。实任职二十二年。
|
|-
|}
===Duan Zhong《段忠 实之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zhong《段忠 实之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段忠,元世祖癸未至元二十年袭。是年,忠随元元帅阔木征芒部、两林蛮及会川等处,破贼立功,元授忠为善阐酋,赐虎符。元置邦牙宣慰司于蒲甘城,命云南王也先帖木儿率招讨使怯烈总兵三千往镇之。忠奉云南王命伐武定。冬十二月忠卒,以实之子阿庆为大理金齿等处宣慰司都元帅、佩金虎符,封宣武将军,晋镇国上将军,尚公主。遣归,复授云南行省参政。忠任职一年。
|
|-
|段庆卽阿庆。实之子
|
|
|-
|段庆,元世祖甲申至元二十一年袭。至元二十五年以云南王也先帖木儿移镇大理,进封营王。至元二十七年冬十月,封皇孙甘剌麻为梁王,镇云南。至元二十九年改封梁王甘剌麻为晋王,镇北边。至元三十年,封甘剌麻之子松山镇云南。至元三十一年世祖崩,孙铁木耳立,是为成宗。成宗丙申元贞二年,置彻里路,卽车里军民宣慰使司。令与八百犬牙相制。秋八百叛命,也先不花征之。成宗己亥大德三年,云南水西土官宋隆济叛,贵州知州张怀德战死。云南行省麻九儿讨之,追杀贼首撒月,斩首五百级。庆奉敕征交趾,平之。入朝,带僧左黎同往,适成宗手疽甚,黎以法水洗之,立愈。帝欲试其术,乃掘地窖,令八人潜其中击鼓,佯云有怪,召黎治之,黎行法,顷之不闻鼓声,启窖视之,则八人已死。帝敬其法,封为国师。大德四年,缅人僧哥伦作乱。缅酋执其兄阿散哥也,寻释去,阿散乃率其党杀酋。酋次子奔诉京师,诏遣薛超兀儿率行省兵讨之。大德五年,金齿、八百叛,不输粮,杀官吏,元命右丞刘深、哈剌带、郑佑等征之。刘深协求水西土妇节金三千两、马三千匹,土官宋隆济遂叛,围深等于穷谷中,梁王阔率兵救,解之。冬,云南地大震,御史陈天祥谏伐西南夷,不报。大德七年,罢徵八百,免右丞刘深官,收符印。左丞相哈剌哈孙议深徼名首衅,丧师辱国,劝帝诛深,遂杀之。深卽往以兵逼南宋帝昺于谢女峡者。大德八年,立平云南碑于点苍山。顺元宣抚宋阿重获其叛叔宋隆济,朝命升职,赐衣一袭。滇池有蛟,化少年淫妇女,有神僧赵伽罗者,命黑胡神擒之,至噀水见形,斩之。神卽土主也。成宗丙午大德十年,罗雄土官阿那龙少叛,据越州。今在曲靖府南六十里,本唐之悦州,其川名鲁望。命右丞汪惟能讨之,追至曲靖,斩那龙少。是年庆卒,弟正袭。庆任职四十三年。
|
|-
|}
===Duan Zheng 《段正 庆之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Zheng 《段正 庆之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段正,元成宗丁未大德十一十年袭。正招蒙化山中生爨入籍。元授正为参政,仍大理军民总管。晋宁建盘龙寺。有神僧觉照者,段氏族人,号莲峰,游东山见龙潭绝幽胜,乃咒龙令徙。龙去,水涸,建寺其地。蔚按:莲峰僧于顺帝之至正末入定塔中。武宗海山戊申至大元年,沾益、乌蒙地大震,三日并出。至大二年三月,梁王松山风疾,诏封皇第七子西平王奥鲁赤之孙老的代镇云南。仁宗爱育黎拔力八达壬子皇庆元年,诏罢徵八百。皇庆癸丑二年冬十月,学士李孟奏准开科,三年一试。时九成殿生芝,天下共取士三百名,每榜云南取五名,内蒙古二名,塞目二名,汉人一名。以八月二十日初场,二十三日次场,二十六日三场。仁宗乙卯延佑二年十一月,封武宗子和世珠为周王,出镇云南。仁宗丙辰延佑三年,正卒,庆子隆袭。正任职十年。
|
|-
|}
===Duan Long 《段隆 庆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Long 《段隆 庆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段隆,元仁宗丁巳延佑四年袭,元授隆为大理军民总管。延佑己未六年,云南行省奏:「夷俗:凡土官无子,卽以妻代管。请听之。」诏曰可。延佑庚申七年,封甘剌麻孙王禅为云南王。英宗硕德八喇癸亥至治三年,进封王禅为梁王,封其子帖木儿不花为云南王。是年八月,诸王按梯不花、索孛罗、月鲁铁木儿等及御史大夫铁失弑帝于南坡行幄。九月泰定帝也孙铁木儿卽位。十二月流诸王月鲁铁木儿于云南。泰定四年,洱海有水怪,牛猪形短项金睛,兴水为患。大理一道人向隆取黄金百镒,隆与之,乃以金为索,沉于河,怪卽日徙于浪穹宁河。按:『六诏灵源记』云:宁河无底。明宣德间,有渔人李应捕鱼,网得金索,旋得旋断。一渔者诫之曰:可止矣。应贪甚,尽曵之,索将穷,惊其怪,风浪陡作,应并舟倶溺,至今为患。文宗图帖睦尔庚午至顺元年,以豫王阿忒思纳失里出镇云南。诸王秃坚据云南叛,杀廉访使,自称云南王。元诏枢密帖木儿讨之,发朵甘思等处兵分道进。至四川建昌、罗罗斯,权寻甸府官曲术集义兵讨秃坚,败贼伯忽于马龙,追至金马山,擒之。是年,隆以老退闲,子俊袭。隆任职十四年。
|
|-
|}
===Duan Jun 《段俊 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Jun 《段俊 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段俊,元文宗辛未至顺
二年袭,元授俊为云南行省平章。乌撒部奏:「云南驿输征甚苦,愿属四川。」奏下参政贾敦煕议之。是年俊卒,族弟义袭。俊任职一年。
|
|-
|}
===Duan Yi 《段义 俊之族弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Yi 《段义 俊之族弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段义,元文宗壬申至顺三年袭,朝命止授为承务郞、蒙化州知州。是年阿容禾叛于中庆路,义助兵讨平之,以功升参政。九月,乌蒙土官禄馀寇顺元,云南行省遣都事那海奉诏往谕,授馀为参政。冬十一月,云南行省奏:「国马每月上寅日给盐,饮之无病。因伯忽反,盐不给,马多死。」诏四川以盐给之。是年义卒,隆子光袭。义任职一年。
|
|-
|}
===Duan Guang 《段光 隆之子》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Guang 《段光 隆之子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段光,元顺帝妥权帖睦尔癸酉元统元年袭,朝命止授为承务郞、蒙化州知州。番兵作乱,孟州判官李生等守白崖,値高蓬新败番兵,乗胜长驱破河尾关。光率兵大败之,斩馘无算,河水尽赤,为之不流,得战马甲仗数千。光赋凯旋诗云:「雨锁金门百里城,神州花木管弦声。齐天苍岳参云峻,界地楡河射月明。梵宇三千朝呗朗,招提八百夜香淸。恒沙善果心无异,何患愚夷治不平。」元统二年,光以先与梁王把匝剌瓦尔密孛罗因分域构隙,至是遣张希矫、杨生、张连等发兵攻梁王,不胜,士卒多死,希矫等遁归。顺帝至元元年,梁王侵大理,光自督兵与战于昆弥山卽今大理府赵州南之定西岭,梁王大败。凯还,侍翰杨天甫作『长寿仙曲』上光云:「蒙氏钟王气,驾驭万乗唐。南龙光对北金锁,东洱水朝西点苍,四面固金汤。江绿春杨柳,岸淸古雪霜。屏障龙吟梅破王,竹林鹤立菊舒黄,四季景如妆。此生诚庆幸,有眼睹明王。」光大喜,设宴谢之。顺帝辛巳至正元年,玉案山生水小赤犬,群走如飞。段雄正曰:「此天狗星所化,大兵压境之兆。」经二年方绝。又下铁雨山石,民屋倶穿,人値之多击死。梁王刺杀段氏臣高蓬。先是,光令蓬督兵罗那关,梁王使人暗招之,蓬不从,答之诗云:「寄语下番梁王翁,檄书何苦招高蓬,身为五岳嵩山主,智过六丁缩地公,铁甲铁盔持铁槊,花鞍花索驭花骢,但挥眼前黄石阵,孤云击破几千重。」梁王忌之,乃重贿蓬庖人,刺杀之。顺帝甲申至正四年,光卒,弟功袭。光任职十二年。
|
|-
|}
===Duan Gong 《段功 光之弟》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Gong 《段功 光之弟》
|-
! scope="col" | Original
! scope="col" | Translation
|-
| 段功,元顺帝乙酉至正五年袭,朝命止授为承务郞、蒙化州知州。至正六年,木邦夷思可叛。元命河南参政贾敦熈督师会云南路兵讨之,以功为前锋,屡战克捷。叙功升功为大理总管,寻升参政。至正癸巳十三年,红巾贼流入建昌,旁掠云南边地。阿次失里讨平之。至正十五年三月,元窜太师脱脱于云南。中书右丞哈麻、御史袁赛因不花等陷之也。十二月,左丞相哈麻矫诏杀脱脱于阿轻乞之地,时年四十二岁,天下寃之,两日相荡。是年,梁王宫中有怪。左右启王曰:「盘龙寺僧莲峰,能驱邪。」王礼请至,行法,怪息。王喜,留宫中供养,至夜密问之曰:「今中原纷乱,后事如何?」僧曰:「二十年后祚尽矣。」至期明师果南下。至正十六年,黑井有毒龙,兴水溢井,损民居。莲峰建寺,书铁符沉井中,害息。又宁州有虎咥人,莲峰洒净水驱虎远去,明日虎果去。七月,元以四川廉访使蒲机云为云南诸路廉访使。至正癸卯二十三年三月,红巾贼明玉珍率其党李芝麻同弟明二等将兵三万攻云南。入金马山,梁王把匝剌瓦尔密奔楚雄。四月,梁王发中庆,至石碑村,红巾入城,梁王闻报,感而自咏云:「野无靑草有黄尘,道侧仍多战死人。触目伤心无限事,鸡山还似旧时春。」随命陜西参政车力帖木儿拒之,擒明二。时四方乘机窃发,群盗满山,功乃谋于外外杨智,字渊海者,同稽于卜,卜告吉。又得子宗、子秀兵至,功遂从梁王进兵,吕合败红巾于关滩江。红巾收合馀衂再战,杀段氏之骁将铁万户,又有江心庄人杨胜力战死。梁王为文祭之曰:「生于江心,为我门户,我旧不识,用备其数,能卫社稷,春秋与之,惟忠惟烈,尔则处之,噫! 义重于生,生必有死,丈夫之事,识者有几。愿气作山河,魂归苍洱,英杰复生,以保我之昆裔。」祭毕而哭,一军感泣。是夜,红巾屯古田寺,功令人焚寺,红巾乱,以铁骑捣之,死者大半,追至回蹬关,又大破之。副将谢得攻安宁,功力战杀二千人,谢得奔中庆。于夜功谍者拾得一书,乃明玉珍母寄珍书云:「自尔去后,老母平安,征云南务要得之。兵粮不足,随后发来,不可轻回。」功阅书,令杨智易其辞曰:「自尔去后,老母不安,臣下乱法。又闻中国人马入界,非止一处。尔须急回,迟则难保。大夏天统元年,太后平安书。」遂募亡命者赍书往。有打金箔人陈惠愿行,惟虑老母在。功许养其母,惠遂往。玉珍得书,挥之去令回报,迨夜,玉珍旋军。功追摄至七星关,大破其众。梁王回中庆,奏升功为云南行省平章,以主阿妻之。一日主与宴酣,歌『金指环』云:「将星挺生扶寳阙,寳阙金枝接玉叶。灵辉彻南北东西,皓皓中天光映月。玉文金印大如斗,犹唐贵主结配偶。父王永寿同碧鸡,豪杰长作擎天手。」功久居梁王府,嫡妻高夫人在大理作词寄功云:「风卷残云,九霄冉冉逐。龙池无偶,水云一片绿。寂寞倚帏屏,春雨纷纷促。蜀锦半间,鸳鸯独自宿,珊瑚枕冷,泪滴针穿目,好难禁。将军一去无度,身与影立,影与身独,盼将军只恐乐极生悲寃鬼哭。」至正二十四年春,功还大理,至洱海金鸡庙,夫人遣人适来报生子,功喜,作歌曰:「去时野火通山赤,凯歌回奏梁王怿。自冬抵此又阳春,时物变迁今又昔。归来草色绿无数,桃花正秾柳苞絮。杜鹃啼处日如年,声声只促人归去。」至正二十五年,功思新婚,欲往梁王所。员外杨智于壁间题诗留功,张希矫亦上书留行。功曰:「寳剑岂埋荒土物耶!」矫苦留不已,功怒流矫于顺州。顺州,前明属鹤庆府,今裁在永北厅城西一百二十里。唐时地名牛睒。遂与夫人别,倍道至中庆。梁王疑之,私议曰:「平章此来,得无有吞金马咽碧鸡之心。」其下有姤功者复谗构之。王与阿谋欲以孔雀胆毒功。私泄之,愿与西归。(今)〔令〕功周防,功不信。是年滇大旱,人言定远有禅僧连精,通瑜伽秘密敎,能降龙役鬼。启梁王,王遣人迎至,僧设坛祈雨,咒毕,钵中出一小蛇,遂大雨。王大喜,酬以金帛,辞,役鬼荷担,行空而去。顺帝丙午至正二十六年春,中原盗蠭起,临安廉访使支渭兴三恳休,梁王不允,遣使金闾慰,赐羔羊。渭兴自咏曰:「年高才薄忝淸流,欲挂朝冠不自由。且喜壮怀无诉谍,从敎行道有鸣驺。故园花木无由见,何日干戈定得休。九十春光还欲暮,放怀聊与醉金瓯。」重午节,梁王宫门外观射柳,随侍文武赐宴,支渭兴诗贺曰:「平地如席草如茵,少年将军酒半醺。朱鬣马穿人影过,绿杨枝逐箭锋分。旌旗色映宫前瓦,鼓角声飘海上云。何日鲸鲵倶授首,普天偃武共修文。」七月,梁王偕功东寺讲经,至通济桥,功马逸,王乘机令番将掖杀之。阿闻之恸哭曰:「昨灯下吾犹言,云南施宗施秀二人以胭花殡命,奈何不信。今果然。」命侍女锦被包之,以王礼敛送归大理。诗挽之云:「吾家住在雁门深,一片间云到滇海。心悬明月照靑天,靑天不语今三岁。黄嵩历乱苍山秋,误我一生踏里彩。华言锦被也。吐噜吐噜段阿奴,施宗施秀同奴歹。云片波潾不见人,押不芦花华言起死灵草也。颜色改。肉屏华言骆驼也。独坐细思量,西山铁立华言松林也。风潇洒。」功丧旣行,阿遂不食死,以殉焉。其家臣员外杨智渊海闻而亦死之。智临死诗曰:「半战功名百战身,不堪今日总红尘。死生自古皆由命,祸福于今岂怨人。蝴蝶梦残滇海月,杜鹃啼破点苍春。哀怜永诀云南土,絮酒还敎洒泪频。」明洪武间都督冯诚经功墓,亦歩原韵题诗,吊之曰:「田横五百剑孤身,转眼关山半委尘。北阙玉楼召客记,南滇粉壁说诗人。苍山夜黑云遮月,金马天寒鸟怨春。共惜平章迷绣幕,至今愁听水声频。」功死,长子宝自称平章,立于大理。功任蜀二十二年。
|
|-
|}
===Duan Bao《段宝 功之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Bao《段宝 功之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段宝,于元顺帝丙午至正二十六年八月,因父功为梁王所害,遂自称平章,立于大理。是年,梁王开科取士,以支渭兴主试事。梁王复听谗,诛锄段族。梁段旣结仇,数数构兵。鹤庆知事杨升调和二家,自金鸡庙分界,南属梁王,北属段氏,力劝息兵,百姓稍宁。至正丁未二十七年四月,梁王生日,群臣称贺。王宴于昆明池上,省宪官献诗曰:「贤君添算宴嘉宾,幄殿先施巨海滨。万里晴天开绵绣,一川芳草踏麒麟。笙歌暖送金杯酒,铠仗寛围玉佩人。醉饱百官咸稽首,愿王高寿过千春。」中庆路土主庙圮,梁王重修,立牌纪事。先是,至正十二年庙为耆民杨光所修。至二十三年红巾贼入滇,陷中庆,毁民居,庙亦被焚。梁王欲并段氏,遣人剌宝,弗得。又令平章矢剌七攻大理,皆不克。乃遣使通好,奏授宝为云南右丞,以和之。红巾复入滇,梁王命叔铁木的罕赍敕借兵于宝,宝答书曰:「杀虎母还喂虎子,分狙栗自诈狙,公假途灭虢,献璧吞虞,金印玉书,设钓鱼之香饵,绣阁艳女,备揜雉之网罗。况平章已死,只遗一奴一獒,奴可配阿妃,獒可配华黎氏。二事许诺,当借大兵。不然,金马山换作点苍山,昆明海改作西洱海,兵来矣。」书后又附一诗云:「烽火狼烟信不符,骊山一举任枝梧。平章枉挂红罗帐,员外空题粉壁图。凤去岐山祥兆隐,麟戕大野瑞光无。自从界限鸿沟后,成败兴亡不属吾。」梁王读而深恨之。是年,明太祖取燕京,元顺帝北遁,元亡。明太祖戊申洪武元年,梁王复通好于宝,辞甚卑逊,宝许之和。时有蛮舍兴者,自元江攻入鄯阐,王惧欲出奔,宝以唇齿之故率兵救之,击走舍兴。王德宝,升为武定公。敕曰:「段宝归附而来,忠勤懋著,父子秉忠,征讨克捷,乃于戎马倥偬之中,干戈纷扰之际,不第远朝且兼平乱。宜示至优之数,以彰匡济之勋,兹特升宝为武定公,仍总管大理军民府。尔其不负初心,永保世爵,以光大尔赤城于无穷。宣光元年敕。」云云。宣光乃故元顺帝太子立于应昌年号也。太祖洪武辛亥四年,宝降于太祖,上奏云:「臣闻有天下者为天下之主,有列土者为列土之君。卑臣宝虽隔万里之遥,每切中原之向。大理有二帝三皇之后,一方九姓之传,汉晋六朝以来,大蒙国受封于前唐,残唐五季而终,二理国继守于两宋,臣祖思平等恪共藩复,贡礼屡修于中土,华风远畅于边隅。迨至故元,不尚仁义,专事暴残。顺帝已遁北方,梁王犹祸鄯阐。迩闻明主奉天承运,御极南京,中原太平,边徼宁乂。意者中国有圣人,履尭舜之正统,陋汉唐之浅图,天时人事然也。或命臣依汉唐故例,岁贡天朝,或仿元代职名,俾守旧土。庶深谷回阳,幽扄照日,八方浴德,六合同春,垂怜边境,救恤一方。欲修进贡,恐触明威,合待事体之定,专候圣旨之颁,谨此。」专差段贞、王伯鹘驰奏以闻。太祖诏谕答之。洪武五年,宝女兄名羌娜,小名僧奴,又名宝姑者,适建昌土官阿黎。先是,羌娜绣一旗,至是将嫁,以旗付宝嘱曰:「母常语我云尔父为梁王所害,必当报仇,惟望尔辈长大。我闻母言,故绣此旗已五年矣!今我嫁至夫家,收拾建昌、东川军马,飞报若到,女急来应,愼勿违焉。」临行,又以二诗别宝云:「珊瑚钩起出深闺,满目潸然泪湿衣。氷鉴银台前长大,金枝玉叶下芳菲。鸟飞兔走频来往,桂秀梅香不暂移。惆怅同胞未忍别,应知恨重点苍低。」「何彼秾兮花正红,香车独去洱河东。鸿飞雪岫难经目,风刺霜林易割胸。云白天高连水远,月新春叠与秋重。一作闺里绣旗寃父魄,天边提剑属儿曹。泪珠恰似通宵雨,千里关山几处逢。一作须知恨重苍山小,回首寒云千万重。」洪武辛酉十四年四月,国中巫女歌曰:「莫道君为山海主,山海笑谐谐。园中花谢千万朶,别有明主来。」数日,宝卒,子明袭。宝任职十四年。
|
|-
|}
===Duan Ming《段明 宝之子 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Duan Ming《段明 宝之子 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|段明,明太祖洪武辛酉十四年四月袭,梁王授明为宣慰使。九月,明太祖命颖川侯溥友德,列侯曹正、王弼、金朝兴,都督郭英、张铨等,率师三十万征云南。帝出饯于龙江。友德至湖广,分遣都督胡海洋、陈桓等领兵五万,由四川永宁趋乌撒。友德等率大军由辰沅趋贵州。进攻普定,擒土酋安瓒,诸苗蛮犵狫闻风迎降。十二月,溥友德等兵至普安,攻下之,进至曲靖。先是,梁王把匝剌瓦尔密遣其司徒平章达里麻将精兵十馀万屯曲靖,以拒明师。沐英曰:「彼谓我师疲于深入,未有虞心,乃可破也。」友德然之,遂倍道进师。将至白石江,忽大雾四塞,冲雾及江而上。顷之雾雾,则两军相望,达里麻见之大惊,以为神军飞至,拥军阵于南岸。沐英分遣一军,沂流潜渡,出其阵后,吹铜角,树旗帜,为疑兵山谷间。达里麻急撤阵后,军以御之,上军阵乱。友德等趣师济江,一涌而渡,旣渡,整列进战。敌众披靡,生擒达里麻,横尸十馀里,俘其众二万人,友德悉慰遣之。友德进击乌撒,分遣沐英等趣云南。梁王闻达里麻破,弃城走晋宁州,忽忽纳岩,寻入滇池岛中,先缢其妃,自饮药不死,投水死之。父老收塟云南城西三十里浄耳山,土人立庙妙音寺侧。后至嘉靖间,拆庙材修社学,乃因旧址为小寺祀之。云南右丞观音保以城降。英等入城,秋毫无犯。收梁王金印并符信图籍,安抚其民。友德亦自曲靖循格孤山而北,以应永宁之兵。时元右丞实卜闻胡海洋等进自永宁,乃聚兵赤水河,以拒之。海洋等造木筏,夜半济河,而友德亦至,实卜遁去。友德令将士于乌撒筑城,版锸方具。蛮众复合,斩首三千馀级,馀众溃散。遂城乌撒,得七星关,以通毕节。又克可渡河,于是东川、乌蒙、芒部诸蛮震惧,望风降附。先是,洪武壬子五年正月,帝遣翰林待制王禕、行参政吴云持诏谕云南梁王,令奉版图来归。梁王初不从,后有降意。至洪武六年十二月,会元太子爱猷识里达刺立于汉北,使侍郞脱脱征饷于云南,脱脱觇知梁王有二心,因以危言逼王,杀使臣以绝其念,王遂杀禕,父老收尸塟地藏寺北。吴云奉使时,会梁王遣铁知院等二十人使沙漠,为边将所获,帝乃释二十人,令与云倶行。至沙塘口,二十人谋曰:「吾等奉使不达,被执而还,罪必死。」乃说云令胡服编发,诈为元使。又逼令改制书,共给梁王。云不从,以死自誓,亦被害。梁王遣人收云骨,塟给孤独寺,及事闻,帝震怒,故有是役。按:王禕字子充,浙江金华府义乌县人。建文时赐谥文节,永乐登极,凡建文设施尽革,遂削禕谥。后至正统中,义乌县丞刘杰奏请,加奉使云南死节臣恤典,禕赐谥文忠。吴云字友云,江苏常州府宜兴县人。至弘治中,赠谥忠节,并祀云南,敕赐为二忠祠。是年冬十二月,明卒,叔世袭。明任职一年。
|
|-
|段世 宝之弟,明之叔
|
|-
| 段(氏)〔世〕,明太祖壬戌洪武十五年袭。二月,世闻鄯阐破,梁王已死,又以沐英等兵略寻甸、临安、澄江、元江、楚雄、洱海,次第皆下,进逼大理,乃遣使致书,请依唐宋故事,奉正朔为外臣。友德不听,答书谕令速降。凡三致书,世怒,遂遣都使张元亨、州判李洪赴军前下战书。畧云:「鄯阐危甚登天,大理险倍投海。英如汉武,昔战仅置益州;雄若胡元,设官止于中庆。取之易而守之难,莫若依吾请乞册封,定为进贡,始为良策。吾实武人,不通经史,前代得失则餍闻也。恭惟麾下振耀皇威,功不亚于孔明,才克比于方叔。涤山川之旧染,历代所未有也。况吾与尔旣无杀父之仇,又无财债之怨,无故交战,真乃不祥。尔屯威楚,彼处之民有何罪焉?若耗人之食,是绝其命;取人之财,是刳其心;摅人妻女,是乱人伦,则吾之应,不得已也。爰念尔等皆中国之人,其中岂无一二达士。得此何益?不得何损?西南之地,号为不毛,易动难安。今春气渐暄,烟瘴渐起,不须杀尔,四五月间,雨霖河泛,尔粮尽气敝,十散九死。形如鬼魅,色如黑漆,欲活不能,汝之进退狼狈矣。莫若乘此,天晴地乾,早寻活路。宁作中原鬼,莫作边地魂,尔宜图之。后理国段明顿首。」书后继一诗云:「长驱虎旅势威宣,深入不毛取暴残。汉武故营旗影灭,唐宗遗垒角声寒。方今天下平犹易,自古云南守独难。拟欲华夷归一统,经纶度量必须寛。」友德、英等览书大怒,拘其使。左副将军蓝玉等率师径进,兵至品甸,世恃田庵和尚有术,列兵五万扼下关。沐英自将攻之,不克。乃命王弼,率兵出洱水之东,趋上关,英以兵缀下关,为犄角势。别遣胡海洋将一军夜度,从石门间绕道出点苍山后,縁崖而上张旗帜。迟明,英先驱,渡河斩关而入,海洋之师亦从山而下,腹背夹攻。世众惊溃,拔其城,世就擒,并执明之二子苴仁、苴义,时二月二十三日也。于是沐英等分兵取鹤庆、丽江,破石门关,荡金齿,所有摩、和泥、车里、品缅等部相率归附。又略建昌,故元平章月普帖木儿降。闰二月,赐云南各土官冠带及诰敕,使任本州岛知州等官。四月,乌撒、东川、芒部诸蛮复叛,溥友德、沐英会兵进讨,斩首三万馀级,诸蛮来降,云南悉平。以乌撒、乌蒙、芒部地近四川,分隶之。九月,土官杨苴等叛,紏众至二十万,攻云南城。都督谢熊、指挥冯诚婴城固守。沐英自乌撒移兵讨之,斩首六万馀级,擒四千馀人,诸部悉定。洪武癸亥十六年二月,故元右丞普颜笃同土酋高大一作天惠叛,据佛光砦。蔚按:佛光砦卽佛光山,山半有洞,可容万人。又名一女关。昔诸葛武侯曾擒孟获于此。在大理府浪穹县东二十里。也先不花叛,据邓川州。溥友德率郭英平之。又定蒙化州,过金沙江,攻北胜府,今永北厅。擒故元平章隔生。于是丽江府、拒津等州皆平,前后斩首一万三千级,蛮民降者四十万户。帝遣耿炳文谕溥友德、蓝玉等班师,沐英留镇云南,别命列侯王志、仇成、张龙分赴寻甸各府,缮城池,立屯堡,安辑人民。是年,械送世并明之二子苴仁、苴义赴京。世临行,以诗别故人杨朝彦云:「雄兵一日破重关,父子流离瞬息间。别后欲知相忆处,锦江流水彩潺潺。」洪武甲子十七年四月,溥友德等班师至京,论平云南功,进封溥友德为颖国公,胡海洋东川侯,陈桓普定侯,张翼鹤庆侯,蓝玉、仇成、王弼、张龙等并赐铁券,子孙世袭。吴复、金朝兴先卒,倶授世袭侯爵,铁券加禄并同。馀升职赐金帛有差。以世、苴仁、苴义见帝,帝诛其头目,谕苴仁、苴义及世曰:「尔祖宝,昔年曾有降表,朕不忍废。」乃授苴仁官雁门卫镇抚,赐名归仁,苴义官武昌卫镇抚,赐名归义。世任职一年,段氏世土,至此而绝。帝又封其族段保为云龙州土知州。
|
|-
|按:段氏袭总管十二世,起南宋理宗辛酉景定二年,为蒙古世祖中统二年,讫明太祖壬戌洪武十五年,共一百二十二年。
|
|-
|}
==Notable Officials from Nanzhao through the Generations《南诏历代名宦》==
{| class="wikitable" style="text-align:center; width:80%;"
|+ Notable Officials from Nanzhao through the Generations《南诏历代名宦》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|张元,汉元帝时守。 张翕,东汉明帝时守。 郑纯,同时。 王追,东汉顺帝时守。 王伉,后汉时永昌郡丞。 吕凯,同时永昌郡功曹。 前有文齐、吴霸、陈立,后有张亮、刘宠、犍为费诗,巴东马忠皆著勋绩。 李毅,晋惠帝光煕元年为宁州刺史,政治明达,五苓夷反时病卒,其女秀有父才,领州事。至怀帝时赠少府谥威侯。 王逊东,晋明帝大宁元年为晋宁守,华夷畏服。夷叛,死之。州人以中子坚领州事,官至平西安南将军。
|
|-
|汉盛览,字长通,叶楡今大理府太和县。人,受学司马相如,著赋心四卷。同时叶楡张叔,天资奇颖,书过目成诵。俗不知学,叔每病之。闻司马相如至若水,蔚按:『水经注』:若水南经云南郡之遂久县,县废,在今大理府宾川州城东北一百里,古称白门,置于汉时,今为金沙江巡检司地。遂负笈往从之,受经归敎乡人。 隗叔通,叶楡人,性至孝,母好饮江水,通日入江取水,维艰。滩水忽出平石,涉取甚便,人谓之孝子石。 东汉许叔,一作叔重。昆明人,明帝时入中国,受五经归,为本郡敎授。 尹珍,字道真,平彝人,桓帝时入中国,负笈从许愼受经学,还敎乡人。 唐尹仇寛,叶楡人,德宗贞元间为蒙氏淸平官,入朝陈地图,贡方物,唐拜为左散骑常侍,封高溪郡侯。 张志成,昆明人,文宗太和间入蜀,学王羲之草书,归敎国人。 元王升,昆明人,曲靖宣慰副使学政名时。 段文瑞,澄江人,读书尽孝,诏旌其门,仕至临安总管。 杨惠,楚雄人,孝母感神,诏旌其门。 张景云,昆明人,仕至临安经历。 陈宝,平彝人,仕至尚书。尹贡,南宁人,仕至尚书。以上三人皆德政名时。 元朝进士王楫、李近仁、段天祥、李天佑、李郁五人,皆三甲同进士出身。
|
|-
|}
==Ethnic Groups of Nanzhao==
===Baimin《白民》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Baimin《白民》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有阿白、白儿子、民家等名。白国之后,卽滇中之土著。妇女出门,携伞障面,谓之避嫌。宴客,切肉拌蒜,名曰食生。馀同汉人。女镶边衣,以银花银吊为饰。
|There is the '''Ā''' '''Bái (阿白)''', '''Bái Erzǐ''' ('''白儿子'''), '''Mínjiā''' ('''民家''') and other names. The descendants of the '''Bái Kingdom''' are precisely the indigenous peoples of Central Yunnan. [When] women go out, they bring an umbrella to block their faces, this is called '''Bìxián''' ('''避嫌; avoiding suspicion'''). [When] hosting a banquet, they cut meat and garlic, this is called '''Shíshēng''' ('''食生; eating raw'''). The rest are similar to Han people. Women wear embroidered clothes, they use silver flowers and silver hangings as decoration.
|-
|}
===Pu Ren《蒲人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽古百濮,周书所谓微卢彭濮也,后讹为蒲。质黑,鸟音。男子淸布褁头,衣套头衣,膝系黑滕;妇人挽发为髻,脑后戴靑绿磁珠,花布围腰,短裙,系海十数围。带刀弩长牌,不畏深渊,或浮以渡。婚娶长幼跳蹈,吹芦笙为孔雀舞,婿家立标竿,上悬彩绣荷包,中贮五谷银钱等者,两家男妇大小争缘取之,以得者为胜。又有野蒲、普蛮、朴子蛮等类,性尤凶悍,男子以布二幅结于左胁,另用布一幅合缝挂身;以红布搭右肩蔽腰以下。今顺宁府多此种。
|Anciently this was the '''Baipu (百濮)''', the '''Book of Zhou (周書)''' mentions the '''Wēi''' '''(微), Lú''' '''(卢),''' '''Péng''' '''(彭)''' and '''Pú''' '''(濮)'''. Later errors [turned it] into '''Pú (蒲)'''. By nature they are black and their language [resembles] birds. Men wrap clean/clear<ref>Likely referring to white cloth.</ref> cloth on their head and dress in tunic garments that are put over the head. They bind their knees with black rattan. Women roll up [their] hair as a topknot. At the back of the head, they wear clear blue-green porcelain beads. Printed cloth encircles the waist; they wear short skirts, connecting abundantly ten [or more] encirclements. They carry knives, bows and long shields. They are unafraid of deep abysses perhap even floating across it. At wedding ceremonies old and young alike jump and stamp, they play the reed pipe for the '''peacock dance'''. At the bridegroom's house they erect a pole, on it a bright embroidered purse is hung. Inside it stores the five crops, silver coins and other things. The two families of men and women, old and young, vie to fetch it. Once obtained, the person is victorious. Once more, there is the '''Wild Pú (野蒲), Pŭ mán (普蛮)''', '''Pú Zǐ mán (朴子蛮)''' and other types. Their nature is outstandingly fierce. The men tie two lengths of cloth at the left flank, [and] another length of cloth is stitched together and hangs off the body. There is red cloth to hang on the right shoulder to cover the body below the waist. Nowadays '''Shùnníng''' '''(顺宁)''' prefecture has many people of this type.<ref>Modern Day Fengqing County in Southwestern Yunnan. 鳳慶縣. Historically close to the Wa peoples and Austroasiatic population.</ref>
|-
|}
===Bo Ren《僰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Pu Ren《蒲人
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名百夷,又名摆夷。性耐暑热,居多在棘下。本澜沧江外夷人。有水旱二种:水僰夷近水好浴,剃后发,蓄前发,盘髻如瓢,故又名瓢头僰夷;旱僰夷山居耕猎,又名汉僰夷。男靑布褁头,簪花;妇女不施胭粉,自然白晳,盘发辫,红绿包头,饰以五彩线须,衣五色衣,桶裙绣边。其俗贱女贵男,头目妻数百人,庶民亦数十,耕织贸易,皆妇人任之。凡婚娶,男女相悦而议聘,一成匹配,不肃而严。如夫妇不睦,听夫付之一物为凭,然后改适。有邪术,能使男子千里不忘,其法不外传也。
|
|-
|}
===Lahu《猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu《猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|爨蛮卢鹿之裔,猓猡其讹音也。以五月为春。信鬼尚巫,巫有大觋皤,拜禡白马之号。卜用雄鸡两髀骨,骨有细窍,刺以竹签,视多寡向背之势以定吉凶。其部长妻曰耐得,勇士曰苴可。每岁六月廿四日,名火把节,燃松炬,照村砦田庐。男椎髻镊须,耳环佩刀;妇披发短衣,桶裙,披羊皮。
|
|-
|}
===Bai Lahu《白猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Bai Lahu《白猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名撒马都,卽西爨白蛮。知读书,能文字,舌音淸便,多冒汉人。见尊长披羊皮,故嫁女授羊皮一帐。短衣革履,胸挂花包。妇人花衣桶裙,靑布蒙头,饰以海贝、锡铃。
|
|-
|}
===Hei Lahu《黑猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽东爨乌蛮。其祝以铃,其占以草。男挽发贯耳,披毡佩刀;妇人贵者衣套头衣,方领如井字,无襟带,自头罩下,长曳地尺许,披黑羊皮,饰以铃索。
|
|-
|}
===Qian Lahu《乾猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hei Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以山居得名。每食插筯饭中,仰天跪拜为报本。好勇喜斗,杀人偿以财。服饰同黑猓猡,妇人项挂一羊毛筐,行住纽毛为绵。以织毯。
|
|-
|}
===Hai Lahu《海猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Hai Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名坝猓猡,以种水田得名。盖土人以水为海,以平田为坝也。居家俭朴,知读书。服饰如汉人,妇如白猓猡。
|
|-
|}
===Miao Lahu《妙猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Miao Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多土官之裔,有营长、官奴、火头等称。男挽发贯耳;妇人桶裙无裤,穿套头衣,前不揜胫,后长曳地,衣边火焰,弯曲如旗尾。居茅舍,中堂作火炉,父子妇姑,围炉而卧。又有一种,戴鹊帽者,名猓落蛮;白布褁胫者,曰白脚猓猡。
|
|-
|}
===Ge Lahu《葛猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Ge Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名大头猓猡。男以靑布丈许裹发为大头,女戴布花线箍。婚嫁步行,妇避伯,不避翁。亦有顶盔擐甲,乘马佩刀,以劫抢为生者。然居家尊卑有序,会食以跪为敬。
|
|-
|}
===Azhela Lahu《阿者猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《阿者猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆耳环手钏,衣短裤,披羊皮。婚娶,婿亲负女以归。
|Men and women each wear earrings and hand bracelets. Their clothes are short pants with sheepskin drapes. At weedings, the bridegroom's realtives carry the women back.
|-
|}
===Awu Lahu《阿乌猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Awu Lahu《阿乌猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|性狡好獵。多蓄牛羊。每砦設官房一所,婚嫁並集其中。男短衣,女長衣,倶裹頭,貫耳,出入帶刀弩。
|They are cunning in nature and fond of hunting. They raise many cattle and sheep. Every stockaded settlement has an official building for marriages to be held within. Men's clothes are short, women's clothes are long. Both wrap their heads, pierce their ears. When going out, they carry knives and bows.
|-
|}
===Luwu Lahu《鲁屋猓猡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Azhela Lahu《黑猓猡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|耕种射猎为生。男短衣木屐,女长裙跣足。
|They make a living by cultivation, shooting and hunting. Men wear short garments and wooden clogs, women wear long skirts and tread barefoot.
|-
|}
===Sami Lahu《撒米猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Sami Lahu《撒米猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居山,耕瘠负薪,近水,捕鱼时给。面多黧黑,男挽发如鬏,毛褐被毡,佩短刀。女披靑布单,短裙,长裤。又有鲁兀、老乌、撒完、洒泥、阿蝎、阿系等类,衣饰风俗畧同。
|
|-
|}
===Liaowu Lahu《老牾猓猡 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Liaowu Lahu《老牾猓猡 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽罗婺,又名罗午、罗武。男披发贯耳,披毡佩刀,穿火草布衣;女辫髪垂肩,饰以海贝砗磲,穿火草布裙。无床帏被褥,以松毛籍地而卧。
|
|-
|}
===Lahu Hei《猓黑 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Lahu Hei《猓黑 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|蒲蛮别种。择丛篁深处,结茅而居。蜂虫鼠蛤,无所不食,以荞稗为上品。又有大猓黑、小猓黑,岩居野处,猿猱同类。
|
|-
|}
===Putu《普特》===
{| class="wikitable" style="text-align:center; width:80%;"
|+ Putu《普特》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|以渔为业,舟不盈丈,而炊爨、牲畜、资生之具,无不咸备。泅水出没,口衔手捉,皆巨鱼也。今云南府省城西碧鸡山下,多有此种。
|
|-
|}
===Diyang Gui《地羊鬼 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Diyang Gui《地羊鬼 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦僰人类也。短发黄睛,奸狡嗜利。与人相仇,能行妖术,以木石易人心肾,或以一帚系衣后,变形为象、马、猪、羊、猫、犬等物。稍畏惧之,卽为所魅,入人腹中,食五脏,或潜至人家,偷窃财物,食婴儿。知者一手捉之,一手痛殴,必复为人,夺其帚縻之,彼必以家赀之半匄脱。或有娶其女者,夫每出,必问归期,卽饵以毒,如期而归,更以药觧,否则毒发而死。交易失信,及私窥其要女者,必毒之。此种元江州为甚。
|
|-
|}
===Wo Ni《窝泥》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Wo Ni《窝泥》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|有和泥、(干)〔斡〕泥、哈泥、路弼等名。黑白两种,风俗畧同。男戴麦杆帽,穿火草布衣,耳环,跣足;妇女辫发数绺,海贝、杂珠,盘旋为髻,套衣桶裙。善养猪,其猪小耳短身,长不过三十筋,肉肥腯,名窝泥猪。婚用媒妁,路遇野兽,则返而他求。嫁则以红藤束膝为识。勤生啬用,每积贝一百二十索为一窖,临死嘱其子曰:「积贝若干,汝取某窖,馀留我为来生用。」死则以雌雄鸡各一殉。又有一种名糯比,与此同,其生者名哥泥,亦名瓦黑,好勇尚斗,能咒人使病。
|
|-
|}
===Achang《阿昌》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Achang《阿昌》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名峨昌。男短衣披布单,女长衣无裤,腰缠红藤。占用竹三十三枝,畧如筮仪。嗜酒,觅禽兽虫豸生啖之。旧俗兄死弟妻嫂,后有罗扳砦百夫长早正死,其妻方艾自誓不失节,饿而死,其风遂革。又有小阿昌,其俗畧同。
|
|-
|}
===Acheng《阿成》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Acheng《阿成》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男短衣,女桶裙,以树皮代瓦。婚用牛羊,至女家以水泼女足为定。
|
|-
|}
===Biju《比苴》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Biju《比苴》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|僰夷别种。男耳环革屐,女白帨束发,缠叠如仰螺。构楼而居近水,极寒犹浴。丧尚绯,夫死,妻不再嫁,名曰鬼妻。又有白布缠足者,名白脚僰夷,亦名孔荅;茜齿,文身,髠者,名光头僰夷;额上黥刺月牙纹,盖习车里之俗,所谓雕题也。
|
|-
|}
===Heipu《黑舗 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heipu《黑舗 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名黑普,俗同窝泥,形容黧黑,怕见汉人。畜山羊,作竹器,一切床几櫈杌,备极精巧。
|
|-
|}
===Heiqian Yi《黑乾夷 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Heiqian Yi《黑乾夷 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男椎髻麻衣,耳环垂肩;女以毛褐细带,编如筛罩,首饰以海贝、砗磲,衣领亦然。婚配,男吹芦笙,女弹口琴,唱和调悦,先野合,后媒妁。
|
|-
|}
===Shansu《山苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Shansu《山苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男披发跣足,女椎髻蒙头。语似鸟音,形如猿猴。潜居深山,种荞、麻,或工或猎,夷中之最苦者。
|
|-
|}
===Chusu《车苏》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Chusu《车苏》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名扯苏,傍岩临水。男短衣皮履,女长裙无裤。种荞稗,绩线为业,以羊毛占(睛)〔晴〕雨。
|
|-
|}
===Laji《喇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Laji《喇鸡》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名喇记。黑布帽白衫。好楼居,孟春作土主会,客至,掘鼠及虾蟆为敬。其在交趾者,男善枪,女善弩,多充交兵。又有白喇鸡,男女倶穿五色氆氇,食山虫、水蛇等物。
|
|-
|}
===Lawu《喇五 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Lawu《喇五 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰喇乌,又曰喇鲁。男如摆夷,女如窝泥,构楼临水而居。上人下畜,名曰掌房。其在腾越州者,食巨蟒、毒虫,或取蜂糟食之。
|
|-
|}
===Manla《獛喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Manla《獛喇 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男插鸡毛,女裹首巾,皆披羊皮,不浣濯。婚配先野合。每采蒙肚花蒙肚花树皮如藓,能毒人。生景东厅,今不产矣。欲人醉死则醉采,欲人狂死则狂采,以毒人。又一种在王弄山者,名马喇
|
|-
|}
===Hala《哈喇 》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Hala《哈喇》
|-
| colspan="2" |'''Research Commentary'''<br> This is likely one of the autonyms for the Wa people transcribed by the Chinese who normally did not standardize it between 哈喇 (Hālā), 哈瓦 (Hāwǎ), or 嘎剌 (Gālǎ).<br>'''Supporting Primary Sources:'''
{| class="mw-collapsible mw-collapsed" style="width:100%; border-collapse:collapse; background:transparent;"
|-
! style="text-align:center; cursor:pointer;" | [Show/Hide Source Commentaries]
|-
| class="mw-collapsible-content" |
{| class="wikitable" style="width:100%; text-align:left; margin:0;"
|-
! scope="col" style="background:#f2f2f2;" | Source 1: Baiyizhuan
|-
|
The Hala《哈喇》have been mentioned in the [[Wikibooks|Baiyizhuan]]. {{quote|text='''Hālà''' ('''哈剌'''), men and women are [both] black, truly black. Men use printed cloth<ref>g</ref> for covering themselves, also which the One Hundred bararians effectively manufacture; married women have top knots behind [their head]. It is tied at the back of their neck with various pearls and beads. '''Suō luó''' ('''娑罗''')<ref>'''Sarong''' today, however this appears to be a complex term with many copyediting issues historically, Brahmin drapes, Suoluolong, eventually describing a type of silk-cottob robe made from plant materials.</ref> are draped around their bodies as clothes, horizontally it connected at the waist and lower back as a skirt. ('''Suō luóbù pī''' ('''娑罗布披''') namely is the Chinese Cotton Tree (Bombax Ceiba) cloth, strong and thick, possibly weaved as blue, red patterns.) Yet it encircles black rattan several hundred times, wrapped at the waist and lower back, it wraps around [their leg] to be used as a blue printed cloth [as they're] barefoot.
([Used amongst the] Pú mán (蒲蠻), āchāng (阿昌), shì jiàn (事見)<ref>Only said once in the document and not obvious to allusions elsewhere. </ref>; [according to the] The Yunnan Gazeteer<ref>Written by Fan Chuo of the 9th century, also known as 蛮书 (Barbarian Document)</ref>.)}}
|-
! scope="col" style="background:#f2f2f2;" | Source 2: Dian Lue 《滇略》
|-
|
The Hala《(哈喇) are listed among the list of indigenous groups of the Yunnan border region in Volume 9 (卷九). In this text the group is written in with the Gula (古剌){{quote|text=「其類有小伯、夷大伯、夷蒲人、阿昌漂人、'''古刺哈喇''''、緬人、結𣆟<!--Jiexie continution, but this is 17th century -->、遮...」}}
|-
! scope="col" style="background:#f2f2f2;" | Source 3: Dushi Fangyu Jiyao
|-
|
Hala is listed as bordering the Tai polity of Möng Yang. {{quote|text=「戛里。在司西南,孟養別部也。又有'''哈喇杜諸蠻,皆近孟養'''、緬甸之境。」<br>'''English''': Kalay. Located to the Southwest Pacification Commission, it is a district of Möng Yang. There are also Hala Barbarian tribes, who all are close to Möng Yang, at the border of Myanmar.}}
|}
|}
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女黑色,不知盥栉。妇女红黑藤缠腰数十围,产子以竹兜盛之,负于肩。又有古喇、杜喇,色尤甚,言语不通,略似人形而已。
|Men and women are black in complexion and do not know how to wash or comb. Women use red-black rattan to bind around their waist 10 or so times. When they give birth, the child goes in a bamboo cradle carried on their shoulders. There are the <strong>Gǔlǎ (古喇)</strong>、<strong>Dùlǎ (杜喇)</strong>, who have complexions outstandingly dark. Their speech is unintelligible [to the author], they only barely appear human in appearance.
|-
|}
===Jiala《戞喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Jiala《戞喇》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|悍好猎,居山巅,户不正出,迎山开门,不留馀粟。
|They fiercely enjoy hunting and reside on mountain summits. Their doors do not face directly outward but face to face open towards the mountains. They do not retain any surplus grain.
|-
|}
===Kala《卡喇》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kala《卡喇
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦曰卡腊,男穿耳挽发,佩短刀;女短衣无裤,胫著彩色折裤。聚族而居,耕种鬻薪。
|Also known as '''Kǎlà (卡腊)''', men pierce their ears, tie their hair and wear short knives. Women wear short clothes without trousers and brightly coloured, multi-coloured folded leggings on their shins. They reside in clan communities, cultivating and selling firewood.
|-
|}
===Kasui《卡隋》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kasui《卡隋》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名卡高,性顽钝,喜歌舞。男女多野合。婚娶通媒妁之日,议聘金,多至数百。娶后子孙犹有代祖父偿聘金者。
|
|-
|}
===Kawa《卡瓦》===
{| class="wikitable" style="text-align:center; width:80%;"
|+Kawa《卡瓦》
|-
| colspan="2" |'''Research Commentary'''<br> According to [[:Zh:W:佤族|Chinese sources]], the '''Kawa (卡瓦)''' were the Wa people who practiced Headhunting as a tradition. This is opposed to the '''Kala(卡喇)''', who had abolished the tradition of headhunting and were influenced by the Shan states.<br>'''Supporting Primary Sources:'''
{| class="mw-collapsible mw-collapsed" style="width:100%; border-collapse:collapse; background:transparent;"
|-
! style="text-align:center; cursor:pointer;" | [Show/Hide Source Commentaries]
|-
| class="mw-collapsible-content" |
{| class="wikitable" style="width:100%; text-align:left; margin:0;"
|-
! scope="col" style="background:#f2f2f2;" | Source 1:
|-
|
Comment
|-
! scope="col" style="background:#f2f2f2;" | Source 2
|-
|
Comment
|-
! scope="col" style="background:#f2f2f2;" | Source 3
|-
|
Comment
|}
|}
|-
! scope="col" | Original
! scope="col" | Translation
|-
|多在顺宁、永昌二郡,辣蒜江外。貌()〔丑〕性恶,猎人以祭。商贾出腾越州,入木邦者必经其地,呼为卡利瓦。有生熟二种,生者劫掠,熟者保路。
|
|-
|}
===Xifan《西番》===
{| class="wikitable" style="text-align:center; width:80%;"
|Xifan《西番》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽土番,亦名巴苴,居金沙江边。性悍戾,善弩,男女辫发百绺,不知栉沭。男以藤缠左肘,披琵琶毡,暑热不脱;女以海贝砗磲磁珠饰于项。又有野西番,更不可制。
|
|-
|}
===Guzong《古宗》===
{| class="wikitable" style="text-align:center; width:80%;"
|Guzong《古宗》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|一名狤猔,西番别种。皆辫发百绺,男戴红缨,穿氆氇,挂铜铃佩刀,女饰以珊瑚、银泡,披腊瓦被单,皆穿乌拉鞾。经年一栉,栉必牲祭。春夏种荞稗,秋冬赶牛马,取牛羊乳酥,调油茶而食,名曰ø。又有小古宗,喜猎饮酒,馀畧同。
|
|-
|}
===Kuceng《苦葱》===
{| class="wikitable" style="text-align:center; width:80%;"
|Kuceng《苦葱》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|面丑。男麻衣短裤,女短衣桶裙,亦有衣裤相连者。耕山采薬为生。所佩环手篐,自幼至老不释,死以殉。
|
|-
|}
===Mo《摩》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mo《摩》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|乌蛮别种。性湻朴,鸟音,男剃发戴帽,长领布衣;女高髻,或戴黑漆尖帽,短衣长裙。畜牛羊,产射香。同类仇杀,妇女登场一劝卽止。岁暮杀牛羊相邀,一客不至为耻。今有读书入泮者。
|
|-
|}
===Li《力》===
{| class="wikitable" style="text-align:center; width:80%;"
|Li《力》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽。衣麻,披毡,岩居穴处。利刀毒矢,刻不离身,登山捷若猿猱。以土和蜜充饥,得野兽卽生食。尤善弩,每令其妇负小木盾前行,自后射之,中盾而不伤妇,以此制服西番。野力披发插羽,尤悍。
|
|-
|}
===Zhe《遮》===
{| class="wikitable" style="text-align:center; width:80%;"
|Zhe《遮》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男女皆穿耳,挽发。喜华彩衣,盘旋蔽体。每饮食必精洁。而长于弓弩,尤善鸟铳。
|
|-
|}
===Jiezi《羯子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|自孟养流入。环眼鸟队,散发,缠藤,耳带大环,首插鸡羽,无衣裤,腹下以麻布一幅围之。负弩佩刀,喊声如犬。又有结,耳带象牙大环,红布围头,衣半身衫,袒右臂,亦其类也。
|
|-
|}
===Muji《拇鸡》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiezi《羯子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦作。形丑恶,妇女尤甚。椎髻插羽,佩刀负弩。猎食猿狙。见人有蓄,思盗,先用鸡骨卜,吉则徃,否则止。
|
|-
|}
===Mocha《摩察》===
{| class="wikitable" style="text-align:center; width:80%;"
|Mocha《摩察》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Manqie《嫚且》===
{| class="wikitable" style="text-align:center; width:80%;"
|Manqie《嫚且》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|亦名木察。束发耳环,披毡佩刀,执木弩、药矢,猎取禽兽。妇人皂布蒙头,饰以海贝,长裙细折,多至二十馀幅,前后无衩,名曰桶裙。
|
|-
|}
===Local People《土人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Local People《土人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|(思)〔男〕絮袄佩刀弩,女披毡朿皮索,饥则紧缚之。婚姻以刀甲为聘,披发见舅姑。有争者告天,沸汤投物,以手捉之,曲则糜烂,直者无恙。
|
|-
|}
===Nong ren《侬人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nong ren《侬人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|侬智高部落之裔。男束发短衣,女短衣密扣,腰缠红裹肚。性狡,漆齿,出入佩刀,长技在铳。
|
|-
|}
===Sha ren《沙人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Sha ren《沙人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|越析夷也,又名蒙嶲。男辫发长衣,女以挑花白布蒙头,腰围红布。出入佩刀,耕田、射猎,所居掌房。丧服用红,祭肉弃不食。又有黑沙人,白沙人。聘用牛,旣婚之夕,男女不同室,及回女家,有娠方归。
|
|-
|}
===Luo ren《𤡑人 》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤡑人 》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男束发披毡,女短衣露腹,缠红藤,腰系沙罗布裙,上短下长,男女同耕。
|
|-
|}
===Cun ren《狆人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Cun ren《狆人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|男缠头跣足,女靑布缠头,畧如僧帽,缀以海贝,彩布衣裙,著大尖鞋。构楼而居,甘犬嗜鼠。又有罗缅、麦岔、叠吗、喇毛等类,顽良不一,衣饰风俗同
|
|-
|}
===Nu ren《怒人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Nu ren《怒人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|居永昌怒江内外。其江深险,四序皆燠,赤地生烟。每二月瘴气腾空,两堤草头交结不开,名交头瘴。男子面多黄瘦,刚狠好杀猎,或采黄连为生,鲜及中寿。妇人披发红藤勒首。每年贡麂皮二十张、山驴皮十张、黄蜡八十筋、麻布三十庹,以代赋税。
|
|-
|}
===Luo ren《𤞰人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Luo ren《𤞰人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江府鹤庆州大雪山外。男女披发,树叶为衣,耳穿七孔,坠以木环。与怒人接壤,畏怒人,不敢越界。
|
|-
|}
===Wild people《野人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Wild people《野人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|永昌界外。居无室庐,宿于树巅。赤发黄睛,首戴骨圏,插雉羽,手足腹皆缠红藤,以幅布或树皮揜下体。勾刀大刃,捕禽兽蛇虫,生食之。逢人卽杀。
|
|-
|}
===Laodao《老挝》===
{| class="wikitable" style="text-align:center; width:80%;"
|Laodao《老挝》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|南掌国夷类。戴藤篾黑漆帽,宽二尺许,短衣无裤,用杂色布一疋,从膝下兜绕,围结胸前,名打抄子。妇女耳贯大黑漆圏,塞以野花。
|
|-
|}
===Liemi《列密》===
{| class="wikitable" style="text-align:center; width:80%;"
|Liemi《列密
|-
! scope="col" | Original
! scope="col" | Translation
|-
|卽利米。刀耕火种,精射猎,得鼠雀生啖之。男篾帽皂衣,女辫发赤足。出外披花布,以蔽其身。
|
|-
|}
===Lama《喇嘛》===
{| class="wikitable" style="text-align:center; width:80%;"
|Lama《喇嘛》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|丽江、鹤庆多有之。来自西藏,招本境摩为徒。有红黄二敎,红弱黄强。毡帽褊衫,各如其色。
|
|-
|}
===Miaozhi《苗子》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|三苗之后,有九种,黔省最多,流入滇中者,惟仲家花苗而已。束发耳环,未婚者缚楮皮于额,或插鸡毛。女布冠套头衣,桶裙,皆用五彩桃花布为之。每岁孟春跳月,男吹芦笙,女振铃唱和,并肩舞蹈,终日不倦。或以彩为球,视所欢者掷之,暮则同归,比晓乃散,然后议婚。节序击铜鼓,吹呐叭,聚赛神,书契惟数目字,及六十花甲子同,馀不同。
|
|-
|}
===Tuliao《土獠》===
{| class="wikitable" style="text-align:center; width:80%;"
|Tuliao《土獠
|-
! scope="col" | Original
! scope="col" | Translation
|-
|其属本在黔、蜀、粤西之交,流入滇中。男首裹靑布,白衣领缀红布一方,妇人冠红巾,衣花绣。性粗桀,好蛊魔之术,其虫夜飞如星,光芒摇曳,射入窓棂,触者病。
|
|-
|}
===Jiaoren《交人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Jiaoren《交人》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|安南国之类。男箬笠蕉扇,衣裳楚楚;女面貌颇雅,手贯牙钏,长衣长裙,以红帕蒙头,皆辫发靸鞋。读诗书习礼,仪婚丧之事,倶仿中国。
|
|-
|}
===Burmese people《缅人》===
{| class="wikitable" style="text-align:center; width:80%;"
|Miaozhi《苗子》
|-
! scope="col" | Original
! scope="col" | Translation
|-
|缅甸国流入者。有老缅、阿瓦、猛别、雍会、普干、摆古、得楞子等类。长于鸟铳,其火药用麦面傅之,迅疾无声。又有缅目者,称为莽纪,断发文身,漆齿穿耳,蟒衣跣足,头带红缎一方,性喜花草。
|
|-
|}
==References==
{{reflist}}
[[Category:Chinese literature]]
[[Category:Non-fiction books]]
[[Category:Medieval historical works]]
[[Category:Works originally in Chinese]]
[[Category:Pages with foreign language text]]
[[Category:Indigenous peoples]]
[[Category:Guidebooks]]
[[Category:History of China]]
[[Category:Wars]]
[[Category:Diplomacy of China]]
[[Category:Subject:Military history]]
[[zh:蛮书]]
bq60uklk521lje902r2lgeqme6rp6fd
Wikibooks:Reading room/Administrative Assistance/Archives/2026/September
4
485674
4674810
4674342
2026-10-07T08:10:29Z
ArchiverBot
1227662
Bot: Archiving 3 threads from [[Wikibooks:Reading room/Administrative Assistance]]
4674810
wikitext
text/x-wiki
{{talk archive}}
== Jeevandan26 reported by MathXplore ==
* {{userlinks|Jeevandan26}}
Link spam, [[Special:AbuseLog/315288]] <!-- USERREPORTED:/Jeevandan26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:14, 1 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 1 September 2026 (UTC)
== Gloriagulshan reported by MathXplore ==
* {{userlinks|Gloriagulshan}}
[[:w:Wikipedia:Sockpuppet investigations/Kagoz]] ([[Special:Contributions/Tikapara]], [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2025/September#Tikapara_reported_by_MathXplore]]), created page [[Introduction to Filmmaking]] Contributed by Ali Zulfikar Zahedi ([[:w:Ali Zulfikar Zahedi]], [[:w:simple:Ali Zulfikar Zahedi]]) <!-- USERREPORTED:/Gloriagulshan/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 03:56, 29 August 2026 (UTC)
:I believe this page is intended as instructional material for learning filmmaking rather than as an encyclopedic article. I will revise the page to focus on practical filmmaking concepts, methods, and processes in accordance with the purpose of Wikibooks. [[User:Gloriagulshan|Gloriagulshan]] ([[User talk:Gloriagulshan|discuss]] • [[Special:Contributions/Gloriagulshan|contribs]]) 04:20, 29 August 2026 (UTC)
: Cc: {{ping|SHB2000|MarcGarver}} [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:41, 29 August 2026 (UTC)
::I see the account is glocked, and there are no sleepers that aren't already locked, so nothing more to do. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:18, 3 September 2026 (UTC)
== Mohansai00116 reported by MathXplore ==
* {{userlinks|Mohansai00116}}
Link spam, [[Special:AbuseLog/315335]] <!-- USERREPORTED:/Mohansai00116/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:04, 3 September 2026 (UTC)
== Fatemai6 reported by MathXplore ==
* {{userlinks|Fatemai6}}
Link spam, [[Special:AbuseLog/315329]] <!-- USERREPORTED:/Fatemai6/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Kamrulhasan147 reported by MathXplore ==
* {{userlinks|Kamrulhasan147}}
Link spam, [[Special:AbuseLog/315327]], [[Special:Contributions/Kamrulhasan142]] <!-- USERREPORTED:/Kamrulhasan147/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:12, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Kamrulhasan142 reported by MathXplore ==
* {{userlinks|Kamrulhasan142}}
Link spam, [[Special:AbuseLog/315295]], [[Special:Contributions/Kamrulhasan147]] <!-- USERREPORTED:/Kamrulhasan142/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Twenty7incgs reported by MathXplore ==
* {{userlinks|Twenty7incgs}}
Link spam, [[Special:AbuseLog/315323]] <!-- USERREPORTED:/Twenty7incgs/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:14, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Tailleash reported by MathXplore ==
* {{userlinks|Tailleash}}
Link spam, [[Special:AbuseLog/315318]] <!-- USERREPORTED:/Tailleash/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:15, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Md Akash Mia12 reported by MathXplore ==
* {{userlinks|Md Akash Mia12}}
Link spam, [[Special:AbuseLog/315299]], [[Special:AbuseLog/315298]] <!-- USERREPORTED:/Md Akash Mia12/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:17, 2 September 2026 (UTC)
: {{done|Page deleted}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:03, 3 September 2026 (UTC)
== Vapesitefiftybar reported by MathXplore ==
* {{userlinks|Vapesitefiftybar}}
Link spam, [[Special:AbuseLog/315338]] <!-- USERREPORTED:/Vapesitefiftybar/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:40, 2 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC)
== Myteethtime1 reported by MathXplore ==
* {{userlinks|Myteethtime1}}
Spam <!-- USERREPORTED:/Myteethtime1/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:54, 4 September 2026 (UTC)
: {{Done}} by MarcGarver. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:28, 4 September 2026 (UTC)
== Rajstartupservices reported by MathXplore ==
* {{userlinks|Rajstartupservices}}
Link spam, [[Special:AbuseLog/315363]] <!-- USERREPORTED:/Rajstartupservices/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 14:33, 4 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 19:28, 4 September 2026 (UTC)
== Reazulkarim545456 reported by MathXplore ==
* {{userlinks|Reazulkarim545456}}
Link spam, [[Special:AbuseLog/315377]] <!-- USERREPORTED:/Reazulkarim545456/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 06:39, 6 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:19, 6 September 2026 (UTC)
== Fahmidafy reported by MathXplore ==
* {{userlinks|Fahmidafy}}
Link spam, [[Special:AbuseLog/315378]] <!-- USERREPORTED:/Fahmidafy/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 06:40, 6 September 2026 (UTC)
: The filter stopped them three times, no action taken. Please re-report if they continue spamming. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 6 September 2026 (UTC)
== Grow spark digital reported by MathXplore ==
* {{userlinks|Grow spark digital}}
Link spam, [[Special:AbuseLog/315381]] <!-- USERREPORTED:/Grow spark digital/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 06:42, 6 September 2026 (UTC)
: Only one filter hit, seems stale. Please re-report if they continue to spam. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:49, 6 September 2026 (UTC)
== Korigosnacks reported by MathXplore ==
* {{userlinks|Korigosnacks}}
Link spam, [[Special:AbuseLog/315383]] <!-- USERREPORTED:/Korigosnacks/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:32, 6 September 2026 (UTC)
: Stale after only two filter hits and no edits. Please re-report if they spam later. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:56, 6 September 2026 (UTC)
== Athoyislam reported by MathXplore ==
* {{userlinks|Athoyislam}}
Spam <!-- USERREPORTED:/Athoyislam/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:47, 7 September 2026 (UTC)
:{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 11:31, 7 September 2026 (UTC)
== Jamal123lll reported by MathXplore ==
* {{userlinks|Jamal123lll}}
Link spam, [[Special:AbuseLog/315402]] <!-- USERREPORTED:/Jamal123lll/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:48, 7 September 2026 (UTC)
:{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 11:32, 7 September 2026 (UTC)
== Idontknowidkh reported by MathXplore ==
* {{userlinks|Idontknowidkh}}
online shopping spam, [[Special:AbuseLog/315400]] <!-- USERREPORTED:/Idontknowidkh/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:49, 7 September 2026 (UTC)
:{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 11:33, 7 September 2026 (UTC)
== Ridhisharma1999 reported by MathXplore ==
* {{userlinks|Ridhisharma1999}}
Link spam, [[Special:AbuseLog/315435]] <!-- USERREPORTED:/Ridhisharma1999/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:01, 9 September 2026 (UTC)
:{{Done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:02, 9 September 2026 (UTC)
== Thenaoriudaipur reported by MathXplore ==
* {{userlinks|Thenaoriudaipur}}
Link spam, [[Special:AbuseLog/315473]] <!-- USERREPORTED:/Thenaoriudaipur/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:47, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== Networkkingss reported by MathXplore ==
* {{userlinks|Networkkingss}}
Link spam, [[Special:AbuseLog/315458]] <!-- USERREPORTED:/Networkkingss/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:50, 10 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:49, 10 September 2026 (UTC)
== ~2026-49226-92 reported by MathXplore ==
* {{anonlinks|~2026-49226-92}}
Vandalism <!-- USERREPORTED:/~2026-49226-92/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:57, 10 September 2026 (UTC)
: {{done}}. I also nuked all pages created by this user and their connected temporary accounts based on their associated IP(s). [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:48, 10 September 2026 (UTC)
== ~2026-49632-08 reported by MathXplore ==
* {{anonlinks|~2026-49632-08}}
Spam <!-- USERREPORTED:/~2026-49632-08/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:08, 13 September 2026 (UTC)
:{{done}} [[User:JackPotte|JackPotte]] ([[User talk:JackPotte|discuss]] • [[Special:Contributions/JackPotte|contribs]]) 06:39, 13 September 2026 (UTC)
== Happyherbal26 reported by MathXplore ==
* {{userlinks|Happyherbal26}}
Link spam, [[Special:AbuseLog/315518]] <!-- USERREPORTED:/Happyherbal26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 14:02, 14 September 2026 (UTC)
== Shahadotdl reported by MathXplore ==
* {{userlinks|Shahadotdl}}
Link spam, [[Special:AbuseLog/315516]] <!-- USERREPORTED:/Shahadotdl/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:37, 14 September 2026 (UTC)
:{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 14:02, 14 September 2026 (UTC)
== Sonarbanglahc reported by MathXplore ==
* {{userlinks|Sonarbanglahc}}
Spam <!-- USERREPORTED:/Sonarbanglahc/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:41, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:47, 15 September 2026 (UTC)
== Mehedii1234 reported by MathXplore ==
* {{userlinks|Mehedii1234}}
Spam <!-- USERREPORTED:/Mehedii1234/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:42, 15 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:46, 15 September 2026 (UTC)
== BhardwajGardening reported by MathXplore ==
* {{userlinks|BhardwajGardening}}
Link spam, [[Special:AbuseLog/315583]] <!-- USERREPORTED:/BhardwajGardening/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:02, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:36, 17 September 2026 (UTC)
== Manusheikh reported by MathXplore ==
* {{userlinks|Manusheikh}}
Link spam, [[Special:AbuseLog/315575]] <!-- USERREPORTED:/Manusheikh/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:03, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Wrankerseo reported by MathXplore ==
* {{userlinks|Wrankerseo}}
Link spam, [[Special:AbuseLog/315564]], [[Special:AbuseLog/315567]], [[Special:AbuseLog/315563]] <!-- USERREPORTED:/Wrankerseo/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:05, 17 September 2026 (UTC)
:{{done|Blocked}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 13:35, 17 September 2026 (UTC)
== Mscdubai reported by MathXplore ==
* {{userlinks|Mscdubai}}
Spam <!-- USERREPORTED:/Mscdubai/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:28, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== Hasbaticom reported by MathXplore ==
* {{userlinks|Hasbaticom}}
Spam <!-- USERREPORTED:/Hasbaticom/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 11:40, 19 September 2026 (UTC)
: {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 01:44, 21 September 2026 (UTC)
== [[User:AAASecurityGuard]] reported by TechVindicator ==
Spam [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 10:03, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== AAASecurityGuard reported by MathXplore ==
* {{userlinks|AAASecurityGuard}}
Spam <!-- USERREPORTED:/AAASecurityGuard/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 10:20, 22 September 2026 (UTC)
:{{done|Globally locked and blocked}} [[User:TechVindicator|TechVindicator]] ([[User talk:TechVindicator|discuss]] • [[Special:Contributions/TechVindicator|contribs]]) 12:18, 22 September 2026 (UTC)
== [[Wikibooks:AI For Beginners]] ==
'''Reason for reporting:''' Wrong title, renaming needed ([[AI For Beginners]]). [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:20, 22 September 2026 (UTC)
:{{done|Moved to the correct namespace}} —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:17, 22 September 2026 (UTC)
::{{done|Ultimately deleted}} per [[WB:AI]]. —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 20:51, 22 September 2026 (UTC)
nw0qo87kkyam0tj8kquojd3vmm0ztxm
Vehicle Identification Numbers (VIN codes)/Jaguar/VIN Codes
0
485791
4674788
4674674
2026-10-07T00:38:38Z
JustTheFacts33
3434282
/* Model Line (Position 6-7) */
4674788
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems.
==General Template for Jaguar's VIN format (2000 -)==
===Jaguar WMIs (2000-) (Position 1-3)===
* SAJ - Jaguar passenger car (UK)
* SAD - Jaguar SUV (UK & Europe)
* L2C - Chery Jaguar Land Rover (China)
===Regional Spec/Restraint System (Position 4):===
* J = Manual seat belts, Dual front airbags (US: XK8 '00)
* B = Manual seat belts, Dual front airbags (Canada: XK8 '00)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (US: XK/XKR '07-'15)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (Canada: XK/XKR '07-'15)
===Transmission & Steering Location (Position 5 - '00-'12):===
* A = Automatic / LHD
* B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04)
===Transmission & Drive Wheels (Position 5 - '13-):===
* A = Automatic / Rwd (XF, XJ, XK)
* J = Automatic / Awd (XF Awd, XJ Awd)
===Model Line (Position 6-7)===
{| class="wikitable"
|+Position 6-7
!VIN code
!Description
|-
|51
|[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08)
|-
|52
|[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04)
|-
|53
|[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03)
|-
|54
|[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08)
|-
|01
|[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08)
|-
|05
|[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09)
|-
|06
|[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09)
|-
|07
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09)
|-
|0F
|[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12)
|-
|0G
|[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12-)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E] ('10-'12)
|-
|0J
|[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'12)
|-
|12
|[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03)
|-
|14
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03)
|-
|15
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03)
|-
|23
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01)
|-
|24
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03)
|-
|71
|[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09)
|-
|73
|[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09)
|-
|74
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04)
|-
|79
|[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09)
|-
|86
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06)
|-
|94
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09)
|-
|1C
|[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'13)
|-
|1G
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|1J
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13]
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|2J
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13)
|-
|2K
|[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13)
|-
|3F
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13)
|-
|3G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13)
|-
|3H
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Speed Pack]] ('12-'13)
|-
|3K
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Speed Pack]] ('12-'13)
|-
|41
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06)
|-
|42
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06)
|-
|43
|[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09)
|-
|44
|[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09)
|-
|45
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09)
|-
|46
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'13)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) ('10-'13)
|-
|4H
|[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'13)
|-
|4J
|[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'13)
|}
===Engine/Emissions Control System (Position 8)===
{| class="wikitable"
|+Position 8
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08).
|-
| A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10).
|-
| A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14).
|-
| B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02).
|-
| B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06).
|-
| B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09).
|-
| B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14).
|-
| C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05).
|-
| C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02).
|-
| C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06).
|-
| C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09).
|-
| C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'12), XJ/XJL Supersport ('11-'13), XKR ('10-'15).
|-
| D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01).
|-
| D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05).
|-
| D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-).
|-
| E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'12), XJ/XJL Supercharged ('11-'13).
|-
| N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02).
|-
| P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02).
|-
| T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05).
|-
| T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13).
|-
| U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05).
|-
| V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05).
|-
| 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13).
|-
| 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF ('13-), XJ Rwd ('13-).
|}
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Code/Model Line/Engine (Position 11) 2000-2019===
* X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05)
* W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08)
* F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08)
* G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02)
* H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08)
* 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08)
* H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10)
* 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09)
* L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12)
* M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15)
* P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15)
* 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15)
* L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03)
* M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03)
* S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06)
* T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06)
* S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09)
* T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19)
* 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19)
* N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02)
* P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02)
* 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06)
* 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06)
* 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09)
* 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15)
* M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14)
* 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17)
* M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17)
===Plant Codes (Position 11) 2016-2026===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26)
* C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24)
* S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19)
* 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24)
===Model (Position 12)===
* C - X-Type ('02-'03)
* D - X-Type ('03-'04)
* E - X-Type ('04-'06)
* J - X-Type ('06-'08)
* L - S-Type ('00-'01)
* M - S-Type ('01-'04)
* N - S-Type ('04-'08)
* R - XF ('09-'11)
* S - XF ('11-'13)
* U - XF ('13-'15)
* F - XJ ('00-'03)
* G - XJ ('04-'06) [Browns Lane plant]
* H - XJ ('06-'09) [Castle Bromwich plant]
* V - XJ ('10-'16)
* W - XJ ('16-'19)
* A - XK ('00-'06)
* B - XK ('07-'15)
* K - F-Type ('14-'24)
'''Positions 13–17, Serial Number'''
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line (Position 4)===
{| class="wikitable"
|+Position 4
!VIN code
!Description
|-
|A
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87)
|-
|B
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88)
|-
|D
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94)
|-
|F
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92)
|-
|K
|[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94)
|-
|M
|[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92)
|-
|M
|[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96)
|-
|P
|[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99)
|-
|K
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99)
|-
|P
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99)
|-
|N
|[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96)
|-
|T
|[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91)
|-
|S
|[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93)
|-
|G
|[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99)
|}
===Class (Regional Spec)/Restraint System (Position 5):===
* V = N. American-spec (Manual seat belts)
* L = Canadian-spec (Manual seat belts)
* Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts)
* A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88)
* Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92)
* W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94)
* X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99)
* X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99)
* M = Manual seat belts, Driver-side airbag (Canada)
* N = Manual seat belts, Dual front airbags (Canada)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99)
===Body Style (Position 6):===
* 1 = 4-door sedan (XJ-series sedan '81-'99)
* 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99)
* 3 = 2-door Cabriolet (XJ-SC '86-'88)
* 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93)
* 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99)
* 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion]
===Engine Type (Position 7):===
{| class="wikitable"
|+Position 7
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97).
|-
| 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82).
|-
| 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97).
|-
| 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98).
|-
| 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87).
|-
| 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96).
|-
| 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89).
|-
| 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96).
|-
| 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97).
|-
| 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92).
|-
| 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99).
|-
| 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93).
|-
| 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87).
|-
| 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99).
|}
===Transmission & Steering Location (Position 8):===
* 4 = Automatic / LHD
* 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual)
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Codes (Position 11)===
* C - Browns Lane plant, Coventry, West Midlands, England, UK
===Positions 12–17, Serial Number===
** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27)
** 300001 and after - XJ-series sedan Series III
** 500001 and after - XJ-series sedan (XJ40/XJ81)
** 720001 and after - XJ-series sedan (X300/X305/X306/X330)
** 810001 and after - XJ-series sedan (X308)
** 001001 and after - XK8 (X100)
bahrpclz2fflm4efde396ph1w3o0b8i
4674809
4674788
2026-10-07T07:50:40Z
JustTheFacts33
3434282
/* Model Line (Position 6-7) */
4674809
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems.
==General Template for Jaguar's VIN format (2000 -)==
===Jaguar WMIs (2000-) (Position 1-3)===
* SAJ - Jaguar passenger car (UK)
* SAD - Jaguar SUV (UK & Europe)
* L2C - Chery Jaguar Land Rover (China)
===Regional Spec/Restraint System (Position 4):===
* J = Manual seat belts, Dual front airbags (US: XK8 '00)
* B = Manual seat belts, Dual front airbags (Canada: XK8 '00)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (US: XK/XKR '07-'15)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (Canada: XK/XKR '07-'15)
===Transmission & Steering Location (Position 5 - '00-'12):===
* A = Automatic / LHD
* B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04)
===Transmission & Drive Wheels (Position 5 - '13-):===
* A = Automatic / Rwd (XF, XJ, XK)
* J = Automatic / Awd (XF Awd, XJ Awd)
===Model Line (Position 6-7)===
{| class="wikitable"
|+Position 6-7
!VIN code
!Description
|-
|51
|[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08)
|-
|52
|[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04)
|-
|53
|[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03)
|-
|54
|[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08)
|-
|01
|[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08)
|-
|05
|[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09)
|-
|06
|[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09)
|-
|07
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09)
|-
|0E
|[[w:Jaguar XF (X250)|Jaguar XF]] ('13-)
|-
|0F
|[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12)
|-
|0G
|[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E] ('10-'13)
|-
|0J
|[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'13)
|-
|0K
|[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-)
|-
|8J
|[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-)
|-
|12
|[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03)
|-
|14
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03)
|-
|15
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03)
|-
|23
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01)
|-
|24
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03)
|-
|71
|[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09)
|-
|73
|[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09)
|-
|74
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04)
|-
|79
|[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09)
|-
|86
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06)
|-
|94
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09)
|-
|1C
|[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'13)
|-
|1G
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|1J
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13]
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|2J
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13)
|-
|2K
|[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13)
|-
|3F
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13)
|-
|3G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13)
|-
|3H
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|3K
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|41
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06)
|-
|42
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06)
|-
|43
|[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09)
|-
|44
|[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09)
|-
|45
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09)
|-
|46
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'13)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4H
|[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'13)
|-
|4J
|[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'13)
|}
===Engine/Emissions Control System (Position 8)===
{| class="wikitable"
|+Position 8
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08).
|-
| A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10).
|-
| A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14).
|-
| B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02).
|-
| B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06).
|-
| B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09).
|-
| B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14).
|-
| C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05).
|-
| C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02).
|-
| C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06).
|-
| C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09).
|-
| C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'12), XJ/XJL Supersport ('11-'13), XKR ('10-'15).
|-
| D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01).
|-
| D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05).
|-
| D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-).
|-
| E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'12), XJ/XJL Supercharged ('11-'13).
|-
| N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02).
|-
| P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02).
|-
| T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05).
|-
| T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13).
|-
| U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05).
|-
| V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05).
|-
| 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13).
|-
| 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF ('13-), XJ Rwd ('13-).
|}
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Code/Model Line/Engine (Position 11) 2000-2019===
* X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05)
* W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08)
* F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08)
* G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02)
* H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08)
* 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08)
* H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10)
* 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09)
* L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12)
* M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15)
* P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15)
* 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15)
* L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03)
* M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03)
* S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06)
* T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06)
* S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09)
* T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19)
* 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19)
* N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02)
* P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02)
* 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06)
* 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06)
* 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09)
* 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15)
* M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14)
* 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17)
* M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17)
===Plant Codes (Position 11) 2016-2026===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26)
* C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24)
* S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19)
* 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24)
===Model (Position 12)===
* C - X-Type ('02-'03)
* D - X-Type ('03-'04)
* E - X-Type ('04-'06)
* J - X-Type ('06-'08)
* L - S-Type ('00-'01)
* M - S-Type ('01-'04)
* N - S-Type ('04-'08)
* R - XF ('09-'11)
* S - XF ('11-'13)
* U - XF ('13-'15)
* F - XJ ('00-'03)
* G - XJ ('04-'06) [Browns Lane plant]
* H - XJ ('06-'09) [Castle Bromwich plant]
* V - XJ ('10-'16)
* W - XJ ('16-'19)
* A - XK ('00-'06)
* B - XK ('07-'15)
* K - F-Type ('14-'24)
'''Positions 13–17, Serial Number'''
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line (Position 4)===
{| class="wikitable"
|+Position 4
!VIN code
!Description
|-
|A
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87)
|-
|B
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88)
|-
|D
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94)
|-
|F
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92)
|-
|K
|[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94)
|-
|M
|[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92)
|-
|M
|[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96)
|-
|P
|[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99)
|-
|K
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99)
|-
|P
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99)
|-
|N
|[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96)
|-
|T
|[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91)
|-
|S
|[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93)
|-
|G
|[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99)
|}
===Class (Regional Spec)/Restraint System (Position 5):===
* V = N. American-spec (Manual seat belts)
* L = Canadian-spec (Manual seat belts)
* Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts)
* A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88)
* Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92)
* W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94)
* X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99)
* X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99)
* M = Manual seat belts, Driver-side airbag (Canada)
* N = Manual seat belts, Dual front airbags (Canada)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99)
===Body Style (Position 6):===
* 1 = 4-door sedan (XJ-series sedan '81-'99)
* 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99)
* 3 = 2-door Cabriolet (XJ-SC '86-'88)
* 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93)
* 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99)
* 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion]
===Engine Type (Position 7):===
{| class="wikitable"
|+Position 7
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97).
|-
| 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82).
|-
| 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97).
|-
| 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98).
|-
| 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87).
|-
| 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96).
|-
| 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89).
|-
| 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96).
|-
| 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97).
|-
| 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92).
|-
| 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99).
|-
| 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93).
|-
| 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87).
|-
| 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99).
|}
===Transmission & Steering Location (Position 8):===
* 4 = Automatic / LHD
* 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual)
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Codes (Position 11)===
* C - Browns Lane plant, Coventry, West Midlands, England, UK
===Positions 12–17, Serial Number===
** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27)
** 300001 and after - XJ-series sedan Series III
** 500001 and after - XJ-series sedan (XJ40/XJ81)
** 720001 and after - XJ-series sedan (X300/X305/X306/X330)
** 810001 and after - XJ-series sedan (X308)
** 001001 and after - XK8 (X100)
furgca61cx4lgnp99c60pebd3ypntma
4674827
4674809
2026-10-07T09:01:12Z
JustTheFacts33
3434282
/* Engine/Emissions Control System (Position 8) */
4674827
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems.
==General Template for Jaguar's VIN format (2000 -)==
===Jaguar WMIs (2000-) (Position 1-3)===
* SAJ - Jaguar passenger car (UK)
* SAD - Jaguar SUV (UK & Europe)
* L2C - Chery Jaguar Land Rover (China)
===Regional Spec/Restraint System (Position 4):===
* J = Manual seat belts, Dual front airbags (US: XK8 '00)
* B = Manual seat belts, Dual front airbags (Canada: XK8 '00)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (US: XK/XKR '07-'15)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (Canada: XK/XKR '07-'15)
===Transmission & Steering Location (Position 5 - '00-'12):===
* A = Automatic / LHD
* B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04)
===Transmission & Drive Wheels (Position 5 - '13-):===
* A = Automatic / Rwd (XF, XJ, XK)
* J = Automatic / Awd (XF Awd, XJ Awd)
===Model Line (Position 6-7)===
{| class="wikitable"
|+Position 6-7
!VIN code
!Description
|-
|51
|[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08)
|-
|52
|[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04)
|-
|53
|[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03)
|-
|54
|[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08)
|-
|01
|[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08)
|-
|05
|[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09)
|-
|06
|[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09)
|-
|07
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09)
|-
|0E
|[[w:Jaguar XF (X250)|Jaguar XF]] ('13-)
|-
|0F
|[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12)
|-
|0G
|[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E] ('10-'13)
|-
|0J
|[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'13)
|-
|0K
|[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-)
|-
|8J
|[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-)
|-
|12
|[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03)
|-
|14
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03)
|-
|15
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03)
|-
|23
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01)
|-
|24
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03)
|-
|71
|[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09)
|-
|73
|[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09)
|-
|74
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04)
|-
|79
|[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09)
|-
|86
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06)
|-
|94
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09)
|-
|1C
|[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'13)
|-
|1G
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|1J
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13]
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|2J
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13)
|-
|2K
|[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13)
|-
|3F
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13)
|-
|3G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13)
|-
|3H
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|3K
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|41
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06)
|-
|42
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06)
|-
|43
|[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09)
|-
|44
|[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09)
|-
|45
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09)
|-
|46
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'13)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4H
|[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'13)
|-
|4J
|[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'13)
|}
===Engine/Emissions Control System (Position 8)===
{| class="wikitable"
|+Position 8
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08).
|-
| A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10).
|-
| A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14).
|-
| B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02).
|-
| B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06).
|-
| B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09).
|-
| B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14).
|-
| C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05).
|-
| C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02).
|-
| C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06).
|-
| C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09).
|-
| C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15).
|-
| D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01).
|-
| D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05).
|-
| D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-).
|-
| E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13).
|-
| F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-).
|-
| H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-).
|-
| N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02).
|-
| P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02).
|-
| P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-).
|-
| S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based). Jaguar XF 2.0 ('13-'15).
|-
| T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05).
|-
| T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13).
|-
| U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05).
|-
| V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05).
|-
| Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-).
|-
| 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13).
|-
| 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13-), XJ Rwd ('13-).
|}
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Code/Model Line/Engine (Position 11) 2000-2019===
* X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05)
* W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08)
* F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08)
* G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02)
* H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08)
* 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08)
* H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10)
* 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09)
* L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12)
* M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15)
* P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15)
* 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15)
* L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03)
* M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03)
* S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06)
* T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06)
* S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09)
* T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19)
* 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19)
* N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02)
* P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02)
* 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06)
* 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06)
* 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09)
* 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15)
* M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14)
* 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17)
* M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17)
===Plant Codes (Position 11) 2016-2026===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26)
* C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24)
* S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19)
* 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24)
===Model (Position 12)===
* C - X-Type ('02-'03)
* D - X-Type ('03-'04)
* E - X-Type ('04-'06)
* J - X-Type ('06-'08)
* L - S-Type ('00-'01)
* M - S-Type ('01-'04)
* N - S-Type ('04-'08)
* R - XF ('09-'11)
* S - XF ('11-'13)
* U - XF ('13-'15)
* F - XJ ('00-'03)
* G - XJ ('04-'06) [Browns Lane plant]
* H - XJ ('06-'09) [Castle Bromwich plant]
* V - XJ ('10-'16)
* W - XJ ('16-'19)
* A - XK ('00-'06)
* B - XK ('07-'15)
* K - F-Type ('14-'24)
'''Positions 13–17, Serial Number'''
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line (Position 4)===
{| class="wikitable"
|+Position 4
!VIN code
!Description
|-
|A
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87)
|-
|B
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88)
|-
|D
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94)
|-
|F
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92)
|-
|K
|[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94)
|-
|M
|[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92)
|-
|M
|[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96)
|-
|P
|[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99)
|-
|K
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99)
|-
|P
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99)
|-
|N
|[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96)
|-
|T
|[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91)
|-
|S
|[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93)
|-
|G
|[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99)
|}
===Class (Regional Spec)/Restraint System (Position 5):===
* V = N. American-spec (Manual seat belts)
* L = Canadian-spec (Manual seat belts)
* Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts)
* A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88)
* Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92)
* W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94)
* X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99)
* X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99)
* M = Manual seat belts, Driver-side airbag (Canada)
* N = Manual seat belts, Dual front airbags (Canada)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99)
===Body Style (Position 6):===
* 1 = 4-door sedan (XJ-series sedan '81-'99)
* 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99)
* 3 = 2-door Cabriolet (XJ-SC '86-'88)
* 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93)
* 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99)
* 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion]
===Engine Type (Position 7):===
{| class="wikitable"
|+Position 7
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97).
|-
| 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82).
|-
| 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97).
|-
| 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98).
|-
| 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87).
|-
| 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96).
|-
| 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89).
|-
| 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96).
|-
| 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97).
|-
| 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92).
|-
| 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99).
|-
| 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93).
|-
| 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87).
|-
| 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99).
|}
===Transmission & Steering Location (Position 8):===
* 4 = Automatic / LHD
* 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual)
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Codes (Position 11)===
* C - Browns Lane plant, Coventry, West Midlands, England, UK
===Positions 12–17, Serial Number===
** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27)
** 300001 and after - XJ-series sedan Series III
** 500001 and after - XJ-series sedan (XJ40/XJ81)
** 720001 and after - XJ-series sedan (X300/X305/X306/X330)
** 810001 and after - XJ-series sedan (X308)
** 001001 and after - XK8 (X100)
6oebsikvgvkiotdk3t7aospqxadxsxc
4674829
4674827
2026-10-07T09:19:16Z
JustTheFacts33
3434282
/* Transmission & Drive Wheels (Position 5 - '13-): */
4674829
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems.
==General Template for Jaguar's VIN format (2000 -)==
===Jaguar WMIs (2000-) (Position 1-3)===
* SAJ - Jaguar passenger car (UK)
* SAD - Jaguar SUV (UK & Europe)
* L2C - Chery Jaguar Land Rover (China)
===Regional Spec/Restraint System (Position 4):===
* J = Manual seat belts, Dual front airbags (US: XK8 '00)
* B = Manual seat belts, Dual front airbags (Canada: XK8 '00)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (US: XK/XKR '07-'15)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (Canada: XK/XKR '07-'15)
===Transmission & Steering Location (Position 5 - '00-'12):===
* A = Automatic / LHD
* B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04)
===Transmission & Drive Wheels (Position 5 - '13-):===
* A = Automatic / Rwd (XF, XJ, XK, F-Type)
* B = Manual / Rwd ('16- F-Type)
* J = Automatic / Awd (XF Awd, XJ Awd, '16- F-Type Awd)
===Model Line (Position 6-7)===
{| class="wikitable"
|+Position 6-7
!VIN code
!Description
|-
|51
|[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08)
|-
|52
|[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04)
|-
|53
|[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03)
|-
|54
|[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08)
|-
|01
|[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08)
|-
|05
|[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09)
|-
|06
|[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09)
|-
|07
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09)
|-
|0E
|[[w:Jaguar XF (X250)|Jaguar XF]] ('13-)
|-
|0F
|[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12)
|-
|0G
|[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E] ('10-'13)
|-
|0J
|[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'13)
|-
|0K
|[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-)
|-
|8J
|[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-)
|-
|12
|[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03)
|-
|14
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03)
|-
|15
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03)
|-
|23
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01)
|-
|24
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03)
|-
|71
|[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09)
|-
|73
|[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09)
|-
|74
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04)
|-
|79
|[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09)
|-
|86
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06)
|-
|94
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09)
|-
|1C
|[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'13)
|-
|1G
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|1J
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13]
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|2J
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13)
|-
|2K
|[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13)
|-
|3F
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13)
|-
|3G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13)
|-
|3H
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|3K
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|41
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06)
|-
|42
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06)
|-
|43
|[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09)
|-
|44
|[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09)
|-
|45
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09)
|-
|46
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'13)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4H
|[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'13)
|-
|4J
|[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'13)
|}
===Engine/Emissions Control System (Position 8)===
{| class="wikitable"
|+Position 8
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08).
|-
| A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10).
|-
| A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14).
|-
| B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02).
|-
| B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06).
|-
| B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09).
|-
| B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14).
|-
| C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05).
|-
| C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02).
|-
| C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06).
|-
| C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09).
|-
| C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15).
|-
| D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01).
|-
| D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05).
|-
| D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-).
|-
| E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13).
|-
| F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-).
|-
| H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-).
|-
| N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02).
|-
| P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02).
|-
| P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-).
|-
| S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based). Jaguar XF 2.0 ('13-'15).
|-
| T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05).
|-
| T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13).
|-
| U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05).
|-
| V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05).
|-
| Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-).
|-
| 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13).
|-
| 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13-), XJ Rwd ('13-).
|}
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Code/Model Line/Engine (Position 11) 2000-2019===
* X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05)
* W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08)
* F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08)
* G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02)
* H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08)
* 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08)
* H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10)
* 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09)
* L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12)
* M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15)
* P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15)
* 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15)
* L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03)
* M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03)
* S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06)
* T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06)
* S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09)
* T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19)
* 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19)
* N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02)
* P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02)
* 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06)
* 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06)
* 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09)
* 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15)
* M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14)
* 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17)
* M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17)
===Plant Codes (Position 11) 2016-2026===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26)
* C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24)
* S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19)
* 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24)
===Model (Position 12)===
* C - X-Type ('02-'03)
* D - X-Type ('03-'04)
* E - X-Type ('04-'06)
* J - X-Type ('06-'08)
* L - S-Type ('00-'01)
* M - S-Type ('01-'04)
* N - S-Type ('04-'08)
* R - XF ('09-'11)
* S - XF ('11-'13)
* U - XF ('13-'15)
* F - XJ ('00-'03)
* G - XJ ('04-'06) [Browns Lane plant]
* H - XJ ('06-'09) [Castle Bromwich plant]
* V - XJ ('10-'16)
* W - XJ ('16-'19)
* A - XK ('00-'06)
* B - XK ('07-'15)
* K - F-Type ('14-'24)
'''Positions 13–17, Serial Number'''
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line (Position 4)===
{| class="wikitable"
|+Position 4
!VIN code
!Description
|-
|A
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87)
|-
|B
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88)
|-
|D
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94)
|-
|F
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92)
|-
|K
|[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94)
|-
|M
|[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92)
|-
|M
|[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96)
|-
|P
|[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99)
|-
|K
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99)
|-
|P
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99)
|-
|N
|[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96)
|-
|T
|[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91)
|-
|S
|[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93)
|-
|G
|[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99)
|}
===Class (Regional Spec)/Restraint System (Position 5):===
* V = N. American-spec (Manual seat belts)
* L = Canadian-spec (Manual seat belts)
* Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts)
* A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88)
* Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92)
* W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94)
* X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99)
* X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99)
* M = Manual seat belts, Driver-side airbag (Canada)
* N = Manual seat belts, Dual front airbags (Canada)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99)
===Body Style (Position 6):===
* 1 = 4-door sedan (XJ-series sedan '81-'99)
* 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99)
* 3 = 2-door Cabriolet (XJ-SC '86-'88)
* 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93)
* 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99)
* 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion]
===Engine Type (Position 7):===
{| class="wikitable"
|+Position 7
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97).
|-
| 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82).
|-
| 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97).
|-
| 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98).
|-
| 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87).
|-
| 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96).
|-
| 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89).
|-
| 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96).
|-
| 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97).
|-
| 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92).
|-
| 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99).
|-
| 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93).
|-
| 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87).
|-
| 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99).
|}
===Transmission & Steering Location (Position 8):===
* 4 = Automatic / LHD
* 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual)
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Codes (Position 11)===
* C - Browns Lane plant, Coventry, West Midlands, England, UK
===Positions 12–17, Serial Number===
** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27)
** 300001 and after - XJ-series sedan Series III
** 500001 and after - XJ-series sedan (XJ40/XJ81)
** 720001 and after - XJ-series sedan (X300/X305/X306/X330)
** 810001 and after - XJ-series sedan (X308)
** 001001 and after - XK8 (X100)
rpifilpbfl7n351w958vm4xtt9bdajd
4674834
4674829
2026-10-07T09:26:46Z
JustTheFacts33
3434282
/* Regional Spec/Restraint System (Position 4): */
4674834
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems.
==General Template for Jaguar's VIN format (2000 -)==
===Jaguar WMIs (2000-) (Position 1-3)===
* SAJ - Jaguar passenger car (UK)
* SAD - Jaguar SUV (UK & Europe)
* L2C - Chery Jaguar Land Rover (China)
===Regional Spec/Restraint System (Position 4):===
* J = Manual seat belts, Dual front airbags (US: XK8 '00)
* B = Manual seat belts, Dual front airbags (Canada: XK8 '00)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (US: XK/XKR '07-'15, F-Type '14-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (Canada: XK/XKR '07-'15, F-Type '14-)
===Transmission & Steering Location (Position 5 - '00-'12):===
* A = Automatic / LHD
* B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04)
===Transmission & Drive Wheels (Position 5 - '13-):===
* A = Automatic / Rwd (XF, XJ, XK, F-Type)
* B = Manual / Rwd ('16- F-Type)
* J = Automatic / Awd (XF Awd, XJ Awd, '16- F-Type Awd)
===Model Line (Position 6-7)===
{| class="wikitable"
|+Position 6-7
!VIN code
!Description
|-
|51
|[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08)
|-
|52
|[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04)
|-
|53
|[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03)
|-
|54
|[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08)
|-
|01
|[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08)
|-
|05
|[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09)
|-
|06
|[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09)
|-
|07
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09)
|-
|0E
|[[w:Jaguar XF (X250)|Jaguar XF]] ('13-)
|-
|0F
|[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12)
|-
|0G
|[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E] ('10-'13)
|-
|0J
|[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'13)
|-
|0K
|[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-)
|-
|8J
|[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-)
|-
|12
|[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03)
|-
|14
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03)
|-
|15
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03)
|-
|23
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01)
|-
|24
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03)
|-
|71
|[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09)
|-
|73
|[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09)
|-
|74
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04)
|-
|79
|[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09)
|-
|86
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06)
|-
|94
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09)
|-
|1C
|[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'13)
|-
|1G
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|1J
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13]
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|2J
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13)
|-
|2K
|[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13)
|-
|3F
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13)
|-
|3G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13)
|-
|3H
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|3K
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|41
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06)
|-
|42
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06)
|-
|43
|[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09)
|-
|44
|[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09)
|-
|45
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09)
|-
|46
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'13)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4H
|[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'13)
|-
|4J
|[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'13)
|}
===Engine/Emissions Control System (Position 8)===
{| class="wikitable"
|+Position 8
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08).
|-
| A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10).
|-
| A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14).
|-
| B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02).
|-
| B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06).
|-
| B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09).
|-
| B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14).
|-
| C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05).
|-
| C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02).
|-
| C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06).
|-
| C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09).
|-
| C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15).
|-
| D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01).
|-
| D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05).
|-
| D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-).
|-
| E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13).
|-
| F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-).
|-
| H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-).
|-
| N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02).
|-
| P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02).
|-
| P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-).
|-
| S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based). Jaguar XF 2.0 ('13-'15).
|-
| T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05).
|-
| T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13).
|-
| U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05).
|-
| V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05).
|-
| Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-).
|-
| 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13).
|-
| 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13-), XJ Rwd ('13-).
|}
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Code/Model Line/Engine (Position 11) 2000-2019===
* X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05)
* W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08)
* F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08)
* G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02)
* H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08)
* 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08)
* H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10)
* 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09)
* L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12)
* M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15)
* P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15)
* 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15)
* L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03)
* M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03)
* S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06)
* T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06)
* S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09)
* T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19)
* 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19)
* N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02)
* P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02)
* 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06)
* 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06)
* 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09)
* 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15)
* M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14)
* 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17)
* M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17)
===Plant Codes (Position 11) 2016-2026===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26)
* C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24)
* S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19)
* 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24)
===Model (Position 12)===
* C - X-Type ('02-'03)
* D - X-Type ('03-'04)
* E - X-Type ('04-'06)
* J - X-Type ('06-'08)
* L - S-Type ('00-'01)
* M - S-Type ('01-'04)
* N - S-Type ('04-'08)
* R - XF ('09-'11)
* S - XF ('11-'13)
* U - XF ('13-'15)
* F - XJ ('00-'03)
* G - XJ ('04-'06) [Browns Lane plant]
* H - XJ ('06-'09) [Castle Bromwich plant]
* V - XJ ('10-'16)
* W - XJ ('16-'19)
* A - XK ('00-'06)
* B - XK ('07-'15)
* K - F-Type ('14-'24)
'''Positions 13–17, Serial Number'''
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line (Position 4)===
{| class="wikitable"
|+Position 4
!VIN code
!Description
|-
|A
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87)
|-
|B
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88)
|-
|D
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94)
|-
|F
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92)
|-
|K
|[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94)
|-
|M
|[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92)
|-
|M
|[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96)
|-
|P
|[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99)
|-
|K
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99)
|-
|P
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99)
|-
|N
|[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96)
|-
|T
|[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91)
|-
|S
|[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93)
|-
|G
|[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99)
|}
===Class (Regional Spec)/Restraint System (Position 5):===
* V = N. American-spec (Manual seat belts)
* L = Canadian-spec (Manual seat belts)
* Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts)
* A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88)
* Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92)
* W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94)
* X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99)
* X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99)
* M = Manual seat belts, Driver-side airbag (Canada)
* N = Manual seat belts, Dual front airbags (Canada)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99)
===Body Style (Position 6):===
* 1 = 4-door sedan (XJ-series sedan '81-'99)
* 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99)
* 3 = 2-door Cabriolet (XJ-SC '86-'88)
* 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93)
* 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99)
* 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion]
===Engine Type (Position 7):===
{| class="wikitable"
|+Position 7
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97).
|-
| 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82).
|-
| 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97).
|-
| 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98).
|-
| 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87).
|-
| 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96).
|-
| 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89).
|-
| 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96).
|-
| 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97).
|-
| 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92).
|-
| 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99).
|-
| 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93).
|-
| 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87).
|-
| 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99).
|}
===Transmission & Steering Location (Position 8):===
* 4 = Automatic / LHD
* 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual)
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Codes (Position 11)===
* C - Browns Lane plant, Coventry, West Midlands, England, UK
===Positions 12–17, Serial Number===
** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27)
** 300001 and after - XJ-series sedan Series III
** 500001 and after - XJ-series sedan (XJ40/XJ81)
** 720001 and after - XJ-series sedan (X300/X305/X306/X330)
** 810001 and after - XJ-series sedan (X308)
** 001001 and after - XK8 (X100)
sj41fjp31v61182r0iyxhsi2t6f3nv0
4674844
4674834
2026-10-07T09:39:27Z
JustTheFacts33
3434282
/* Model Line (Position 6-7) */
4674844
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems.
==General Template for Jaguar's VIN format (2000 -)==
===Jaguar WMIs (2000-) (Position 1-3)===
* SAJ - Jaguar passenger car (UK)
* SAD - Jaguar SUV (UK & Europe)
* L2C - Chery Jaguar Land Rover (China)
===Regional Spec/Restraint System (Position 4):===
* J = Manual seat belts, Dual front airbags (US: XK8 '00)
* B = Manual seat belts, Dual front airbags (Canada: XK8 '00)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (US: XK/XKR '07-'15, F-Type '14-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (Canada: XK/XKR '07-'15, F-Type '14-)
===Transmission & Steering Location (Position 5 - '00-'12):===
* A = Automatic / LHD
* B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04)
===Transmission & Drive Wheels (Position 5 - '13-):===
* A = Automatic / Rwd (XF, XJ, XK, F-Type)
* B = Manual / Rwd ('16- F-Type)
* J = Automatic / Awd (XF Awd, XJ Awd, '16- F-Type Awd)
===Model Line (Position 6-7)===
{| class="wikitable"
|+Position 6-7
!VIN code
!Description
|-
|51
|[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08)
|-
|52
|[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04)
|-
|53
|[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03)
|-
|54
|[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08)
|-
|01
|[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08)
|-
|05
|[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09)
|-
|06
|[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09)
|-
|07
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09)
|-
|0E
|[[w:Jaguar XF (X250)|Jaguar XF]] ('13-)
|-
|0F
|[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12)
|-
|0G
|[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E] ('10-'13)
|-
|0J
|[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'13)
|-
|0K
|[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-)
|-
|8J
|[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-)
|-
|12
|[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03)
|-
|14
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03)
|-
|15
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03)
|-
|23
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01)
|-
|24
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03)
|-
|71
|[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09)
|-
|73
|[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09)
|-
|74
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04)
|-
|79
|[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09)
|-
|86
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06)
|-
|94
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09)
|-
|1C
|[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'13)
|-
|1G
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|1J
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13]
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|2J
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13)
|-
|2K
|[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13)
|-
|3F
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13)
|-
|3G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13)
|-
|3H
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|3K
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|41
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06)
|-
|42
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06)
|-
|43
|[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09)
|-
|44
|[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09)
|-
|45
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09)
|-
|46
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'13)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4H
|[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'13)
|-
|4J
|[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'13)
|-
|6E
|[[w:Jaguar F-Type)|Jaguar F-Type convertible]] ('14-)
|-
|6F
|[[w:Jaguar F-Type)|Jaguar F-Type S convertible]] ('14-)
|-
|6G
|[[w:Jaguar F-Type)|Jaguar F-Type V8 S convertible]] ('14-)
|}
===Engine/Emissions Control System (Position 8)===
{| class="wikitable"
|+Position 8
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08).
|-
| A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10).
|-
| A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14).
|-
| B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02).
|-
| B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06).
|-
| B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09).
|-
| B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14).
|-
| C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05).
|-
| C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02).
|-
| C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06).
|-
| C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09).
|-
| C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15).
|-
| D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01).
|-
| D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05).
|-
| D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-).
|-
| E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13).
|-
| F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-).
|-
| H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-).
|-
| N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02).
|-
| P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02).
|-
| P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-).
|-
| S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based). Jaguar XF 2.0 ('13-'15).
|-
| T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05).
|-
| T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13).
|-
| U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05).
|-
| V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05).
|-
| Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-).
|-
| 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13).
|-
| 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13-), XJ Rwd ('13-).
|}
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Code/Model Line/Engine (Position 11) 2000-2019===
* X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05)
* W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08)
* F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08)
* G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02)
* H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08)
* 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08)
* H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10)
* 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09)
* L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12)
* M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15)
* P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15)
* 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15)
* L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03)
* M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03)
* S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06)
* T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06)
* S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09)
* T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19)
* 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19)
* N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02)
* P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02)
* 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06)
* 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06)
* 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09)
* 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15)
* M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14)
* 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17)
* M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17)
===Plant Codes (Position 11) 2016-2026===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26)
* C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24)
* S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19)
* 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24)
===Model (Position 12)===
* C - X-Type ('02-'03)
* D - X-Type ('03-'04)
* E - X-Type ('04-'06)
* J - X-Type ('06-'08)
* L - S-Type ('00-'01)
* M - S-Type ('01-'04)
* N - S-Type ('04-'08)
* R - XF ('09-'11)
* S - XF ('11-'13)
* U - XF ('13-'15)
* F - XJ ('00-'03)
* G - XJ ('04-'06) [Browns Lane plant]
* H - XJ ('06-'09) [Castle Bromwich plant]
* V - XJ ('10-'16)
* W - XJ ('16-'19)
* A - XK ('00-'06)
* B - XK ('07-'15)
* K - F-Type ('14-'24)
'''Positions 13–17, Serial Number'''
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line (Position 4)===
{| class="wikitable"
|+Position 4
!VIN code
!Description
|-
|A
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87)
|-
|B
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88)
|-
|D
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94)
|-
|F
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92)
|-
|K
|[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94)
|-
|M
|[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92)
|-
|M
|[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96)
|-
|P
|[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99)
|-
|K
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99)
|-
|P
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99)
|-
|N
|[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96)
|-
|T
|[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91)
|-
|S
|[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93)
|-
|G
|[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99)
|}
===Class (Regional Spec)/Restraint System (Position 5):===
* V = N. American-spec (Manual seat belts)
* L = Canadian-spec (Manual seat belts)
* Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts)
* A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88)
* Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92)
* W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94)
* X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99)
* X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99)
* M = Manual seat belts, Driver-side airbag (Canada)
* N = Manual seat belts, Dual front airbags (Canada)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99)
===Body Style (Position 6):===
* 1 = 4-door sedan (XJ-series sedan '81-'99)
* 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99)
* 3 = 2-door Cabriolet (XJ-SC '86-'88)
* 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93)
* 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99)
* 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion]
===Engine Type (Position 7):===
{| class="wikitable"
|+Position 7
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97).
|-
| 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82).
|-
| 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97).
|-
| 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98).
|-
| 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87).
|-
| 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96).
|-
| 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89).
|-
| 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96).
|-
| 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97).
|-
| 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92).
|-
| 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99).
|-
| 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93).
|-
| 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87).
|-
| 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99).
|}
===Transmission & Steering Location (Position 8):===
* 4 = Automatic / LHD
* 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual)
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Codes (Position 11)===
* C - Browns Lane plant, Coventry, West Midlands, England, UK
===Positions 12–17, Serial Number===
** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27)
** 300001 and after - XJ-series sedan Series III
** 500001 and after - XJ-series sedan (XJ40/XJ81)
** 720001 and after - XJ-series sedan (X300/X305/X306/X330)
** 810001 and after - XJ-series sedan (X308)
** 001001 and after - XK8 (X100)
0iput0edswj9fs6waizaiibeeyro444
4674845
4674844
2026-10-07T09:45:02Z
JustTheFacts33
3434282
/* Engine/Emissions Control System (Position 8) */
4674845
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems.
==General Template for Jaguar's VIN format (2000 -)==
===Jaguar WMIs (2000-) (Position 1-3)===
* SAJ - Jaguar passenger car (UK)
* SAD - Jaguar SUV (UK & Europe)
* L2C - Chery Jaguar Land Rover (China)
===Regional Spec/Restraint System (Position 4):===
* J = Manual seat belts, Dual front airbags (US: XK8 '00)
* B = Manual seat belts, Dual front airbags (Canada: XK8 '00)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (US: XK/XKR '07-'15, F-Type '14-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (Canada: XK/XKR '07-'15, F-Type '14-)
===Transmission & Steering Location (Position 5 - '00-'12):===
* A = Automatic / LHD
* B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04)
===Transmission & Drive Wheels (Position 5 - '13-):===
* A = Automatic / Rwd (XF, XJ, XK, F-Type)
* B = Manual / Rwd ('16- F-Type)
* J = Automatic / Awd (XF Awd, XJ Awd, '16- F-Type Awd)
===Model Line (Position 6-7)===
{| class="wikitable"
|+Position 6-7
!VIN code
!Description
|-
|51
|[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08)
|-
|52
|[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04)
|-
|53
|[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03)
|-
|54
|[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08)
|-
|01
|[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08)
|-
|05
|[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09)
|-
|06
|[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09)
|-
|07
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09)
|-
|0E
|[[w:Jaguar XF (X250)|Jaguar XF]] ('13-)
|-
|0F
|[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12)
|-
|0G
|[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E] ('10-'13)
|-
|0J
|[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'13)
|-
|0K
|[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-)
|-
|8J
|[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-)
|-
|12
|[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03)
|-
|14
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03)
|-
|15
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03)
|-
|23
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01)
|-
|24
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03)
|-
|71
|[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09)
|-
|73
|[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09)
|-
|74
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04)
|-
|79
|[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09)
|-
|86
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06)
|-
|94
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09)
|-
|1C
|[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'13)
|-
|1G
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|1J
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13]
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|2J
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13)
|-
|2K
|[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13)
|-
|3F
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13)
|-
|3G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13)
|-
|3H
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|3K
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|41
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06)
|-
|42
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06)
|-
|43
|[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09)
|-
|44
|[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09)
|-
|45
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09)
|-
|46
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'13)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4H
|[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'13)
|-
|4J
|[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'13)
|-
|6E
|[[w:Jaguar F-Type)|Jaguar F-Type convertible]] ('14-)
|-
|6F
|[[w:Jaguar F-Type)|Jaguar F-Type S convertible]] ('14-)
|-
|6G
|[[w:Jaguar F-Type)|Jaguar F-Type V8 S convertible]] ('14-)
|}
===Engine/Emissions Control System (Position 8)===
{| class="wikitable"
|+Position 8
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08).
|-
| A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10).
|-
| A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14).
|-
| B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02).
|-
| B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06).
|-
| B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09).
|-
| B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14).
|-
| C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05).
|-
| C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02).
|-
| C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06).
|-
| C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09).
|-
| C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15).
|-
| D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01).
|-
| D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05).
|-
| D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-).
|-
| E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13).
|-
| F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-).
|-
| H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-).
|-
| N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02).
|-
| P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02).
|-
| P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-).
|-
| S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based). Jaguar XF 2.0 ('13-'15).
|-
| T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05).
|-
| T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13).
|-
| U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05).
|-
| V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05).
|-
| Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-).
|-
| 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13).
|-
| 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13-), XJ Rwd ('13-), F-Type ('14-).
|}
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Code/Model Line/Engine (Position 11) 2000-2019===
* X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05)
* W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08)
* F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08)
* G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02)
* H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08)
* 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08)
* H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10)
* 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09)
* L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12)
* M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15)
* P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15)
* 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15)
* L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03)
* M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03)
* S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06)
* T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06)
* S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09)
* T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19)
* 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19)
* N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02)
* P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02)
* 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06)
* 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06)
* 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09)
* 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15)
* M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14)
* 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17)
* M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17)
===Plant Codes (Position 11) 2016-2026===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26)
* C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24)
* S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19)
* 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24)
===Model (Position 12)===
* C - X-Type ('02-'03)
* D - X-Type ('03-'04)
* E - X-Type ('04-'06)
* J - X-Type ('06-'08)
* L - S-Type ('00-'01)
* M - S-Type ('01-'04)
* N - S-Type ('04-'08)
* R - XF ('09-'11)
* S - XF ('11-'13)
* U - XF ('13-'15)
* F - XJ ('00-'03)
* G - XJ ('04-'06) [Browns Lane plant]
* H - XJ ('06-'09) [Castle Bromwich plant]
* V - XJ ('10-'16)
* W - XJ ('16-'19)
* A - XK ('00-'06)
* B - XK ('07-'15)
* K - F-Type ('14-'24)
'''Positions 13–17, Serial Number'''
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line (Position 4)===
{| class="wikitable"
|+Position 4
!VIN code
!Description
|-
|A
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87)
|-
|B
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88)
|-
|D
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94)
|-
|F
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92)
|-
|K
|[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94)
|-
|M
|[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92)
|-
|M
|[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96)
|-
|P
|[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99)
|-
|K
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99)
|-
|P
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99)
|-
|N
|[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96)
|-
|T
|[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91)
|-
|S
|[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93)
|-
|G
|[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99)
|}
===Class (Regional Spec)/Restraint System (Position 5):===
* V = N. American-spec (Manual seat belts)
* L = Canadian-spec (Manual seat belts)
* Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts)
* A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88)
* Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92)
* W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94)
* X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99)
* X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99)
* M = Manual seat belts, Driver-side airbag (Canada)
* N = Manual seat belts, Dual front airbags (Canada)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99)
===Body Style (Position 6):===
* 1 = 4-door sedan (XJ-series sedan '81-'99)
* 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99)
* 3 = 2-door Cabriolet (XJ-SC '86-'88)
* 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93)
* 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99)
* 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion]
===Engine Type (Position 7):===
{| class="wikitable"
|+Position 7
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97).
|-
| 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82).
|-
| 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97).
|-
| 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98).
|-
| 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87).
|-
| 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96).
|-
| 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89).
|-
| 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96).
|-
| 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97).
|-
| 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92).
|-
| 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99).
|-
| 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93).
|-
| 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87).
|-
| 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99).
|}
===Transmission & Steering Location (Position 8):===
* 4 = Automatic / LHD
* 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual)
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Codes (Position 11)===
* C - Browns Lane plant, Coventry, West Midlands, England, UK
===Positions 12–17, Serial Number===
** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27)
** 300001 and after - XJ-series sedan Series III
** 500001 and after - XJ-series sedan (XJ40/XJ81)
** 720001 and after - XJ-series sedan (X300/X305/X306/X330)
** 810001 and after - XJ-series sedan (X308)
** 001001 and after - XK8 (X100)
1d7scqm03ac90am033a2aldo7mj7r7w
4674846
4674845
2026-10-07T09:52:28Z
JustTheFacts33
3434282
/* Engine/Emissions Control System (Position 8) */
4674846
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems.
==General Template for Jaguar's VIN format (2000 -)==
===Jaguar WMIs (2000-) (Position 1-3)===
* SAJ - Jaguar passenger car (UK)
* SAD - Jaguar SUV (UK & Europe)
* L2C - Chery Jaguar Land Rover (China)
===Regional Spec/Restraint System (Position 4):===
* J = Manual seat belts, Dual front airbags (US: XK8 '00)
* B = Manual seat belts, Dual front airbags (Canada: XK8 '00)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (US: XK/XKR '07-'15, F-Type '14-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (Canada: XK/XKR '07-'15, F-Type '14-)
===Transmission & Steering Location (Position 5 - '00-'12):===
* A = Automatic / LHD
* B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04)
===Transmission & Drive Wheels (Position 5 - '13-):===
* A = Automatic / Rwd (XF, XJ, XK, F-Type)
* B = Manual / Rwd ('16- F-Type)
* J = Automatic / Awd (XF Awd, XJ Awd, '16- F-Type Awd)
===Model Line (Position 6-7)===
{| class="wikitable"
|+Position 6-7
!VIN code
!Description
|-
|51
|[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08)
|-
|52
|[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04)
|-
|53
|[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03)
|-
|54
|[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08)
|-
|01
|[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08)
|-
|05
|[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09)
|-
|06
|[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09)
|-
|07
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09)
|-
|0E
|[[w:Jaguar XF (X250)|Jaguar XF]] ('13-)
|-
|0F
|[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12)
|-
|0G
|[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E] ('10-'13)
|-
|0J
|[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'13)
|-
|0K
|[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-)
|-
|8J
|[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-)
|-
|12
|[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03)
|-
|14
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03)
|-
|15
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03)
|-
|23
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01)
|-
|24
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03)
|-
|71
|[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09)
|-
|73
|[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09)
|-
|74
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04)
|-
|79
|[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09)
|-
|86
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06)
|-
|94
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09)
|-
|1C
|[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'13)
|-
|1G
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|1J
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13]
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|2J
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13)
|-
|2K
|[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13)
|-
|3F
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13)
|-
|3G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13)
|-
|3H
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|3K
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|41
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06)
|-
|42
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06)
|-
|43
|[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09)
|-
|44
|[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09)
|-
|45
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09)
|-
|46
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'13)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4H
|[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'13)
|-
|4J
|[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'13)
|-
|6E
|[[w:Jaguar F-Type)|Jaguar F-Type convertible]] ('14-)
|-
|6F
|[[w:Jaguar F-Type)|Jaguar F-Type S convertible]] ('14-)
|-
|6G
|[[w:Jaguar F-Type)|Jaguar F-Type V8 S convertible]] ('14-)
|}
===Engine/Emissions Control System (Position 8)===
{| class="wikitable"
|+Position 8
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08).
|-
| A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10).
|-
| A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14).
|-
| B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02).
|-
| B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06).
|-
| B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09).
|-
| B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14).
|-
| C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05).
|-
| C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02).
|-
| C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06).
|-
| C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09).
|-
| C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15).
|-
| C || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('14-).
|-
| D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01).
|-
| D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05).
|-
| D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-).
|-
| E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13).
|-
| F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-).
|-
| H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-).
|-
| L || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 495 PS/488 hp. Jaguar F-Type V8 S ('14-).
|-
| N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02).
|-
| P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02).
|-
| P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-).
|-
| S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based). Jaguar XF 2.0 ('13-'15).
|-
| T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05).
|-
| T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13).
|-
| U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05).
|-
| V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05).
|-
| Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-).
|-
| 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13).
|-
| 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13-), XJ Rwd ('13-), F-Type ('14-).
|}
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Code/Model Line/Engine (Position 11) 2000-2019===
* X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05)
* W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08)
* F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08)
* G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02)
* H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08)
* 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08)
* H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10)
* 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09)
* L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12)
* M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15)
* P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15)
* 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15)
* L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03)
* M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03)
* S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06)
* T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06)
* S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09)
* T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19)
* 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19)
* N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02)
* P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02)
* 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06)
* 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06)
* 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09)
* 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15)
* M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14)
* 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17)
* M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17)
===Plant Codes (Position 11) 2016-2026===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26)
* C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24)
* S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19)
* 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24)
===Model (Position 12)===
* C - X-Type ('02-'03)
* D - X-Type ('03-'04)
* E - X-Type ('04-'06)
* J - X-Type ('06-'08)
* L - S-Type ('00-'01)
* M - S-Type ('01-'04)
* N - S-Type ('04-'08)
* R - XF ('09-'11)
* S - XF ('11-'13)
* U - XF ('13-'15)
* F - XJ ('00-'03)
* G - XJ ('04-'06) [Browns Lane plant]
* H - XJ ('06-'09) [Castle Bromwich plant]
* V - XJ ('10-'16)
* W - XJ ('16-'19)
* A - XK ('00-'06)
* B - XK ('07-'15)
* K - F-Type ('14-'24)
'''Positions 13–17, Serial Number'''
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line (Position 4)===
{| class="wikitable"
|+Position 4
!VIN code
!Description
|-
|A
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87)
|-
|B
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88)
|-
|D
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94)
|-
|F
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92)
|-
|K
|[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94)
|-
|M
|[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92)
|-
|M
|[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96)
|-
|P
|[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99)
|-
|K
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99)
|-
|P
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99)
|-
|N
|[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96)
|-
|T
|[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91)
|-
|S
|[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93)
|-
|G
|[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99)
|}
===Class (Regional Spec)/Restraint System (Position 5):===
* V = N. American-spec (Manual seat belts)
* L = Canadian-spec (Manual seat belts)
* Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts)
* A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88)
* Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92)
* W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94)
* X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99)
* X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99)
* M = Manual seat belts, Driver-side airbag (Canada)
* N = Manual seat belts, Dual front airbags (Canada)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99)
===Body Style (Position 6):===
* 1 = 4-door sedan (XJ-series sedan '81-'99)
* 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99)
* 3 = 2-door Cabriolet (XJ-SC '86-'88)
* 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93)
* 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99)
* 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion]
===Engine Type (Position 7):===
{| class="wikitable"
|+Position 7
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97).
|-
| 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82).
|-
| 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97).
|-
| 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98).
|-
| 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87).
|-
| 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96).
|-
| 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89).
|-
| 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96).
|-
| 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97).
|-
| 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92).
|-
| 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99).
|-
| 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93).
|-
| 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87).
|-
| 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99).
|}
===Transmission & Steering Location (Position 8):===
* 4 = Automatic / LHD
* 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual)
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Codes (Position 11)===
* C - Browns Lane plant, Coventry, West Midlands, England, UK
===Positions 12–17, Serial Number===
** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27)
** 300001 and after - XJ-series sedan Series III
** 500001 and after - XJ-series sedan (XJ40/XJ81)
** 720001 and after - XJ-series sedan (X300/X305/X306/X330)
** 810001 and after - XJ-series sedan (X308)
** 001001 and after - XK8 (X100)
1k0syl9gmq11g5g1z2fdzjpbjukbj18
4674847
4674846
2026-10-07T09:56:54Z
JustTheFacts33
3434282
/* Engine/Emissions Control System (Position 8) */
4674847
wikitext
text/x-wiki
{{Vehicle Identification Numbers (VIN codes)/Warning}}{{clear}}
This VIN number decoding and designation system is used primarily for the North American Market. European and Asian markets use other decoding and designation systems.
==General Template for Jaguar's VIN format (2000 -)==
===Jaguar WMIs (2000-) (Position 1-3)===
* SAJ - Jaguar passenger car (UK)
* SAD - Jaguar SUV (UK & Europe)
* L2C - Chery Jaguar Land Rover (China)
===Regional Spec/Restraint System (Position 4):===
* J = Manual seat belts, Dual front airbags (US: XK8 '00)
* B = Manual seat belts, Dual front airbags (Canada: XK8 '00)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: S-Type '00-'02, XJ8/XJR '00-'03, XK8/XKR '01-'06, XK/XKR Early '07)
* E = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (US: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* G = Manual seat belts, Depowered Dual front airbags w/occupant position sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '02-'04, S-Type '03-'04, XJ8/XJR Early '04)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags <br> (US: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Airbags & Side Curtain Airbags (Canada: X-Type '05-'08, S-Type '05-'08, XF '09-, XJ8/XJR '04-'09, XJ '10-)
* W = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (US: XK/XKR '07-'15, F-Type '14-)
* X = Manual seat belts, Depowered Dual front airbags w/occupant position (driver) and weight (fr. psgr.) sensing, & Front Side Head/Thorax Airbags (Canada: XK/XKR '07-'15, F-Type '14-)
===Transmission & Steering Location (Position 5 - '00-'12):===
* A = Automatic / LHD
* B = Manual / LHD (X-Type '02-'05, S-Type 3.0 '03-'04)
===Transmission & Drive Wheels (Position 5 - '13-):===
* A = Automatic / Rwd (XF, XJ, XK, F-Type)
* B = Manual / Rwd ('16- F-Type)
* J = Automatic / Awd (XF Awd, XJ Awd, '16- F-Type Awd)
===Model Line (Position 6-7)===
{| class="wikitable"
|+Position 6-7
!VIN code
!Description
|-
|51
|[[w:Jaguar X-Type|Jaguar X-Type sedan - High Series]] ('02-'08)
|-
|52
|[[w:Jaguar X-Type|Jaguar X-Type sedan - Entry Series]] ('03-'04)
|-
|53
|[[w:Jaguar X-Type|Jaguar X-Type sedan w/Sport Package]] ('02-'03)
|-
|54
|[[w:Jaguar X-Type|Jaguar X-Type Sportwagon]] ('05-'08)
|-
|01
|[[w:Jaguar S-Type (1999)|Jaguar S-Type]] ('00-'08)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.0] ('02)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type Sport]] [3.0, 4.2] ('03)
|-
|03
|[[w:Jaguar S-Type (1999)|Jaguar S-Type R]] ('03-'08)
|-
|05
|[[w:Jaguar XF (X250)|Jaguar XF Luxury]] ('09)
|-
|06
|[[w:Jaguar XF (X250)|Jaguar XF Premium Luxury]] ('09)
|-
|07
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] ('09)
|-
|0E
|[[w:Jaguar XF (X250)|Jaguar XF]] ('13-)
|-
|0F
|[[w:Jaguar XF (X250)|Jaguar XF]] ('10-'12)
|-
|0G
|[[w:Jaguar XF (X250)|Jaguar XF Premium]] ('10-'11)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Portfolio]] [8th pos. of VIN is B] ('12)
|-
|0H
|[[w:Jaguar XF (X250)|Jaguar XF Supercharged]] [8th pos. of VIN is E] ('10-'13)
|-
|0J
|[[w:Jaguar XF (X250)|Jaguar XFR]] ('10-'13)
|-
|0K
|[[w:Jaguar XF (X250)|Jaguar XFR-S]] ('13-)
|-
|8J
|[[w:Jaguar XF (X250)|Jaguar XFR w/Speed Pack]] ('13-)
|-
|12
|[[w:Jaguar XJ (X308)#Sport|Jaguar XJ Sport]] ('02-'03)
|-
|14
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('00-'03)
|-
|15
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('00-'03)
|-
|23
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] (LWB) ('00-'01)
|-
|24
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] (LWB) ('00-'03)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas Supercharged]] (LWB) ('00-'01)
|-
|25
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ Super V8]] (LWB) ('02-'03)
|-
|71
|[[w:Jaguar XJ (X350)|Jaguar XJ8]] ('04-'09)
|-
|73
|[[w:Jaguar XJ (X350)|Jaguar XJR]] ('04-'09)
|-
|74
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (SWB) ('04)
|-
|79
|[[w:Jaguar XJ (X350)|Jaguar XJ8L]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ8 Vanden Plas]] (LWB) ('05-'09)
|-
|82
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8]] (LWB, 5-psgr.) ('05-'09)
|-
|86
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 4-psgr.) ('06)
|-
|94
|[[w:Jaguar XJ (X350)|Jaguar XJ Super V8 Portfolio]] (LWB, 5-psgr.) ('09)
|-
|1C
|[[w:Jaguar XJ (X351)|Jaguar XJ]] ('10-'13)
|-
|1G
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|1J
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport]] ('11-'12)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL]] [8th pos. of VIN is B] ('10-'11)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Rwd]] [8th pos. of VIN is B: '12-'13 or 1: '13]
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Portfolio Awd]] [8th pos. of VIN is D] ('13-)
|-
|2G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged]] [8th pos. of VIN is E: '10-'13 or T: '13]
|-
|2J
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport]] ('11-'13)
|-
|2K
|[[w:Jaguar XJ (X351)|Jaguar XJL Ultimate]] ('13)
|-
|3F
|[[w:Jaguar XJ (X351)|Jaguar XJ Supersport w/Speed Pack]] ('12-'13)
|-
|3G
|[[w:Jaguar XJ (X351)|Jaguar XJL Supersport w/Speed Pack]] ('12-'13)
|-
|3H
|[[w:Jaguar XJ (X351)|Jaguar XJ Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|3K
|[[w:Jaguar XJ (X351)|Jaguar XJL Supercharged w/Sport & Speed Pack]] ('12-'13)
|-
|41
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR coupe]] ('00-'06)
|-
|42
|[[w:Jaguar XK (X100)|Jaguar XK8/XKR convertible]] ('00-'06)
|-
|43
|[[w:Jaguar XK (X150)|Jaguar XK/XKR coupe]] ('07-'09)
|-
|44
|[[w:Jaguar XK (X150)|Jaguar XK/XKR convertible]] ('07-'09)
|-
|45
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition coupe]] ('09)
|-
|46
|[[w:Jaguar XK (X150)|Jaguar XKR Portfolio Edition convertible]] ('09)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XK Touring coupe]] [8th pos. of VIN is B] ('13-)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XK Touring convertible]] [8th pos. of VIN is B] ('13-)
|-
|4D
|[[w:Jaguar XK (X150)|Jaguar XKR coupe]] [8th pos. of VIN is C] ('10-'13)
|-
|4E
|[[w:Jaguar XK (X150)|Jaguar XKR convertible]] [8th pos. of VIN is C] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XK coupe]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR175 coupe]] [8th pos. of VIN is C] ('11)
|-
|4F
|[[w:Jaguar XK (X150)|Jaguar XKR coupe w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XK convertible]] (most Portfolio Edition features are std.) [8th pos. of VIN is B] ('10-'13)
|-
|4G
|[[w:Jaguar XK (X150)|Jaguar XKR convertible w/Dynamic Pack]] [8th pos. of VIN is C] ('13-)
|-
|4H
|[[w:Jaguar XK (X150)|Jaguar XKR-S coupe]] ('12-'13)
|-
|4J
|[[w:Jaguar XK (X150)|Jaguar XKR-S convertible]] ('12-'13)
|-
|6E
|[[w:Jaguar F-Type)|Jaguar F-Type convertible]] ('14-)
|-
|6F
|[[w:Jaguar F-Type)|Jaguar F-Type S convertible]] ('14-)
|-
|6G
|[[w:Jaguar F-Type)|Jaguar F-Type V8 S convertible]] ('14-)
|}
===Engine/Emissions Control System (Position 8)===
{| class="wikitable"
|+Position 8
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| A || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. ULEV. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar X-Type 3.0 (Mid '05-'08), S-Type 3.0 ('06-'08).
|-
| A || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]]. Jaguar XF ('10).
|-
| A || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XKR-S ('12-'15), XKR-S GT ('14).
|-
| B || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ27S V8 engine]].<br> Jaguar XJR ('00-'03), Vanden Plas Supercharged ('00-'01), Super V8 ('02-'03), XKR ('00-'02).
|-
| B || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar XJR ('04-'05), Super V8 ('05), XKR ('03-'06).
|-
| B || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ34 V8 engine]].<br> Jaguar S-Type ('06-'08), XF ('09), XJ8/Vanden Plas ('06-'09), XK ('07-'09).
|-
| B || 5.0L || V8 || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake.<br> [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> Jaguar XF ('10-'12), XJ ('11-'12), XJL ('11), XJL Portfolio Rwd ('12-'13), XK ('10-'15), XK Touring ('13-'14).
|-
| C || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]].<br> Jaguar S-Type 3.0 ('00-'01), X-Type 3.0 ('02-Mid '05).
|-
| C || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]].<br> Jaguar XJ8/Vanden Plas ('00-'03), XJ Sport ('02-'03), XK8 ('00-'02).
|-
| C || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar XJ8 ('04-'05), XK8 ('03-'06).
|-
| C || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. ULEV. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ34S V8 engine]].<br> Jaguar S-Type R ('06-'08), XF Supercharged ('09), XJR ('06-'09), Super V8 ('06-'09), XKR ('07-'09).
|-
| C || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 510 PS/503 hp. Jaguar XFR ('10-'13), XJ/XJL Supersport ('11-'13), XKR ('10-'15).
|-
| C || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 380 PS/375 hp. Jaguar F-Type S ('14-).
|-
| D || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('00-'01).
|-
| D || 2.5L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ25|Jaguar AJ-V6 - AJ25 V6 engine]]. Jaguar X-Type 2.5 ('02-'05).
|-
| D || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XJ Awd, XJL Portfolio Awd ('13-).
|-
| E || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 470 PS/464 hp. Jaguar XF Supercharged ('10-'13), XJ/XJL Supercharged ('11-'13).
|-
| F || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Awd ('13-).
|-
| H || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 510 PS/503 hp. Jaguar XFR ('13-).
|-
| L || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 495 PS/488 hp. Jaguar F-Type V8 S ('14-).
|-
| N || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('01-'02).
|-
| P || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ28 V8 engine]]. Jaguar S-Type 4.0 ('01-'02).
|-
| P || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XF Supercharged ('13-).
|-
| S || 2.0L || I4 Turbo [[w:Intercooler|IC]] || Gas || DOHC,<br /> 16 valve||Direct Injection. Dual VVT. Ford EcoBoost engine (Mazda L engine-based). Jaguar XF 2.0T ('13-'15).
|-
| T || 3.0L || 60° V6 || Gas ||DOHC,<br /> 24 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V6 engine#AJ30|Jaguar AJ-V6 - AJ30 V6 engine]]. Jaguar S-Type 3.0 ('03-'05).
|-
| T || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. 470 PS/464 hp. Jaguar XJ/XJL Supercharged ('13).
|-
| U || 4.2L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.2 L|Jaguar AJ-V8 - AJ33 V8 engine]]. Jaguar S-Type 4.2 ('03-'05).
|-
| V || 4.2L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. [[w:Jaguar AJ-V8 engine#Supercharged_2|Jaguar AJ-V8 - AJ33S V8 engine]]. Jaguar S-Type R ('03-'05).
|-
| Z || 5.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]].<br> 550 PS/542 hp. Jaguar XFR-S ('13-).
|-
| 1 || 5.0L || V8 || Gas/E85 ||DOHC,<br /> 32 valve||Flex Fuel. Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. Variable intake valve lift. Variable intake. [[w:Jaguar AJ-V8 engine#AJ-V8 Gen III 5.0|Jaguar AJ-V8 - AJ133 V8 engine]]. Jaguar XJL Portfolio Rwd ('13).
|-
| 7 || 3.0L || 90° V6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||Direct Injection. ULEV. Continuously variable intake & exhaust valve timing. [[w:Jaguar AJ-V8 engine#V6|Jaguar AJ126 V6 engine]].<br> 340 PS/335 hp. Jaguar XF 3.0 Rwd ('13-), XJ Rwd ('13-), F-Type ('14-).
|}
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Code/Model Line/Engine (Position 11) 2000-2019===
* X - Halewood, Merseyside, England, UK - X-Type 2.5 ('02-'05)
* W - Halewood, Merseyside, England, UK - X-Type 3.0 ('02-'08)
* F - Castle Bromwich, West Midlands, England, UK - S-Type 3.0 ('00-'08)
* G - Castle Bromwich, West Midlands, England, UK - S-Type 4.0 ('00-'02)
* H - Castle Bromwich, West Midlands, England, UK - S-Type 4.2 ('03-'08)
* 1 - Castle Bromwich, West Midlands, England, UK - S-Type R (4.2 supercharged) ('03-'08)
* H - Castle Bromwich, West Midlands, England, UK - XF 4.2 ('09-'10)
* 1 - Castle Bromwich, West Midlands, England, UK - XF Supercharged (4.2 supercharged) ('09)
* L - Castle Bromwich, West Midlands, England, UK - XF 5.0 ('10-'12)
* M - Castle Bromwich, West Midlands, England, UK - XF Supercharged, XFR (5.0 supercharged) ('10-'15), XFR-S (5.0 supercharged) ('13-'15)
* P - Castle Bromwich, West Midlands, England, UK - XF 2.0T ('13-'15)
* 8 - Castle Bromwich, West Midlands, England, UK - XF 3.0 supercharged ('13-'15)
* L - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.0) ('00-'03), XJ8L (4.0) ('00-'01), XJ8 Vanden Plas (4.0) ('00-'03), XJ Sport (4.0) ('02-'03)
* M - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 Vanden Plas Supercharged (4.0 supercharged) ('00-'01),<br> Super V8 (4.0 supercharged) ('02-'03), XJR (4.0 supercharged) ('00-'03)
* S - Browns Lane plant, Coventry, West Midlands, England, UK - XJ8 (4.2) ('04-'06), XJ8L (4.2) ('05-'06), XJ8 Vanden Plas (4.0) ('04-'06)
* T - Browns Lane plant, Coventry, West Midlands, England, UK - Super V8 (4.2 supercharged) ('05-'06), Super V8 Portfolio (4.2 supercharged) ('06),<br> XJR (4.2 supercharged) ('04-'06)
* S - Castle Bromwich, West Midlands, England, UK - XJ8 (4.2) ('07-'09), XJ8L (4.2) ('07-'09), XJ8 Vanden Plas (4.0) ('07-'09)
* T - Castle Bromwich, West Midlands, England, UK - Super V8 (4.2 supercharged) ('07-'09), Super V8 Portfolio (4.2 supercharged) ('09),<br> XJR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XJ (5.0) ('10-'12), XJL (5.0) ('10-'11), XJL Portfolio (5.0) ('12-'13)
* M - Castle Bromwich, West Midlands, England, UK - XJ/XJL Supercharged (5.0 supercharged) ('10-'19), XJ/XJL Supersport (5.0 supercharged) ('11-'13),<br> XJL Ultimate (5.0 supercharged) ('13), XJR SWB/LWB (5.0 supercharged) ('14-'17), XJR575 LWB (5.0 supercharged) ('18-'19), XJ50 LWB (5.0 supercharged) ('19), XJ Collection Sp. Ed. LWB (5.0 supercharged) ('19)
* 8 - Castle Bromwich, West Midlands, England, UK - XJ base (3.0 supercharged) ('13-'15), XJ R-Sport (3.0 supercharged) ('16-'19),<br> XJL Portfolio AWD (3.0 supercharged) ('13-'19), XJL Portfolio RWD (3.0 supercharged) ('14-'19), XJ50 LWB (3.0 supercharged) ('19)
* N - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.0) ('00-'02)
* P - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.0 supercharged) ('00-'02)
* 2 - Browns Lane plant, Coventry, West Midlands, England, UK - XK8 (4.2) ('03-'06)
* 3 - Browns Lane plant, Coventry, West Midlands, England, UK - XKR (4.2 supercharged) ('03-'06)
* 5 - Castle Bromwich, West Midlands, England, UK - XK (4.2) ('07-'09)
* 9 - Castle Bromwich, West Midlands, England, UK - XKR (4.2 supercharged) ('07-'09)
* L - Castle Bromwich, West Midlands, England, UK - XK (5.0) ('10-'15)
* M - Castle Bromwich, West Midlands, England, UK - XKR (5.0 supercharged) ('10-'15), XKR-S (5.0 supercharged) ('12-'15), XKR-S GT (5.0 supercharged) ('14)
* 8 - Castle Bromwich, West Midlands, England, UK - F-Type Base, S (3.0 supercharged) ('14-'17), F-Type Premium (3.0 supercharged) ('17)
* M - Castle Bromwich, West Midlands, England, UK - F-Type V8S (5.0 supercharged) ('14-'15), F-Type R (5.0 supercharged) ('15-'17),<br> F-Type Project 7 (5.0 supercharged) ('16), F-Type SVR (5.0 supercharged) ('17)
===Plant Codes (Position 11) 2016-2026===
* A - Solihull, West Midlands, England, UK (XE '17, F-Pace '17-'26)
* C - Castle Bromwich, West Midlands, England, UK (XE '17-'20, XF '16-'24, F-Type '18-'24)
* S - Oxford Road plant, Ryton, West Midlands, England, UK (JLR SVO plant) (XE SV Project 8 '19)
* 1 - Graz, Austria (Magna Steyr plant) (E-Pace '18-'24, I-Pace EV '19-'24)
===Model (Position 12)===
* C - X-Type ('02-'03)
* D - X-Type ('03-'04)
* E - X-Type ('04-'06)
* J - X-Type ('06-'08)
* L - S-Type ('00-'01)
* M - S-Type ('01-'04)
* N - S-Type ('04-'08)
* R - XF ('09-'11)
* S - XF ('11-'13)
* U - XF ('13-'15)
* F - XJ ('00-'03)
* G - XJ ('04-'06) [Browns Lane plant]
* H - XJ ('06-'09) [Castle Bromwich plant]
* V - XJ ('10-'16)
* W - XJ ('16-'19)
* A - XK ('00-'06)
* B - XK ('07-'15)
* K - F-Type ('14-'24)
'''Positions 13–17, Serial Number'''
==General Template for Jaguar's VIN format (1981 - 1999)==
===Jaguar WMIs (1981-1999) (Position 1-3)===
* SAJ - Jaguar passenger car
===Model Line (Position 4)===
{| class="wikitable"
|+Position 4
!VIN code
!Description
|-
|A
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ6]] ('81-'87), XJ6 Vanden Plas ('82-'87)
|-
|B
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '81-'88)
|-
|D
|[[w:Jaguar XJ#Series 3 (1979–1992)|Jaguar XJ12]] (Canada only: '89-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('88-'89, '93-'94)
|-
|F
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6]] ('90-'92)
|-
|H
|[[w:Jaguar XJ (XJ40)|Jaguar XJ6 Sovereign]] ('90-'92)
|-
|K
|[[w:Jaguar XJ (XJ40)#Daimler/Vanden Plas|Jaguar XJ6 Vanden Plas]] ('88-'94)
|-
|M
|[[w:Jaguar XJ (XJ40)#Majestic (1989–1992 – SWB; 1993–1994 – LWB)|Jaguar XJ6 Vanden Plas Majestic]] ('89-'90, '92)
|-
|M
|[[w:Jaguar XJ (XJ40)#XJ12 and Daimler Double Six (XJ81)|Jaguar XJ12]] ('94)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X300)|Jaguar XJ6L]] LWB [X330] ('97)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] SWB ('95)
|-
|K
|[[w:Jaguar XJ (X300)#Daimler/Jaguar Vanden Plas|Jaguar XJ6 Vanden Plas]] LWB [X330] ('96-'97)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] SWB ('95)
|-
|M
|[[w:Jaguar XJ (X300)#XJ12 (X305)|Jaguar XJ12]] LWB [X330] ('96)
|-
|P
|[[w:Jaguar XJ (X300)#XJR (X306)|Jaguar XJR]] ('95-'97)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8]] ('98-'99)
|-
|H
|[[w:Jaguar XJ (X308)|Jaguar XJ8L]] LWB ('98-'99)
|-
|K
|[[w:Jaguar XJ (X308)#Daimler/Vanden Plas|Jaguar XJ8 Vanden Plas]] LWB ('98-'99)
|-
|P
|[[w:Jaguar XJ (X308)#XJR|Jaguar XJR]] ('98-'99)
|-
|N
|[[w:Jaguar XJS|Jaguar XJ-S]] ('82-'91), XJ-SC ('86-'88), XJS ('92-'96)
|-
|T
|[[w:Jaguar XJS|Jaguar XJ-S]] Rouge Collection ('89-'90), Classic Collection ('90-'91)
|-
|S
|[[w:Jaguar XJS#XJR-S|Jaguar XJR-S]] ('93)
|-
|G
|[[w:Jaguar XK (X100)|Jaguar XK8]] ('97-'99)
|}
===Class (Regional Spec)/Restraint System (Position 5):===
* V = N. American-spec (Manual seat belts)
* L = Canadian-spec (Manual seat belts)
* Y = XJ6 Vanden Plas [Series III] ('82-'87) (Manual seat belts)
* A = Motorized Shoulder Belts (XJ-S coupe '88-'89, XJ-SC '88)
* Y = Motorized Shoulder Belts (XJ-S coupe '89, XJ sedan '89-'92)
* W = Manual seat belts, Driver-side airbag (US: XJ-S '90-'93, XJ6 '93, XJ12 Early '94)
* X = Manual seat belts, Dual front airbags (US: XJS '94-'96, XJ6 '94-'97, XJ12 '94-'96, XJR '95-'97, XK8 '97-'99)
* X = Manual seat belts, Dual front airbags, & Front Side Airbags (US: XJ8/XJR '98-'99)
* D = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (US: XJ8/XJR '99)
* M = Manual seat belts, Driver-side airbag (Canada)
* N = Manual seat belts, Dual front airbags (Canada)
* F = Manual seat belts, Depowered Dual front airbags, & Front Side Airbags (Canada: XJ8/XJR '99)
===Body Style (Position 6):===
* 1 = 4-door sedan (XJ-series sedan '81-'99)
* 2 = 2-door convertible w/2+2 seating (XJS convertible '94-'96, XK8 convertible '97-'99)
* 3 = 2-door Cabriolet (XJ-SC '86-'88)
* 4 = 2-door convertible w/2-psgr. seating (factory-built XJS convertible '89-'94, XJR-S convertible '93)
* 5 = 2-door coupe (XJS coupe '82-'96, XJR-S coupe '93, XK8 coupe '97-'99)
* 5 = 2-door coupe (Hess & Eisenhardt-built XJS convertible '87-'88) [coupe conversion]
===Engine Type (Position 7):===
{| class="wikitable"
|+Position 7
|-
! VIN !! Size !! Type !! Fuel !! Valvetrain !! Engine Family/Notes/Applications
|-
| 1 || 4.0L || I6 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16S|Jaguar AJ16S I6]]. Jaguar XJR ('95-'97).
|-
| 2 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||CA & Canada-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'82).
|-
| 2 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('96-'97).
|-
| 2 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]].<br> Jaguar XJ8 ('98), XK8 ('98).
|-
| 3 || 4.2L || I6 || Gas ||DOHC,<br /> 12 valve||N. America-spec. MPI. [[w:Jaguar XK engine|Jaguar XK I6]]. Jaguar XJ6 ('81-'87).
|-
| 3 || 6.0L || 60° V12 || Gas ||SOHC,<br /> 24 valve||MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJR-S ('93), XJS ('94-'95), XJ12 ('94-'96).
|-
| 5 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - Low Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88-'89).
|-
| 6 || 3.6L || I6 || Gas ||DOHC,<br /> 24 valve||N. America-spec - High Compression. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('88).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'94), XJS ('93-'94).
|-
| 7 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||MPI. [[w:Jaguar AJ6 engine#AJ16|Jaguar AJ16 I6]]. Jaguar XJ6 ('95-'96), XJS ('95-'96).
|-
| 7 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Variable intake valve timing. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ26 V8 engine]]. Jaguar XK8 ('97).
|-
| 8 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||N. America-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'92), XJ12 (Canada only: '88-'92).
|-
| 8 || 4.0L || V8 [[w:Supercharged|SC]] [[w:Intercooler|IC]] || Gas ||DOHC,<br /> 32 valve||MPI. Dual-canister evaporative emissions system. [[w:Jaguar AJ-V8 engine#Supercharged|Jaguar AJ-V8 - AJ26S V8 engine]]. Jaguar XJR ('98-'99).
|-
| 9 || 4.0L || I6 || Gas ||DOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar AJ6 engine|Jaguar AJ6 I6]]. Jaguar XJ6 ('90-'93), XJS ('93).
|-
| 0 || 5.3L || 60° V12 || Gas ||SOHC,<br /> 24 valve||Canada-spec. MPI. [[w:Jaguar V12 engine|Jaguar V12]]. Jaguar XJ-S ('82-'87), XJ12 (Canada only: '85-'87).
|-
| 0 || 4.0L || V8 || Gas ||DOHC,<br /> 32 valve||MPI. Continuously variable intake valve timing. Dual-canister evaporative emissions system. Enhanced evaporative emissions control system. [[w:Jaguar AJ-V8 engine#4.0 L|Jaguar AJ-V8 - AJ27 V8 engine]]. Jaguar XJ8 ('99), XK8 ('99).
|}
===Transmission & Steering Location (Position 8):===
* 4 = Automatic / LHD
* 8 = Manual / LHD ('93-'94 XJS 4.0 w/ optional 5-spd. manual)
===Check Digit/Gearbox (Position 9)===
* USA /Canada [[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]]
===Model Year Code (Position 10)===
''See: [[Vehicle Identification Numbers (VIN codes)/Model year]]''
===Plant Codes (Position 11)===
* C - Browns Lane plant, Coventry, West Midlands, England, UK
===Positions 12–17, Serial Number===
** 100001 and after - XJ-S/XJ-SC/XJS/XJR-S (XJ27)
** 300001 and after - XJ-series sedan Series III
** 500001 and after - XJ-series sedan (XJ40/XJ81)
** 720001 and after - XJ-series sedan (X300/X305/X306/X330)
** 810001 and after - XJ-series sedan (X308)
** 001001 and after - XK8 (X100)
pruwufdygt9w8o8j7yj9hm4ccfu34hf
On 2D Inverse Problems/Spatial
0
485995
4674789
4673968
2026-10-07T01:28:06Z
DVD206
724793
exercise
4674789
wikitext
text/x-wiki
The geometry of network conductivities for self-dual response matrix:
[[File:Pentagon.gif|thumb|]]
is based by alternation on Golden ratio divine proportion for the regular polygons...
Let <math>\begin{pmatrix}
a & 1 & 0 \\
-1 & b & 1 \\
0 & -1 & c
\end{pmatrix}</math>
then the inverse of the diagonal lower corner entry of the inverse matrix is a ratio of two determinants, given by continued fraction:
<math>c+\cfrac{1}{b+\cfrac{1}{a}}</math> is the response of the network Spiderweb with conductivities a,b and c.
Therefore, for example
<math>F_5=\det\begin{pmatrix}
1 & 1 & 0 & 0 \\
-1 & 1 & 1 & 0 \\
0 & -1 & 1 & 1 \\
0 & 0 & -1 & 1
\end{pmatrix}=5</math>
for the Fibonacci number... and the corner entry of the inverse of the matrix tends to <math>1/\phi</math> with the size of the matrix tending to infinity...
The eigenvalues of the matrix minus identity are purely imaginary and, since the determinant is the product of eigenvalues of a matrix:
<math>F_n = \prod_{k=1}^{n-1}(1+2i\cos(\frac{k\pi}{n})).</math>
Exercise: prove that for the pentagon picture above:
<math>\det\begin{pmatrix}
|BC| & 1 \\
-1 & |DE|
\end{pmatrix}=|BC|</math>
and generalize to regular polygons...
{{BookCat}}
a4bilvsoyj3cjp659d3361x5h5cknyf
4674790
4674789
2026-10-07T01:29:26Z
DVD206
724793
side equals unit
4674790
wikitext
text/x-wiki
The geometry of network conductivities for self-dual response matrix:
[[File:Pentagon.gif|thumb|]]
is based by alternation on Golden ratio divine proportion for the regular polygons...
Let <math>\begin{pmatrix}
a & 1 & 0 \\
-1 & b & 1 \\
0 & -1 & c
\end{pmatrix}</math>
then the inverse of the diagonal lower corner entry of the inverse matrix is a ratio of two determinants, given by continued fraction:
<math>c+\cfrac{1}{b+\cfrac{1}{a}}</math> is the response of the network Spiderweb with conductivities a,b and c.
Therefore, for example
<math>F_5=\det\begin{pmatrix}
1 & 1 & 0 & 0 \\
-1 & 1 & 1 & 0 \\
0 & -1 & 1 & 1 \\
0 & 0 & -1 & 1
\end{pmatrix}=5</math>
for the Fibonacci number... and the corner entry of the inverse of the matrix tends to <math>1/\phi</math> with the size of the matrix tending to infinity...
The eigenvalues of the matrix minus identity are purely imaginary and, since the determinant is the product of eigenvalues of a matrix:
<math>F_n = \prod_{k=1}^{n-1}(1+2i\cos(\frac{k\pi}{n})).</math>
Exercise: prove that for the pentagon picture above:
<math>\det\begin{pmatrix}
|BC| & 1 \\
-1 & |DE|
\end{pmatrix}=|BC|, if |AB|=1</math>
and generalize to regular polygons...
{{BookCat}}
jdfb9n11uw0mlszz5pg7wt5t718nnnr
4674791
4674790
2026-10-07T01:31:05Z
DVD206
724793
4674791
wikitext
text/x-wiki
The geometry of network conductivities for self-dual response matrix:
[[File:Pentagon.gif|thumb|]]
is based by alternation on Golden ratio divine proportion for the regular polygons...
Let <math>\begin{pmatrix}
a & 1 & 0 \\
-1 & b & 1 \\
0 & -1 & c
\end{pmatrix}</math>
then the inverse of the diagonal lower corner entry of the inverse matrix is a ratio of two determinants, given by continued fraction:
<math>c+\cfrac{1}{b+\cfrac{1}{a}}</math> is the response of the network Spiderweb with conductivities a,b and c.
Therefore, for example
<math>F_5=\det\begin{pmatrix}
1 & 1 & 0 & 0 \\
-1 & 1 & 1 & 0 \\
0 & -1 & 1 & 1 \\
0 & 0 & -1 & 1
\end{pmatrix}=5</math>
for the Fibonacci number... and the corner entry of the inverse of the matrix tends to <math>1/\phi</math> with the size of the matrix tending to infinity...
The eigenvalues of the matrix minus identity are purely imaginary and, since the determinant is the product of eigenvalues of a matrix:
<math>F_n = \prod_{k=1}^{n-1}(1+2i\cos(\frac{k\pi}{n})).</math>
Exercise: prove that for the pentagon picture above:
<math>\det\begin{pmatrix}
|BC| & 1 \\
-1 & |DE|
\end{pmatrix}=|BC|, if |AB| or |AD|=1 </math>
and generalize to regular polygons...
{{BookCat}}
3zrcsbf5saou7w7l177rppjalof0ukx
Wikijunior:Vegetable Alphabet/F
110
486043
4674695
4674366
2026-10-06T12:26:13Z
ShakespeareFan00
46022
4674695
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''F''' is for Fava Bean</big></big></big></big>[[File:Fava beans at the Sonoma Farmer's Market - Sarah Stierch.jpg|center|542x542px|Fava Bean]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/E]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/G]]
</div>
rz5kdynzc95hwmoxy6iamjl3pm3411v
Wikijunior:Vegetable Alphabet/G
110
486045
4674696
4674375
2026-10-06T12:26:36Z
ShakespeareFan00
46022
4674696
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''G''' is for Green Bean</big></big></big></big>[[File:Macro of Fresh Green Beans Buncis.jpg|center|497x497px|Green Bean]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/C]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/H]]
</div>
sp7rbl2enxrdjhn2lii0eyhltump9g4
Wikijunior:Vegetable Alphabet/H
110
486046
4674698
4674370
2026-10-06T12:28:04Z
ShakespeareFan00
46022
4674698
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''H''' is for Horseradish</big></big></big></big>[[File:Kren Verkauf.jpg|center|394x394px|Horseradish]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/G]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/I]]
</div>
ax0izfjcy0wp7nslmyl5aapnrk5uedo
The Permanent Advantage
0
486056
4674735
4673999
2026-10-06T15:05:54Z
Magnuscarlsen45r
3627727
i Added The first chapter of the book The queens pawn if you need any Information Go to my Account and Message me on X Ayansh gupta
4674735
wikitext
text/x-wiki
{{qr-scope}}
'''The Permanent Advantage'''
''Positional Chess Opening Puzzles''
Welcome to '''The Permanent Advantage''', a collection of 15 positional chess opening puzzles from famous games.
'''Contents'''
How to Use the Book
'''Part I: The Puzzles'''
[[Chapter 1: Queen's Pawn Openings]]
Puzzles 1–5
Chapter 2: King's Pawn Openings
Puzzles 6–11
Chapter 3: More Famous Games
Puzzles 12–15
'''Part II: The Solutions'''
Chapter 1 Solutions
Chapter 2 Solutions
Chapter 3 Solutions
Chapter 1 Queens Pawn opening
= Chapter 1: Queen's Pawn Openings =
== Positional Puzzles from Queen's Pawn Openings ==
This chapter contains five positional opening puzzles based on famous games played by Mikhail Botvinnik, Bobby Fischer, Boris Spassky and Magnus Carlsen.
The positions come from openings such as the Nimzo-Indian Defence, Grünfeld Defence, Queen's Gambit Declined and Catalan-related systems.
These positions focus on positional ideas rather than immediate attacks. Pay attention to pawn breaks, pawn structures, doubled pawns, piece development and the bishop pair.
For each puzzle, try to decide what you would play and explain the reason for your choice. The solutions are given separately in the Solutions section.
== Puzzle 1 ==
'''Game:''' Mikhail Botvinnik vs José Raúl Capablanca
'''Event:''' AVRO tournament (round 11), Netherlands, November 22, 1938
'''Opening:''' Nimzo-Indian Defence, Botvinnik System
'''White to move'''
[[File:Puzzle_1_board.png|center|500x500px|Puzzle 1 chess position]]
'''What would you play?'''
Think about White's development, the centre and the future position of the pieces before choosing your move.
== Puzzle 2 ==
'''Game:''' Donald Byrne vs Bobby Fischer
'''Event:''' Rosenwald Memorial, New York, October 17, 1956
'''Opening:''' Grünfeld Defence
'''Black to move'''
[[File:Puzzle_2_board.png|center|500x500px|Puzzle 2 chess position]]
'''What would you play?'''
Look carefully at Black's central possibilities and consider which move fits the positional ideas of the opening.
== Puzzle 3 ==
'''Game:''' Boris Spassky vs Bobby Fischer
'''Event:''' World Championship, Game 5, Reykjavik, July 1972
'''Opening:''' Nimzo-Indian Defence, Hübner Variation
'''Black to move'''
[[File:Puzzle_3_board.png|center|500x500px|Puzzle 3 chess position]]
'''What would you play?'''
Consider the pawn structure and the position of the pieces. Try to find the move that gives Black the most useful positional plan.
== Puzzle 4 ==
'''Game:''' Bobby Fischer vs Boris Spassky
'''Event:''' World Championship, Game 6, Reykjavik, July 23, 1972
'''Opening:''' Queen's Gambit Declined
'''White to move'''
[[File:Puzzle_4_board.png|center|500x500px|Puzzle 4 chess position]]
'''What would you play?'''
Examine the central pawn structure and think about how White can improve the position before choosing a move.
== Puzzle 5 ==
'''Game:''' Magnus Carlsen vs Ian Nepomniachtchi
'''Event:''' World Championship, Game 6, Dubai, December 3, 2021
'''Opening:''' Queen's Pawn Game, Pseudo-Catalan
'''White to move'''
[[File:Puzzle_5_board.png|center|500x500px|Puzzle 5 chess position]]
'''What would you play?'''
Think about White's development, the centre and the possible pawn breaks. Choose the move you believe gives White the best positional chances.
== End of Chapter 1 ==
'''Solutions:'''
The solutions to these five puzzles can be found in [[The Permanent Advantage/Chapter 1 Solutions]].
te869v8w76pe7scdxhxztc9357kx3k6
Wikijunior:Vegetable Alphabet/K
110
486058
4674699
4674380
2026-10-06T12:28:22Z
ShakespeareFan00
46022
4674699
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''K''' is for Kale</big></big></big></big>[[File:Kale-Bundle.jpg|center|443x443px|Kale]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/J]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/L]]
</div>
c3fabye6okpdb2ldnvqh2jivuwoyu32
Wikijunior:Vegetable Alphabet/J
110
486059
4674702
4674378
2026-10-06T12:33:26Z
ShakespeareFan00
46022
4674702
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''J''' is for Jicama</big></big></big></big>[[File:Caja con jicamas.jpg|center|394x394px|Jicama]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/I]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/K]]
</div>
f3uja9p0qun3n1fn3894o00dpvue654
Wikijunior:Vegetable Alphabet/R
110
486061
4674709
4674394
2026-10-06T13:23:19Z
ShakespeareFan00
46022
4674709
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''R''' is for Rhubarb</big></big></big></big>[[File:Rheum rhabarbarum.2006-04-27.uellue.jpg|center|394x394px|Rhubarb]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/Q]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/S]]
</div>
6am6k79to77yea0gr5y1j3pm9xd0v7m
Wikijunior:Vegetable Alphabet/L
110
486063
4674710
4674382
2026-10-06T13:23:37Z
ShakespeareFan00
46022
4674710
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''L''' is for Leek</big></big></big></big>[[File:Prei met knobbel (Leek).jpg|center|520x520px|Leek]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/K]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/M]]
</div>
nmzr8zrdc2c8xu4kqet9cg35wo4ulkg
Wikijunior:Vegetable Alphabet/S
110
486065
4674723
4674427
2026-10-06T13:28:51Z
ShakespeareFan00
46022
4674723
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''S''' is for Spinach</big></big></big></big>[[File:Spinach Plant Nourishment Meal Fresh Healthy Bio.jpg|center|416x416px|Spinach]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/R]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/T]]
</div>
483i599by8jv8t1tc96vc4zh1mls2f1
Wikijunior:Vegetable Alphabet/P
110
486068
4674712
4674390
2026-10-06T13:24:34Z
ShakespeareFan00
46022
4674712
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''P''' is for Parsnip</big></big></big></big>[[File:PastinakePflanzegeerntet.jpg|center|371x371px|Parsnip]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/O]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/Q]]
</div>
50ipqq4ic6ff7dme614gb5oqk3z5i0j
Wikijunior:Vegetable Alphabet/O
110
486070
4674713
4674388
2026-10-06T13:24:53Z
ShakespeareFan00
46022
4674713
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''O''' is for Okra</big></big></big></big>[[File:Okra (Abelmoschus esculentus) in a Bowl.jpg|center|407x407px|Okra]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/N]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/P]]
</div>
dmrsmv0b9ds6g65o7k8vt2rl3oye0do
Wikijunior:Vegetable Alphabet/T
110
486076
4674714
4674398
2026-10-06T13:25:14Z
ShakespeareFan00
46022
4674714
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''T''' is for Turnip</big></big></big></big>[[File:Turnip 2622027.jpg|center|478x478px|Turnip]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/S]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/U]]
</div>
myeydpv297hv2vinuuljkinhkh3vrcj
Wikijunior:Vegetable Alphabet/U
110
486083
4674715
4674400
2026-10-06T13:25:33Z
ShakespeareFan00
46022
4674715
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''U''' is for Ulluco</big></big></big></big>[[File:Ulluco.jpg|center|363x363px|Ulluco]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/T]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/V]]
</div>
sb2f2oq9hqthh0udxv1nfq1mxhtj4h8
Wikijunior:Vegetable Alphabet/Y
110
486087
4674716
4674408
2026-10-06T13:25:47Z
ShakespeareFan00
46022
4674716
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''Y''' is for Yam</big></big></big></big>[[File:Fresh and big yam 🍠.jpg|center|316x316px|Yam]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/X]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/Z]]
</div>
ocrnbn1jivvf7y1z7cas6949knnq741
Wikijunior:Vegetable Alphabet/W
110
486088
4674724
4674433
2026-10-06T13:29:05Z
ShakespeareFan00
46022
4674724
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''W''' is for Watercress</big></big></big></big>[[File:Nasturtium officinale kz06.jpg|center|345x345px|Watercress]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/V]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/X]]
</div>
trzfl0sqm2y5pwdy9arbsca2l5dz8uv
Wikijunior:Vegetable Alphabet/Q
110
486113
4674717
4674392
2026-10-06T13:26:01Z
ShakespeareFan00
46022
4674717
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''Q''' is for Quinoa Leaf</big></big></big></big>[[File:Chenopodium quinoa kz02.jpg|center|460x460px|Quinoa Leaf]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/P]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/R]]
</div>
cx2ia7gjsygde5ols25ld5wwtiurgqh
Wikijunior:Vegetable Alphabet/Z
110
486138
4674718
4674410
2026-10-06T13:26:17Z
ShakespeareFan00
46022
4674718
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''Z''' is for Zucchini</big></big></big></big> <big>(Courgette)</big>[[File:Zucchini Phytophthora capsici-Kerstin-Mahler-1.jpg|center|444x444px|Zucchini]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/Y]]
</div>
dv9varhkr4fenx8znhk2jouexdwng0m
Wikijunior:Vegetable Alphabet/X
110
486141
4674719
4674406
2026-10-06T13:26:31Z
ShakespeareFan00
46022
4674719
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''X''' is for Xanthosoma</big></big></big></big>[[File:Elephantear reduced.jpg|center|350x350px|Xanthosoma]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/W]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/Y]]
</div>
hek8ize29bfr1hnen4zgxcgatrpp2ut
Wikijunior:Vegetable Alphabet/N
110
486155
4674720
4674386
2026-10-06T13:27:33Z
ShakespeareFan00
46022
4674720
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''N''' is for Navy Bean</big></big></big></big>[[File:Phaseolus vulgaris white beans, witte boon.jpg|center|407x407px|Navy Bean]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/M]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/O]]
</div>
ofdm9afdl0k569rfa7jn4adxwlujfea
Wikijunior:Vegetable Alphabet/M
110
486157
4674721
4674384
2026-10-06T13:28:10Z
ShakespeareFan00
46022
4674721
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''M''' is for Mizuna</big></big></big></big>[[File:Sensuji-mizuna.JPG|center|407x407px|Mizuna]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/L]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/N]]
</div>
93ym91zlscgsgsi0ificjmybt4n4spr
Wikijunior:Vegetable Alphabet/V
110
486158
4674722
4674402
2026-10-06T13:28:35Z
ShakespeareFan00
46022
4674722
wikitext
text/x-wiki
<div style='text-align:center'><big><big><big><big>'''V''' is for Velvet Bean</big></big></big></big> <big>(Mucuna pruriens)</big>[[File:Mucuna pruriens flower.jpg|center|407x407px|Velvet Bean]][[File:Farm-Fresh arrow left.png|Farm-Fresh arrow left|left|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/U]]
[[File:Farm-Fresh arrow right.png|Farm-Fresh arrow right|right|64px|link={{NAMESPACE}}:{{BASEPAGENAME}}/W]]
</div>
bn356u520skqnv3l9fq5e298w3tz7w2
On 2D Inverse Problems/Area
0
486187
4674706
4674457
2026-10-06T13:14:20Z
DVD206
724793
ellipse
4674706
wikitext
text/x-wiki
The energy integral represents the area of the image of the unique conformal map (discrete analytic map) under harmonic function with given boundary conditions:
<math>
E_\gamma(u)=\sum_{pq\in E}\gamma_{pq}(u(p)-u(q))^2\ge 0
</math>
and for the dual graph/network harmonic conjugate:
<math>
E_\gamma(u)=\sum_{pq\in E}\frac{1}{\gamma_{pq}}(v(p)-v(q))^2=
\sum_{pq\in E}(u(p)-u(q))(v(p)-v(q)).
</math>
For the analytic contimuation of Laplacian
<math>
E_{s,\gamma(u)}=\sum_{pq\in E}\gamma_{pq}(u^2(p)-(s+1/s)u(p)u(q)+u(q)^2).
</math>
The harmonic function minimizes the integral with given boundary conditions and the response Dirichlet-to-Neumann map sends the boundary potential to boundary current for the harmonic function in interior...
For <math>s=e^{i\theta}</math> <math>E_s=\sum_{pq\in E}\gamma_{pq}(u^2(p)-2\cos(\theta)u(p)u(q)+u(q)^2)\ge E_1\ge 0</math> and, therefore Laplace, <math><f,\Lambda_s f>\ge 0</math> is Hermitian with non-negative eigenvalues.
We study the zeros and poles (monodromy eigenvalues) of <math>\det(\Lambda_{s,\gamma})=0,\infty</math>. They're simple positive and interlace for the circular planar graph because of total positivity of the monodromy matrix in the alternating basis...
{{BookCat}}
5kncrynmawcc88xuzh7qdzigj1rsnbs
4674707
4674706
2026-10-06T13:15:25Z
DVD206
724793
4674707
wikitext
text/x-wiki
The energy integral represents the area of the image of the unique conformal map (discrete analytic map) under harmonic function with given boundary conditions:
<math>
E_\gamma(u)=\sum_{pq\in E}\gamma_{pq}(u(p)-u(q))^2\ge 0
</math>
and for the dual graph/network harmonic conjugate:
<math>
E_\gamma(u)=\sum_{pq\in E}\frac{1}{\gamma_{pq}}(v(p)-v(q))^2=
\sum_{pq\in E}(u(p)-u(q))(v(p)-v(q)).
</math>
For the analytic contimuation of Laplacian
<math>
E_{s,\gamma(u)}=\sum_{pq\in E}\gamma_{pq}(u^2(p)-(s+1/s)u(p)u(q)+u(q)^2).
</math>
The harmonic function minimizes the integral with given boundary conditions and the response Dirichlet-to-Neumann map sends the boundary potential to boundary current for the harmonic function in interior...
For <math>s=e^{i\theta},</math> <math>E_s=\sum_{pq\in E}\gamma_{pq}(u^2(p)-2\cos(\theta)u(p)u(q)+u(q)^2)\ge E_1\ge 0</math> and, therefore Laplace, <math><f,\Lambda_s f>\ge 0</math> is Hermitian with non-negative eigenvalues.
We study the zeros and poles (monodromy eigenvalues) of <math>\det(\Lambda_{s,\gamma})=0,\infty</math>. They're simple positive and interlace for the circular planar graph because of total positivity of the monodromy matrix in the alternating basis...
{{BookCat}}
ntpcn6bsubp2k2vtaoz717mg6aslg3p
Koine Greek/Ἡ Κυριακὴ Προσευχή
0
486189
4674690
4674606
2026-10-06T12:05:45Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4674690
wikitext
text/x-wiki
[[File:Assorted bread.jpg|thumb|100px|ἄρτος]]
<sup>1</sup>Πάτερ ἡμῶν, ὁ ἐν τοῖς οὐρανοῖς,<br>ἁγιασθήτω τὸ ὄνομά σου·<br>ἐλθέτω ἡ βασιλεία σου·<br>γενηθήτω τὸ θέλημά σου,<br><sup>5</sup>ὡς ἐν οὐρανῷ καὶ ἐπὶ γῆς·<br>τὸν ἄρτον ἡμῶν τὸν ἐπιούσιον δὸς ἡμῖν σήμερον·<br>καὶ ἄφες ἡμῖν τὰ ὀφειλήματα ἡμῶν,<br>ὡς καὶ ἡμεῖς ἀφήκαμεν τοῖς ὀφειλέταις ἡμῶν·<br>καὶ μὴ εἰσενέγκῃς ἡμᾶς εἰς πειρασμόν,<br><sup>10</sup>ἀλλὰ ῥῦσαι ἡμᾶς ἀπὸ τοῦ πονηροῦ·
{{Audio|A Reading of Matthew 6 9-13.ogg}}
Here, all 5 cases are used:
* Nominative: βασιλεία
* Accusative: ἄρτον
* Genitive: πονηροῦ
* Dative: οὐρανῷ
* Vocative: Πάτερ
We also see how the definite article can be used to create an appositive.
:: ὁ ἐν τοῖς οὐρανοῖς — who art in Heaven
:: τὸν ἐπιούσιον — daily
Most verbs are imperative in mood.
----
Κατὰ Ματθαῖον Εὐαγγέλιον ϛ', θ'–ιγ'
{{BookCat}}
bzhzfnmor97v58ngu2r1puzuvrxjaap
Koine Greek/The Genitive Absolute
0
486195
4674689
4674643
2026-10-06T12:05:39Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4674689
wikitext
text/x-wiki
The '''genitive absolute''' is an independent phrase in a sentence conveying additional circumstances in the genitive case.
:: Τῇ δὲ μιᾷ τῶν σαββάτων Μαρία ἡ Μαγδαληνὴ ἔρχεται πρωῒ '''σκοτίας ἔτι οὔσης''' εἰς τὸ μνημεῖον, καὶ βλέπει τὸν λίθον ἠρμένον ἐκ τοῦ μνημείου — Early on the first day of the week, '''while it was still dark''', Mary Magdalene went to the tomb and saw that the stone had been removed from the entrance (John 20:1).
{{BookCat}}
r961miltxsz1gtoct58q65p3v627pye
Chess Opening Theory/1. d4/1...d5/2. c4/2...c6/3. Nf3/3...Nf6/4. g3
0
486196
4674691
4674669
2026-10-06T12:06:02Z
MathXplore
3097823
Marking for speedy deletion: Test page
4674691
wikitext
text/x-wiki
<noinclude>{{Delete|example=false|Test page}}</noinclude>
Hi
9pubw0wtxkkck5uouxdde8gq7nc787l
The Permanent Advantage/Chapter 1: Queen's Pawn Openings
0
486197
4674688
4674681
2026-10-06T12:05:31Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4674688
wikitext
text/x-wiki
= Chapter 1: Queen's Pawn Openings =
== Positional Puzzles from Queen's Pawn Openings ==
This chapter contains five positional opening puzzles based on famous games played by Mikhail Botvinnik, Bobby Fischer, Boris Spassky and Magnus Carlsen.
The positions come from openings such as the Nimzo-Indian Defence, Grünfeld Defence, Queen's Gambit Declined and Catalan-related systems.
These positions focus on positional ideas rather than immediate attacks. Pay attention to pawn breaks, pawn structures, doubled pawns, piece development and the bishop pair.
For each puzzle, try to decide what you would play and explain the reason for your choice. The solutions are given separately in the Solutions section.
== Puzzle 1 ==
'''Game:''' Mikhail Botvinnik vs José Raúl Capablanca
'''Event:''' AVRO tournament (round 11), Netherlands, November 22, 1938
'''Opening:''' Nimzo-Indian Defence, Botvinnik System
'''White to move'''
[[File:Puzzle_1_board.png|500px|center|Puzzle 1 chess position]]
'''What would you play?'''
Think about White's development, the centre and the future position of the pieces before choosing your move.
== Puzzle 2 ==
'''Game:''' Donald Byrne vs Bobby Fischer
'''Event:''' Rosenwald Memorial, New York, October 17, 1956
'''Opening:''' Grünfeld Defence
'''Black to move'''
[[File:Puzzle_2_board.png|500px|center|Puzzle 2 chess position]]
'''What would you play?'''
Look carefully at Black's central possibilities and consider which move fits the positional ideas of the opening.
== Puzzle 3 ==
'''Game:''' Boris Spassky vs Bobby Fischer
'''Event:''' World Championship, Game 5, Reykjavik, July 1972
'''Opening:''' Nimzo-Indian Defence, Hübner Variation
'''Black to move'''
[[File:Puzzle_3_board.png|500px|center|Puzzle 3 chess position]]
'''What would you play?'''
Consider the pawn structure and the position of the pieces. Try to find the move that gives Black the most useful positional plan.
== Puzzle 4 ==
'''Game:''' Bobby Fischer vs Boris Spassky
'''Event:''' World Championship, Game 6, Reykjavik, July 23, 1972
'''Opening:''' Queen's Gambit Declined
'''White to move'''
[[File:Puzzle_4_board.png|500px|center|Puzzle 4 chess position]]
'''What would you play?'''
Examine the central pawn structure and think about how White can improve the position before choosing a move.
== Puzzle 5 ==
'''Game:''' Magnus Carlsen vs Ian Nepomniachtchi
'''Event:''' World Championship, Game 6, Dubai, December 3, 2021
'''Opening:''' Queen's Pawn Game, Pseudo-Catalan
'''White to move'''
[[File:Puzzle_5_board.png|500px|center|Puzzle 5 chess position]]
'''What would you play?'''
Think about White's development, the centre and the possible pawn breaks. Choose the move you believe gives White the best positional chances.
== End of Chapter 1 ==
'''Solutions:'''
The solutions to these five puzzles can be found in [[The Permanent Advantage/Chapter 1 Solutions]].
{{BookCat}}
erkn61rrmcs41610sggyqq1oj4ax9kc
User talk:~2026-53737-32
3
486198
4674692
2026-10-06T12:06:02Z
MathXplore
3097823
Notifying author of speedy deletion nomination
4674692
wikitext
text/x-wiki
== I have added a tag to a page you created ==
Hi! I'm MathXplore, and I recently reviewed your page, [[:Chess Opening Theory/1. d4/1...d5/2. c4/2...c6/3. Nf3/3...Nf6/4. g3]]. I have added a tag to the page, because it <strong>may meet the [[Wikibooks:Deletion policy#Speedy deletions|criteria for speedy deletion]].</strong> This means that it can be deleted at any time. If you believe that your page should not be deleted, please post a message on [[Talk:Chess Opening Theory/1. d4/1...d5/2. c4/2...c6/3. Nf3/3...Nf6/4. g3|the page's talk page]] explaining why. <strong>If your reasoning is convincing, your page may be saved.</strong> If you have any questions or concerns, please [[User talk:MathXplore|let me know]]. Thank you! <!-- Substituted from User:JJPMaster/CurateThisPage/authorMsg --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:06, 6 October 2026 (UTC)
4jcv2s48iyhmjqkiiwk6xi31f1qjwug
On 2D Inverse Problems/Orthogonal
0
486200
4674704
2026-10-06T13:04:51Z
DVD206
724793
parabola and logarithm
4674704
wikitext
text/x-wiki
The orthogonal gravity family of curves in 2D with the slopes <math>\phi\psi=-1</math>.
<gallery>
Orthogonal_gravity.svg|Fall
parabola_gravity.svg|Orthogonal families
</gallery>
hnklx92mx91cyb7ylz9ljuoevlgqamv
4674730
4674704
2026-10-06T14:08:34Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4674730
wikitext
text/x-wiki
The orthogonal gravity family of curves in 2D with the slopes <math>\phi\psi=-1</math>.
<gallery>
Orthogonal_gravity.svg|Fall
parabola_gravity.svg|Orthogonal families
</gallery>
{{BookCat}}
tcdv6btja8i6xu8m881spdsyej8h5tu
William Shakespeare's Works/Comedies/The Merchant of Venice/Act 2
0
486201
4674705
2026-10-06T13:09:53Z
Lavender-wikigirl
3578159
made act 2 sumery plus one for scene 1 and 2 plus key quotes for both
4674705
wikitext
text/x-wiki
{{Wikisource}}
= Act 2 =
this is act two of the merchant of Venice, in the five act structure it is the "Rising Action", it is Builds tension by making problems for the characters.<ref>{{Cite web |title=The form, structure and language of William Shakespeare's play The Merchant of Venice - CCEA - GCSE English Literature Revision |url=https://www.bbc.co.uk/bitesize/articles/zg4gs82 |access-date=2026-10-06 |website=BBC Bitesize |language=en-GB}}</ref> it is made up of 9 shorter scene's cutting between different places.
== scene 1 summery ==
a Morocco prince comes to try the lottery for Portia's hand in marriage. she hates him and wishes him to loss because of his skin colour. Portia says that if he fails to pick the right one, he may never try to marry a woman again. they delay the picking until after dinner.
=== scene 1: key quotes ===
* the prince of Morocco telling Portia not to be racist - "mislike me no for my complexion"
* Portia saying she has no controin over her husbain - "Besides, the lott’ry of my destiny Bars me the right of voluntary choosing. But if my father had not scanted me"
* Portia waring the prince of the cost of picking wrong - "You must take your chance And either not attempt to choose at all Or swear before you choose, if you choose wrong Never to speak to lady afterward In way of marriage. Therefore be advised."
* the delay until after dinner - "First, forward to the temple. After dinner Your hazard shall be made."
== scene 2 summery ==
Launcelot has a discussion with himself about working for shylock, he wants to run but he says that his conscience is telling him to stay with shylock. his old dad, gobbo, who has very bad vision shows up to visit his son(Launcelot) and does not resonoisn his son. Launcelot decides to play a trick on his old dad, the first one of these is giving confusing directions to shylocks house. then his second trick was conving that Launcelot was a lord and dead, Gobbo fell for all the tricks of Launcelot. Launcelot then talks about how much he hates his master(shylock). then Launcelot and gobbo ask for Launcelot to become Bassanios servent.
=== scene 2: key quotes ===
* Launcelot's indecoun on whender or not to leave shylocks service - "the fiend is at mine elbow and tempts me [...) my conscience says, "no, take heed, honest Launcelot"
* Launcelot's thoughts on shylocks demener - "the jew is the very devil incarnation"
* launcelot desides to play a trick - " O heavens, this is my true begotten father, who being more than sandblind, high gravelblind, knows me not. I will try confusions with him."
* launcleots confuning diretons - "Turn up on your right hand at the next turning, but at the next turning of all on your left; marry, at the very next turning, turn of no hand, but turn down indirectly to the Jew’s house."
* Launcelots trick on his dad - "Talk you of young Master Lancelet?"
* Launcelot's says that master Lancelet is dead - "the young gentleman [...) is indeed deceased, or, as you would say in plain terms, gone to heaven."
* gobbo's blindness - "i am sand-blind; i know you not."
* Launcelot's hate of shylock - "My master's a very jew - give him a present? Give him a halter!"
* Launcelot asking to work for Bassanio - "Serve you, sir"
f0m8hyt2ugkcm0hxhemmvmhhcepptqa
4674729
4674705
2026-10-06T14:08:29Z
MathXplore
3097823
Added {{[[Template:BookCat|BookCat]]}} using [[User:1234qwer1234qwer4/BookCat.js|BookCat.js]]
4674729
wikitext
text/x-wiki
{{Wikisource}}
= Act 2 =
this is act two of the merchant of Venice, in the five act structure it is the "Rising Action", it is Builds tension by making problems for the characters.<ref>{{Cite web |title=The form, structure and language of William Shakespeare's play The Merchant of Venice - CCEA - GCSE English Literature Revision |url=https://www.bbc.co.uk/bitesize/articles/zg4gs82 |access-date=2026-10-06 |website=BBC Bitesize |language=en-GB}}</ref> it is made up of 9 shorter scene's cutting between different places.
== scene 1 summery ==
a Morocco prince comes to try the lottery for Portia's hand in marriage. she hates him and wishes him to loss because of his skin colour. Portia says that if he fails to pick the right one, he may never try to marry a woman again. they delay the picking until after dinner.
=== scene 1: key quotes ===
* the prince of Morocco telling Portia not to be racist - "mislike me no for my complexion"
* Portia saying she has no controin over her husbain - "Besides, the lott’ry of my destiny Bars me the right of voluntary choosing. But if my father had not scanted me"
* Portia waring the prince of the cost of picking wrong - "You must take your chance And either not attempt to choose at all Or swear before you choose, if you choose wrong Never to speak to lady afterward In way of marriage. Therefore be advised."
* the delay until after dinner - "First, forward to the temple. After dinner Your hazard shall be made."
== scene 2 summery ==
Launcelot has a discussion with himself about working for shylock, he wants to run but he says that his conscience is telling him to stay with shylock. his old dad, gobbo, who has very bad vision shows up to visit his son(Launcelot) and does not resonoisn his son. Launcelot decides to play a trick on his old dad, the first one of these is giving confusing directions to shylocks house. then his second trick was conving that Launcelot was a lord and dead, Gobbo fell for all the tricks of Launcelot. Launcelot then talks about how much he hates his master(shylock). then Launcelot and gobbo ask for Launcelot to become Bassanios servent.
=== scene 2: key quotes ===
* Launcelot's indecoun on whender or not to leave shylocks service - "the fiend is at mine elbow and tempts me [...) my conscience says, "no, take heed, honest Launcelot"
* Launcelot's thoughts on shylocks demener - "the jew is the very devil incarnation"
* launcelot desides to play a trick - " O heavens, this is my true begotten father, who being more than sandblind, high gravelblind, knows me not. I will try confusions with him."
* launcleots confuning diretons - "Turn up on your right hand at the next turning, but at the next turning of all on your left; marry, at the very next turning, turn of no hand, but turn down indirectly to the Jew’s house."
* Launcelots trick on his dad - "Talk you of young Master Lancelet?"
* Launcelot's says that master Lancelet is dead - "the young gentleman [...) is indeed deceased, or, as you would say in plain terms, gone to heaven."
* gobbo's blindness - "i am sand-blind; i know you not."
* Launcelot's hate of shylock - "My master's a very jew - give him a present? Give him a halter!"
* Launcelot asking to work for Bassanio - "Serve you, sir"
{{BookCat}}
05322d5t7rm39dc1pucwk1fghbe64m0
4674857
4674729
2026-10-07T10:53:27Z
Lavender-wikigirl
3578159
added scene 3 summery and key quotes
4674857
wikitext
text/x-wiki
{{Wikisource}}
= Act 2 =
this is act two of the merchant of Venice, in the five act structure it is the "Rising Action", it is Builds tension by making problems for the characters.<ref>{{Cite web |title=The form, structure and language of William Shakespeare's play The Merchant of Venice - CCEA - GCSE English Literature Revision |url=https://www.bbc.co.uk/bitesize/articles/zg4gs82 |access-date=2026-10-06 |website=BBC Bitesize |language=en-GB}}</ref> it is made up of 9 shorter scene's cutting between different places.
== scene 1 summery ==
a Morocco prince comes to try the lottery for Portia's hand in marriage. she hates him and wishes him to loss because of his skin colour. Portia says that if he fails to pick the right one, he may never try to marry a woman again. they delay the picking until after dinner.
=== scene 1: key quotes ===
* the prince of Morocco telling Portia not to be racist - "mislike me no for my complexion"
* Portia saying she has no controin over her husbain - "Besides, the lott’ry of my destiny Bars me the right of voluntary choosing. But if my father had not scanted me"
* Portia waring the prince of the cost of picking wrong - "You must take your chance And either not attempt to choose at all Or swear before you choose, if you choose wrong Never to speak to lady afterward In way of marriage. Therefore be advised."
* the delay until after dinner - "First, forward to the temple. After dinner Your hazard shall be made."
== scene 2 summery ==
Launcelot has a discussion with himself about working for shylock, he wants to run but he says that his conscience is telling him to stay with shylock. his old dad, gobbo, who has very bad vision shows up to visit his son(Launcelot) and does not resonoisn his son. Launcelot decides to play a trick on his old dad, the first one of these is giving confusing directions to shylocks house. then his second trick was conving that Launcelot was a lord and dead, Gobbo fell for all the tricks of Launcelot. Launcelot then talks about how much he hates his master(shylock). then Launcelot and gobbo ask for Launcelot to become Bassanios servent.
=== scene 2: key quotes ===
* Launcelot's indecoun on whender or not to leave shylocks service - "the fiend is at mine elbow and tempts me [...) my conscience says, "no, take heed, honest Launcelot"
* Launcelot's thoughts on shylocks demener - "the jew is the very devil incarnation"
* launcelot desides to play a trick - " O heavens, this is my true begotten father, who being more than sandblind, high gravelblind, knows me not. I will try confusions with him."
* launcleots confuning diretons - "Turn up on your right hand at the next turning, but at the next turning of all on your left; marry, at the very next turning, turn of no hand, but turn down indirectly to the Jew’s house."
* Launcelots trick on his dad - "Talk you of young Master Lancelet?"
* Launcelot's says that master Lancelet is dead - "the young gentleman [...) is indeed deceased, or, as you would say in plain terms, gone to heaven."
* gobbo's blindness - "i am sand-blind; i know you not."
* Launcelot's hate of shylock - "My master's a very jew - give him a present? Give him a halter!
* Launcelot asking to work for Bassanio - "Serve you, sir"
== scene 3 summery ==
Jessica is saying goodbye to launcelot as he is no longer shylocks servent but bassanio servent now. she also confest in a soliloquy that she wants to become a christion to marry Lorenzo.
=== scene 3: key quotes: ===
* Jessica descriping shylocks householed - "Our house is hell and thou, a merry devil"
* Jessica asking launcelot to give a letter to lorenzo - "Lorenzo, who is thy new master’s guest. Give him this letter, do it secretly,"
* Jessica saying she hates shylock - "Alack, what heinous sin is it in me To be ashamed to be my father’s child?"
* jessiac want to become christion to marry lorenzo - "If thou keep promise, I shall end this strife, Become a Christian and thy loving wife."
{{BookCat}}
cfa7tnpz1rr5m11ibys7ale6pmwxxj9
User talk:~2026-53929-45
3
486202
4674728
2026-10-06T13:49:21Z
JJPMaster
3095725
Notifying author of speedy deletion
4674728
wikitext
text/x-wiki
== Your page has been speedily deleted ==
Hi! I'm JJPMaster, and I recently reviewed your page, [[:UNO/UNO Flex]]. However, it does not meet Wikibooks's [[Wikibooks:What is Wikibooks?|standards for inclusion]], and it has therefore been [[Wikibooks:Deletion policy|deleted]]. The reason I provided was: <blockquote><strong>Test page</strong></blockquote> If you believe that your page should not have been deleted, or you have any questions or concerns, please [[User talk:JJPMaster|let me know]]. Thank you! [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 13:49, 6 October 2026 (UTC)
bw314tj06drzeoex3fw5slm9vchntqp
User:นาลง โคตะมะ
2
486203
4674731
2026-10-06T14:13:27Z
นาลง โคตะมะ
3627737
/* */
4674731
wikitext
text/x-wiki
{+.+}
8ss4d7xu12ak6kz9hwfatw0j6xabm89
Category:Pages using gallery with unknown parameters
14
486204
4674738
2026-10-06T15:23:44Z
~2026-53646-48
3627744
l
4674738
wikitext
text/x-wiki
k
2c1ab6rgvhut2h9gcvvdrmyxs586oss
4674757
4674738
2026-10-06T16:47:27Z
JJPMaster
3095725
Blanked the page
4674757
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Wikibooks:Featured books/Nominations/Addition/Wikijunior:The Elements
4
486205
4674769
2026-10-06T18:23:33Z
Codename Noreste
3441010
/* Wikijunior:The Elements */ move from [[Wikibooks:Featured books/Nominations]] ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4674769
wikitext
text/x-wiki
== [[Wikijunior:The Elements]] ==
{{closed|The formatting here appears to be a mess, but regardless, there is no consensus to implement this on the featured books. [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 17:51, 11 July 2026 (UTC)}}
:[[Image:Symbol support vote.svg|15px]] '''Support''' - well laid out, good content, great narrative.
The book "Wikijunior:The Elements" is suitable for this target group and has an appropriate and consistent definition. There is comprehensive information about the chemical elements and each chemical element has a chapter. This makes it a fairly thick book. It is up to date and also takes into account the new elements. It is accurate, comprehensive, and concise enough to effectively teach and learn from in its current state. Of course, further interesting information can be added to all elements. [[User:Wikiwau|Wikiwau]] ([[User talk:Wikiwau|discuss]] • [[Special:Contributions/Wikiwau|contribs]]) 08:24, 24 July 2023 (UTC)
Suggestion for the entry:
Wikijunior: The Elements
[[Image:The Elements.jpg|150px]]
The target of [[Wikijunior:The Elements]] are children. The periodic table of the elements is a way of organizing all the known elements. The elements are grouped on the basis of their properties, it becomes easy to study and compare their properties.
*{{oppose}}: some chapters have [[Wikijunior:The_Elements/Cesium#Where is it found?|empty sections]] and I have no idea why [[Wikijunior:The Elements/Strange Element|this poor explanation of neutrons]] is included here and presented as a "strange element". It's a poor explanation because it doesn't mention atoms at all, or protons, so leaves the reader thinking neutrons are just these ''things'' that exist ''somewhere.'' <s>Most, if not all the reference sections are empty.</s> <ins>''My apologies, many featured Wikijunior books do not have references, so this is common practice on Wikibooks.''</ins> Each chapter is extremely brief and sometimes, such as at [[Wikijunior:The Elements/Rare Elements]], the images are confusingly laid-out. Overall, this is not the kind of book that I think ought to be featured on the main page. [[User:Cremastra|Cremastra]] ([[User talk:Cremastra|discuss]] • [[Special:Contributions/Cremastra|contribs]]) 00:57, 27 June 2024 (UTC)
:[[Wikibooks:Featured books/Nominations]]@[[User:Cremastra|Cremastra]] [[Special:Contributions/1.46.150.177|1.46.150.177]] ([[User talk:1.46.150.177|discuss]]) 21:50, 7 February 2025 (UTC)
::@[[User:Wikiwau|Wikiwau]] [[Special:Contributions/1.46.150.177|1.46.150.177]] ([[User talk:1.46.150.177|discuss]]) 21:50, 7 February 2025 (UTC)
::Yes? [[User:Cremastra|Cremastra]] ([[User talk:Cremastra|discuss]] • [[Special:Contributions/Cremastra|contribs]]) 21:51, 7 February 2025 (UTC)
{{end closed}}
1immuqcd9b8frsj84gfy45scjh132q0
Wikibooks:Featured books/Nominations/Removal/Non-Programmer's Tutorial for Python 2.6
4
486206
4674772
2026-10-06T18:33:29Z
Codename Noreste
3441010
/* Non-Programmer's Tutorial for Python 2.6 */ archive from [[Wikibooks:Featured books/Nominations]] ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]])
4674772
wikitext
text/x-wiki
== [[Non-Programmer's Tutorial for Python 2.6]] ==
{{closed|There is consensus to de-list this book from the main page. [[User:Codename Noreste|Codename Noreste]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 17:30, 19 July 2026 (UTC)}}
Hello Wikibooks folks,
I am proposing de-featuring the Python 2 version of this book because [[Non-Programmer's Tutorial for Python 3|the Python 3 version]] has featured status and [https://www.python.org/doc/sunset-python-2/ Python 2 has been end-of-life for several years]. Both the Python 2 and Python 3 versions of this book will rotate through the [[Main Page]]'s featured articles section, and I do not think the Python 2 version is appropriate to promote as a starting point for learning programming anymore.
[[User:Huntertur|huntertur]] ([[User talk:Huntertur|discuss]] • [[Special:Contributions/Huntertur|contribs]]) 01:46, 3 November 2025 (UTC)
:I don't know wikibooks well enough for my thoughts to be any valuable for such discussions but I think if it works as said, it should be denominated [[User:DustDFG|DustDFG]] ([[User talk:DustDFG|discuss]] • [[Special:Contributions/DustDFG|contribs]]) 15:27, 4 November 2025 (UTC)
:{{s}} - these are both essentially the same book, just forked into two versions for Python 2 and Python 3. Having both is fine, but we should only feature it once, under the current version. [[User:Omphalographer|Omphalographer]] ([[User talk:Omphalographer|discuss]] • [[Special:Contributions/Omphalographer|contribs]]) 03:35, 5 January 2026 (UTC)
{{end closed}}
magynic7v6x5eh19jif7t3oxmeaitg1
Koine Greek/Future Active Indicative
0
486209
4674784
2026-10-06T23:56:01Z
It-is-Truly-Meet
3624460
Created page with "The future indicative, the first of two future tenses, indicates future actions. It’s easy to learn after memorizing the present indicative; they’re almost identical, with a sigma between the verb stem and the regular present tense ending. === Conjugation === {| class="wikitable" !Number !Person !Active !Middle |- |Singular |1st |<nowiki>-σω</nowiki> | -σομαι |- | |2nd |<nowiki>-σεις</nowiki> | -σει |- | |3rd |<nowiki>-σει</nowiki> | -σεται |-..."
4674784
wikitext
text/x-wiki
The future indicative, the first of two future tenses, indicates future actions. It’s easy to learn after memorizing the present indicative; they’re almost identical, with a sigma between the verb stem and the regular present tense ending.
=== Conjugation ===
{| class="wikitable"
!Number
!Person
!Active
!Middle
|-
|Singular
|1st
|<nowiki>-σω</nowiki>
| -σομαι
|-
|
|2nd
|<nowiki>-σεις</nowiki>
| -σει
|-
|
|3rd
|<nowiki>-σει</nowiki>
| -σεται
|-
|Plural
|1st
|<nowiki>-σομεν</nowiki>
| -σομεθα
|-
|
|2nd
|<nowiki>-σετε</nowiki>
| -σεσθε
|-
|
|3rd
|<nowiki>-σουσι(ν)</nowiki>
| -σονται
|-
|Infinitive
|
|<nowiki>-σειν</nowiki>
| -σεσθαι
|}
=== Mute Stems ===
Although the conjugation of the future tense is rather easy to recall, there is a new rule that applies as a result of the added sigma. When paired with certain consonants in verb stems, the sigma and consonant merge to form a new consonant or fall away(as is the case with the Dentals) leaving only the sigma. Verbs with vowels at the end of their stems(λυω for example ) need not undergo this change as we can simply insert the sigma between the stem and ending (λυω -> λυσω).
Certain letters combine with sigma to form different double-consonant letters:
{| class="wikitable"
!
!Verb stem ends
!+σ
|-
|Labials
|β-, π-, φ-
| -ψ-
|-
|Guttural/Palatals
|σσ-, γ-, κ-, χ-
| -ξ-
|-
|Dentals
|ζ-, δ-, τ-, θ-
| -σ-
|}
:λέ'''γ'''ω ("I say"), λέ'''ξ'''ω ("I will say")
5gjk01lftlb2m1o2rzbwqyel7jmqn3o
4674785
4674784
2026-10-07T00:10:28Z
It-is-Truly-Meet
3624460
4674785
wikitext
text/x-wiki
The future and future perfect tenses indicate future actions. The future tense, which simply adds a sigma between the verb stem and the regular present tense ending, has both perfective and imperfective aspects. However, the future perfect has a perfect aspect. In other words, the future tense generally conveys both continuous and discrete actions (e.g., δουλεύσω: I will work, I will be working), though some verbs like ἔχω have aoristic and imperfective future tenses (e.g., ἕξω: I will be having; σχήσω: I will have).
=== Conjugation ===
{| class="wikitable"
!Number
!Person
!Active
!Middle
|-
|Singular
|1st
|<nowiki>-σω</nowiki>
| -σομαι
|-
|
|2nd
|<nowiki>-σεις</nowiki>
| -σει
|-
|
|3rd
|<nowiki>-σει</nowiki>
| -σεται
|-
|Plural
|1st
|<nowiki>-σομεν</nowiki>
| -σομεθα
|-
|
|2nd
|<nowiki>-σετε</nowiki>
| -σεσθε
|-
|
|3rd
|<nowiki>-σουσι(ν)</nowiki>
| -σονται
|-
|Infinitive
|
|<nowiki>-σειν</nowiki>
| -σεσθαι
|}
=== Mute Stems ===
Although the conjugation of the future tense is rather easy to recall, there is a new rule that applies as a result of the added sigma. When paired with certain consonants in verb stems, the sigma and consonant merge to form a new consonant or fall away(as is the case with the Dentals) leaving only the sigma. Verbs with vowels at the end of their stems(λυω for example ) need not undergo this change as we can simply insert the sigma between the stem and ending (λυω -> λυσω).
Certain letters combine with sigma to form different double-consonant letters:
{| class="wikitable"
!
!Verb stem ends
!+σ
|-
|Labials
|β-, π-, φ-
| -ψ-
|-
|Guttural/Palatals
|σσ-, γ-, κ-, χ-
| -ξ-
|-
|Dentals
|ζ-, δ-, τ-, θ-
| -σ-
|}
:λέ'''γ'''ω ("I say"), λέ'''ξ'''ω ("I will say")
1e4hafondvjl88tmol0cbwfu9kt1sqo
Koine Greek/Imperfect Active/Mediopassive Indicative
0
486210
4674786
2026-10-07T00:12:13Z
It-is-Truly-Meet
3624460
Created page with "The 7 tenses can be divided into '''primary''' and '''secondary''' tenses. In general, primary tenses refer to action in the present or future; secondary tenses refer to action in the past. One of the main distinctions between the inflection of primary and secondary verbs is the personal endings that each uses: {| class="wikitable" border="1" cellspacing="0" cellpadding="5" ! colspan=6|Secondary Personal Endings |- ! colspan=2|-ω conjugation active ! colspan=2|-μι co..."
4674786
wikitext
text/x-wiki
The 7 tenses can be divided into '''primary''' and '''secondary''' tenses. In general, primary tenses refer to action in the present or future; secondary tenses refer to action in the past.
One of the main distinctions between the inflection of primary and secondary verbs is the personal endings that each uses:
{| class="wikitable" border="1" cellspacing="0" cellpadding="5"
! colspan=6|Secondary Personal Endings
|-
! colspan=2|-ω conjugation active
! colspan=2|-μι conjugation active
! colspan=2|middle voice
|-
! Singular
! Plural
! Singular
! Plural
! Singular
! Plural
|-
| -ον
| -ομεν
| -ν
| -μεν
| -μην
| -μεθα
|-
| -ες
| -ετε
| -ς
| -τε
| -σο
| -σθε
|-
| -ε
| -ον
| —
| -σαν
| -το
| -ντο
|}
The first ''secondary'' tense that we are learning is the ''imperfect''. While it is among the most commonly used tenses of '''finite''' verbs, there is '''no''' '''infinitive''' form of the imperfect, and it is only used in the '''indicative''' mood.
===Formation===
1. In the Greek conception, the imperfect tense is essentially the present tense shifted back into the past. In other words, the imperfect was conceived of as a state of existence, or an action that was still going on in the past. As a result, to form verbs in the imperfect, Greek begins with the ''present tense stem'', not the verb stem.
* δεικνυ show
* λυ loosen
* λαμβαν take
2. To the beginning of this stem is added the '''augment''' ἐ–. This augment used to be a separate word that indicated that the verb was in the past. Gradually it became a prefix that signifies the past tense for indicative verbs. With the addition of the augment, we now have the '''imperfect tense stem'''.
* ἐδεικνυ show
* ἐλυ loosen
* ἐλαμβαν take
3. Secondary personal endings are added to indicate person and number. As seen in the chart above, there are two sets of active secondary personal endings: those for athematic verbs (-μι verbs), and those for thematic verbs (-ω verbs).
Note that –ω verbs have nearly identical secondary endings to –μι verbs. The main differences are that –ω verbs:
# Add the thematic vowel
# Have identical 1st person singular and 3rd person plural ending
===Bringing It All Together===
δείκνυμι (athematic):
{| class="wikitable" cellspacing="2" boarder="1" padding="5"
! Active
! Mediopassive
|-
|ἐδείκνυν
|
|-
|ἐδείκνυς
|
|-
|ἐδείκνυ(ν)
|
|-
|ἐδείκνυμεν
|
|-
|ἐδείκνυτε
|
|-
|ἐδείκνυσαν
|
|}
λύω (thematic):
{| class="wikitable" cellspacing="2" boarder="1" padding="5"
! Active
! Mediopassive
|-
|ἔλῡον
|ἐλῡόμην
|-
|ἔλῡες
|ἐλῡ́ου
|-
|ἔλῡε(ν)
|ἐλῡ́ετο
|-
|ἐλῡ́ομεν
|ἐλῡόμεθᾰ
|-
|ἐλῡ́ετε
|ἐλῡ́εσθε
|-
|ἔλῡον
|ἐλῡ́οντο
|}
λαμβάνω (thematic):
{| class="wikitable" cellspacing="2" boarder="1" padding="5"
! Active
! Mediopassive
|-
|ἐλάμβανον
|
|-
|ἐλάμβανες
|
|-
|ἐλάμβανε(ν)
|
|-
|ἐλαμβάνομεν
|
|-
|ἐλαμβάνετε
|
|-
|ἐλάμβανον
|
|}
====More -μι Verbs====
While the formation of the imperfect tense is relatively straightforward, there are a handful of –μι verbs that exhibit slight irregularities:
* δίδωμι give
* τίθημι put, make
* φημί say
* ἵστημι stand
* ἵημι throw
* εἰμί be
δίδωμι:
{| class="wikitable" cellspacing="2" boarder="1" padding="5"
! Active
! Mediopassive
|-
|ἐδίδουν
|
|-
|ἐδίδους
|
|-
|ἐδίδου(ν)
|
|-
|ἐδίδομεν
|
|-
|ἐδίδοτε
|
|-
|ἐδίδοσαν
|
|}
Note that δίδωμι uses –ου– in the singular.
τίθημι:
{| class="wikitable" cellspacing="2" boarder="1" padding="5"
! Active
! Mediopassive
|-
|ἐτίθην
|
|-
|ἐτίθεις
|
|-
|ἐτίθει(ν)
|
|-
|ἐτίθεμεν
|
|-
|ἐτίθετε
|
|-
|ἐτίθεσαν
|
|}
Note that τίθημι uses –ει– in the 2nd and 3rd person singular.
φημί:
{| class="wikitable" cellspacing="2" boarder="1" padding="5"
! Active
! Mediopassive
|-
|ἔφην
|
|-
|ἔφης/ἔφησθα
|
|-
|ἔφη(ν)
|
|-
|ἔφαμεν
|
|-
|ἔφατε
|
|-
|ἔφασαν
|
|}
===Translation===
The imperfect tense indicates an ongoing action in the past, like a video of a past event. Thus, the imperfect is usually translated as "was 'verbing."
* E.g., ἐδίδουν = I was giving, I used to give, I kept giving
[[Category:Ancient Greek Language]]
[[Category:Lessons]]
89cnjef221k8zhxxzz3ebit2qisbttm
Koine Greek/Declining 3rd Declension Nouns
0
486211
4674794
2026-10-07T03:45:31Z
It-is-Truly-Meet
3624460
Created page with "παις, παιδος - child {| class="wikitable" ! !Singular !Plural !Dual |- |Nominative |παῖς |παῖδες |παῖδε |- |Genitive |παιδóς |παίδων |παίδοιν |- |Dative |παιδῐ́ |παισί |παίδοιν |- |Accusative |παῖδᾰ |παῖδᾰς |παῖδε |- |Vocative | παῖ |παῖδες |παῖδε |} == Table to -stem differents== [[File:Greek 3rd declension dental stems.jpg]] {{BookCat}}"
4674794
wikitext
text/x-wiki
παις, παιδος - child
{| class="wikitable"
!
!Singular
!Plural
!Dual
|-
|Nominative
|παῖς
|παῖδες
|παῖδε
|-
|Genitive
|παιδóς
|παίδων
|παίδοιν
|-
|Dative
|παιδῐ́
|παισί
|παίδοιν
|-
|Accusative
|παῖδᾰ
|παῖδᾰς
|παῖδε
|-
|Vocative
| παῖ
|παῖδες
|παῖδε
|}
== Table to -stem differents==
[[File:Greek 3rd declension dental stems.jpg]]
{{BookCat}}
ht9c8vng9b0w1if3fujt5omp6l0flmq
User:Mesukhan83
2
486212
4674864
2026-10-07T11:21:19Z
Mesukhan83
3627806
Created page with "Sodaisrahman"
4674864
wikitext
text/x-wiki
Sodaisrahman
t8kjmkxcg3aze4gc0iupw6e3ze6h6b3